diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..31a6da2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +# JetBrains IDE +.idea/ +*.iml + +# Bazel +bazel-* diff --git a/BUILD.bazel b/BUILD.bazel new file mode 100644 index 0000000..08390af --- /dev/null +++ b/BUILD.bazel @@ -0,0 +1,105 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +cc_library( + name = "vulkan_headers", + hdrs = glob(["vulkan/*"]), +) + +go_library( + name = "vulkan", + srcs = [ + "cgo_helpers.c", + "cgo_helpers.go", + "cgo_helpers.h", + "const.go", + "doc.go", + "errors.go", + "init.go", + "types.go", + "util.go", + "vk_bridge.c", + "vk_bridge.h", + "vk_debug_android.go", + "vk_default_loader.c", + "vk_default_loader.h", + "vk_null32.go", + "vk_null64.go", + "vk_wrapper.h", + "vk_wrapper_android.c", + "vk_wrapper_desktop.c", + "vk_wrapper_ios.m", + "vulkan.go", + "vulkan_android.go", + "vulkan_darwin.go", + "vulkan_freebsd.go", + "vulkan_ios.go", + "vulkan_linux.go", + ], + cdeps = [":vulkan_headers"] + select({ + "@io_bazel_rules_go//go/platform:darwin": [ + "@com_github_goki_vulkan_mac_deps//:vulkan_mac_deps", + ], + "//conditions:default": [], + }), + cgo = True, + clinkopts = select({ + "@io_bazel_rules_go//go/platform:android": [ + "-Wl,--no-warn-mismatch", + "-lm_hard", + "-llog", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "-F/Library/Frameworks", + "-framework Cocoa", + "-framework IOKit", + "-framework IOSurface", + "-framework QuartzCore", + "-framework Metal", + "-lc++", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "-L/usr/local/lib", + "-ldl", + "-lvulkan", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "-ldl", + ], + "//conditions:default": [], + }) + select({ + "@io_bazel_rules_go//go/platform:ios_arm64": [ + "-framework Foundation", + "-framework Metal", + "-framework QuartzCore", + "-framework MoltenVK", + "-lc++", + ], + "//conditions:default": [], + }), + copts = [ + "-I.", + "-DVK_NO_PROTOTYPES", + ] + select({ + "@io_bazel_rules_go//go/platform:android": [ + "-DVK_USE_PLATFORM_ANDROID_KHR", + "-D__ARM_ARCH_7A__", + "-D_NDK_MATH_NO_SOFTFP=1", + "-mfpu=vfp", + "-mfloat-abi=hard", + "-march=armv7-a", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "-DVK_USE_PLATFORM_MACOS_MVK", + "-Wno-deprecated-declarations", + ], + "//conditions:default": [], + }) + select({ + "@io_bazel_rules_go//go/platform:ios_arm64": [ + "-x objective-c", + "-DVK_USE_PLATFORM_IOS_MVK", + ], + "//conditions:default": [], + }), + importpath = "github.com/goki/vulkan", + visibility = ["//visibility:public"], +) diff --git a/Makefile b/Makefile index cfb9ff4..df6b286 100644 --- a/Makefile +++ b/Makefile @@ -8,3 +8,30 @@ clean: test: go build + +# NOTE: MUST update version number here prior to running 'make release' +VERS=v1.0.6 +PACKAGE=vulkan +GIT_COMMIT=`git rev-parse --short HEAD` +VERS_DATE=`date -u +%Y-%m-%d\ %H:%M` +VERS_FILE=version.go + +release: + /bin/rm -f $(VERS_FILE) + @echo "// WARNING: auto-generated by Makefile release target -- run 'make release' to update" > $(VERS_FILE) + @echo "" >> $(VERS_FILE) + @echo "package $(PACKAGE)" >> $(VERS_FILE) + @echo "" >> $(VERS_FILE) + @echo "const (" >> $(VERS_FILE) + @echo " GoVersion = \"$(VERS)\"" >> $(VERS_FILE) + @echo " GitCommit = \"$(GIT_COMMIT)\" // the commit JUST BEFORE the release" >> $(VERS_FILE) + @echo " VersionDate = \"$(VERS_DATE)\" // UTC" >> $(VERS_FILE) + @echo ")" >> $(VERS_FILE) + @echo "" >> $(VERS_FILE) + goimports -w $(VERS_FILE) + /bin/cat $(VERS_FILE) + git commit -am "$(VERS) release -- $(VERS_FILE) updated" + git tag -a $(VERS) -m "$(VERS) release" + git push + git push origin --tags + diff --git a/README.md b/README.md index cbc4452..0722ee9 100644 --- a/README.md +++ b/README.md @@ -1,69 +1,22 @@ -# Golang Bindings for Vulkan API ![version-1.1.88](https://img.shields.io/badge/version-1.1.88-lightgrey.svg) [![GoDoc](https://godoc.org/github.com/vulkan-go/vulkan?status.svg)](https://godoc.org/github.com/vulkan-go/vulkan) +# Golang Bindings for Vulkan API ![version-1.3.239](https://img.shields.io/badge/version-1.3.239-lightgrey.svg) [![GoDoc](https://pkg.go.dev/badge/github.com/goki/vulkan.svg)](https://pkg.go.dev/github.com/goki/vulkan) -Package [vulkan](https://github.com/vulkan-go/vulkan) provides Go bindings for [Vulkan](https://www.khronos.org/vulkan/) — a low-overhead, cross-platform 3D graphics and compute API. Updated October 13, 2018 — Vulkan 1.1.88. +Package [vulkan](https://github.com/goki/vulkan) provides Go bindings for [Vulkan](https://www.khronos.org/vulkan/) — a low-overhead, cross-platform 3D graphics and compute API. Updated February 9, 2023 — Vulkan 1.3.239. ## Introduction -Vulkan API is the result of 18 months in an intense collaboration between leading hardware, game engine and platform vendors, built on significant contributions from multiple Khronos members. Vulkan is designed for portability across multiple platforms with desktop and mobile GPU architectures. +The [Vulkan API](https://www.vulkan.org) is a cross-platform industry standard enabling developers to target a wide range of devices with the same graphics API. -Read the brief: https://developer.nvidia.com/engaging-voyage-vulkan +This Go binding allows one to use Vulkan API directly within Go code, avoiding adding lots of C/C++ in the projects. The original version is at https://github.com/vulkan-go/vulkan (still on 1.1.88 from 2018) and a fork at https://github.com/goki/vulkan is being more actively maintained at this point. -The binding allows one to use Vulkan API directly within Go code, avoiding -adding lots of C/C++ in the projects, also can be used to study Vulkan without -diving too deep into C/C++ language semantics. For me it's just a matter of -taste, writing Go code is simply more pleasant experience. +See [UPDATING](UPDATING.md) for extensive notes on how to update to newer vulkan versions as they are released. -## Project history timeline +## Examples and usage -* **2016-02-16** Vulkan API publicly released. +The original author, `xlab`, has examples at: https://github.com/vulkan-go/demos and the beginnings of a toolkit at: https://github.com/vulkan-go/asche. -* **2016-03-06** [vulkan-go](https://github.com/vulkan-go) initial commit and first binding. - -* **2016-05-14** Finally received my NVIDIA Shield Tablet K1 (DHL lost the first parcel), I decided to use tablet because it was the first device supporting Vulkan out of the box. And that was a really good implementation, much wow very reference. - -* **2016-05-17** Created [android-go](https://github.com/xlab/android-go) project in order to run Vulkan on the android platform. - -* **2016-05-23** First android-go + vulkan program runs on Tablet K1 ([screenshot](http://dl.kc.vc/vulkan/screens/first-android-vulkaninfo.png)). - -* **2016-05-24** Improved VulkanInfo example runs on Tablet K1 ([screenshot](http://dl.kc.vc/vulkan/screens/improved-android-vulkaninfo.png)). - -* **2016-05-28** [android-go](https://github.com/xlab/android-go) released into public ([Reddit post](https://www.reddit.com/r/golang/comments/4lgttr/full_golang_bindings_for_android_ndk_api_with/)) with plenty of examples including GLES/EGL. - -* **2016-08-13** Finished an app that should draw triangle (ported from tri.c from LunarG demos). Draws nothing instead. - -* **2016-08-13** First unsuccessful attempt to write a spinning cube example. More than 25 hours spent, 2.5k lines of C code rewritten into 900 lines of Go code. The reference code was found in some very old LunarG demo, it seems I should've used the latest one.. At least got the validation layers working and found some bugs in the triangle app code. - -* **2016-08-16** First Vulkan API program in Go that draws triangle runs on Tablet K1 ([photo](http://dl.kc.vc/vulkan/screens/first-android-vulkandraw.jpg)), validaton layers work perfectly too. - -* **2016-08-16** Public announce of this project ([Reddit post](https://www.reddit.com/r/golang/comments/4y2dj4/golang_bindings_for_vulkan_api_with_demos/)). Reaction was "Meh". - -* **2016-11-01** [MoltenVK](https://moltengl.com/moltenvk/) driver merged into GLFW (see [GLFW issue #870](https://github.com/glfw/glfw/issues/870)) and this made possible to use Vulkan API under Apple OS X or macOS. - -* **2016-11-06** VulkanInfo and VulkanDraw both ported to desktop OS X and use GLFW to initialize Vulkan ([screen #1](http://dl.kc.vc/vulkan/screens/first-moltenvk-vulkaninfo.png) and [screen #2](http://dl.kc.vc/vulkan/screens/first-moltenvk-vulkandraw.png)) - -* **2016-11-07** VulkanInfo and VulkanDraw run fine on NVIDIA GTX980 initialized through GLFW under Windows 10 ([screen #1](http://dl.kc.vc/vulkan/screens/first-windows-vulkaninfo.png) and [screen #2](http://dl.kc.vc/vulkan/screens/first-windows-vulkandraw.png)). - -* **2016-11-08** VulkanInfo runs in headless (a.k.a computing) mode in Amazon AWS cloud on P2 Instance equipped Tesla K80 ([screenshot](http://dl.kc.vc/vulkan/screens/first-amazon-vulkaninfo.png)). - -* **2016-11-09** [ios-go](https://github.com/xlab/ios-go) project started, it's very easy to run Golang apps on iOS that use custom surface, for my case it was Metal surface. - -* **2016-11-11** VulkanInfo runs fine on my iPhone under iOS ([screenshot](http://dl.kc.vc/vulkan/screens/first-ios-vulkaninfo.png)), and so does VulkanDraw ([photo](http://dl.kc.vc/vulkan/screens/first-ios-vulkandraw.jpg) also [GPU report from XCode](http://dl.kc.vc/vulkan/screens/gpureport-ios-vulkandraw.png)) - -* **2016-11-13** Second unsuccessful attempt to write spinning cube. 25 hours spent. The approach was highly inspired by [Mali Vulkan SDK for Android 1.0](http://malideveloper.arm.com/downloads/deved/tutorial/SDK/Vulkan/1.0/index.html) and I created initial version of [vulkan-go/asche](https://github.com/vulkan-go/asche) — a higher level framework to simplify Vulkan initialization for new apps. - -* **2016-11-29** Generic Linux support added in using GLFW ([Issue #2](https://github.com/vulkan-go/vulkan/issues/2)) thanks @jfreymuth. - -* **2017-05-06** Third, successful attempt to write spining cube example. 16 hours spent, 4K LOC of C code rewritten from [cube.c](https://github.com/LunarG/VulkanSamples/blob/master/demos/cube.c) of LunarG demos. The whole process has been screencasted, maybe I will release it one day. - -* **2017-05-06** [vulkan-go/asche](https://github.com/vulkan-go/asche) complete. - -* **2018-10-13** Updated to Vulkan 1.1.88 spec. - -![vulkan cube golang](http://dl.kc.vc/vulkan/screens/cube.gif) - -See all demos in [vulkan-go/demos](https://github.com/vulkan-go/demos). +The updated version is being used extensively in the [goki](https://github.com/goki) framework, powering the [GoGi](https://github.com/goki/gi) 2D and 3D GUI framework, based on the [VGPU](https://github.com/goki/vgpu) toolkit that manages the considerable complexity of dealing with Vulkan. VGPU is also used as a GPU compute engine framework in the emergent neural network modeling framework [axon](https://github.com/emer/axon). ## How to use @@ -71,7 +24,7 @@ Usage of this project is straightforward due to the stateless nature of Vulkan A Just import the package like this: ``` -import vk "github.com/vulkan-go/vulkan" +import vk "github.com/goki/vulkan" ``` Set the GetProcAddress pointer (used to look up Vulkan functions) using SetGetInstanceProcAddr or SetDefaultGetInstanceProcAddr. After that you can call Init to initialise the library. For example: @@ -105,6 +58,138 @@ Instead vulkan-go expects the dylibs to be present in the library search path. Follow the [build instructions](https://github.com/KhronosGroup/MoltenVK#building), but instead of `make install` manually copy `./Package/Latest/MoltenVK/dylib/macOS/libMoltenVK.dylib` to `/usr/local/lib` +**IMPORTANT:** be sure to remove any existing `libMoltenVK.dylib` file *before* copying a new one, otherwise you'll have to reboot your computer due to the way the gatekeeper mechanism works! + +## MoltenVK on iOS + +grab MoltenVK asset from github actions, copy to suitable directory: + +``` +-L/Users/oreilly/dev/ios/MoltenVK/MoltenVK/dylib/iOS/` and `-lMoltenVK ` in `vulkan_ios.go` + +$ cp libMoltenVK.dylib myapp.app` +$ lipo -create libMoltenVK.dylib -output MoltenVK` +$ mkdir MoltenVK.framework +$ mv MoltenVK MoltenVK.framework/ +$ install_name_tool -change @rpath/libMoltenVK.dylib @executable_path/MoltenVK.framework/MoltenVK main +$ codesign --force --deep --verbose=2 --sign "Randall O'Reilly" widgets.app +$ codesign -vvvv ../widgets.app +``` + +Info.plist for `MoltenVK.framework` + +``` + + + + + BuildMachineOSBuild + 22F82 + CFBundleDevelopmentRegion + en + CFBundleExecutable + MoltenVK + CFBundleIdentifier + com.example.test.MoltenVK + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + MoltenVK + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSupportedPlatforms + + iPhoneOS + + CFBundleVersion + 1 + + +``` + +main Info.plist for reference: + +``` + + + + + BuildMachineOSBuild + 22F82 + CFBundleDevelopmentRegion + en + CFBundleExecutable + main + CFBundleIdentifier + com.example.test.widgets + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Widgets + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + iPhoneOS + + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 20E238 + DTPlatformName + iphoneos + DTPlatformVersion + 16.4 + DTSDKBuild + 20E238 + DTSDKName + iphoneos16.4 + DTXcode + 1431 + DTXcodeBuild + 14E300c + LSRequiresIPhoneOS + + MinimumOSVersion + 16.4 + UIDeviceFamily + + 1 + 2 + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + +``` + + + ## Validation Layers A good brief of the current state of Vulkan validation layers: [Explore the Vulkan Loader and Validation Layers](https://lunarg.com/wp-content/uploads/2016/07/lunarg-birds-feather-session-siggraph-july-26-2016.pdf) (PDF). @@ -118,7 +203,7 @@ $ ./android-generate.sh $ ndk-build ``` -After that you'd copy the objects to `android/jni/libs` in your project and activate the `ValidationLayers.mk` in your `Android.mk` so when building APK they will be copied alongside with your shared library. It just works then: +After that you'd copy the files to `android/jni/libs` in your project and activate the `ValidationLayers.mk` in your `Android.mk` so when building APK they will be copied alongside with your shared library. It just works then: ``` [INFO] Instance extensions: [VK_KHR_surface VK_KHR_android_surface] @@ -138,8 +223,10 @@ After that you'd copy the objects to `android/jni/libs` in your project and acti * [vulkanGo.com](https://vulkanGo.com) * [SaschaWillems Demos (C++)](https://github.com/SaschaWillems/Vulkan) -* [LunarG Vulkan Samples](https://github.com/LunarG/VulkanSamples) +* [LunarG Vulkan Samples](https://github.com/LunarG/VulkanSamples) (archived) +* [Vulkan Samples from Khronos Group](https://github.com/KhronosGroup/Vulkan-Samples) * [Official list of Vulkan resources](https://www.khronos.org/vulkan/resources) +* [API description](https://registry.khronos.org/vulkan/) * [Vulkan API quick reference](https://www.khronos.org/registry/vulkan/specs/1.0/refguide/Vulkan-1.0-web.pdf) ## License diff --git a/UPDATING.md b/UPDATING.md new file mode 100644 index 0000000..4779c41 --- /dev/null +++ b/UPDATING.md @@ -0,0 +1,240 @@ +# Update from Feb 9, 2023: + +Just updated to the current 1.3.239.0 version of https://vulkan.lunarg.com/sdk/home and included the `vulkan_beta.h` file which includes the `PhysicalDevicePortabilitySubsetFeatures` struct that is needed to configure features on MoltenVK on the mac. Everything else more-or-less worked from the original conversion notes below. The .patch files have been updated. + +# Original conversion notes from May 11, 2022: + +Notes on updating to newer versions of Vulkan, this is from version 1.3.211.0 of https://vulkan.lunarg.com/sdk/home + +* Install [c-for-go](https://github.com/xlab/c-for-go) -- revert to the same version that was used to build the original `vulkan-go` from Oct 14, 2018 -- the current version as of 5/12/22 is apparently causing the crash from my first attempt. + +```Go +$ git checkout d57f9ec2a5f5456377e535ad9d81bb9b9b2797d9 +``` + +* On the Mac, I had to put the standard C includes in a convenient place for the c-for-go parser: + +```bash +$ sudo su +$ cd /usr/local +$ mkdir stdinclude +$ cp -av /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/* stdinclude/ +``` + +and replaced the type definitions in `stddef.h` with something that c-for-go could parse (see below). + +and then added `/usr/local/stdinclude` to the `vulkan.yml` include paths. + +I could not see how to get it to produce `uint` from any `C` types, so `size_t` is defined as `uint64` instead of `uint` as in the original. This means it won't work on a 32 bit system presumably -- it is a bit difficult to figure out exactly which uint64's need to be replaced, but someone could figure that out.. + +* Copy .h files from new version of Vulkan into `vulkan` dir: + +```bash +$ cp /usr/local/include/vulkan/*.h vulkan/ +``` + +* Also copied updated v1.19 to `moltenVK/vk_mvk_moltenvk.h` + +* Apply patch shown below to `vulkan_core.h` to exclude a few things that didn't result in buildable `cgo_helpers.go` -- probably these could be fixed but easier to skip for now. + +* `make all` -- runs c-for-go + +* Fix the generated `const.go` file per patch below to fix a few things. + +```bash +$ patch < const_go.patch +``` + +This builds on my mac but crashes after creating an instance, at this point: + +```Go + ret = vk.EnumeratePhysicalDevices(gp.Instance, &gpuCount, nil) +``` + +It is unclear if this is because moltenVK only supports version 1.1 of Vulkan? I tried setting the API version to 1.1 and that didn't work either. + +# vulkan_core.h patch + +``` +--- /usr/local/include/vulkan/vulkan_core.h 2022-05-05 01:00:38.000000000 -0700 ++++ vulkan_core.h 2022-05-12 00:05:57.000000000 -0700 +@@ -9843,7 +9843,7 @@ + uint32_t vertexStride); + #endif + +- ++/* + #define VK_NVX_binary_import 1 + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX) +@@ -9913,7 +9913,7 @@ + VkCommandBuffer commandBuffer, + const VkCuLaunchInfoNVX* pLaunchInfo); + #endif +- ++*/ + + #define VK_NVX_image_view_handle 1 + #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2 +@@ -11220,6 +11220,8 @@ + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); + #endif + ++// ray tracing not working on mac.. ++#ifdef GO_INCLUDE_NV_ray_tracing + + #define VK_NV_ray_tracing 1 + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) +@@ -11589,6 +11591,7 @@ + uint32_t shader); + #endif + ++#endif // GO_INCLUDE_NV_ray_tracing + + #define VK_NV_representative_fragment_test 1 + #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2 +@@ -13313,6 +13316,7 @@ + const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); + #endif + ++#ifdef GO_INCLUDE_NV_ray_tracing + + #define VK_NV_ray_tracing_motion_blur 1 + #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1 +@@ -13402,7 +13406,7 @@ + VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect; + } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV; + +- ++#endif // GO_INCLUDE_NV_ray_tracing + + #define VK_EXT_ycbcr_2plane_444_formats 1 + #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1 +@@ -13984,6 +13988,7 @@ + #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 1 + #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query" + ++#ifdef GO_INCLUDE_NV_ray_tracing + + #define VK_KHR_acceleration_structure 1 + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) +@@ -14429,3 +14434,6 @@ + #endif + + #endif ++ ++#endif // GO_INCLUDE_NV_ray_tracing ++ +``` + +# const.go patch + +``` +--- const.go 2022-05-12 01:22:31.000000000 -0700 ++++ const_fixed.go 2022-05-12 01:22:24.000000000 -0700 +@@ -29,7 +29,7 @@ + // AttachmentUnused as defined in vulkan/vulkan_core.h:124 + AttachmentUnused = (^uint32(0)) + // False as defined in vulkan/vulkan_core.h:125 +- False = uint32(0) ++ False = 0 + // LodClampNone as defined in vulkan/vulkan_core.h:126 + LodClampNone = 1000.0 + // QueueFamilyIgnored as defined in vulkan/vulkan_core.h:127 +@@ -41,7 +41,7 @@ + // SubpassExternal as defined in vulkan/vulkan_core.h:130 + SubpassExternal = (^uint32(0)) + // True as defined in vulkan/vulkan_core.h:131 +- True = uint32(1) ++ True = 1 + // WholeSize as defined in vulkan/vulkan_core.h:132 + WholeSize = (^uint64(0)) + // MaxMemoryTypes as defined in vulkan/vulkan_core.h:133 +@@ -2221,7 +2221,7 @@ + + // PipelineCacheHeaderVersion enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheHeaderVersion.html + const ( +- PipelineCacheHeaderVersionOne PipelineCacheHeaderVersion = 1 ++ PipelineCacheHeaderVersion1 PipelineCacheHeaderVersion = 1 + PipelineCacheHeaderVersionMaxEnum PipelineCacheHeaderVersion = 2147483647 + ) + +``` + +# stddef.h for mac + +```C +/*===---- /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.h/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.h/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.h/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.h/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.h/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.h/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.h/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.h/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.h/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.hstddef.h - Basic type definitions --------------------------------=== + * + * Copyright (c) 2008 Eli Friedman + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.h/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.hcopy/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stddef.hright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + *===-----------------------------------------------------------------------=== + */ + +#ifndef __STDDEF_H +#define __STDDEF_H + +#undef NULL +#ifdef __cplusplus +#if __cplusplus >= 201103L +#define NULL nullptr +#else +#undef __null // VC++ hack. +#define NULL __null +#endif +#elif defined(__has_feature) && __has_feature(bounds_attributes) +#define NULL __unsafe_forge_single(void *, 0) +#else +#define NULL ((void*)0) +#endif + +#ifndef _PTRDIFF_T +#define _PTRDIFF_T +typedef long long ptrdiff_t; +#endif +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned long long size_t; +#endif +#ifndef __cplusplus +#ifndef _WCHAR_T +#define _WCHAR_T +typedef unsigned short wchar_t; +#endif +#endif + +#ifndef offsetof +#define offsetof(t, d) __builtin_offsetof(t, d) +#endif + +#endif /* __STDDEF_H */ + +/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use +__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ +#if defined(__need_wint_t) +#if !defined(_WINT_T) +#define _WINT_T +typedef __WINT_TYPE__ wint_t; +#endif /* _WINT_T */ +#undef __need_wint_t +#endif /* __need_wint_t */ +``` + diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel new file mode 100644 index 0000000..0da6675 --- /dev/null +++ b/WORKSPACE.bazel @@ -0,0 +1,44 @@ +workspace(name = "com_github_goki_vulkan") + +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "io_bazel_rules_go", + sha256 = "dd926a88a564a9246713a9c00b35315f54cbd46b31a26d5d8fb264c07045f05d", + urls = [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.38.1/rules_go-v0.38.1.zip", + "https://github.com/bazelbuild/rules_go/releases/download/v0.38.1/rules_go-v0.38.1.zip", + ], +) + +load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") + +go_rules_dependencies() + +go_register_toolchains(version = "1.18.10") + +vulkan_mac_deps_version = "1.3.239.0" + +http_archive( + name = "com_github_goki_vulkan_mac_deps", + sha256 = "348bc84c0fc1f1e79fb28bcf83454faa2a84c4d4c2286225d4413830a3c0a29c", + strip_prefix = "vulkan_mac_deps-%s" % vulkan_mac_deps_version, + url = "https://github.com/goki/vulkan_mac_deps/archive/refs/tags/%s.tar.gz" % vulkan_mac_deps_version, +) + +http_archive( + name = "bazel_skylib", + sha256 = "74d544d96f4a5bb630d465ca8bbcfe231e3594e5aae57e1edbf17a6eb3ca2506", + urls = [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz", + ], +) + +load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") + +bazel_skylib_workspace() + +load("@bazel_skylib//lib:versions.bzl", "versions") + +versions.check(minimum_bazel_version = "6.0.0") diff --git a/android/dummy.go b/android/dummy.go new file mode 100644 index 0000000..9bdbdef --- /dev/null +++ b/android/dummy.go @@ -0,0 +1,5 @@ +//go:build required +// +build required + +// Package dummy prevents go tooling from stripping the c dependencies. +package dummy diff --git a/cgo_helpers.c b/cgo_helpers.c index ee3da7a..1819924 100644 --- a/cgo_helpers.c +++ b/cgo_helpers.c @@ -1,12 +1,16 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Mon, 15 Oct 2018 01:04:16 +07. +// WARNING: This file has automatically been generated on Fri, 10 Feb 2023 11:56:02 PST. // Code generated by https://git.io/c-for-go. DO NOT EDIT. #include "_cgo_export.h" #include "cgo_helpers.h" -unsigned int PFN_vkDebugReportCallbackEXT_c918aac4(unsigned int flags, VkDebugReportObjectTypeEXT objectType, unsigned long long object, unsigned long int location, int messageCode, char* pLayerPrefix, char* pMessage, void* pUserData) { +unsigned int PFN_vkDebugReportCallbackEXT_c918aac4(unsigned int flags, VkDebugReportObjectTypeEXT objectType, unsigned long long object, unsigned long long location, int messageCode, char* pLayerPrefix, char* pMessage, void* pUserData) { return debugReportCallbackFuncC918AAC4(flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, pUserData); } +void PFN_vkDeviceMemoryReportCallbackEXT_e34d104c(VkDeviceMemoryReportCallbackDataEXT* pCallbackData, void* pUserData) { + deviceMemoryReportCallbackFuncE34D104C(pCallbackData, pUserData); +} + diff --git a/cgo_helpers.go b/cgo_helpers.go index 1adfb62..5c1e168 100644 --- a/cgo_helpers.go +++ b/cgo_helpers.go @@ -1,6 +1,6 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Mon, 15 Oct 2018 01:04:16 +07. +// WARNING: This file has automatically been generated on Fri, 10 Feb 2023 11:56:02 PST. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -8,6 +8,7 @@ package vulkan /* #cgo CFLAGS: -I. -DVK_NO_PROTOTYPES #include "vulkan/vulkan.h" +#include "vulkan/vulkan_beta.h" #include "vk_wrapper.h" #include "vk_bridge.h" #include @@ -70,133 +71,77 @@ func (a *cgoAllocMap) Free() { a.mux.Unlock() } -// allocApplicationInfoMemory allocates memory for type C.VkApplicationInfo in C. +// allocExtent2DMemory allocates memory for type C.VkExtent2D in C. // The caller is responsible for freeing the this memory via C.free. -func allocApplicationInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfApplicationInfoValue)) +func allocExtent2DMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExtent2DValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfApplicationInfoValue = unsafe.Sizeof([1]C.VkApplicationInfo{}) - -// unpackPCharString represents the data from Go string as *C.char and avoids copying. -func unpackPCharString(str string) (*C.char, *cgoAllocMap) { - h := (*stringHeader)(unsafe.Pointer(&str)) - return (*C.char)(h.Data), cgoAllocsUnknown -} - -type stringHeader struct { - Data unsafe.Pointer - Len int -} - -// packPCharString creates a Go string backed by *C.char and avoids copying. -func packPCharString(p *C.char) (raw string) { - if p != nil && *p != 0 { - h := (*stringHeader)(unsafe.Pointer(&raw)) - h.Data = unsafe.Pointer(p) - for *p != 0 { - p = (*C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(p)) + 1)) // p++ - } - h.Len = int(uintptr(unsafe.Pointer(p)) - uintptr(h.Data)) - } - return -} - -// RawString reperesents a string backed by data on the C side. -type RawString string - -// Copy returns a Go-managed copy of raw string. -func (raw RawString) Copy() string { - if len(raw) == 0 { - return "" - } - h := (*stringHeader)(unsafe.Pointer(&raw)) - return C.GoStringN((*C.char)(h.Data), C.int(h.Len)) -} +const sizeOfExtent2DValue = unsafe.Sizeof([1]C.VkExtent2D{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ApplicationInfo) Ref() *C.VkApplicationInfo { +func (x *Extent2D) Ref() *C.VkExtent2D { if x == nil { return nil } - return x.refb0af7378 + return x.refe2edf56b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ApplicationInfo) Free() { - if x != nil && x.allocsb0af7378 != nil { - x.allocsb0af7378.(*cgoAllocMap).Free() - x.refb0af7378 = nil +func (x *Extent2D) Free() { + if x != nil && x.allocse2edf56b != nil { + x.allocse2edf56b.(*cgoAllocMap).Free() + x.refe2edf56b = nil } } -// NewApplicationInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewExtent2DRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewApplicationInfoRef(ref unsafe.Pointer) *ApplicationInfo { +func NewExtent2DRef(ref unsafe.Pointer) *Extent2D { if ref == nil { return nil } - obj := new(ApplicationInfo) - obj.refb0af7378 = (*C.VkApplicationInfo)(unsafe.Pointer(ref)) + obj := new(Extent2D) + obj.refe2edf56b = (*C.VkExtent2D)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ApplicationInfo) PassRef() (*C.VkApplicationInfo, *cgoAllocMap) { +func (x *Extent2D) PassRef() (*C.VkExtent2D, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb0af7378 != nil { - return x.refb0af7378, nil + } else if x.refe2edf56b != nil { + return x.refe2edf56b, nil } - memb0af7378 := allocApplicationInfoMemory(1) - refb0af7378 := (*C.VkApplicationInfo)(memb0af7378) - allocsb0af7378 := new(cgoAllocMap) - allocsb0af7378.Add(memb0af7378) - - var csType_allocs *cgoAllocMap - refb0af7378.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb0af7378.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refb0af7378.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb0af7378.Borrow(cpNext_allocs) - - var cpApplicationName_allocs *cgoAllocMap - refb0af7378.pApplicationName, cpApplicationName_allocs = unpackPCharString(x.PApplicationName) - allocsb0af7378.Borrow(cpApplicationName_allocs) - - var capplicationVersion_allocs *cgoAllocMap - refb0af7378.applicationVersion, capplicationVersion_allocs = (C.uint32_t)(x.ApplicationVersion), cgoAllocsUnknown - allocsb0af7378.Borrow(capplicationVersion_allocs) - - var cpEngineName_allocs *cgoAllocMap - refb0af7378.pEngineName, cpEngineName_allocs = unpackPCharString(x.PEngineName) - allocsb0af7378.Borrow(cpEngineName_allocs) + meme2edf56b := allocExtent2DMemory(1) + refe2edf56b := (*C.VkExtent2D)(meme2edf56b) + allocse2edf56b := new(cgoAllocMap) + allocse2edf56b.Add(meme2edf56b) - var cengineVersion_allocs *cgoAllocMap - refb0af7378.engineVersion, cengineVersion_allocs = (C.uint32_t)(x.EngineVersion), cgoAllocsUnknown - allocsb0af7378.Borrow(cengineVersion_allocs) + var cwidth_allocs *cgoAllocMap + refe2edf56b.width, cwidth_allocs = (C.uint32_t)(x.Width), cgoAllocsUnknown + allocse2edf56b.Borrow(cwidth_allocs) - var capiVersion_allocs *cgoAllocMap - refb0af7378.apiVersion, capiVersion_allocs = (C.uint32_t)(x.ApiVersion), cgoAllocsUnknown - allocsb0af7378.Borrow(capiVersion_allocs) + var cheight_allocs *cgoAllocMap + refe2edf56b.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown + allocse2edf56b.Borrow(cheight_allocs) - x.refb0af7378 = refb0af7378 - x.allocsb0af7378 = allocsb0af7378 - return refb0af7378, allocsb0af7378 + x.refe2edf56b = refe2edf56b + x.allocse2edf56b = allocse2edf56b + return refe2edf56b, allocse2edf56b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ApplicationInfo) PassValue() (C.VkApplicationInfo, *cgoAllocMap) { - if x.refb0af7378 != nil { - return *x.refb0af7378, nil +func (x Extent2D) PassValue() (C.VkExtent2D, *cgoAllocMap) { + if x.refe2edf56b != nil { + return *x.refe2edf56b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -204,170 +149,176 @@ func (x ApplicationInfo) PassValue() (C.VkApplicationInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ApplicationInfo) Deref() { - if x.refb0af7378 == nil { +func (x *Extent2D) Deref() { + if x.refe2edf56b == nil { return } - x.SType = (StructureType)(x.refb0af7378.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb0af7378.pNext)) - x.PApplicationName = packPCharString(x.refb0af7378.pApplicationName) - x.ApplicationVersion = (uint32)(x.refb0af7378.applicationVersion) - x.PEngineName = packPCharString(x.refb0af7378.pEngineName) - x.EngineVersion = (uint32)(x.refb0af7378.engineVersion) - x.ApiVersion = (uint32)(x.refb0af7378.apiVersion) + x.Width = (uint32)(x.refe2edf56b.width) + x.Height = (uint32)(x.refe2edf56b.height) } -// allocInstanceCreateInfoMemory allocates memory for type C.VkInstanceCreateInfo in C. +// allocExtent3DMemory allocates memory for type C.VkExtent3D in C. // The caller is responsible for freeing the this memory via C.free. -func allocInstanceCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfInstanceCreateInfoValue)) +func allocExtent3DMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExtent3DValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfInstanceCreateInfoValue = unsafe.Sizeof([1]C.VkInstanceCreateInfo{}) +const sizeOfExtent3DValue = unsafe.Sizeof([1]C.VkExtent3D{}) -type sliceHeader struct { - Data unsafe.Pointer - Len int - Cap int +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *Extent3D) Ref() *C.VkExtent3D { + if x == nil { + return nil + } + return x.reffbf6c42a } -// allocPCharMemory allocates memory for type *C.char in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPCharMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPCharValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *Extent3D) Free() { + if x != nil && x.allocsfbf6c42a != nil { + x.allocsfbf6c42a.(*cgoAllocMap).Free() + x.reffbf6c42a = nil } - return mem } -const sizeOfPCharValue = unsafe.Sizeof([1]*C.char{}) - -const sizeOfPtr = unsafe.Sizeof(&struct{}{}) +// NewExtent3DRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExtent3DRef(ref unsafe.Pointer) *Extent3D { + if ref == nil { + return nil + } + obj := new(Extent3D) + obj.reffbf6c42a = (*C.VkExtent3D)(unsafe.Pointer(ref)) + return obj +} -// unpackSString transforms a sliced Go data structure into plain C format. -func unpackSString(x []string) (unpacked **C.char, allocs *cgoAllocMap) { +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *Extent3D) PassRef() (*C.VkExtent3D, *cgoAllocMap) { if x == nil { return nil, nil + } else if x.reffbf6c42a != nil { + return x.reffbf6c42a, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(***C.char) { - go allocs.Free() - }) + memfbf6c42a := allocExtent3DMemory(1) + reffbf6c42a := (*C.VkExtent3D)(memfbf6c42a) + allocsfbf6c42a := new(cgoAllocMap) + allocsfbf6c42a.Add(memfbf6c42a) - len0 := len(x) - mem0 := allocPCharMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, + var cwidth_allocs *cgoAllocMap + reffbf6c42a.width, cwidth_allocs = (C.uint32_t)(x.Width), cgoAllocsUnknown + allocsfbf6c42a.Borrow(cwidth_allocs) + + var cheight_allocs *cgoAllocMap + reffbf6c42a.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown + allocsfbf6c42a.Borrow(cheight_allocs) + + var cdepth_allocs *cgoAllocMap + reffbf6c42a.depth, cdepth_allocs = (C.uint32_t)(x.Depth), cgoAllocsUnknown + allocsfbf6c42a.Borrow(cdepth_allocs) + + x.reffbf6c42a = reffbf6c42a + x.allocsfbf6c42a = allocsfbf6c42a + return reffbf6c42a, allocsfbf6c42a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x Extent3D) PassValue() (C.VkExtent3D, *cgoAllocMap) { + if x.reffbf6c42a != nil { + return *x.reffbf6c42a, nil } - v0 := *(*[]*C.char)(unsafe.Pointer(h0)) - for i0 := range x { - v0[i0], _ = unpackPCharString(x[i0]) + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *Extent3D) Deref() { + if x.reffbf6c42a == nil { + return } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (**C.char)(h.Data) - return + x.Width = (uint32)(x.reffbf6c42a.width) + x.Height = (uint32)(x.reffbf6c42a.height) + x.Depth = (uint32)(x.reffbf6c42a.depth) } -// packSString reads sliced Go data structure out from plain C format. -func packSString(v []string, ptr0 **C.char) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfPtr]*C.char)(unsafe.Pointer(ptr0)))[i0] - v[i0] = packPCharString(ptr1) +// allocOffset2DMemory allocates memory for type C.VkOffset2D in C. +// The caller is responsible for freeing the this memory via C.free. +func allocOffset2DMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfOffset2DValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) } + return mem } +const sizeOfOffset2DValue = unsafe.Sizeof([1]C.VkOffset2D{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *InstanceCreateInfo) Ref() *C.VkInstanceCreateInfo { +func (x *Offset2D) Ref() *C.VkOffset2D { if x == nil { return nil } - return x.ref9b760798 + return x.ref32734883 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *InstanceCreateInfo) Free() { - if x != nil && x.allocs9b760798 != nil { - x.allocs9b760798.(*cgoAllocMap).Free() - x.ref9b760798 = nil +func (x *Offset2D) Free() { + if x != nil && x.allocs32734883 != nil { + x.allocs32734883.(*cgoAllocMap).Free() + x.ref32734883 = nil } } -// NewInstanceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewOffset2DRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewInstanceCreateInfoRef(ref unsafe.Pointer) *InstanceCreateInfo { +func NewOffset2DRef(ref unsafe.Pointer) *Offset2D { if ref == nil { return nil } - obj := new(InstanceCreateInfo) - obj.ref9b760798 = (*C.VkInstanceCreateInfo)(unsafe.Pointer(ref)) + obj := new(Offset2D) + obj.ref32734883 = (*C.VkOffset2D)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *InstanceCreateInfo) PassRef() (*C.VkInstanceCreateInfo, *cgoAllocMap) { +func (x *Offset2D) PassRef() (*C.VkOffset2D, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9b760798 != nil { - return x.ref9b760798, nil + } else if x.ref32734883 != nil { + return x.ref32734883, nil } - mem9b760798 := allocInstanceCreateInfoMemory(1) - ref9b760798 := (*C.VkInstanceCreateInfo)(mem9b760798) - allocs9b760798 := new(cgoAllocMap) - allocs9b760798.Add(mem9b760798) - - var csType_allocs *cgoAllocMap - ref9b760798.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9b760798.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref9b760798.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9b760798.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref9b760798.flags, cflags_allocs = (C.VkInstanceCreateFlags)(x.Flags), cgoAllocsUnknown - allocs9b760798.Borrow(cflags_allocs) - - var cpApplicationInfo_allocs *cgoAllocMap - ref9b760798.pApplicationInfo, cpApplicationInfo_allocs = x.PApplicationInfo.PassRef() - allocs9b760798.Borrow(cpApplicationInfo_allocs) - - var cenabledLayerCount_allocs *cgoAllocMap - ref9b760798.enabledLayerCount, cenabledLayerCount_allocs = (C.uint32_t)(x.EnabledLayerCount), cgoAllocsUnknown - allocs9b760798.Borrow(cenabledLayerCount_allocs) - - var cppEnabledLayerNames_allocs *cgoAllocMap - ref9b760798.ppEnabledLayerNames, cppEnabledLayerNames_allocs = unpackSString(x.PpEnabledLayerNames) - allocs9b760798.Borrow(cppEnabledLayerNames_allocs) + mem32734883 := allocOffset2DMemory(1) + ref32734883 := (*C.VkOffset2D)(mem32734883) + allocs32734883 := new(cgoAllocMap) + allocs32734883.Add(mem32734883) - var cenabledExtensionCount_allocs *cgoAllocMap - ref9b760798.enabledExtensionCount, cenabledExtensionCount_allocs = (C.uint32_t)(x.EnabledExtensionCount), cgoAllocsUnknown - allocs9b760798.Borrow(cenabledExtensionCount_allocs) + var cx_allocs *cgoAllocMap + ref32734883.x, cx_allocs = (C.int32_t)(x.X), cgoAllocsUnknown + allocs32734883.Borrow(cx_allocs) - var cppEnabledExtensionNames_allocs *cgoAllocMap - ref9b760798.ppEnabledExtensionNames, cppEnabledExtensionNames_allocs = unpackSString(x.PpEnabledExtensionNames) - allocs9b760798.Borrow(cppEnabledExtensionNames_allocs) + var cy_allocs *cgoAllocMap + ref32734883.y, cy_allocs = (C.int32_t)(x.Y), cgoAllocsUnknown + allocs32734883.Borrow(cy_allocs) - x.ref9b760798 = ref9b760798 - x.allocs9b760798 = allocs9b760798 - return ref9b760798, allocs9b760798 + x.ref32734883 = ref32734883 + x.allocs32734883 = allocs32734883 + return ref32734883, allocs32734883 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x InstanceCreateInfo) PassValue() (C.VkInstanceCreateInfo, *cgoAllocMap) { - if x.ref9b760798 != nil { - return *x.ref9b760798, nil +func (x Offset2D) PassValue() (C.VkOffset2D, *cgoAllocMap) { + if x.ref32734883 != nil { + return *x.ref32734883, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -375,349 +326,176 @@ func (x InstanceCreateInfo) PassValue() (C.VkInstanceCreateInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *InstanceCreateInfo) Deref() { - if x.ref9b760798 == nil { +func (x *Offset2D) Deref() { + if x.ref32734883 == nil { return } - x.SType = (StructureType)(x.ref9b760798.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9b760798.pNext)) - x.Flags = (InstanceCreateFlags)(x.ref9b760798.flags) - x.PApplicationInfo = NewApplicationInfoRef(unsafe.Pointer(x.ref9b760798.pApplicationInfo)) - x.EnabledLayerCount = (uint32)(x.ref9b760798.enabledLayerCount) - packSString(x.PpEnabledLayerNames, x.ref9b760798.ppEnabledLayerNames) - x.EnabledExtensionCount = (uint32)(x.ref9b760798.enabledExtensionCount) - packSString(x.PpEnabledExtensionNames, x.ref9b760798.ppEnabledExtensionNames) + x.X = (int32)(x.ref32734883.x) + x.Y = (int32)(x.ref32734883.y) } -// Ref returns a reference to C object as it is. -func (x *AllocationCallbacks) Ref() *C.VkAllocationCallbacks { +// allocOffset3DMemory allocates memory for type C.VkOffset3D in C. +// The caller is responsible for freeing the this memory via C.free. +func allocOffset3DMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfOffset3DValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfOffset3DValue = unsafe.Sizeof([1]C.VkOffset3D{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *Offset3D) Ref() *C.VkOffset3D { if x == nil { return nil } - return (*C.VkAllocationCallbacks)(unsafe.Pointer(x)) + return x.ref2b6879c2 } -// Free cleanups the referenced memory using C free. -func (x *AllocationCallbacks) Free() { - if x != nil { - C.free(unsafe.Pointer(x)) +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *Offset3D) Free() { + if x != nil && x.allocs2b6879c2 != nil { + x.allocs2b6879c2.(*cgoAllocMap).Free() + x.ref2b6879c2 = nil } } -// NewAllocationCallbacksRef converts the C object reference into a raw struct reference without wrapping. -func NewAllocationCallbacksRef(ref unsafe.Pointer) *AllocationCallbacks { - return (*AllocationCallbacks)(ref) +// NewOffset3DRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewOffset3DRef(ref unsafe.Pointer) *Offset3D { + if ref == nil { + return nil + } + obj := new(Offset3D) + obj.ref2b6879c2 = (*C.VkOffset3D)(unsafe.Pointer(ref)) + return obj } -// NewAllocationCallbacks allocates a new C object of this type and converts the reference into -// a raw struct reference without wrapping. -func NewAllocationCallbacks() *AllocationCallbacks { - return (*AllocationCallbacks)(allocAllocationCallbacksMemory(1)) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *Offset3D) PassRef() (*C.VkOffset3D, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2b6879c2 != nil { + return x.ref2b6879c2, nil + } + mem2b6879c2 := allocOffset3DMemory(1) + ref2b6879c2 := (*C.VkOffset3D)(mem2b6879c2) + allocs2b6879c2 := new(cgoAllocMap) + allocs2b6879c2.Add(mem2b6879c2) + + var cx_allocs *cgoAllocMap + ref2b6879c2.x, cx_allocs = (C.int32_t)(x.X), cgoAllocsUnknown + allocs2b6879c2.Borrow(cx_allocs) + + var cy_allocs *cgoAllocMap + ref2b6879c2.y, cy_allocs = (C.int32_t)(x.Y), cgoAllocsUnknown + allocs2b6879c2.Borrow(cy_allocs) + + var cz_allocs *cgoAllocMap + ref2b6879c2.z, cz_allocs = (C.int32_t)(x.Z), cgoAllocsUnknown + allocs2b6879c2.Borrow(cz_allocs) + + x.ref2b6879c2 = ref2b6879c2 + x.allocs2b6879c2 = allocs2b6879c2 + return ref2b6879c2, allocs2b6879c2 + } -// allocAllocationCallbacksMemory allocates memory for type C.VkAllocationCallbacks in C. -// The caller is responsible for freeing the this memory via C.free. -func allocAllocationCallbacksMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAllocationCallbacksValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x Offset3D) PassValue() (C.VkOffset3D, *cgoAllocMap) { + if x.ref2b6879c2 != nil { + return *x.ref2b6879c2, nil } - return mem + ref, allocs := x.PassRef() + return *ref, allocs } -const sizeOfAllocationCallbacksValue = unsafe.Sizeof([1]C.VkAllocationCallbacks{}) - -// PassRef returns a reference to C object as it is or allocates a new C object of this type. -func (x *AllocationCallbacks) PassRef() *C.VkAllocationCallbacks { - if x == nil { - x = (*AllocationCallbacks)(allocAllocationCallbacksMemory(1)) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *Offset3D) Deref() { + if x.ref2b6879c2 == nil { + return } - return (*C.VkAllocationCallbacks)(unsafe.Pointer(x)) + x.X = (int32)(x.ref2b6879c2.x) + x.Y = (int32)(x.ref2b6879c2.y) + x.Z = (int32)(x.ref2b6879c2.z) } -// allocPhysicalDeviceFeaturesMemory allocates memory for type C.VkPhysicalDeviceFeatures in C. +// allocRect2DMemory allocates memory for type C.VkRect2D in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFeaturesValue)) +func allocRect2DMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRect2DValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFeatures{}) +const sizeOfRect2DValue = unsafe.Sizeof([1]C.VkRect2D{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFeatures) Ref() *C.VkPhysicalDeviceFeatures { +func (x *Rect2D) Ref() *C.VkRect2D { if x == nil { return nil } - return x.reff97e405d + return x.ref89e4256f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceFeatures) Free() { - if x != nil && x.allocsf97e405d != nil { - x.allocsf97e405d.(*cgoAllocMap).Free() - x.reff97e405d = nil +func (x *Rect2D) Free() { + if x != nil && x.allocs89e4256f != nil { + x.allocs89e4256f.(*cgoAllocMap).Free() + x.ref89e4256f = nil } } -// NewPhysicalDeviceFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewRect2DRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFeatures { +func NewRect2DRef(ref unsafe.Pointer) *Rect2D { if ref == nil { return nil } - obj := new(PhysicalDeviceFeatures) - obj.reff97e405d = (*C.VkPhysicalDeviceFeatures)(unsafe.Pointer(ref)) + obj := new(Rect2D) + obj.ref89e4256f = (*C.VkRect2D)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceFeatures) PassRef() (*C.VkPhysicalDeviceFeatures, *cgoAllocMap) { +func (x *Rect2D) PassRef() (*C.VkRect2D, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff97e405d != nil { - return x.reff97e405d, nil + } else if x.ref89e4256f != nil { + return x.ref89e4256f, nil } - memf97e405d := allocPhysicalDeviceFeaturesMemory(1) - reff97e405d := (*C.VkPhysicalDeviceFeatures)(memf97e405d) - allocsf97e405d := new(cgoAllocMap) - allocsf97e405d.Add(memf97e405d) - - var crobustBufferAccess_allocs *cgoAllocMap - reff97e405d.robustBufferAccess, crobustBufferAccess_allocs = (C.VkBool32)(x.RobustBufferAccess), cgoAllocsUnknown - allocsf97e405d.Borrow(crobustBufferAccess_allocs) + mem89e4256f := allocRect2DMemory(1) + ref89e4256f := (*C.VkRect2D)(mem89e4256f) + allocs89e4256f := new(cgoAllocMap) + allocs89e4256f.Add(mem89e4256f) - var cfullDrawIndexUint32_allocs *cgoAllocMap - reff97e405d.fullDrawIndexUint32, cfullDrawIndexUint32_allocs = (C.VkBool32)(x.FullDrawIndexUint32), cgoAllocsUnknown - allocsf97e405d.Borrow(cfullDrawIndexUint32_allocs) + var coffset_allocs *cgoAllocMap + ref89e4256f.offset, coffset_allocs = x.Offset.PassValue() + allocs89e4256f.Borrow(coffset_allocs) - var cimageCubeArray_allocs *cgoAllocMap - reff97e405d.imageCubeArray, cimageCubeArray_allocs = (C.VkBool32)(x.ImageCubeArray), cgoAllocsUnknown - allocsf97e405d.Borrow(cimageCubeArray_allocs) + var cextent_allocs *cgoAllocMap + ref89e4256f.extent, cextent_allocs = x.Extent.PassValue() + allocs89e4256f.Borrow(cextent_allocs) - var cindependentBlend_allocs *cgoAllocMap - reff97e405d.independentBlend, cindependentBlend_allocs = (C.VkBool32)(x.IndependentBlend), cgoAllocsUnknown - allocsf97e405d.Borrow(cindependentBlend_allocs) - - var cgeometryShader_allocs *cgoAllocMap - reff97e405d.geometryShader, cgeometryShader_allocs = (C.VkBool32)(x.GeometryShader), cgoAllocsUnknown - allocsf97e405d.Borrow(cgeometryShader_allocs) - - var ctessellationShader_allocs *cgoAllocMap - reff97e405d.tessellationShader, ctessellationShader_allocs = (C.VkBool32)(x.TessellationShader), cgoAllocsUnknown - allocsf97e405d.Borrow(ctessellationShader_allocs) - - var csampleRateShading_allocs *cgoAllocMap - reff97e405d.sampleRateShading, csampleRateShading_allocs = (C.VkBool32)(x.SampleRateShading), cgoAllocsUnknown - allocsf97e405d.Borrow(csampleRateShading_allocs) - - var cdualSrcBlend_allocs *cgoAllocMap - reff97e405d.dualSrcBlend, cdualSrcBlend_allocs = (C.VkBool32)(x.DualSrcBlend), cgoAllocsUnknown - allocsf97e405d.Borrow(cdualSrcBlend_allocs) - - var clogicOp_allocs *cgoAllocMap - reff97e405d.logicOp, clogicOp_allocs = (C.VkBool32)(x.LogicOp), cgoAllocsUnknown - allocsf97e405d.Borrow(clogicOp_allocs) - - var cmultiDrawIndirect_allocs *cgoAllocMap - reff97e405d.multiDrawIndirect, cmultiDrawIndirect_allocs = (C.VkBool32)(x.MultiDrawIndirect), cgoAllocsUnknown - allocsf97e405d.Borrow(cmultiDrawIndirect_allocs) - - var cdrawIndirectFirstInstance_allocs *cgoAllocMap - reff97e405d.drawIndirectFirstInstance, cdrawIndirectFirstInstance_allocs = (C.VkBool32)(x.DrawIndirectFirstInstance), cgoAllocsUnknown - allocsf97e405d.Borrow(cdrawIndirectFirstInstance_allocs) - - var cdepthClamp_allocs *cgoAllocMap - reff97e405d.depthClamp, cdepthClamp_allocs = (C.VkBool32)(x.DepthClamp), cgoAllocsUnknown - allocsf97e405d.Borrow(cdepthClamp_allocs) - - var cdepthBiasClamp_allocs *cgoAllocMap - reff97e405d.depthBiasClamp, cdepthBiasClamp_allocs = (C.VkBool32)(x.DepthBiasClamp), cgoAllocsUnknown - allocsf97e405d.Borrow(cdepthBiasClamp_allocs) - - var cfillModeNonSolid_allocs *cgoAllocMap - reff97e405d.fillModeNonSolid, cfillModeNonSolid_allocs = (C.VkBool32)(x.FillModeNonSolid), cgoAllocsUnknown - allocsf97e405d.Borrow(cfillModeNonSolid_allocs) - - var cdepthBounds_allocs *cgoAllocMap - reff97e405d.depthBounds, cdepthBounds_allocs = (C.VkBool32)(x.DepthBounds), cgoAllocsUnknown - allocsf97e405d.Borrow(cdepthBounds_allocs) - - var cwideLines_allocs *cgoAllocMap - reff97e405d.wideLines, cwideLines_allocs = (C.VkBool32)(x.WideLines), cgoAllocsUnknown - allocsf97e405d.Borrow(cwideLines_allocs) - - var clargePoints_allocs *cgoAllocMap - reff97e405d.largePoints, clargePoints_allocs = (C.VkBool32)(x.LargePoints), cgoAllocsUnknown - allocsf97e405d.Borrow(clargePoints_allocs) - - var calphaToOne_allocs *cgoAllocMap - reff97e405d.alphaToOne, calphaToOne_allocs = (C.VkBool32)(x.AlphaToOne), cgoAllocsUnknown - allocsf97e405d.Borrow(calphaToOne_allocs) - - var cmultiViewport_allocs *cgoAllocMap - reff97e405d.multiViewport, cmultiViewport_allocs = (C.VkBool32)(x.MultiViewport), cgoAllocsUnknown - allocsf97e405d.Borrow(cmultiViewport_allocs) - - var csamplerAnisotropy_allocs *cgoAllocMap - reff97e405d.samplerAnisotropy, csamplerAnisotropy_allocs = (C.VkBool32)(x.SamplerAnisotropy), cgoAllocsUnknown - allocsf97e405d.Borrow(csamplerAnisotropy_allocs) - - var ctextureCompressionETC2_allocs *cgoAllocMap - reff97e405d.textureCompressionETC2, ctextureCompressionETC2_allocs = (C.VkBool32)(x.TextureCompressionETC2), cgoAllocsUnknown - allocsf97e405d.Borrow(ctextureCompressionETC2_allocs) - - var ctextureCompressionASTC_LDR_allocs *cgoAllocMap - reff97e405d.textureCompressionASTC_LDR, ctextureCompressionASTC_LDR_allocs = (C.VkBool32)(x.TextureCompressionASTC_LDR), cgoAllocsUnknown - allocsf97e405d.Borrow(ctextureCompressionASTC_LDR_allocs) - - var ctextureCompressionBC_allocs *cgoAllocMap - reff97e405d.textureCompressionBC, ctextureCompressionBC_allocs = (C.VkBool32)(x.TextureCompressionBC), cgoAllocsUnknown - allocsf97e405d.Borrow(ctextureCompressionBC_allocs) - - var cocclusionQueryPrecise_allocs *cgoAllocMap - reff97e405d.occlusionQueryPrecise, cocclusionQueryPrecise_allocs = (C.VkBool32)(x.OcclusionQueryPrecise), cgoAllocsUnknown - allocsf97e405d.Borrow(cocclusionQueryPrecise_allocs) - - var cpipelineStatisticsQuery_allocs *cgoAllocMap - reff97e405d.pipelineStatisticsQuery, cpipelineStatisticsQuery_allocs = (C.VkBool32)(x.PipelineStatisticsQuery), cgoAllocsUnknown - allocsf97e405d.Borrow(cpipelineStatisticsQuery_allocs) - - var cvertexPipelineStoresAndAtomics_allocs *cgoAllocMap - reff97e405d.vertexPipelineStoresAndAtomics, cvertexPipelineStoresAndAtomics_allocs = (C.VkBool32)(x.VertexPipelineStoresAndAtomics), cgoAllocsUnknown - allocsf97e405d.Borrow(cvertexPipelineStoresAndAtomics_allocs) - - var cfragmentStoresAndAtomics_allocs *cgoAllocMap - reff97e405d.fragmentStoresAndAtomics, cfragmentStoresAndAtomics_allocs = (C.VkBool32)(x.FragmentStoresAndAtomics), cgoAllocsUnknown - allocsf97e405d.Borrow(cfragmentStoresAndAtomics_allocs) - - var cshaderTessellationAndGeometryPointSize_allocs *cgoAllocMap - reff97e405d.shaderTessellationAndGeometryPointSize, cshaderTessellationAndGeometryPointSize_allocs = (C.VkBool32)(x.ShaderTessellationAndGeometryPointSize), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderTessellationAndGeometryPointSize_allocs) - - var cshaderImageGatherExtended_allocs *cgoAllocMap - reff97e405d.shaderImageGatherExtended, cshaderImageGatherExtended_allocs = (C.VkBool32)(x.ShaderImageGatherExtended), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderImageGatherExtended_allocs) - - var cshaderStorageImageExtendedFormats_allocs *cgoAllocMap - reff97e405d.shaderStorageImageExtendedFormats, cshaderStorageImageExtendedFormats_allocs = (C.VkBool32)(x.ShaderStorageImageExtendedFormats), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderStorageImageExtendedFormats_allocs) - - var cshaderStorageImageMultisample_allocs *cgoAllocMap - reff97e405d.shaderStorageImageMultisample, cshaderStorageImageMultisample_allocs = (C.VkBool32)(x.ShaderStorageImageMultisample), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderStorageImageMultisample_allocs) - - var cshaderStorageImageReadWithoutFormat_allocs *cgoAllocMap - reff97e405d.shaderStorageImageReadWithoutFormat, cshaderStorageImageReadWithoutFormat_allocs = (C.VkBool32)(x.ShaderStorageImageReadWithoutFormat), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderStorageImageReadWithoutFormat_allocs) - - var cshaderStorageImageWriteWithoutFormat_allocs *cgoAllocMap - reff97e405d.shaderStorageImageWriteWithoutFormat, cshaderStorageImageWriteWithoutFormat_allocs = (C.VkBool32)(x.ShaderStorageImageWriteWithoutFormat), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderStorageImageWriteWithoutFormat_allocs) - - var cshaderUniformBufferArrayDynamicIndexing_allocs *cgoAllocMap - reff97e405d.shaderUniformBufferArrayDynamicIndexing, cshaderUniformBufferArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderUniformBufferArrayDynamicIndexing), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderUniformBufferArrayDynamicIndexing_allocs) - - var cshaderSampledImageArrayDynamicIndexing_allocs *cgoAllocMap - reff97e405d.shaderSampledImageArrayDynamicIndexing, cshaderSampledImageArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderSampledImageArrayDynamicIndexing), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderSampledImageArrayDynamicIndexing_allocs) - - var cshaderStorageBufferArrayDynamicIndexing_allocs *cgoAllocMap - reff97e405d.shaderStorageBufferArrayDynamicIndexing, cshaderStorageBufferArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderStorageBufferArrayDynamicIndexing), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderStorageBufferArrayDynamicIndexing_allocs) - - var cshaderStorageImageArrayDynamicIndexing_allocs *cgoAllocMap - reff97e405d.shaderStorageImageArrayDynamicIndexing, cshaderStorageImageArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderStorageImageArrayDynamicIndexing), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderStorageImageArrayDynamicIndexing_allocs) - - var cshaderClipDistance_allocs *cgoAllocMap - reff97e405d.shaderClipDistance, cshaderClipDistance_allocs = (C.VkBool32)(x.ShaderClipDistance), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderClipDistance_allocs) - - var cshaderCullDistance_allocs *cgoAllocMap - reff97e405d.shaderCullDistance, cshaderCullDistance_allocs = (C.VkBool32)(x.ShaderCullDistance), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderCullDistance_allocs) - - var cshaderFloat64_allocs *cgoAllocMap - reff97e405d.shaderFloat64, cshaderFloat64_allocs = (C.VkBool32)(x.ShaderFloat64), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderFloat64_allocs) - - var cshaderInt64_allocs *cgoAllocMap - reff97e405d.shaderInt64, cshaderInt64_allocs = (C.VkBool32)(x.ShaderInt64), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderInt64_allocs) - - var cshaderInt16_allocs *cgoAllocMap - reff97e405d.shaderInt16, cshaderInt16_allocs = (C.VkBool32)(x.ShaderInt16), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderInt16_allocs) - - var cshaderResourceResidency_allocs *cgoAllocMap - reff97e405d.shaderResourceResidency, cshaderResourceResidency_allocs = (C.VkBool32)(x.ShaderResourceResidency), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderResourceResidency_allocs) - - var cshaderResourceMinLod_allocs *cgoAllocMap - reff97e405d.shaderResourceMinLod, cshaderResourceMinLod_allocs = (C.VkBool32)(x.ShaderResourceMinLod), cgoAllocsUnknown - allocsf97e405d.Borrow(cshaderResourceMinLod_allocs) - - var csparseBinding_allocs *cgoAllocMap - reff97e405d.sparseBinding, csparseBinding_allocs = (C.VkBool32)(x.SparseBinding), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseBinding_allocs) - - var csparseResidencyBuffer_allocs *cgoAllocMap - reff97e405d.sparseResidencyBuffer, csparseResidencyBuffer_allocs = (C.VkBool32)(x.SparseResidencyBuffer), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidencyBuffer_allocs) - - var csparseResidencyImage2D_allocs *cgoAllocMap - reff97e405d.sparseResidencyImage2D, csparseResidencyImage2D_allocs = (C.VkBool32)(x.SparseResidencyImage2D), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidencyImage2D_allocs) - - var csparseResidencyImage3D_allocs *cgoAllocMap - reff97e405d.sparseResidencyImage3D, csparseResidencyImage3D_allocs = (C.VkBool32)(x.SparseResidencyImage3D), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidencyImage3D_allocs) - - var csparseResidency2Samples_allocs *cgoAllocMap - reff97e405d.sparseResidency2Samples, csparseResidency2Samples_allocs = (C.VkBool32)(x.SparseResidency2Samples), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidency2Samples_allocs) - - var csparseResidency4Samples_allocs *cgoAllocMap - reff97e405d.sparseResidency4Samples, csparseResidency4Samples_allocs = (C.VkBool32)(x.SparseResidency4Samples), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidency4Samples_allocs) - - var csparseResidency8Samples_allocs *cgoAllocMap - reff97e405d.sparseResidency8Samples, csparseResidency8Samples_allocs = (C.VkBool32)(x.SparseResidency8Samples), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidency8Samples_allocs) - - var csparseResidency16Samples_allocs *cgoAllocMap - reff97e405d.sparseResidency16Samples, csparseResidency16Samples_allocs = (C.VkBool32)(x.SparseResidency16Samples), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidency16Samples_allocs) - - var csparseResidencyAliased_allocs *cgoAllocMap - reff97e405d.sparseResidencyAliased, csparseResidencyAliased_allocs = (C.VkBool32)(x.SparseResidencyAliased), cgoAllocsUnknown - allocsf97e405d.Borrow(csparseResidencyAliased_allocs) - - var cvariableMultisampleRate_allocs *cgoAllocMap - reff97e405d.variableMultisampleRate, cvariableMultisampleRate_allocs = (C.VkBool32)(x.VariableMultisampleRate), cgoAllocsUnknown - allocsf97e405d.Borrow(cvariableMultisampleRate_allocs) - - var cinheritedQueries_allocs *cgoAllocMap - reff97e405d.inheritedQueries, cinheritedQueries_allocs = (C.VkBool32)(x.InheritedQueries), cgoAllocsUnknown - allocsf97e405d.Borrow(cinheritedQueries_allocs) - - x.reff97e405d = reff97e405d - x.allocsf97e405d = allocsf97e405d - return reff97e405d, allocsf97e405d + x.ref89e4256f = ref89e4256f + x.allocs89e4256f = allocs89e4256f + return ref89e4256f, allocs89e4256f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceFeatures) PassValue() (C.VkPhysicalDeviceFeatures, *cgoAllocMap) { - if x.reff97e405d != nil { - return *x.reff97e405d, nil +func (x Rect2D) PassValue() (C.VkRect2D, *cgoAllocMap) { + if x.ref89e4256f != nil { + return *x.ref89e4256f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -725,142 +503,143 @@ func (x PhysicalDeviceFeatures) PassValue() (C.VkPhysicalDeviceFeatures, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceFeatures) Deref() { - if x.reff97e405d == nil { +func (x *Rect2D) Deref() { + if x.ref89e4256f == nil { return } - x.RobustBufferAccess = (Bool32)(x.reff97e405d.robustBufferAccess) - x.FullDrawIndexUint32 = (Bool32)(x.reff97e405d.fullDrawIndexUint32) - x.ImageCubeArray = (Bool32)(x.reff97e405d.imageCubeArray) - x.IndependentBlend = (Bool32)(x.reff97e405d.independentBlend) - x.GeometryShader = (Bool32)(x.reff97e405d.geometryShader) - x.TessellationShader = (Bool32)(x.reff97e405d.tessellationShader) - x.SampleRateShading = (Bool32)(x.reff97e405d.sampleRateShading) - x.DualSrcBlend = (Bool32)(x.reff97e405d.dualSrcBlend) - x.LogicOp = (Bool32)(x.reff97e405d.logicOp) - x.MultiDrawIndirect = (Bool32)(x.reff97e405d.multiDrawIndirect) - x.DrawIndirectFirstInstance = (Bool32)(x.reff97e405d.drawIndirectFirstInstance) - x.DepthClamp = (Bool32)(x.reff97e405d.depthClamp) - x.DepthBiasClamp = (Bool32)(x.reff97e405d.depthBiasClamp) - x.FillModeNonSolid = (Bool32)(x.reff97e405d.fillModeNonSolid) - x.DepthBounds = (Bool32)(x.reff97e405d.depthBounds) - x.WideLines = (Bool32)(x.reff97e405d.wideLines) - x.LargePoints = (Bool32)(x.reff97e405d.largePoints) - x.AlphaToOne = (Bool32)(x.reff97e405d.alphaToOne) - x.MultiViewport = (Bool32)(x.reff97e405d.multiViewport) - x.SamplerAnisotropy = (Bool32)(x.reff97e405d.samplerAnisotropy) - x.TextureCompressionETC2 = (Bool32)(x.reff97e405d.textureCompressionETC2) - x.TextureCompressionASTC_LDR = (Bool32)(x.reff97e405d.textureCompressionASTC_LDR) - x.TextureCompressionBC = (Bool32)(x.reff97e405d.textureCompressionBC) - x.OcclusionQueryPrecise = (Bool32)(x.reff97e405d.occlusionQueryPrecise) - x.PipelineStatisticsQuery = (Bool32)(x.reff97e405d.pipelineStatisticsQuery) - x.VertexPipelineStoresAndAtomics = (Bool32)(x.reff97e405d.vertexPipelineStoresAndAtomics) - x.FragmentStoresAndAtomics = (Bool32)(x.reff97e405d.fragmentStoresAndAtomics) - x.ShaderTessellationAndGeometryPointSize = (Bool32)(x.reff97e405d.shaderTessellationAndGeometryPointSize) - x.ShaderImageGatherExtended = (Bool32)(x.reff97e405d.shaderImageGatherExtended) - x.ShaderStorageImageExtendedFormats = (Bool32)(x.reff97e405d.shaderStorageImageExtendedFormats) - x.ShaderStorageImageMultisample = (Bool32)(x.reff97e405d.shaderStorageImageMultisample) - x.ShaderStorageImageReadWithoutFormat = (Bool32)(x.reff97e405d.shaderStorageImageReadWithoutFormat) - x.ShaderStorageImageWriteWithoutFormat = (Bool32)(x.reff97e405d.shaderStorageImageWriteWithoutFormat) - x.ShaderUniformBufferArrayDynamicIndexing = (Bool32)(x.reff97e405d.shaderUniformBufferArrayDynamicIndexing) - x.ShaderSampledImageArrayDynamicIndexing = (Bool32)(x.reff97e405d.shaderSampledImageArrayDynamicIndexing) - x.ShaderStorageBufferArrayDynamicIndexing = (Bool32)(x.reff97e405d.shaderStorageBufferArrayDynamicIndexing) - x.ShaderStorageImageArrayDynamicIndexing = (Bool32)(x.reff97e405d.shaderStorageImageArrayDynamicIndexing) - x.ShaderClipDistance = (Bool32)(x.reff97e405d.shaderClipDistance) - x.ShaderCullDistance = (Bool32)(x.reff97e405d.shaderCullDistance) - x.ShaderFloat64 = (Bool32)(x.reff97e405d.shaderFloat64) - x.ShaderInt64 = (Bool32)(x.reff97e405d.shaderInt64) - x.ShaderInt16 = (Bool32)(x.reff97e405d.shaderInt16) - x.ShaderResourceResidency = (Bool32)(x.reff97e405d.shaderResourceResidency) - x.ShaderResourceMinLod = (Bool32)(x.reff97e405d.shaderResourceMinLod) - x.SparseBinding = (Bool32)(x.reff97e405d.sparseBinding) - x.SparseResidencyBuffer = (Bool32)(x.reff97e405d.sparseResidencyBuffer) - x.SparseResidencyImage2D = (Bool32)(x.reff97e405d.sparseResidencyImage2D) - x.SparseResidencyImage3D = (Bool32)(x.reff97e405d.sparseResidencyImage3D) - x.SparseResidency2Samples = (Bool32)(x.reff97e405d.sparseResidency2Samples) - x.SparseResidency4Samples = (Bool32)(x.reff97e405d.sparseResidency4Samples) - x.SparseResidency8Samples = (Bool32)(x.reff97e405d.sparseResidency8Samples) - x.SparseResidency16Samples = (Bool32)(x.reff97e405d.sparseResidency16Samples) - x.SparseResidencyAliased = (Bool32)(x.reff97e405d.sparseResidencyAliased) - x.VariableMultisampleRate = (Bool32)(x.reff97e405d.variableMultisampleRate) - x.InheritedQueries = (Bool32)(x.reff97e405d.inheritedQueries) + x.Offset = *NewOffset2DRef(unsafe.Pointer(&x.ref89e4256f.offset)) + x.Extent = *NewExtent2DRef(unsafe.Pointer(&x.ref89e4256f.extent)) } -// allocFormatPropertiesMemory allocates memory for type C.VkFormatProperties in C. +// allocBaseInStructureMemory allocates memory for type C.VkBaseInStructure in C. // The caller is responsible for freeing the this memory via C.free. -func allocFormatPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFormatPropertiesValue)) +func allocBaseInStructureMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBaseInStructureValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfFormatPropertiesValue = unsafe.Sizeof([1]C.VkFormatProperties{}) +const sizeOfBaseInStructureValue = unsafe.Sizeof([1]C.VkBaseInStructure{}) + +type sliceHeader struct { + Data unsafe.Pointer + Len int + Cap int +} + +// allocStruct_VkBaseInStructureMemory allocates memory for type C.struct_VkBaseInStructure in C. +// The caller is responsible for freeing the this memory via C.free. +func allocStruct_VkBaseInStructureMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfStruct_VkBaseInStructureValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfStruct_VkBaseInStructureValue = unsafe.Sizeof([1]C.struct_VkBaseInStructure{}) + +const sizeOfPtr = unsafe.Sizeof(&struct{}{}) + +// unpackSBaseInStructure transforms a sliced Go data structure into plain C format. +func unpackSBaseInStructure(x []BaseInStructure) (unpacked *C.struct_VkBaseInStructure, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.struct_VkBaseInStructure) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocStruct_VkBaseInStructureMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.struct_VkBaseInStructure)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.struct_VkBaseInStructure)(h.Data) + return +} + +// packSBaseInStructure reads sliced Go data structure out from plain C format. +func packSBaseInStructure(v []BaseInStructure, ptr0 *C.struct_VkBaseInStructure) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfStruct_VkBaseInStructureValue]C.struct_VkBaseInStructure)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewBaseInStructureRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FormatProperties) Ref() *C.VkFormatProperties { +func (x *BaseInStructure) Ref() *C.VkBaseInStructure { if x == nil { return nil } - return x.refc4b9937b + return x.refeae401a9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *FormatProperties) Free() { - if x != nil && x.allocsc4b9937b != nil { - x.allocsc4b9937b.(*cgoAllocMap).Free() - x.refc4b9937b = nil +func (x *BaseInStructure) Free() { + if x != nil && x.allocseae401a9 != nil { + x.allocseae401a9.(*cgoAllocMap).Free() + x.refeae401a9 = nil } } -// NewFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBaseInStructureRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewFormatPropertiesRef(ref unsafe.Pointer) *FormatProperties { +func NewBaseInStructureRef(ref unsafe.Pointer) *BaseInStructure { if ref == nil { return nil } - obj := new(FormatProperties) - obj.refc4b9937b = (*C.VkFormatProperties)(unsafe.Pointer(ref)) + obj := new(BaseInStructure) + obj.refeae401a9 = (*C.VkBaseInStructure)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *FormatProperties) PassRef() (*C.VkFormatProperties, *cgoAllocMap) { +func (x *BaseInStructure) PassRef() (*C.VkBaseInStructure, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc4b9937b != nil { - return x.refc4b9937b, nil + } else if x.refeae401a9 != nil { + return x.refeae401a9, nil } - memc4b9937b := allocFormatPropertiesMemory(1) - refc4b9937b := (*C.VkFormatProperties)(memc4b9937b) - allocsc4b9937b := new(cgoAllocMap) - allocsc4b9937b.Add(memc4b9937b) - - var clinearTilingFeatures_allocs *cgoAllocMap - refc4b9937b.linearTilingFeatures, clinearTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.LinearTilingFeatures), cgoAllocsUnknown - allocsc4b9937b.Borrow(clinearTilingFeatures_allocs) + memeae401a9 := allocBaseInStructureMemory(1) + refeae401a9 := (*C.VkBaseInStructure)(memeae401a9) + allocseae401a9 := new(cgoAllocMap) + allocseae401a9.Add(memeae401a9) - var coptimalTilingFeatures_allocs *cgoAllocMap - refc4b9937b.optimalTilingFeatures, coptimalTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.OptimalTilingFeatures), cgoAllocsUnknown - allocsc4b9937b.Borrow(coptimalTilingFeatures_allocs) + var csType_allocs *cgoAllocMap + refeae401a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseae401a9.Borrow(csType_allocs) - var cbufferFeatures_allocs *cgoAllocMap - refc4b9937b.bufferFeatures, cbufferFeatures_allocs = (C.VkFormatFeatureFlags)(x.BufferFeatures), cgoAllocsUnknown - allocsc4b9937b.Borrow(cbufferFeatures_allocs) + var cpNext_allocs *cgoAllocMap + refeae401a9.pNext, cpNext_allocs = unpackSBaseInStructure(x.PNext) + allocseae401a9.Borrow(cpNext_allocs) - x.refc4b9937b = refc4b9937b - x.allocsc4b9937b = allocsc4b9937b - return refc4b9937b, allocsc4b9937b + x.refeae401a9 = refeae401a9 + x.allocseae401a9 = allocseae401a9 + return refeae401a9, allocseae401a9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x FormatProperties) PassValue() (C.VkFormatProperties, *cgoAllocMap) { - if x.refc4b9937b != nil { - return *x.refc4b9937b, nil +func (x BaseInStructure) PassValue() (C.VkBaseInStructure, *cgoAllocMap) { + if x.refeae401a9 != nil { + return *x.refeae401a9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -868,90 +647,135 @@ func (x FormatProperties) PassValue() (C.VkFormatProperties, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *FormatProperties) Deref() { - if x.refc4b9937b == nil { +func (x *BaseInStructure) Deref() { + if x.refeae401a9 == nil { return } - x.LinearTilingFeatures = (FormatFeatureFlags)(x.refc4b9937b.linearTilingFeatures) - x.OptimalTilingFeatures = (FormatFeatureFlags)(x.refc4b9937b.optimalTilingFeatures) - x.BufferFeatures = (FormatFeatureFlags)(x.refc4b9937b.bufferFeatures) + x.SType = (StructureType)(x.refeae401a9.sType) + packSBaseInStructure(x.PNext, x.refeae401a9.pNext) } -// allocExtent3DMemory allocates memory for type C.VkExtent3D in C. +// allocBaseOutStructureMemory allocates memory for type C.VkBaseOutStructure in C. // The caller is responsible for freeing the this memory via C.free. -func allocExtent3DMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExtent3DValue)) +func allocBaseOutStructureMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBaseOutStructureValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExtent3DValue = unsafe.Sizeof([1]C.VkExtent3D{}) +const sizeOfBaseOutStructureValue = unsafe.Sizeof([1]C.VkBaseOutStructure{}) + +// allocStruct_VkBaseOutStructureMemory allocates memory for type C.struct_VkBaseOutStructure in C. +// The caller is responsible for freeing the this memory via C.free. +func allocStruct_VkBaseOutStructureMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfStruct_VkBaseOutStructureValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfStruct_VkBaseOutStructureValue = unsafe.Sizeof([1]C.struct_VkBaseOutStructure{}) + +// unpackSBaseOutStructure transforms a sliced Go data structure into plain C format. +func unpackSBaseOutStructure(x []BaseOutStructure) (unpacked *C.struct_VkBaseOutStructure, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.struct_VkBaseOutStructure) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocStruct_VkBaseOutStructureMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.struct_VkBaseOutStructure)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.struct_VkBaseOutStructure)(h.Data) + return +} + +// packSBaseOutStructure reads sliced Go data structure out from plain C format. +func packSBaseOutStructure(v []BaseOutStructure, ptr0 *C.struct_VkBaseOutStructure) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfStruct_VkBaseOutStructureValue]C.struct_VkBaseOutStructure)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewBaseOutStructureRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Extent3D) Ref() *C.VkExtent3D { +func (x *BaseOutStructure) Ref() *C.VkBaseOutStructure { if x == nil { return nil } - return x.reffbf6c42a + return x.refd536fcd0 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *Extent3D) Free() { - if x != nil && x.allocsfbf6c42a != nil { - x.allocsfbf6c42a.(*cgoAllocMap).Free() - x.reffbf6c42a = nil +func (x *BaseOutStructure) Free() { + if x != nil && x.allocsd536fcd0 != nil { + x.allocsd536fcd0.(*cgoAllocMap).Free() + x.refd536fcd0 = nil } } -// NewExtent3DRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBaseOutStructureRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExtent3DRef(ref unsafe.Pointer) *Extent3D { +func NewBaseOutStructureRef(ref unsafe.Pointer) *BaseOutStructure { if ref == nil { return nil } - obj := new(Extent3D) - obj.reffbf6c42a = (*C.VkExtent3D)(unsafe.Pointer(ref)) + obj := new(BaseOutStructure) + obj.refd536fcd0 = (*C.VkBaseOutStructure)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *Extent3D) PassRef() (*C.VkExtent3D, *cgoAllocMap) { +func (x *BaseOutStructure) PassRef() (*C.VkBaseOutStructure, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffbf6c42a != nil { - return x.reffbf6c42a, nil + } else if x.refd536fcd0 != nil { + return x.refd536fcd0, nil } - memfbf6c42a := allocExtent3DMemory(1) - reffbf6c42a := (*C.VkExtent3D)(memfbf6c42a) - allocsfbf6c42a := new(cgoAllocMap) - allocsfbf6c42a.Add(memfbf6c42a) + memd536fcd0 := allocBaseOutStructureMemory(1) + refd536fcd0 := (*C.VkBaseOutStructure)(memd536fcd0) + allocsd536fcd0 := new(cgoAllocMap) + allocsd536fcd0.Add(memd536fcd0) - var cwidth_allocs *cgoAllocMap - reffbf6c42a.width, cwidth_allocs = (C.uint32_t)(x.Width), cgoAllocsUnknown - allocsfbf6c42a.Borrow(cwidth_allocs) - - var cheight_allocs *cgoAllocMap - reffbf6c42a.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown - allocsfbf6c42a.Borrow(cheight_allocs) + var csType_allocs *cgoAllocMap + refd536fcd0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd536fcd0.Borrow(csType_allocs) - var cdepth_allocs *cgoAllocMap - reffbf6c42a.depth, cdepth_allocs = (C.uint32_t)(x.Depth), cgoAllocsUnknown - allocsfbf6c42a.Borrow(cdepth_allocs) + var cpNext_allocs *cgoAllocMap + refd536fcd0.pNext, cpNext_allocs = unpackSBaseOutStructure(x.PNext) + allocsd536fcd0.Borrow(cpNext_allocs) - x.reffbf6c42a = reffbf6c42a - x.allocsfbf6c42a = allocsfbf6c42a - return reffbf6c42a, allocsfbf6c42a + x.refd536fcd0 = refd536fcd0 + x.allocsd536fcd0 = allocsd536fcd0 + return refd536fcd0, allocsd536fcd0 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x Extent3D) PassValue() (C.VkExtent3D, *cgoAllocMap) { - if x.reffbf6c42a != nil { - return *x.reffbf6c42a, nil +func (x BaseOutStructure) PassValue() (C.VkBaseOutStructure, *cgoAllocMap) { + if x.refd536fcd0 != nil { + return *x.refd536fcd0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -959,98 +783,113 @@ func (x Extent3D) PassValue() (C.VkExtent3D, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *Extent3D) Deref() { - if x.reffbf6c42a == nil { +func (x *BaseOutStructure) Deref() { + if x.refd536fcd0 == nil { return } - x.Width = (uint32)(x.reffbf6c42a.width) - x.Height = (uint32)(x.reffbf6c42a.height) - x.Depth = (uint32)(x.reffbf6c42a.depth) + x.SType = (StructureType)(x.refd536fcd0.sType) + packSBaseOutStructure(x.PNext, x.refd536fcd0.pNext) } -// allocImageFormatPropertiesMemory allocates memory for type C.VkImageFormatProperties in C. +// allocBufferMemoryBarrierMemory allocates memory for type C.VkBufferMemoryBarrier in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageFormatPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageFormatPropertiesValue)) +func allocBufferMemoryBarrierMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferMemoryBarrierValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkImageFormatProperties{}) +const sizeOfBufferMemoryBarrierValue = unsafe.Sizeof([1]C.VkBufferMemoryBarrier{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageFormatProperties) Ref() *C.VkImageFormatProperties { +func (x *BufferMemoryBarrier) Ref() *C.VkBufferMemoryBarrier { if x == nil { return nil } - return x.ref4cfb2ea2 + return x.refeaf4700b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageFormatProperties) Free() { - if x != nil && x.allocs4cfb2ea2 != nil { - x.allocs4cfb2ea2.(*cgoAllocMap).Free() - x.ref4cfb2ea2 = nil +func (x *BufferMemoryBarrier) Free() { + if x != nil && x.allocseaf4700b != nil { + x.allocseaf4700b.(*cgoAllocMap).Free() + x.refeaf4700b = nil } } -// NewImageFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBufferMemoryBarrierRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageFormatPropertiesRef(ref unsafe.Pointer) *ImageFormatProperties { +func NewBufferMemoryBarrierRef(ref unsafe.Pointer) *BufferMemoryBarrier { if ref == nil { return nil } - obj := new(ImageFormatProperties) - obj.ref4cfb2ea2 = (*C.VkImageFormatProperties)(unsafe.Pointer(ref)) + obj := new(BufferMemoryBarrier) + obj.refeaf4700b = (*C.VkBufferMemoryBarrier)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageFormatProperties) PassRef() (*C.VkImageFormatProperties, *cgoAllocMap) { +func (x *BufferMemoryBarrier) PassRef() (*C.VkBufferMemoryBarrier, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4cfb2ea2 != nil { - return x.ref4cfb2ea2, nil + } else if x.refeaf4700b != nil { + return x.refeaf4700b, nil } - mem4cfb2ea2 := allocImageFormatPropertiesMemory(1) - ref4cfb2ea2 := (*C.VkImageFormatProperties)(mem4cfb2ea2) - allocs4cfb2ea2 := new(cgoAllocMap) - allocs4cfb2ea2.Add(mem4cfb2ea2) + memeaf4700b := allocBufferMemoryBarrierMemory(1) + refeaf4700b := (*C.VkBufferMemoryBarrier)(memeaf4700b) + allocseaf4700b := new(cgoAllocMap) + allocseaf4700b.Add(memeaf4700b) - var cmaxExtent_allocs *cgoAllocMap - ref4cfb2ea2.maxExtent, cmaxExtent_allocs = x.MaxExtent.PassValue() - allocs4cfb2ea2.Borrow(cmaxExtent_allocs) + var csType_allocs *cgoAllocMap + refeaf4700b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseaf4700b.Borrow(csType_allocs) - var cmaxMipLevels_allocs *cgoAllocMap - ref4cfb2ea2.maxMipLevels, cmaxMipLevels_allocs = (C.uint32_t)(x.MaxMipLevels), cgoAllocsUnknown - allocs4cfb2ea2.Borrow(cmaxMipLevels_allocs) + var cpNext_allocs *cgoAllocMap + refeaf4700b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseaf4700b.Borrow(cpNext_allocs) - var cmaxArrayLayers_allocs *cgoAllocMap - ref4cfb2ea2.maxArrayLayers, cmaxArrayLayers_allocs = (C.uint32_t)(x.MaxArrayLayers), cgoAllocsUnknown - allocs4cfb2ea2.Borrow(cmaxArrayLayers_allocs) + var csrcAccessMask_allocs *cgoAllocMap + refeaf4700b.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown + allocseaf4700b.Borrow(csrcAccessMask_allocs) - var csampleCounts_allocs *cgoAllocMap - ref4cfb2ea2.sampleCounts, csampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleCounts), cgoAllocsUnknown - allocs4cfb2ea2.Borrow(csampleCounts_allocs) + var cdstAccessMask_allocs *cgoAllocMap + refeaf4700b.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown + allocseaf4700b.Borrow(cdstAccessMask_allocs) - var cmaxResourceSize_allocs *cgoAllocMap - ref4cfb2ea2.maxResourceSize, cmaxResourceSize_allocs = (C.VkDeviceSize)(x.MaxResourceSize), cgoAllocsUnknown - allocs4cfb2ea2.Borrow(cmaxResourceSize_allocs) + var csrcQueueFamilyIndex_allocs *cgoAllocMap + refeaf4700b.srcQueueFamilyIndex, csrcQueueFamilyIndex_allocs = (C.uint32_t)(x.SrcQueueFamilyIndex), cgoAllocsUnknown + allocseaf4700b.Borrow(csrcQueueFamilyIndex_allocs) - x.ref4cfb2ea2 = ref4cfb2ea2 - x.allocs4cfb2ea2 = allocs4cfb2ea2 - return ref4cfb2ea2, allocs4cfb2ea2 + var cdstQueueFamilyIndex_allocs *cgoAllocMap + refeaf4700b.dstQueueFamilyIndex, cdstQueueFamilyIndex_allocs = (C.uint32_t)(x.DstQueueFamilyIndex), cgoAllocsUnknown + allocseaf4700b.Borrow(cdstQueueFamilyIndex_allocs) + + var cbuffer_allocs *cgoAllocMap + refeaf4700b.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocseaf4700b.Borrow(cbuffer_allocs) + + var coffset_allocs *cgoAllocMap + refeaf4700b.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocseaf4700b.Borrow(coffset_allocs) + + var csize_allocs *cgoAllocMap + refeaf4700b.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocseaf4700b.Borrow(csize_allocs) + + x.refeaf4700b = refeaf4700b + x.allocseaf4700b = allocseaf4700b + return refeaf4700b, allocseaf4700b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageFormatProperties) PassValue() (C.VkImageFormatProperties, *cgoAllocMap) { - if x.ref4cfb2ea2 != nil { - return *x.ref4cfb2ea2, nil +func (x BufferMemoryBarrier) PassValue() (C.VkBufferMemoryBarrier, *cgoAllocMap) { + if x.refeaf4700b != nil { + return *x.refeaf4700b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -1058,504 +897,27765 @@ func (x ImageFormatProperties) PassValue() (C.VkImageFormatProperties, *cgoAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageFormatProperties) Deref() { - if x.ref4cfb2ea2 == nil { +func (x *BufferMemoryBarrier) Deref() { + if x.refeaf4700b == nil { return } - x.MaxExtent = *NewExtent3DRef(unsafe.Pointer(&x.ref4cfb2ea2.maxExtent)) - x.MaxMipLevels = (uint32)(x.ref4cfb2ea2.maxMipLevels) - x.MaxArrayLayers = (uint32)(x.ref4cfb2ea2.maxArrayLayers) - x.SampleCounts = (SampleCountFlags)(x.ref4cfb2ea2.sampleCounts) - x.MaxResourceSize = (DeviceSize)(x.ref4cfb2ea2.maxResourceSize) + x.SType = (StructureType)(x.refeaf4700b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeaf4700b.pNext)) + x.SrcAccessMask = (AccessFlags)(x.refeaf4700b.srcAccessMask) + x.DstAccessMask = (AccessFlags)(x.refeaf4700b.dstAccessMask) + x.SrcQueueFamilyIndex = (uint32)(x.refeaf4700b.srcQueueFamilyIndex) + x.DstQueueFamilyIndex = (uint32)(x.refeaf4700b.dstQueueFamilyIndex) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refeaf4700b.buffer)) + x.Offset = (DeviceSize)(x.refeaf4700b.offset) + x.Size = (DeviceSize)(x.refeaf4700b.size) } -// allocPhysicalDeviceLimitsMemory allocates memory for type C.VkPhysicalDeviceLimits in C. +// allocDispatchIndirectCommandMemory allocates memory for type C.VkDispatchIndirectCommand in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceLimitsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLimitsValue)) +func allocDispatchIndirectCommandMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDispatchIndirectCommandValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceLimitsValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLimits{}) +const sizeOfDispatchIndirectCommandValue = unsafe.Sizeof([1]C.VkDispatchIndirectCommand{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceLimits) Ref() *C.VkPhysicalDeviceLimits { +func (x *DispatchIndirectCommand) Ref() *C.VkDispatchIndirectCommand { if x == nil { return nil } - return x.ref7926795a + return x.refd298ba27 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceLimits) Free() { - if x != nil && x.allocs7926795a != nil { - x.allocs7926795a.(*cgoAllocMap).Free() - x.ref7926795a = nil +func (x *DispatchIndirectCommand) Free() { + if x != nil && x.allocsd298ba27 != nil { + x.allocsd298ba27.(*cgoAllocMap).Free() + x.refd298ba27 = nil } } -// NewPhysicalDeviceLimitsRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDispatchIndirectCommandRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceLimitsRef(ref unsafe.Pointer) *PhysicalDeviceLimits { +func NewDispatchIndirectCommandRef(ref unsafe.Pointer) *DispatchIndirectCommand { if ref == nil { return nil } - obj := new(PhysicalDeviceLimits) - obj.ref7926795a = (*C.VkPhysicalDeviceLimits)(unsafe.Pointer(ref)) + obj := new(DispatchIndirectCommand) + obj.refd298ba27 = (*C.VkDispatchIndirectCommand)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceLimits) PassRef() (*C.VkPhysicalDeviceLimits, *cgoAllocMap) { +func (x *DispatchIndirectCommand) PassRef() (*C.VkDispatchIndirectCommand, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7926795a != nil { - return x.ref7926795a, nil + } else if x.refd298ba27 != nil { + return x.refd298ba27, nil } - mem7926795a := allocPhysicalDeviceLimitsMemory(1) - ref7926795a := (*C.VkPhysicalDeviceLimits)(mem7926795a) - allocs7926795a := new(cgoAllocMap) - allocs7926795a.Add(mem7926795a) - - var cmaxImageDimension1D_allocs *cgoAllocMap - ref7926795a.maxImageDimension1D, cmaxImageDimension1D_allocs = (C.uint32_t)(x.MaxImageDimension1D), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxImageDimension1D_allocs) - - var cmaxImageDimension2D_allocs *cgoAllocMap - ref7926795a.maxImageDimension2D, cmaxImageDimension2D_allocs = (C.uint32_t)(x.MaxImageDimension2D), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxImageDimension2D_allocs) + memd298ba27 := allocDispatchIndirectCommandMemory(1) + refd298ba27 := (*C.VkDispatchIndirectCommand)(memd298ba27) + allocsd298ba27 := new(cgoAllocMap) + allocsd298ba27.Add(memd298ba27) - var cmaxImageDimension3D_allocs *cgoAllocMap - ref7926795a.maxImageDimension3D, cmaxImageDimension3D_allocs = (C.uint32_t)(x.MaxImageDimension3D), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxImageDimension3D_allocs) + var cx_allocs *cgoAllocMap + refd298ba27.x, cx_allocs = (C.uint32_t)(x.X), cgoAllocsUnknown + allocsd298ba27.Borrow(cx_allocs) - var cmaxImageDimensionCube_allocs *cgoAllocMap - ref7926795a.maxImageDimensionCube, cmaxImageDimensionCube_allocs = (C.uint32_t)(x.MaxImageDimensionCube), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxImageDimensionCube_allocs) + var cy_allocs *cgoAllocMap + refd298ba27.y, cy_allocs = (C.uint32_t)(x.Y), cgoAllocsUnknown + allocsd298ba27.Borrow(cy_allocs) - var cmaxImageArrayLayers_allocs *cgoAllocMap - ref7926795a.maxImageArrayLayers, cmaxImageArrayLayers_allocs = (C.uint32_t)(x.MaxImageArrayLayers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxImageArrayLayers_allocs) + var cz_allocs *cgoAllocMap + refd298ba27.z, cz_allocs = (C.uint32_t)(x.Z), cgoAllocsUnknown + allocsd298ba27.Borrow(cz_allocs) - var cmaxTexelBufferElements_allocs *cgoAllocMap - ref7926795a.maxTexelBufferElements, cmaxTexelBufferElements_allocs = (C.uint32_t)(x.MaxTexelBufferElements), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTexelBufferElements_allocs) + x.refd298ba27 = refd298ba27 + x.allocsd298ba27 = allocsd298ba27 + return refd298ba27, allocsd298ba27 - var cmaxUniformBufferRange_allocs *cgoAllocMap - ref7926795a.maxUniformBufferRange, cmaxUniformBufferRange_allocs = (C.uint32_t)(x.MaxUniformBufferRange), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxUniformBufferRange_allocs) +} - var cmaxStorageBufferRange_allocs *cgoAllocMap - ref7926795a.maxStorageBufferRange, cmaxStorageBufferRange_allocs = (C.uint32_t)(x.MaxStorageBufferRange), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxStorageBufferRange_allocs) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DispatchIndirectCommand) PassValue() (C.VkDispatchIndirectCommand, *cgoAllocMap) { + if x.refd298ba27 != nil { + return *x.refd298ba27, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var cmaxPushConstantsSize_allocs *cgoAllocMap - ref7926795a.maxPushConstantsSize, cmaxPushConstantsSize_allocs = (C.uint32_t)(x.MaxPushConstantsSize), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPushConstantsSize_allocs) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DispatchIndirectCommand) Deref() { + if x.refd298ba27 == nil { + return + } + x.X = (uint32)(x.refd298ba27.x) + x.Y = (uint32)(x.refd298ba27.y) + x.Z = (uint32)(x.refd298ba27.z) +} - var cmaxMemoryAllocationCount_allocs *cgoAllocMap - ref7926795a.maxMemoryAllocationCount, cmaxMemoryAllocationCount_allocs = (C.uint32_t)(x.MaxMemoryAllocationCount), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxMemoryAllocationCount_allocs) +// allocDrawIndexedIndirectCommandMemory allocates memory for type C.VkDrawIndexedIndirectCommand in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDrawIndexedIndirectCommandMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrawIndexedIndirectCommandValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} - var cmaxSamplerAllocationCount_allocs *cgoAllocMap - ref7926795a.maxSamplerAllocationCount, cmaxSamplerAllocationCount_allocs = (C.uint32_t)(x.MaxSamplerAllocationCount), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxSamplerAllocationCount_allocs) +const sizeOfDrawIndexedIndirectCommandValue = unsafe.Sizeof([1]C.VkDrawIndexedIndirectCommand{}) - var cbufferImageGranularity_allocs *cgoAllocMap - ref7926795a.bufferImageGranularity, cbufferImageGranularity_allocs = (C.VkDeviceSize)(x.BufferImageGranularity), cgoAllocsUnknown - allocs7926795a.Borrow(cbufferImageGranularity_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DrawIndexedIndirectCommand) Ref() *C.VkDrawIndexedIndirectCommand { + if x == nil { + return nil + } + return x.ref4c78b5c3 +} - var csparseAddressSpaceSize_allocs *cgoAllocMap - ref7926795a.sparseAddressSpaceSize, csparseAddressSpaceSize_allocs = (C.VkDeviceSize)(x.SparseAddressSpaceSize), cgoAllocsUnknown - allocs7926795a.Borrow(csparseAddressSpaceSize_allocs) +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DrawIndexedIndirectCommand) Free() { + if x != nil && x.allocs4c78b5c3 != nil { + x.allocs4c78b5c3.(*cgoAllocMap).Free() + x.ref4c78b5c3 = nil + } +} - var cmaxBoundDescriptorSets_allocs *cgoAllocMap - ref7926795a.maxBoundDescriptorSets, cmaxBoundDescriptorSets_allocs = (C.uint32_t)(x.MaxBoundDescriptorSets), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxBoundDescriptorSets_allocs) +// NewDrawIndexedIndirectCommandRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDrawIndexedIndirectCommandRef(ref unsafe.Pointer) *DrawIndexedIndirectCommand { + if ref == nil { + return nil + } + obj := new(DrawIndexedIndirectCommand) + obj.ref4c78b5c3 = (*C.VkDrawIndexedIndirectCommand)(unsafe.Pointer(ref)) + return obj +} - var cmaxPerStageDescriptorSamplers_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorSamplers, cmaxPerStageDescriptorSamplers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorSamplers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorSamplers_allocs) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DrawIndexedIndirectCommand) PassRef() (*C.VkDrawIndexedIndirectCommand, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4c78b5c3 != nil { + return x.ref4c78b5c3, nil + } + mem4c78b5c3 := allocDrawIndexedIndirectCommandMemory(1) + ref4c78b5c3 := (*C.VkDrawIndexedIndirectCommand)(mem4c78b5c3) + allocs4c78b5c3 := new(cgoAllocMap) + allocs4c78b5c3.Add(mem4c78b5c3) - var cmaxPerStageDescriptorUniformBuffers_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorUniformBuffers, cmaxPerStageDescriptorUniformBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUniformBuffers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorUniformBuffers_allocs) + var cindexCount_allocs *cgoAllocMap + ref4c78b5c3.indexCount, cindexCount_allocs = (C.uint32_t)(x.IndexCount), cgoAllocsUnknown + allocs4c78b5c3.Borrow(cindexCount_allocs) - var cmaxPerStageDescriptorStorageBuffers_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorStorageBuffers, cmaxPerStageDescriptorStorageBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorStorageBuffers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorStorageBuffers_allocs) + var cinstanceCount_allocs *cgoAllocMap + ref4c78b5c3.instanceCount, cinstanceCount_allocs = (C.uint32_t)(x.InstanceCount), cgoAllocsUnknown + allocs4c78b5c3.Borrow(cinstanceCount_allocs) - var cmaxPerStageDescriptorSampledImages_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorSampledImages, cmaxPerStageDescriptorSampledImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorSampledImages), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorSampledImages_allocs) + var cfirstIndex_allocs *cgoAllocMap + ref4c78b5c3.firstIndex, cfirstIndex_allocs = (C.uint32_t)(x.FirstIndex), cgoAllocsUnknown + allocs4c78b5c3.Borrow(cfirstIndex_allocs) - var cmaxPerStageDescriptorStorageImages_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorStorageImages, cmaxPerStageDescriptorStorageImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorStorageImages), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorStorageImages_allocs) + var cvertexOffset_allocs *cgoAllocMap + ref4c78b5c3.vertexOffset, cvertexOffset_allocs = (C.int32_t)(x.VertexOffset), cgoAllocsUnknown + allocs4c78b5c3.Borrow(cvertexOffset_allocs) - var cmaxPerStageDescriptorInputAttachments_allocs *cgoAllocMap - ref7926795a.maxPerStageDescriptorInputAttachments, cmaxPerStageDescriptorInputAttachments_allocs = (C.uint32_t)(x.MaxPerStageDescriptorInputAttachments), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageDescriptorInputAttachments_allocs) + var cfirstInstance_allocs *cgoAllocMap + ref4c78b5c3.firstInstance, cfirstInstance_allocs = (C.uint32_t)(x.FirstInstance), cgoAllocsUnknown + allocs4c78b5c3.Borrow(cfirstInstance_allocs) - var cmaxPerStageResources_allocs *cgoAllocMap - ref7926795a.maxPerStageResources, cmaxPerStageResources_allocs = (C.uint32_t)(x.MaxPerStageResources), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxPerStageResources_allocs) + x.ref4c78b5c3 = ref4c78b5c3 + x.allocs4c78b5c3 = allocs4c78b5c3 + return ref4c78b5c3, allocs4c78b5c3 - var cmaxDescriptorSetSamplers_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetSamplers, cmaxDescriptorSetSamplers_allocs = (C.uint32_t)(x.MaxDescriptorSetSamplers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetSamplers_allocs) +} - var cmaxDescriptorSetUniformBuffers_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetUniformBuffers, cmaxDescriptorSetUniformBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetUniformBuffers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetUniformBuffers_allocs) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DrawIndexedIndirectCommand) PassValue() (C.VkDrawIndexedIndirectCommand, *cgoAllocMap) { + if x.ref4c78b5c3 != nil { + return *x.ref4c78b5c3, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var cmaxDescriptorSetUniformBuffersDynamic_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetUniformBuffersDynamic, cmaxDescriptorSetUniformBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetUniformBuffersDynamic), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetUniformBuffersDynamic_allocs) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DrawIndexedIndirectCommand) Deref() { + if x.ref4c78b5c3 == nil { + return + } + x.IndexCount = (uint32)(x.ref4c78b5c3.indexCount) + x.InstanceCount = (uint32)(x.ref4c78b5c3.instanceCount) + x.FirstIndex = (uint32)(x.ref4c78b5c3.firstIndex) + x.VertexOffset = (int32)(x.ref4c78b5c3.vertexOffset) + x.FirstInstance = (uint32)(x.ref4c78b5c3.firstInstance) +} - var cmaxDescriptorSetStorageBuffers_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetStorageBuffers, cmaxDescriptorSetStorageBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetStorageBuffers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetStorageBuffers_allocs) +// allocDrawIndirectCommandMemory allocates memory for type C.VkDrawIndirectCommand in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDrawIndirectCommandMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrawIndirectCommandValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} - var cmaxDescriptorSetStorageBuffersDynamic_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetStorageBuffersDynamic, cmaxDescriptorSetStorageBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetStorageBuffersDynamic), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetStorageBuffersDynamic_allocs) +const sizeOfDrawIndirectCommandValue = unsafe.Sizeof([1]C.VkDrawIndirectCommand{}) - var cmaxDescriptorSetSampledImages_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetSampledImages, cmaxDescriptorSetSampledImages_allocs = (C.uint32_t)(x.MaxDescriptorSetSampledImages), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetSampledImages_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DrawIndirectCommand) Ref() *C.VkDrawIndirectCommand { + if x == nil { + return nil + } + return x.ref2b5b67c4 +} - var cmaxDescriptorSetStorageImages_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetStorageImages, cmaxDescriptorSetStorageImages_allocs = (C.uint32_t)(x.MaxDescriptorSetStorageImages), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetStorageImages_allocs) +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DrawIndirectCommand) Free() { + if x != nil && x.allocs2b5b67c4 != nil { + x.allocs2b5b67c4.(*cgoAllocMap).Free() + x.ref2b5b67c4 = nil + } +} - var cmaxDescriptorSetInputAttachments_allocs *cgoAllocMap - ref7926795a.maxDescriptorSetInputAttachments, cmaxDescriptorSetInputAttachments_allocs = (C.uint32_t)(x.MaxDescriptorSetInputAttachments), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDescriptorSetInputAttachments_allocs) +// NewDrawIndirectCommandRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDrawIndirectCommandRef(ref unsafe.Pointer) *DrawIndirectCommand { + if ref == nil { + return nil + } + obj := new(DrawIndirectCommand) + obj.ref2b5b67c4 = (*C.VkDrawIndirectCommand)(unsafe.Pointer(ref)) + return obj +} - var cmaxVertexInputAttributes_allocs *cgoAllocMap - ref7926795a.maxVertexInputAttributes, cmaxVertexInputAttributes_allocs = (C.uint32_t)(x.MaxVertexInputAttributes), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxVertexInputAttributes_allocs) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DrawIndirectCommand) PassRef() (*C.VkDrawIndirectCommand, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2b5b67c4 != nil { + return x.ref2b5b67c4, nil + } + mem2b5b67c4 := allocDrawIndirectCommandMemory(1) + ref2b5b67c4 := (*C.VkDrawIndirectCommand)(mem2b5b67c4) + allocs2b5b67c4 := new(cgoAllocMap) + allocs2b5b67c4.Add(mem2b5b67c4) - var cmaxVertexInputBindings_allocs *cgoAllocMap - ref7926795a.maxVertexInputBindings, cmaxVertexInputBindings_allocs = (C.uint32_t)(x.MaxVertexInputBindings), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxVertexInputBindings_allocs) + var cvertexCount_allocs *cgoAllocMap + ref2b5b67c4.vertexCount, cvertexCount_allocs = (C.uint32_t)(x.VertexCount), cgoAllocsUnknown + allocs2b5b67c4.Borrow(cvertexCount_allocs) - var cmaxVertexInputAttributeOffset_allocs *cgoAllocMap - ref7926795a.maxVertexInputAttributeOffset, cmaxVertexInputAttributeOffset_allocs = (C.uint32_t)(x.MaxVertexInputAttributeOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxVertexInputAttributeOffset_allocs) + var cinstanceCount_allocs *cgoAllocMap + ref2b5b67c4.instanceCount, cinstanceCount_allocs = (C.uint32_t)(x.InstanceCount), cgoAllocsUnknown + allocs2b5b67c4.Borrow(cinstanceCount_allocs) - var cmaxVertexInputBindingStride_allocs *cgoAllocMap - ref7926795a.maxVertexInputBindingStride, cmaxVertexInputBindingStride_allocs = (C.uint32_t)(x.MaxVertexInputBindingStride), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxVertexInputBindingStride_allocs) + var cfirstVertex_allocs *cgoAllocMap + ref2b5b67c4.firstVertex, cfirstVertex_allocs = (C.uint32_t)(x.FirstVertex), cgoAllocsUnknown + allocs2b5b67c4.Borrow(cfirstVertex_allocs) - var cmaxVertexOutputComponents_allocs *cgoAllocMap - ref7926795a.maxVertexOutputComponents, cmaxVertexOutputComponents_allocs = (C.uint32_t)(x.MaxVertexOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxVertexOutputComponents_allocs) + var cfirstInstance_allocs *cgoAllocMap + ref2b5b67c4.firstInstance, cfirstInstance_allocs = (C.uint32_t)(x.FirstInstance), cgoAllocsUnknown + allocs2b5b67c4.Borrow(cfirstInstance_allocs) - var cmaxTessellationGenerationLevel_allocs *cgoAllocMap - ref7926795a.maxTessellationGenerationLevel, cmaxTessellationGenerationLevel_allocs = (C.uint32_t)(x.MaxTessellationGenerationLevel), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationGenerationLevel_allocs) + x.ref2b5b67c4 = ref2b5b67c4 + x.allocs2b5b67c4 = allocs2b5b67c4 + return ref2b5b67c4, allocs2b5b67c4 - var cmaxTessellationPatchSize_allocs *cgoAllocMap - ref7926795a.maxTessellationPatchSize, cmaxTessellationPatchSize_allocs = (C.uint32_t)(x.MaxTessellationPatchSize), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationPatchSize_allocs) +} - var cmaxTessellationControlPerVertexInputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationControlPerVertexInputComponents, cmaxTessellationControlPerVertexInputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlPerVertexInputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationControlPerVertexInputComponents_allocs) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DrawIndirectCommand) PassValue() (C.VkDrawIndirectCommand, *cgoAllocMap) { + if x.ref2b5b67c4 != nil { + return *x.ref2b5b67c4, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var cmaxTessellationControlPerVertexOutputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationControlPerVertexOutputComponents, cmaxTessellationControlPerVertexOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlPerVertexOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationControlPerVertexOutputComponents_allocs) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DrawIndirectCommand) Deref() { + if x.ref2b5b67c4 == nil { + return + } + x.VertexCount = (uint32)(x.ref2b5b67c4.vertexCount) + x.InstanceCount = (uint32)(x.ref2b5b67c4.instanceCount) + x.FirstVertex = (uint32)(x.ref2b5b67c4.firstVertex) + x.FirstInstance = (uint32)(x.ref2b5b67c4.firstInstance) +} - var cmaxTessellationControlPerPatchOutputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationControlPerPatchOutputComponents, cmaxTessellationControlPerPatchOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlPerPatchOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationControlPerPatchOutputComponents_allocs) +// allocImageSubresourceRangeMemory allocates memory for type C.VkImageSubresourceRange in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageSubresourceRangeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSubresourceRangeValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageSubresourceRangeValue = unsafe.Sizeof([1]C.VkImageSubresourceRange{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageSubresourceRange) Ref() *C.VkImageSubresourceRange { + if x == nil { + return nil + } + return x.ref5aa1126 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageSubresourceRange) Free() { + if x != nil && x.allocs5aa1126 != nil { + x.allocs5aa1126.(*cgoAllocMap).Free() + x.ref5aa1126 = nil + } +} + +// NewImageSubresourceRangeRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageSubresourceRangeRef(ref unsafe.Pointer) *ImageSubresourceRange { + if ref == nil { + return nil + } + obj := new(ImageSubresourceRange) + obj.ref5aa1126 = (*C.VkImageSubresourceRange)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageSubresourceRange) PassRef() (*C.VkImageSubresourceRange, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5aa1126 != nil { + return x.ref5aa1126, nil + } + mem5aa1126 := allocImageSubresourceRangeMemory(1) + ref5aa1126 := (*C.VkImageSubresourceRange)(mem5aa1126) + allocs5aa1126 := new(cgoAllocMap) + allocs5aa1126.Add(mem5aa1126) + + var caspectMask_allocs *cgoAllocMap + ref5aa1126.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown + allocs5aa1126.Borrow(caspectMask_allocs) + + var cbaseMipLevel_allocs *cgoAllocMap + ref5aa1126.baseMipLevel, cbaseMipLevel_allocs = (C.uint32_t)(x.BaseMipLevel), cgoAllocsUnknown + allocs5aa1126.Borrow(cbaseMipLevel_allocs) + + var clevelCount_allocs *cgoAllocMap + ref5aa1126.levelCount, clevelCount_allocs = (C.uint32_t)(x.LevelCount), cgoAllocsUnknown + allocs5aa1126.Borrow(clevelCount_allocs) + + var cbaseArrayLayer_allocs *cgoAllocMap + ref5aa1126.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown + allocs5aa1126.Borrow(cbaseArrayLayer_allocs) + + var clayerCount_allocs *cgoAllocMap + ref5aa1126.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown + allocs5aa1126.Borrow(clayerCount_allocs) + + x.ref5aa1126 = ref5aa1126 + x.allocs5aa1126 = allocs5aa1126 + return ref5aa1126, allocs5aa1126 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageSubresourceRange) PassValue() (C.VkImageSubresourceRange, *cgoAllocMap) { + if x.ref5aa1126 != nil { + return *x.ref5aa1126, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageSubresourceRange) Deref() { + if x.ref5aa1126 == nil { + return + } + x.AspectMask = (ImageAspectFlags)(x.ref5aa1126.aspectMask) + x.BaseMipLevel = (uint32)(x.ref5aa1126.baseMipLevel) + x.LevelCount = (uint32)(x.ref5aa1126.levelCount) + x.BaseArrayLayer = (uint32)(x.ref5aa1126.baseArrayLayer) + x.LayerCount = (uint32)(x.ref5aa1126.layerCount) +} + +// allocImageMemoryBarrierMemory allocates memory for type C.VkImageMemoryBarrier in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageMemoryBarrierMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageMemoryBarrierValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageMemoryBarrierValue = unsafe.Sizeof([1]C.VkImageMemoryBarrier{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageMemoryBarrier) Ref() *C.VkImageMemoryBarrier { + if x == nil { + return nil + } + return x.refd52734ec +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageMemoryBarrier) Free() { + if x != nil && x.allocsd52734ec != nil { + x.allocsd52734ec.(*cgoAllocMap).Free() + x.refd52734ec = nil + } +} + +// NewImageMemoryBarrierRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageMemoryBarrierRef(ref unsafe.Pointer) *ImageMemoryBarrier { + if ref == nil { + return nil + } + obj := new(ImageMemoryBarrier) + obj.refd52734ec = (*C.VkImageMemoryBarrier)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageMemoryBarrier) PassRef() (*C.VkImageMemoryBarrier, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd52734ec != nil { + return x.refd52734ec, nil + } + memd52734ec := allocImageMemoryBarrierMemory(1) + refd52734ec := (*C.VkImageMemoryBarrier)(memd52734ec) + allocsd52734ec := new(cgoAllocMap) + allocsd52734ec.Add(memd52734ec) + + var csType_allocs *cgoAllocMap + refd52734ec.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd52734ec.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd52734ec.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd52734ec.Borrow(cpNext_allocs) + + var csrcAccessMask_allocs *cgoAllocMap + refd52734ec.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown + allocsd52734ec.Borrow(csrcAccessMask_allocs) + + var cdstAccessMask_allocs *cgoAllocMap + refd52734ec.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown + allocsd52734ec.Borrow(cdstAccessMask_allocs) + + var coldLayout_allocs *cgoAllocMap + refd52734ec.oldLayout, coldLayout_allocs = (C.VkImageLayout)(x.OldLayout), cgoAllocsUnknown + allocsd52734ec.Borrow(coldLayout_allocs) + + var cnewLayout_allocs *cgoAllocMap + refd52734ec.newLayout, cnewLayout_allocs = (C.VkImageLayout)(x.NewLayout), cgoAllocsUnknown + allocsd52734ec.Borrow(cnewLayout_allocs) + + var csrcQueueFamilyIndex_allocs *cgoAllocMap + refd52734ec.srcQueueFamilyIndex, csrcQueueFamilyIndex_allocs = (C.uint32_t)(x.SrcQueueFamilyIndex), cgoAllocsUnknown + allocsd52734ec.Borrow(csrcQueueFamilyIndex_allocs) + + var cdstQueueFamilyIndex_allocs *cgoAllocMap + refd52734ec.dstQueueFamilyIndex, cdstQueueFamilyIndex_allocs = (C.uint32_t)(x.DstQueueFamilyIndex), cgoAllocsUnknown + allocsd52734ec.Borrow(cdstQueueFamilyIndex_allocs) + + var cimage_allocs *cgoAllocMap + refd52734ec.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocsd52734ec.Borrow(cimage_allocs) + + var csubresourceRange_allocs *cgoAllocMap + refd52734ec.subresourceRange, csubresourceRange_allocs = x.SubresourceRange.PassValue() + allocsd52734ec.Borrow(csubresourceRange_allocs) + + x.refd52734ec = refd52734ec + x.allocsd52734ec = allocsd52734ec + return refd52734ec, allocsd52734ec + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageMemoryBarrier) PassValue() (C.VkImageMemoryBarrier, *cgoAllocMap) { + if x.refd52734ec != nil { + return *x.refd52734ec, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageMemoryBarrier) Deref() { + if x.refd52734ec == nil { + return + } + x.SType = (StructureType)(x.refd52734ec.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd52734ec.pNext)) + x.SrcAccessMask = (AccessFlags)(x.refd52734ec.srcAccessMask) + x.DstAccessMask = (AccessFlags)(x.refd52734ec.dstAccessMask) + x.OldLayout = (ImageLayout)(x.refd52734ec.oldLayout) + x.NewLayout = (ImageLayout)(x.refd52734ec.newLayout) + x.SrcQueueFamilyIndex = (uint32)(x.refd52734ec.srcQueueFamilyIndex) + x.DstQueueFamilyIndex = (uint32)(x.refd52734ec.dstQueueFamilyIndex) + x.Image = *(*Image)(unsafe.Pointer(&x.refd52734ec.image)) + x.SubresourceRange = *NewImageSubresourceRangeRef(unsafe.Pointer(&x.refd52734ec.subresourceRange)) +} + +// allocMemoryBarrierMemory allocates memory for type C.VkMemoryBarrier in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryBarrierMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryBarrierValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryBarrierValue = unsafe.Sizeof([1]C.VkMemoryBarrier{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryBarrier) Ref() *C.VkMemoryBarrier { + if x == nil { + return nil + } + return x.ref977c944e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryBarrier) Free() { + if x != nil && x.allocs977c944e != nil { + x.allocs977c944e.(*cgoAllocMap).Free() + x.ref977c944e = nil + } +} + +// NewMemoryBarrierRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryBarrierRef(ref unsafe.Pointer) *MemoryBarrier { + if ref == nil { + return nil + } + obj := new(MemoryBarrier) + obj.ref977c944e = (*C.VkMemoryBarrier)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryBarrier) PassRef() (*C.VkMemoryBarrier, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref977c944e != nil { + return x.ref977c944e, nil + } + mem977c944e := allocMemoryBarrierMemory(1) + ref977c944e := (*C.VkMemoryBarrier)(mem977c944e) + allocs977c944e := new(cgoAllocMap) + allocs977c944e.Add(mem977c944e) + + var csType_allocs *cgoAllocMap + ref977c944e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs977c944e.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref977c944e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs977c944e.Borrow(cpNext_allocs) + + var csrcAccessMask_allocs *cgoAllocMap + ref977c944e.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown + allocs977c944e.Borrow(csrcAccessMask_allocs) + + var cdstAccessMask_allocs *cgoAllocMap + ref977c944e.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown + allocs977c944e.Borrow(cdstAccessMask_allocs) + + x.ref977c944e = ref977c944e + x.allocs977c944e = allocs977c944e + return ref977c944e, allocs977c944e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryBarrier) PassValue() (C.VkMemoryBarrier, *cgoAllocMap) { + if x.ref977c944e != nil { + return *x.ref977c944e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryBarrier) Deref() { + if x.ref977c944e == nil { + return + } + x.SType = (StructureType)(x.ref977c944e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref977c944e.pNext)) + x.SrcAccessMask = (AccessFlags)(x.ref977c944e.srcAccessMask) + x.DstAccessMask = (AccessFlags)(x.ref977c944e.dstAccessMask) +} + +// allocPipelineCacheHeaderVersionOneMemory allocates memory for type C.VkPipelineCacheHeaderVersionOne in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineCacheHeaderVersionOneMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCacheHeaderVersionOneValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineCacheHeaderVersionOneValue = unsafe.Sizeof([1]C.VkPipelineCacheHeaderVersionOne{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineCacheHeaderVersionOne) Ref() *C.VkPipelineCacheHeaderVersionOne { + if x == nil { + return nil + } + return x.refa2162ec9 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineCacheHeaderVersionOne) Free() { + if x != nil && x.allocsa2162ec9 != nil { + x.allocsa2162ec9.(*cgoAllocMap).Free() + x.refa2162ec9 = nil + } +} + +// NewPipelineCacheHeaderVersionOneRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineCacheHeaderVersionOneRef(ref unsafe.Pointer) *PipelineCacheHeaderVersionOne { + if ref == nil { + return nil + } + obj := new(PipelineCacheHeaderVersionOne) + obj.refa2162ec9 = (*C.VkPipelineCacheHeaderVersionOne)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineCacheHeaderVersionOne) PassRef() (*C.VkPipelineCacheHeaderVersionOne, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa2162ec9 != nil { + return x.refa2162ec9, nil + } + mema2162ec9 := allocPipelineCacheHeaderVersionOneMemory(1) + refa2162ec9 := (*C.VkPipelineCacheHeaderVersionOne)(mema2162ec9) + allocsa2162ec9 := new(cgoAllocMap) + allocsa2162ec9.Add(mema2162ec9) + + var cheaderSize_allocs *cgoAllocMap + refa2162ec9.headerSize, cheaderSize_allocs = (C.uint32_t)(x.HeaderSize), cgoAllocsUnknown + allocsa2162ec9.Borrow(cheaderSize_allocs) + + var cheaderVersion_allocs *cgoAllocMap + refa2162ec9.headerVersion, cheaderVersion_allocs = (C.VkPipelineCacheHeaderVersion)(x.HeaderVersion), cgoAllocsUnknown + allocsa2162ec9.Borrow(cheaderVersion_allocs) + + var cvendorID_allocs *cgoAllocMap + refa2162ec9.vendorID, cvendorID_allocs = (C.uint32_t)(x.VendorID), cgoAllocsUnknown + allocsa2162ec9.Borrow(cvendorID_allocs) + + var cdeviceID_allocs *cgoAllocMap + refa2162ec9.deviceID, cdeviceID_allocs = (C.uint32_t)(x.DeviceID), cgoAllocsUnknown + allocsa2162ec9.Borrow(cdeviceID_allocs) + + var cpipelineCacheUUID_allocs *cgoAllocMap + refa2162ec9.pipelineCacheUUID, cpipelineCacheUUID_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.PipelineCacheUUID)), cgoAllocsUnknown + allocsa2162ec9.Borrow(cpipelineCacheUUID_allocs) + + x.refa2162ec9 = refa2162ec9 + x.allocsa2162ec9 = allocsa2162ec9 + return refa2162ec9, allocsa2162ec9 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineCacheHeaderVersionOne) PassValue() (C.VkPipelineCacheHeaderVersionOne, *cgoAllocMap) { + if x.refa2162ec9 != nil { + return *x.refa2162ec9, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineCacheHeaderVersionOne) Deref() { + if x.refa2162ec9 == nil { + return + } + x.HeaderSize = (uint32)(x.refa2162ec9.headerSize) + x.HeaderVersion = (PipelineCacheHeaderVersion)(x.refa2162ec9.headerVersion) + x.VendorID = (uint32)(x.refa2162ec9.vendorID) + x.DeviceID = (uint32)(x.refa2162ec9.deviceID) + x.PipelineCacheUUID = *(*[16]byte)(unsafe.Pointer(&x.refa2162ec9.pipelineCacheUUID)) +} + +// Ref returns a reference to C object as it is. +func (x *AllocationCallbacks) Ref() *C.VkAllocationCallbacks { + if x == nil { + return nil + } + return (*C.VkAllocationCallbacks)(unsafe.Pointer(x)) +} + +// Free cleanups the referenced memory using C free. +func (x *AllocationCallbacks) Free() { + if x != nil { + C.free(unsafe.Pointer(x)) + } +} + +// NewAllocationCallbacksRef converts the C object reference into a raw struct reference without wrapping. +func NewAllocationCallbacksRef(ref unsafe.Pointer) *AllocationCallbacks { + return (*AllocationCallbacks)(ref) +} + +// NewAllocationCallbacks allocates a new C object of this type and converts the reference into +// a raw struct reference without wrapping. +func NewAllocationCallbacks() *AllocationCallbacks { + return (*AllocationCallbacks)(allocAllocationCallbacksMemory(1)) +} + +// allocAllocationCallbacksMemory allocates memory for type C.VkAllocationCallbacks in C. +// The caller is responsible for freeing the this memory via C.free. +func allocAllocationCallbacksMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAllocationCallbacksValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfAllocationCallbacksValue = unsafe.Sizeof([1]C.VkAllocationCallbacks{}) + +// PassRef returns a reference to C object as it is or allocates a new C object of this type. +func (x *AllocationCallbacks) PassRef() *C.VkAllocationCallbacks { + if x == nil { + x = (*AllocationCallbacks)(allocAllocationCallbacksMemory(1)) + } + return (*C.VkAllocationCallbacks)(unsafe.Pointer(x)) +} + +// allocApplicationInfoMemory allocates memory for type C.VkApplicationInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocApplicationInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfApplicationInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfApplicationInfoValue = unsafe.Sizeof([1]C.VkApplicationInfo{}) + +// unpackPCharString represents the data from Go string as *C.char and avoids copying. +func unpackPCharString(str string) (*C.char, *cgoAllocMap) { + h := (*stringHeader)(unsafe.Pointer(&str)) + return (*C.char)(h.Data), cgoAllocsUnknown +} + +type stringHeader struct { + Data unsafe.Pointer + Len int +} + +// packPCharString creates a Go string backed by *C.char and avoids copying. +func packPCharString(p *C.char) (raw string) { + if p != nil && *p != 0 { + h := (*stringHeader)(unsafe.Pointer(&raw)) + h.Data = unsafe.Pointer(p) + for *p != 0 { + p = (*C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(p)) + 1)) // p++ + } + h.Len = int(uintptr(unsafe.Pointer(p)) - uintptr(h.Data)) + } + return +} + +// RawString reperesents a string backed by data on the C side. +type RawString string + +// Copy returns a Go-managed copy of raw string. +func (raw RawString) Copy() string { + if len(raw) == 0 { + return "" + } + h := (*stringHeader)(unsafe.Pointer(&raw)) + return C.GoStringN((*C.char)(h.Data), C.int(h.Len)) +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ApplicationInfo) Ref() *C.VkApplicationInfo { + if x == nil { + return nil + } + return x.refb0af7378 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ApplicationInfo) Free() { + if x != nil && x.allocsb0af7378 != nil { + x.allocsb0af7378.(*cgoAllocMap).Free() + x.refb0af7378 = nil + } +} + +// NewApplicationInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewApplicationInfoRef(ref unsafe.Pointer) *ApplicationInfo { + if ref == nil { + return nil + } + obj := new(ApplicationInfo) + obj.refb0af7378 = (*C.VkApplicationInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ApplicationInfo) PassRef() (*C.VkApplicationInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb0af7378 != nil { + return x.refb0af7378, nil + } + memb0af7378 := allocApplicationInfoMemory(1) + refb0af7378 := (*C.VkApplicationInfo)(memb0af7378) + allocsb0af7378 := new(cgoAllocMap) + allocsb0af7378.Add(memb0af7378) + + var csType_allocs *cgoAllocMap + refb0af7378.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb0af7378.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb0af7378.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb0af7378.Borrow(cpNext_allocs) + + var cpApplicationName_allocs *cgoAllocMap + refb0af7378.pApplicationName, cpApplicationName_allocs = unpackPCharString(x.PApplicationName) + allocsb0af7378.Borrow(cpApplicationName_allocs) + + var capplicationVersion_allocs *cgoAllocMap + refb0af7378.applicationVersion, capplicationVersion_allocs = (C.uint32_t)(x.ApplicationVersion), cgoAllocsUnknown + allocsb0af7378.Borrow(capplicationVersion_allocs) + + var cpEngineName_allocs *cgoAllocMap + refb0af7378.pEngineName, cpEngineName_allocs = unpackPCharString(x.PEngineName) + allocsb0af7378.Borrow(cpEngineName_allocs) + + var cengineVersion_allocs *cgoAllocMap + refb0af7378.engineVersion, cengineVersion_allocs = (C.uint32_t)(x.EngineVersion), cgoAllocsUnknown + allocsb0af7378.Borrow(cengineVersion_allocs) + + var capiVersion_allocs *cgoAllocMap + refb0af7378.apiVersion, capiVersion_allocs = (C.uint32_t)(x.ApiVersion), cgoAllocsUnknown + allocsb0af7378.Borrow(capiVersion_allocs) + + x.refb0af7378 = refb0af7378 + x.allocsb0af7378 = allocsb0af7378 + return refb0af7378, allocsb0af7378 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ApplicationInfo) PassValue() (C.VkApplicationInfo, *cgoAllocMap) { + if x.refb0af7378 != nil { + return *x.refb0af7378, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ApplicationInfo) Deref() { + if x.refb0af7378 == nil { + return + } + x.SType = (StructureType)(x.refb0af7378.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb0af7378.pNext)) + x.PApplicationName = packPCharString(x.refb0af7378.pApplicationName) + x.ApplicationVersion = (uint32)(x.refb0af7378.applicationVersion) + x.PEngineName = packPCharString(x.refb0af7378.pEngineName) + x.EngineVersion = (uint32)(x.refb0af7378.engineVersion) + x.ApiVersion = (uint32)(x.refb0af7378.apiVersion) +} + +// allocFormatPropertiesMemory allocates memory for type C.VkFormatProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocFormatPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFormatPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfFormatPropertiesValue = unsafe.Sizeof([1]C.VkFormatProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *FormatProperties) Ref() *C.VkFormatProperties { + if x == nil { + return nil + } + return x.refc4b9937b +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *FormatProperties) Free() { + if x != nil && x.allocsc4b9937b != nil { + x.allocsc4b9937b.(*cgoAllocMap).Free() + x.refc4b9937b = nil + } +} + +// NewFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewFormatPropertiesRef(ref unsafe.Pointer) *FormatProperties { + if ref == nil { + return nil + } + obj := new(FormatProperties) + obj.refc4b9937b = (*C.VkFormatProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *FormatProperties) PassRef() (*C.VkFormatProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc4b9937b != nil { + return x.refc4b9937b, nil + } + memc4b9937b := allocFormatPropertiesMemory(1) + refc4b9937b := (*C.VkFormatProperties)(memc4b9937b) + allocsc4b9937b := new(cgoAllocMap) + allocsc4b9937b.Add(memc4b9937b) + + var clinearTilingFeatures_allocs *cgoAllocMap + refc4b9937b.linearTilingFeatures, clinearTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.LinearTilingFeatures), cgoAllocsUnknown + allocsc4b9937b.Borrow(clinearTilingFeatures_allocs) + + var coptimalTilingFeatures_allocs *cgoAllocMap + refc4b9937b.optimalTilingFeatures, coptimalTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.OptimalTilingFeatures), cgoAllocsUnknown + allocsc4b9937b.Borrow(coptimalTilingFeatures_allocs) + + var cbufferFeatures_allocs *cgoAllocMap + refc4b9937b.bufferFeatures, cbufferFeatures_allocs = (C.VkFormatFeatureFlags)(x.BufferFeatures), cgoAllocsUnknown + allocsc4b9937b.Borrow(cbufferFeatures_allocs) + + x.refc4b9937b = refc4b9937b + x.allocsc4b9937b = allocsc4b9937b + return refc4b9937b, allocsc4b9937b + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x FormatProperties) PassValue() (C.VkFormatProperties, *cgoAllocMap) { + if x.refc4b9937b != nil { + return *x.refc4b9937b, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *FormatProperties) Deref() { + if x.refc4b9937b == nil { + return + } + x.LinearTilingFeatures = (FormatFeatureFlags)(x.refc4b9937b.linearTilingFeatures) + x.OptimalTilingFeatures = (FormatFeatureFlags)(x.refc4b9937b.optimalTilingFeatures) + x.BufferFeatures = (FormatFeatureFlags)(x.refc4b9937b.bufferFeatures) +} + +// allocImageFormatPropertiesMemory allocates memory for type C.VkImageFormatProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageFormatPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageFormatPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkImageFormatProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageFormatProperties) Ref() *C.VkImageFormatProperties { + if x == nil { + return nil + } + return x.ref4cfb2ea2 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageFormatProperties) Free() { + if x != nil && x.allocs4cfb2ea2 != nil { + x.allocs4cfb2ea2.(*cgoAllocMap).Free() + x.ref4cfb2ea2 = nil + } +} + +// NewImageFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageFormatPropertiesRef(ref unsafe.Pointer) *ImageFormatProperties { + if ref == nil { + return nil + } + obj := new(ImageFormatProperties) + obj.ref4cfb2ea2 = (*C.VkImageFormatProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageFormatProperties) PassRef() (*C.VkImageFormatProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4cfb2ea2 != nil { + return x.ref4cfb2ea2, nil + } + mem4cfb2ea2 := allocImageFormatPropertiesMemory(1) + ref4cfb2ea2 := (*C.VkImageFormatProperties)(mem4cfb2ea2) + allocs4cfb2ea2 := new(cgoAllocMap) + allocs4cfb2ea2.Add(mem4cfb2ea2) + + var cmaxExtent_allocs *cgoAllocMap + ref4cfb2ea2.maxExtent, cmaxExtent_allocs = x.MaxExtent.PassValue() + allocs4cfb2ea2.Borrow(cmaxExtent_allocs) + + var cmaxMipLevels_allocs *cgoAllocMap + ref4cfb2ea2.maxMipLevels, cmaxMipLevels_allocs = (C.uint32_t)(x.MaxMipLevels), cgoAllocsUnknown + allocs4cfb2ea2.Borrow(cmaxMipLevels_allocs) + + var cmaxArrayLayers_allocs *cgoAllocMap + ref4cfb2ea2.maxArrayLayers, cmaxArrayLayers_allocs = (C.uint32_t)(x.MaxArrayLayers), cgoAllocsUnknown + allocs4cfb2ea2.Borrow(cmaxArrayLayers_allocs) + + var csampleCounts_allocs *cgoAllocMap + ref4cfb2ea2.sampleCounts, csampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleCounts), cgoAllocsUnknown + allocs4cfb2ea2.Borrow(csampleCounts_allocs) + + var cmaxResourceSize_allocs *cgoAllocMap + ref4cfb2ea2.maxResourceSize, cmaxResourceSize_allocs = (C.VkDeviceSize)(x.MaxResourceSize), cgoAllocsUnknown + allocs4cfb2ea2.Borrow(cmaxResourceSize_allocs) + + x.ref4cfb2ea2 = ref4cfb2ea2 + x.allocs4cfb2ea2 = allocs4cfb2ea2 + return ref4cfb2ea2, allocs4cfb2ea2 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageFormatProperties) PassValue() (C.VkImageFormatProperties, *cgoAllocMap) { + if x.ref4cfb2ea2 != nil { + return *x.ref4cfb2ea2, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageFormatProperties) Deref() { + if x.ref4cfb2ea2 == nil { + return + } + x.MaxExtent = *NewExtent3DRef(unsafe.Pointer(&x.ref4cfb2ea2.maxExtent)) + x.MaxMipLevels = (uint32)(x.ref4cfb2ea2.maxMipLevels) + x.MaxArrayLayers = (uint32)(x.ref4cfb2ea2.maxArrayLayers) + x.SampleCounts = (SampleCountFlags)(x.ref4cfb2ea2.sampleCounts) + x.MaxResourceSize = (DeviceSize)(x.ref4cfb2ea2.maxResourceSize) +} + +// allocInstanceCreateInfoMemory allocates memory for type C.VkInstanceCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocInstanceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfInstanceCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfInstanceCreateInfoValue = unsafe.Sizeof([1]C.VkInstanceCreateInfo{}) + +// allocPCharMemory allocates memory for type *C.char in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPCharMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPCharValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPCharValue = unsafe.Sizeof([1]*C.char{}) + +// unpackSString transforms a sliced Go data structure into plain C format. +func unpackSString(x []string) (unpacked **C.char, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(***C.char) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocPCharMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]*C.char)(unsafe.Pointer(h0)) + for i0 := range x { + v0[i0], _ = unpackPCharString(x[i0]) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (**C.char)(h.Data) + return +} + +// packSString reads sliced Go data structure out from plain C format. +func packSString(v []string, ptr0 **C.char) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfPtr]*C.char)(unsafe.Pointer(ptr0)))[i0] + v[i0] = packPCharString(ptr1) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *InstanceCreateInfo) Ref() *C.VkInstanceCreateInfo { + if x == nil { + return nil + } + return x.ref9b760798 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *InstanceCreateInfo) Free() { + if x != nil && x.allocs9b760798 != nil { + x.allocs9b760798.(*cgoAllocMap).Free() + x.ref9b760798 = nil + } +} + +// NewInstanceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewInstanceCreateInfoRef(ref unsafe.Pointer) *InstanceCreateInfo { + if ref == nil { + return nil + } + obj := new(InstanceCreateInfo) + obj.ref9b760798 = (*C.VkInstanceCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *InstanceCreateInfo) PassRef() (*C.VkInstanceCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref9b760798 != nil { + return x.ref9b760798, nil + } + mem9b760798 := allocInstanceCreateInfoMemory(1) + ref9b760798 := (*C.VkInstanceCreateInfo)(mem9b760798) + allocs9b760798 := new(cgoAllocMap) + allocs9b760798.Add(mem9b760798) + + var csType_allocs *cgoAllocMap + ref9b760798.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9b760798.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref9b760798.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9b760798.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref9b760798.flags, cflags_allocs = (C.VkInstanceCreateFlags)(x.Flags), cgoAllocsUnknown + allocs9b760798.Borrow(cflags_allocs) + + var cpApplicationInfo_allocs *cgoAllocMap + ref9b760798.pApplicationInfo, cpApplicationInfo_allocs = x.PApplicationInfo.PassRef() + allocs9b760798.Borrow(cpApplicationInfo_allocs) + + var cenabledLayerCount_allocs *cgoAllocMap + ref9b760798.enabledLayerCount, cenabledLayerCount_allocs = (C.uint32_t)(x.EnabledLayerCount), cgoAllocsUnknown + allocs9b760798.Borrow(cenabledLayerCount_allocs) + + var cppEnabledLayerNames_allocs *cgoAllocMap + ref9b760798.ppEnabledLayerNames, cppEnabledLayerNames_allocs = unpackSString(x.PpEnabledLayerNames) + allocs9b760798.Borrow(cppEnabledLayerNames_allocs) + + var cenabledExtensionCount_allocs *cgoAllocMap + ref9b760798.enabledExtensionCount, cenabledExtensionCount_allocs = (C.uint32_t)(x.EnabledExtensionCount), cgoAllocsUnknown + allocs9b760798.Borrow(cenabledExtensionCount_allocs) + + var cppEnabledExtensionNames_allocs *cgoAllocMap + ref9b760798.ppEnabledExtensionNames, cppEnabledExtensionNames_allocs = unpackSString(x.PpEnabledExtensionNames) + allocs9b760798.Borrow(cppEnabledExtensionNames_allocs) + + x.ref9b760798 = ref9b760798 + x.allocs9b760798 = allocs9b760798 + return ref9b760798, allocs9b760798 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x InstanceCreateInfo) PassValue() (C.VkInstanceCreateInfo, *cgoAllocMap) { + if x.ref9b760798 != nil { + return *x.ref9b760798, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *InstanceCreateInfo) Deref() { + if x.ref9b760798 == nil { + return + } + x.SType = (StructureType)(x.ref9b760798.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9b760798.pNext)) + x.Flags = (InstanceCreateFlags)(x.ref9b760798.flags) + x.PApplicationInfo = NewApplicationInfoRef(unsafe.Pointer(x.ref9b760798.pApplicationInfo)) + x.EnabledLayerCount = (uint32)(x.ref9b760798.enabledLayerCount) + packSString(x.PpEnabledLayerNames, x.ref9b760798.ppEnabledLayerNames) + x.EnabledExtensionCount = (uint32)(x.ref9b760798.enabledExtensionCount) + packSString(x.PpEnabledExtensionNames, x.ref9b760798.ppEnabledExtensionNames) +} + +// allocMemoryHeapMemory allocates memory for type C.VkMemoryHeap in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryHeapMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryHeapValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryHeapValue = unsafe.Sizeof([1]C.VkMemoryHeap{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryHeap) Ref() *C.VkMemoryHeap { + if x == nil { + return nil + } + return x.ref1eb195d5 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryHeap) Free() { + if x != nil && x.allocs1eb195d5 != nil { + x.allocs1eb195d5.(*cgoAllocMap).Free() + x.ref1eb195d5 = nil + } +} + +// NewMemoryHeapRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryHeapRef(ref unsafe.Pointer) *MemoryHeap { + if ref == nil { + return nil + } + obj := new(MemoryHeap) + obj.ref1eb195d5 = (*C.VkMemoryHeap)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryHeap) PassRef() (*C.VkMemoryHeap, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref1eb195d5 != nil { + return x.ref1eb195d5, nil + } + mem1eb195d5 := allocMemoryHeapMemory(1) + ref1eb195d5 := (*C.VkMemoryHeap)(mem1eb195d5) + allocs1eb195d5 := new(cgoAllocMap) + allocs1eb195d5.Add(mem1eb195d5) + + var csize_allocs *cgoAllocMap + ref1eb195d5.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocs1eb195d5.Borrow(csize_allocs) + + var cflags_allocs *cgoAllocMap + ref1eb195d5.flags, cflags_allocs = (C.VkMemoryHeapFlags)(x.Flags), cgoAllocsUnknown + allocs1eb195d5.Borrow(cflags_allocs) + + x.ref1eb195d5 = ref1eb195d5 + x.allocs1eb195d5 = allocs1eb195d5 + return ref1eb195d5, allocs1eb195d5 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryHeap) PassValue() (C.VkMemoryHeap, *cgoAllocMap) { + if x.ref1eb195d5 != nil { + return *x.ref1eb195d5, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryHeap) Deref() { + if x.ref1eb195d5 == nil { + return + } + x.Size = (DeviceSize)(x.ref1eb195d5.size) + x.Flags = (MemoryHeapFlags)(x.ref1eb195d5.flags) +} + +// allocMemoryTypeMemory allocates memory for type C.VkMemoryType in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryTypeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryTypeValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryTypeValue = unsafe.Sizeof([1]C.VkMemoryType{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryType) Ref() *C.VkMemoryType { + if x == nil { + return nil + } + return x.ref2f46e01d +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryType) Free() { + if x != nil && x.allocs2f46e01d != nil { + x.allocs2f46e01d.(*cgoAllocMap).Free() + x.ref2f46e01d = nil + } +} + +// NewMemoryTypeRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryTypeRef(ref unsafe.Pointer) *MemoryType { + if ref == nil { + return nil + } + obj := new(MemoryType) + obj.ref2f46e01d = (*C.VkMemoryType)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryType) PassRef() (*C.VkMemoryType, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2f46e01d != nil { + return x.ref2f46e01d, nil + } + mem2f46e01d := allocMemoryTypeMemory(1) + ref2f46e01d := (*C.VkMemoryType)(mem2f46e01d) + allocs2f46e01d := new(cgoAllocMap) + allocs2f46e01d.Add(mem2f46e01d) + + var cpropertyFlags_allocs *cgoAllocMap + ref2f46e01d.propertyFlags, cpropertyFlags_allocs = (C.VkMemoryPropertyFlags)(x.PropertyFlags), cgoAllocsUnknown + allocs2f46e01d.Borrow(cpropertyFlags_allocs) + + var cheapIndex_allocs *cgoAllocMap + ref2f46e01d.heapIndex, cheapIndex_allocs = (C.uint32_t)(x.HeapIndex), cgoAllocsUnknown + allocs2f46e01d.Borrow(cheapIndex_allocs) + + x.ref2f46e01d = ref2f46e01d + x.allocs2f46e01d = allocs2f46e01d + return ref2f46e01d, allocs2f46e01d + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryType) PassValue() (C.VkMemoryType, *cgoAllocMap) { + if x.ref2f46e01d != nil { + return *x.ref2f46e01d, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryType) Deref() { + if x.ref2f46e01d == nil { + return + } + x.PropertyFlags = (MemoryPropertyFlags)(x.ref2f46e01d.propertyFlags) + x.HeapIndex = (uint32)(x.ref2f46e01d.heapIndex) +} + +// allocPhysicalDeviceFeaturesMemory allocates memory for type C.VkPhysicalDeviceFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceFeatures) Ref() *C.VkPhysicalDeviceFeatures { + if x == nil { + return nil + } + return x.reff97e405d +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceFeatures) Free() { + if x != nil && x.allocsf97e405d != nil { + x.allocsf97e405d.(*cgoAllocMap).Free() + x.reff97e405d = nil + } +} + +// NewPhysicalDeviceFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceFeatures) + obj.reff97e405d = (*C.VkPhysicalDeviceFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceFeatures) PassRef() (*C.VkPhysicalDeviceFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff97e405d != nil { + return x.reff97e405d, nil + } + memf97e405d := allocPhysicalDeviceFeaturesMemory(1) + reff97e405d := (*C.VkPhysicalDeviceFeatures)(memf97e405d) + allocsf97e405d := new(cgoAllocMap) + allocsf97e405d.Add(memf97e405d) + + var crobustBufferAccess_allocs *cgoAllocMap + reff97e405d.robustBufferAccess, crobustBufferAccess_allocs = (C.VkBool32)(x.RobustBufferAccess), cgoAllocsUnknown + allocsf97e405d.Borrow(crobustBufferAccess_allocs) + + var cfullDrawIndexUint32_allocs *cgoAllocMap + reff97e405d.fullDrawIndexUint32, cfullDrawIndexUint32_allocs = (C.VkBool32)(x.FullDrawIndexUint32), cgoAllocsUnknown + allocsf97e405d.Borrow(cfullDrawIndexUint32_allocs) + + var cimageCubeArray_allocs *cgoAllocMap + reff97e405d.imageCubeArray, cimageCubeArray_allocs = (C.VkBool32)(x.ImageCubeArray), cgoAllocsUnknown + allocsf97e405d.Borrow(cimageCubeArray_allocs) + + var cindependentBlend_allocs *cgoAllocMap + reff97e405d.independentBlend, cindependentBlend_allocs = (C.VkBool32)(x.IndependentBlend), cgoAllocsUnknown + allocsf97e405d.Borrow(cindependentBlend_allocs) + + var cgeometryShader_allocs *cgoAllocMap + reff97e405d.geometryShader, cgeometryShader_allocs = (C.VkBool32)(x.GeometryShader), cgoAllocsUnknown + allocsf97e405d.Borrow(cgeometryShader_allocs) + + var ctessellationShader_allocs *cgoAllocMap + reff97e405d.tessellationShader, ctessellationShader_allocs = (C.VkBool32)(x.TessellationShader), cgoAllocsUnknown + allocsf97e405d.Borrow(ctessellationShader_allocs) + + var csampleRateShading_allocs *cgoAllocMap + reff97e405d.sampleRateShading, csampleRateShading_allocs = (C.VkBool32)(x.SampleRateShading), cgoAllocsUnknown + allocsf97e405d.Borrow(csampleRateShading_allocs) + + var cdualSrcBlend_allocs *cgoAllocMap + reff97e405d.dualSrcBlend, cdualSrcBlend_allocs = (C.VkBool32)(x.DualSrcBlend), cgoAllocsUnknown + allocsf97e405d.Borrow(cdualSrcBlend_allocs) + + var clogicOp_allocs *cgoAllocMap + reff97e405d.logicOp, clogicOp_allocs = (C.VkBool32)(x.LogicOp), cgoAllocsUnknown + allocsf97e405d.Borrow(clogicOp_allocs) + + var cmultiDrawIndirect_allocs *cgoAllocMap + reff97e405d.multiDrawIndirect, cmultiDrawIndirect_allocs = (C.VkBool32)(x.MultiDrawIndirect), cgoAllocsUnknown + allocsf97e405d.Borrow(cmultiDrawIndirect_allocs) + + var cdrawIndirectFirstInstance_allocs *cgoAllocMap + reff97e405d.drawIndirectFirstInstance, cdrawIndirectFirstInstance_allocs = (C.VkBool32)(x.DrawIndirectFirstInstance), cgoAllocsUnknown + allocsf97e405d.Borrow(cdrawIndirectFirstInstance_allocs) + + var cdepthClamp_allocs *cgoAllocMap + reff97e405d.depthClamp, cdepthClamp_allocs = (C.VkBool32)(x.DepthClamp), cgoAllocsUnknown + allocsf97e405d.Borrow(cdepthClamp_allocs) + + var cdepthBiasClamp_allocs *cgoAllocMap + reff97e405d.depthBiasClamp, cdepthBiasClamp_allocs = (C.VkBool32)(x.DepthBiasClamp), cgoAllocsUnknown + allocsf97e405d.Borrow(cdepthBiasClamp_allocs) + + var cfillModeNonSolid_allocs *cgoAllocMap + reff97e405d.fillModeNonSolid, cfillModeNonSolid_allocs = (C.VkBool32)(x.FillModeNonSolid), cgoAllocsUnknown + allocsf97e405d.Borrow(cfillModeNonSolid_allocs) + + var cdepthBounds_allocs *cgoAllocMap + reff97e405d.depthBounds, cdepthBounds_allocs = (C.VkBool32)(x.DepthBounds), cgoAllocsUnknown + allocsf97e405d.Borrow(cdepthBounds_allocs) + + var cwideLines_allocs *cgoAllocMap + reff97e405d.wideLines, cwideLines_allocs = (C.VkBool32)(x.WideLines), cgoAllocsUnknown + allocsf97e405d.Borrow(cwideLines_allocs) + + var clargePoints_allocs *cgoAllocMap + reff97e405d.largePoints, clargePoints_allocs = (C.VkBool32)(x.LargePoints), cgoAllocsUnknown + allocsf97e405d.Borrow(clargePoints_allocs) + + var calphaToOne_allocs *cgoAllocMap + reff97e405d.alphaToOne, calphaToOne_allocs = (C.VkBool32)(x.AlphaToOne), cgoAllocsUnknown + allocsf97e405d.Borrow(calphaToOne_allocs) + + var cmultiViewport_allocs *cgoAllocMap + reff97e405d.multiViewport, cmultiViewport_allocs = (C.VkBool32)(x.MultiViewport), cgoAllocsUnknown + allocsf97e405d.Borrow(cmultiViewport_allocs) + + var csamplerAnisotropy_allocs *cgoAllocMap + reff97e405d.samplerAnisotropy, csamplerAnisotropy_allocs = (C.VkBool32)(x.SamplerAnisotropy), cgoAllocsUnknown + allocsf97e405d.Borrow(csamplerAnisotropy_allocs) + + var ctextureCompressionETC2_allocs *cgoAllocMap + reff97e405d.textureCompressionETC2, ctextureCompressionETC2_allocs = (C.VkBool32)(x.TextureCompressionETC2), cgoAllocsUnknown + allocsf97e405d.Borrow(ctextureCompressionETC2_allocs) + + var ctextureCompressionASTC_LDR_allocs *cgoAllocMap + reff97e405d.textureCompressionASTC_LDR, ctextureCompressionASTC_LDR_allocs = (C.VkBool32)(x.TextureCompressionASTC_LDR), cgoAllocsUnknown + allocsf97e405d.Borrow(ctextureCompressionASTC_LDR_allocs) + + var ctextureCompressionBC_allocs *cgoAllocMap + reff97e405d.textureCompressionBC, ctextureCompressionBC_allocs = (C.VkBool32)(x.TextureCompressionBC), cgoAllocsUnknown + allocsf97e405d.Borrow(ctextureCompressionBC_allocs) + + var cocclusionQueryPrecise_allocs *cgoAllocMap + reff97e405d.occlusionQueryPrecise, cocclusionQueryPrecise_allocs = (C.VkBool32)(x.OcclusionQueryPrecise), cgoAllocsUnknown + allocsf97e405d.Borrow(cocclusionQueryPrecise_allocs) + + var cpipelineStatisticsQuery_allocs *cgoAllocMap + reff97e405d.pipelineStatisticsQuery, cpipelineStatisticsQuery_allocs = (C.VkBool32)(x.PipelineStatisticsQuery), cgoAllocsUnknown + allocsf97e405d.Borrow(cpipelineStatisticsQuery_allocs) + + var cvertexPipelineStoresAndAtomics_allocs *cgoAllocMap + reff97e405d.vertexPipelineStoresAndAtomics, cvertexPipelineStoresAndAtomics_allocs = (C.VkBool32)(x.VertexPipelineStoresAndAtomics), cgoAllocsUnknown + allocsf97e405d.Borrow(cvertexPipelineStoresAndAtomics_allocs) + + var cfragmentStoresAndAtomics_allocs *cgoAllocMap + reff97e405d.fragmentStoresAndAtomics, cfragmentStoresAndAtomics_allocs = (C.VkBool32)(x.FragmentStoresAndAtomics), cgoAllocsUnknown + allocsf97e405d.Borrow(cfragmentStoresAndAtomics_allocs) + + var cshaderTessellationAndGeometryPointSize_allocs *cgoAllocMap + reff97e405d.shaderTessellationAndGeometryPointSize, cshaderTessellationAndGeometryPointSize_allocs = (C.VkBool32)(x.ShaderTessellationAndGeometryPointSize), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderTessellationAndGeometryPointSize_allocs) + + var cshaderImageGatherExtended_allocs *cgoAllocMap + reff97e405d.shaderImageGatherExtended, cshaderImageGatherExtended_allocs = (C.VkBool32)(x.ShaderImageGatherExtended), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderImageGatherExtended_allocs) + + var cshaderStorageImageExtendedFormats_allocs *cgoAllocMap + reff97e405d.shaderStorageImageExtendedFormats, cshaderStorageImageExtendedFormats_allocs = (C.VkBool32)(x.ShaderStorageImageExtendedFormats), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderStorageImageExtendedFormats_allocs) + + var cshaderStorageImageMultisample_allocs *cgoAllocMap + reff97e405d.shaderStorageImageMultisample, cshaderStorageImageMultisample_allocs = (C.VkBool32)(x.ShaderStorageImageMultisample), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderStorageImageMultisample_allocs) + + var cshaderStorageImageReadWithoutFormat_allocs *cgoAllocMap + reff97e405d.shaderStorageImageReadWithoutFormat, cshaderStorageImageReadWithoutFormat_allocs = (C.VkBool32)(x.ShaderStorageImageReadWithoutFormat), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderStorageImageReadWithoutFormat_allocs) + + var cshaderStorageImageWriteWithoutFormat_allocs *cgoAllocMap + reff97e405d.shaderStorageImageWriteWithoutFormat, cshaderStorageImageWriteWithoutFormat_allocs = (C.VkBool32)(x.ShaderStorageImageWriteWithoutFormat), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderStorageImageWriteWithoutFormat_allocs) + + var cshaderUniformBufferArrayDynamicIndexing_allocs *cgoAllocMap + reff97e405d.shaderUniformBufferArrayDynamicIndexing, cshaderUniformBufferArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderUniformBufferArrayDynamicIndexing), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderUniformBufferArrayDynamicIndexing_allocs) + + var cshaderSampledImageArrayDynamicIndexing_allocs *cgoAllocMap + reff97e405d.shaderSampledImageArrayDynamicIndexing, cshaderSampledImageArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderSampledImageArrayDynamicIndexing), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderSampledImageArrayDynamicIndexing_allocs) + + var cshaderStorageBufferArrayDynamicIndexing_allocs *cgoAllocMap + reff97e405d.shaderStorageBufferArrayDynamicIndexing, cshaderStorageBufferArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderStorageBufferArrayDynamicIndexing), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderStorageBufferArrayDynamicIndexing_allocs) + + var cshaderStorageImageArrayDynamicIndexing_allocs *cgoAllocMap + reff97e405d.shaderStorageImageArrayDynamicIndexing, cshaderStorageImageArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderStorageImageArrayDynamicIndexing), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderStorageImageArrayDynamicIndexing_allocs) + + var cshaderClipDistance_allocs *cgoAllocMap + reff97e405d.shaderClipDistance, cshaderClipDistance_allocs = (C.VkBool32)(x.ShaderClipDistance), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderClipDistance_allocs) + + var cshaderCullDistance_allocs *cgoAllocMap + reff97e405d.shaderCullDistance, cshaderCullDistance_allocs = (C.VkBool32)(x.ShaderCullDistance), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderCullDistance_allocs) + + var cshaderFloat64_allocs *cgoAllocMap + reff97e405d.shaderFloat64, cshaderFloat64_allocs = (C.VkBool32)(x.ShaderFloat64), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderFloat64_allocs) + + var cshaderInt64_allocs *cgoAllocMap + reff97e405d.shaderInt64, cshaderInt64_allocs = (C.VkBool32)(x.ShaderInt64), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderInt64_allocs) + + var cshaderInt16_allocs *cgoAllocMap + reff97e405d.shaderInt16, cshaderInt16_allocs = (C.VkBool32)(x.ShaderInt16), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderInt16_allocs) + + var cshaderResourceResidency_allocs *cgoAllocMap + reff97e405d.shaderResourceResidency, cshaderResourceResidency_allocs = (C.VkBool32)(x.ShaderResourceResidency), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderResourceResidency_allocs) + + var cshaderResourceMinLod_allocs *cgoAllocMap + reff97e405d.shaderResourceMinLod, cshaderResourceMinLod_allocs = (C.VkBool32)(x.ShaderResourceMinLod), cgoAllocsUnknown + allocsf97e405d.Borrow(cshaderResourceMinLod_allocs) + + var csparseBinding_allocs *cgoAllocMap + reff97e405d.sparseBinding, csparseBinding_allocs = (C.VkBool32)(x.SparseBinding), cgoAllocsUnknown + allocsf97e405d.Borrow(csparseBinding_allocs) + + var csparseResidencyBuffer_allocs *cgoAllocMap + reff97e405d.sparseResidencyBuffer, csparseResidencyBuffer_allocs = (C.VkBool32)(x.SparseResidencyBuffer), cgoAllocsUnknown + allocsf97e405d.Borrow(csparseResidencyBuffer_allocs) + + var csparseResidencyImage2D_allocs *cgoAllocMap + reff97e405d.sparseResidencyImage2D, csparseResidencyImage2D_allocs = (C.VkBool32)(x.SparseResidencyImage2D), cgoAllocsUnknown + allocsf97e405d.Borrow(csparseResidencyImage2D_allocs) + + var csparseResidencyImage3D_allocs *cgoAllocMap + reff97e405d.sparseResidencyImage3D, csparseResidencyImage3D_allocs = (C.VkBool32)(x.SparseResidencyImage3D), cgoAllocsUnknown + allocsf97e405d.Borrow(csparseResidencyImage3D_allocs) + + var csparseResidency2Samples_allocs *cgoAllocMap + reff97e405d.sparseResidency2Samples, csparseResidency2Samples_allocs = (C.VkBool32)(x.SparseResidency2Samples), cgoAllocsUnknown + allocsf97e405d.Borrow(csparseResidency2Samples_allocs) + + var csparseResidency4Samples_allocs *cgoAllocMap + reff97e405d.sparseResidency4Samples, csparseResidency4Samples_allocs = (C.VkBool32)(x.SparseResidency4Samples), cgoAllocsUnknown + allocsf97e405d.Borrow(csparseResidency4Samples_allocs) + + var csparseResidency8Samples_allocs *cgoAllocMap + reff97e405d.sparseResidency8Samples, csparseResidency8Samples_allocs = (C.VkBool32)(x.SparseResidency8Samples), cgoAllocsUnknown + allocsf97e405d.Borrow(csparseResidency8Samples_allocs) + + var csparseResidency16Samples_allocs *cgoAllocMap + reff97e405d.sparseResidency16Samples, csparseResidency16Samples_allocs = (C.VkBool32)(x.SparseResidency16Samples), cgoAllocsUnknown + allocsf97e405d.Borrow(csparseResidency16Samples_allocs) + + var csparseResidencyAliased_allocs *cgoAllocMap + reff97e405d.sparseResidencyAliased, csparseResidencyAliased_allocs = (C.VkBool32)(x.SparseResidencyAliased), cgoAllocsUnknown + allocsf97e405d.Borrow(csparseResidencyAliased_allocs) + + var cvariableMultisampleRate_allocs *cgoAllocMap + reff97e405d.variableMultisampleRate, cvariableMultisampleRate_allocs = (C.VkBool32)(x.VariableMultisampleRate), cgoAllocsUnknown + allocsf97e405d.Borrow(cvariableMultisampleRate_allocs) + + var cinheritedQueries_allocs *cgoAllocMap + reff97e405d.inheritedQueries, cinheritedQueries_allocs = (C.VkBool32)(x.InheritedQueries), cgoAllocsUnknown + allocsf97e405d.Borrow(cinheritedQueries_allocs) + + x.reff97e405d = reff97e405d + x.allocsf97e405d = allocsf97e405d + return reff97e405d, allocsf97e405d + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceFeatures) PassValue() (C.VkPhysicalDeviceFeatures, *cgoAllocMap) { + if x.reff97e405d != nil { + return *x.reff97e405d, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceFeatures) Deref() { + if x.reff97e405d == nil { + return + } + x.RobustBufferAccess = (Bool32)(x.reff97e405d.robustBufferAccess) + x.FullDrawIndexUint32 = (Bool32)(x.reff97e405d.fullDrawIndexUint32) + x.ImageCubeArray = (Bool32)(x.reff97e405d.imageCubeArray) + x.IndependentBlend = (Bool32)(x.reff97e405d.independentBlend) + x.GeometryShader = (Bool32)(x.reff97e405d.geometryShader) + x.TessellationShader = (Bool32)(x.reff97e405d.tessellationShader) + x.SampleRateShading = (Bool32)(x.reff97e405d.sampleRateShading) + x.DualSrcBlend = (Bool32)(x.reff97e405d.dualSrcBlend) + x.LogicOp = (Bool32)(x.reff97e405d.logicOp) + x.MultiDrawIndirect = (Bool32)(x.reff97e405d.multiDrawIndirect) + x.DrawIndirectFirstInstance = (Bool32)(x.reff97e405d.drawIndirectFirstInstance) + x.DepthClamp = (Bool32)(x.reff97e405d.depthClamp) + x.DepthBiasClamp = (Bool32)(x.reff97e405d.depthBiasClamp) + x.FillModeNonSolid = (Bool32)(x.reff97e405d.fillModeNonSolid) + x.DepthBounds = (Bool32)(x.reff97e405d.depthBounds) + x.WideLines = (Bool32)(x.reff97e405d.wideLines) + x.LargePoints = (Bool32)(x.reff97e405d.largePoints) + x.AlphaToOne = (Bool32)(x.reff97e405d.alphaToOne) + x.MultiViewport = (Bool32)(x.reff97e405d.multiViewport) + x.SamplerAnisotropy = (Bool32)(x.reff97e405d.samplerAnisotropy) + x.TextureCompressionETC2 = (Bool32)(x.reff97e405d.textureCompressionETC2) + x.TextureCompressionASTC_LDR = (Bool32)(x.reff97e405d.textureCompressionASTC_LDR) + x.TextureCompressionBC = (Bool32)(x.reff97e405d.textureCompressionBC) + x.OcclusionQueryPrecise = (Bool32)(x.reff97e405d.occlusionQueryPrecise) + x.PipelineStatisticsQuery = (Bool32)(x.reff97e405d.pipelineStatisticsQuery) + x.VertexPipelineStoresAndAtomics = (Bool32)(x.reff97e405d.vertexPipelineStoresAndAtomics) + x.FragmentStoresAndAtomics = (Bool32)(x.reff97e405d.fragmentStoresAndAtomics) + x.ShaderTessellationAndGeometryPointSize = (Bool32)(x.reff97e405d.shaderTessellationAndGeometryPointSize) + x.ShaderImageGatherExtended = (Bool32)(x.reff97e405d.shaderImageGatherExtended) + x.ShaderStorageImageExtendedFormats = (Bool32)(x.reff97e405d.shaderStorageImageExtendedFormats) + x.ShaderStorageImageMultisample = (Bool32)(x.reff97e405d.shaderStorageImageMultisample) + x.ShaderStorageImageReadWithoutFormat = (Bool32)(x.reff97e405d.shaderStorageImageReadWithoutFormat) + x.ShaderStorageImageWriteWithoutFormat = (Bool32)(x.reff97e405d.shaderStorageImageWriteWithoutFormat) + x.ShaderUniformBufferArrayDynamicIndexing = (Bool32)(x.reff97e405d.shaderUniformBufferArrayDynamicIndexing) + x.ShaderSampledImageArrayDynamicIndexing = (Bool32)(x.reff97e405d.shaderSampledImageArrayDynamicIndexing) + x.ShaderStorageBufferArrayDynamicIndexing = (Bool32)(x.reff97e405d.shaderStorageBufferArrayDynamicIndexing) + x.ShaderStorageImageArrayDynamicIndexing = (Bool32)(x.reff97e405d.shaderStorageImageArrayDynamicIndexing) + x.ShaderClipDistance = (Bool32)(x.reff97e405d.shaderClipDistance) + x.ShaderCullDistance = (Bool32)(x.reff97e405d.shaderCullDistance) + x.ShaderFloat64 = (Bool32)(x.reff97e405d.shaderFloat64) + x.ShaderInt64 = (Bool32)(x.reff97e405d.shaderInt64) + x.ShaderInt16 = (Bool32)(x.reff97e405d.shaderInt16) + x.ShaderResourceResidency = (Bool32)(x.reff97e405d.shaderResourceResidency) + x.ShaderResourceMinLod = (Bool32)(x.reff97e405d.shaderResourceMinLod) + x.SparseBinding = (Bool32)(x.reff97e405d.sparseBinding) + x.SparseResidencyBuffer = (Bool32)(x.reff97e405d.sparseResidencyBuffer) + x.SparseResidencyImage2D = (Bool32)(x.reff97e405d.sparseResidencyImage2D) + x.SparseResidencyImage3D = (Bool32)(x.reff97e405d.sparseResidencyImage3D) + x.SparseResidency2Samples = (Bool32)(x.reff97e405d.sparseResidency2Samples) + x.SparseResidency4Samples = (Bool32)(x.reff97e405d.sparseResidency4Samples) + x.SparseResidency8Samples = (Bool32)(x.reff97e405d.sparseResidency8Samples) + x.SparseResidency16Samples = (Bool32)(x.reff97e405d.sparseResidency16Samples) + x.SparseResidencyAliased = (Bool32)(x.reff97e405d.sparseResidencyAliased) + x.VariableMultisampleRate = (Bool32)(x.reff97e405d.variableMultisampleRate) + x.InheritedQueries = (Bool32)(x.reff97e405d.inheritedQueries) +} + +// allocPhysicalDeviceLimitsMemory allocates memory for type C.VkPhysicalDeviceLimits in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceLimitsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLimitsValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceLimitsValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLimits{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceLimits) Ref() *C.VkPhysicalDeviceLimits { + if x == nil { + return nil + } + return x.ref7926795a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceLimits) Free() { + if x != nil && x.allocs7926795a != nil { + x.allocs7926795a.(*cgoAllocMap).Free() + x.ref7926795a = nil + } +} + +// NewPhysicalDeviceLimitsRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceLimitsRef(ref unsafe.Pointer) *PhysicalDeviceLimits { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceLimits) + obj.ref7926795a = (*C.VkPhysicalDeviceLimits)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceLimits) PassRef() (*C.VkPhysicalDeviceLimits, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref7926795a != nil { + return x.ref7926795a, nil + } + mem7926795a := allocPhysicalDeviceLimitsMemory(1) + ref7926795a := (*C.VkPhysicalDeviceLimits)(mem7926795a) + allocs7926795a := new(cgoAllocMap) + allocs7926795a.Add(mem7926795a) + + var cmaxImageDimension1D_allocs *cgoAllocMap + ref7926795a.maxImageDimension1D, cmaxImageDimension1D_allocs = (C.uint32_t)(x.MaxImageDimension1D), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxImageDimension1D_allocs) + + var cmaxImageDimension2D_allocs *cgoAllocMap + ref7926795a.maxImageDimension2D, cmaxImageDimension2D_allocs = (C.uint32_t)(x.MaxImageDimension2D), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxImageDimension2D_allocs) + + var cmaxImageDimension3D_allocs *cgoAllocMap + ref7926795a.maxImageDimension3D, cmaxImageDimension3D_allocs = (C.uint32_t)(x.MaxImageDimension3D), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxImageDimension3D_allocs) + + var cmaxImageDimensionCube_allocs *cgoAllocMap + ref7926795a.maxImageDimensionCube, cmaxImageDimensionCube_allocs = (C.uint32_t)(x.MaxImageDimensionCube), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxImageDimensionCube_allocs) + + var cmaxImageArrayLayers_allocs *cgoAllocMap + ref7926795a.maxImageArrayLayers, cmaxImageArrayLayers_allocs = (C.uint32_t)(x.MaxImageArrayLayers), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxImageArrayLayers_allocs) + + var cmaxTexelBufferElements_allocs *cgoAllocMap + ref7926795a.maxTexelBufferElements, cmaxTexelBufferElements_allocs = (C.uint32_t)(x.MaxTexelBufferElements), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTexelBufferElements_allocs) + + var cmaxUniformBufferRange_allocs *cgoAllocMap + ref7926795a.maxUniformBufferRange, cmaxUniformBufferRange_allocs = (C.uint32_t)(x.MaxUniformBufferRange), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxUniformBufferRange_allocs) + + var cmaxStorageBufferRange_allocs *cgoAllocMap + ref7926795a.maxStorageBufferRange, cmaxStorageBufferRange_allocs = (C.uint32_t)(x.MaxStorageBufferRange), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxStorageBufferRange_allocs) + + var cmaxPushConstantsSize_allocs *cgoAllocMap + ref7926795a.maxPushConstantsSize, cmaxPushConstantsSize_allocs = (C.uint32_t)(x.MaxPushConstantsSize), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxPushConstantsSize_allocs) + + var cmaxMemoryAllocationCount_allocs *cgoAllocMap + ref7926795a.maxMemoryAllocationCount, cmaxMemoryAllocationCount_allocs = (C.uint32_t)(x.MaxMemoryAllocationCount), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxMemoryAllocationCount_allocs) + + var cmaxSamplerAllocationCount_allocs *cgoAllocMap + ref7926795a.maxSamplerAllocationCount, cmaxSamplerAllocationCount_allocs = (C.uint32_t)(x.MaxSamplerAllocationCount), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxSamplerAllocationCount_allocs) + + var cbufferImageGranularity_allocs *cgoAllocMap + ref7926795a.bufferImageGranularity, cbufferImageGranularity_allocs = (C.VkDeviceSize)(x.BufferImageGranularity), cgoAllocsUnknown + allocs7926795a.Borrow(cbufferImageGranularity_allocs) + + var csparseAddressSpaceSize_allocs *cgoAllocMap + ref7926795a.sparseAddressSpaceSize, csparseAddressSpaceSize_allocs = (C.VkDeviceSize)(x.SparseAddressSpaceSize), cgoAllocsUnknown + allocs7926795a.Borrow(csparseAddressSpaceSize_allocs) + + var cmaxBoundDescriptorSets_allocs *cgoAllocMap + ref7926795a.maxBoundDescriptorSets, cmaxBoundDescriptorSets_allocs = (C.uint32_t)(x.MaxBoundDescriptorSets), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxBoundDescriptorSets_allocs) + + var cmaxPerStageDescriptorSamplers_allocs *cgoAllocMap + ref7926795a.maxPerStageDescriptorSamplers, cmaxPerStageDescriptorSamplers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorSamplers), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxPerStageDescriptorSamplers_allocs) + + var cmaxPerStageDescriptorUniformBuffers_allocs *cgoAllocMap + ref7926795a.maxPerStageDescriptorUniformBuffers, cmaxPerStageDescriptorUniformBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUniformBuffers), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxPerStageDescriptorUniformBuffers_allocs) + + var cmaxPerStageDescriptorStorageBuffers_allocs *cgoAllocMap + ref7926795a.maxPerStageDescriptorStorageBuffers, cmaxPerStageDescriptorStorageBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorStorageBuffers), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxPerStageDescriptorStorageBuffers_allocs) + + var cmaxPerStageDescriptorSampledImages_allocs *cgoAllocMap + ref7926795a.maxPerStageDescriptorSampledImages, cmaxPerStageDescriptorSampledImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorSampledImages), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxPerStageDescriptorSampledImages_allocs) + + var cmaxPerStageDescriptorStorageImages_allocs *cgoAllocMap + ref7926795a.maxPerStageDescriptorStorageImages, cmaxPerStageDescriptorStorageImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorStorageImages), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxPerStageDescriptorStorageImages_allocs) + + var cmaxPerStageDescriptorInputAttachments_allocs *cgoAllocMap + ref7926795a.maxPerStageDescriptorInputAttachments, cmaxPerStageDescriptorInputAttachments_allocs = (C.uint32_t)(x.MaxPerStageDescriptorInputAttachments), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxPerStageDescriptorInputAttachments_allocs) + + var cmaxPerStageResources_allocs *cgoAllocMap + ref7926795a.maxPerStageResources, cmaxPerStageResources_allocs = (C.uint32_t)(x.MaxPerStageResources), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxPerStageResources_allocs) + + var cmaxDescriptorSetSamplers_allocs *cgoAllocMap + ref7926795a.maxDescriptorSetSamplers, cmaxDescriptorSetSamplers_allocs = (C.uint32_t)(x.MaxDescriptorSetSamplers), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxDescriptorSetSamplers_allocs) + + var cmaxDescriptorSetUniformBuffers_allocs *cgoAllocMap + ref7926795a.maxDescriptorSetUniformBuffers, cmaxDescriptorSetUniformBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetUniformBuffers), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxDescriptorSetUniformBuffers_allocs) + + var cmaxDescriptorSetUniformBuffersDynamic_allocs *cgoAllocMap + ref7926795a.maxDescriptorSetUniformBuffersDynamic, cmaxDescriptorSetUniformBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetUniformBuffersDynamic), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxDescriptorSetUniformBuffersDynamic_allocs) + + var cmaxDescriptorSetStorageBuffers_allocs *cgoAllocMap + ref7926795a.maxDescriptorSetStorageBuffers, cmaxDescriptorSetStorageBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetStorageBuffers), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxDescriptorSetStorageBuffers_allocs) + + var cmaxDescriptorSetStorageBuffersDynamic_allocs *cgoAllocMap + ref7926795a.maxDescriptorSetStorageBuffersDynamic, cmaxDescriptorSetStorageBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetStorageBuffersDynamic), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxDescriptorSetStorageBuffersDynamic_allocs) + + var cmaxDescriptorSetSampledImages_allocs *cgoAllocMap + ref7926795a.maxDescriptorSetSampledImages, cmaxDescriptorSetSampledImages_allocs = (C.uint32_t)(x.MaxDescriptorSetSampledImages), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxDescriptorSetSampledImages_allocs) + + var cmaxDescriptorSetStorageImages_allocs *cgoAllocMap + ref7926795a.maxDescriptorSetStorageImages, cmaxDescriptorSetStorageImages_allocs = (C.uint32_t)(x.MaxDescriptorSetStorageImages), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxDescriptorSetStorageImages_allocs) + + var cmaxDescriptorSetInputAttachments_allocs *cgoAllocMap + ref7926795a.maxDescriptorSetInputAttachments, cmaxDescriptorSetInputAttachments_allocs = (C.uint32_t)(x.MaxDescriptorSetInputAttachments), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxDescriptorSetInputAttachments_allocs) + + var cmaxVertexInputAttributes_allocs *cgoAllocMap + ref7926795a.maxVertexInputAttributes, cmaxVertexInputAttributes_allocs = (C.uint32_t)(x.MaxVertexInputAttributes), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxVertexInputAttributes_allocs) + + var cmaxVertexInputBindings_allocs *cgoAllocMap + ref7926795a.maxVertexInputBindings, cmaxVertexInputBindings_allocs = (C.uint32_t)(x.MaxVertexInputBindings), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxVertexInputBindings_allocs) + + var cmaxVertexInputAttributeOffset_allocs *cgoAllocMap + ref7926795a.maxVertexInputAttributeOffset, cmaxVertexInputAttributeOffset_allocs = (C.uint32_t)(x.MaxVertexInputAttributeOffset), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxVertexInputAttributeOffset_allocs) + + var cmaxVertexInputBindingStride_allocs *cgoAllocMap + ref7926795a.maxVertexInputBindingStride, cmaxVertexInputBindingStride_allocs = (C.uint32_t)(x.MaxVertexInputBindingStride), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxVertexInputBindingStride_allocs) + + var cmaxVertexOutputComponents_allocs *cgoAllocMap + ref7926795a.maxVertexOutputComponents, cmaxVertexOutputComponents_allocs = (C.uint32_t)(x.MaxVertexOutputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxVertexOutputComponents_allocs) + + var cmaxTessellationGenerationLevel_allocs *cgoAllocMap + ref7926795a.maxTessellationGenerationLevel, cmaxTessellationGenerationLevel_allocs = (C.uint32_t)(x.MaxTessellationGenerationLevel), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTessellationGenerationLevel_allocs) + + var cmaxTessellationPatchSize_allocs *cgoAllocMap + ref7926795a.maxTessellationPatchSize, cmaxTessellationPatchSize_allocs = (C.uint32_t)(x.MaxTessellationPatchSize), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTessellationPatchSize_allocs) + + var cmaxTessellationControlPerVertexInputComponents_allocs *cgoAllocMap + ref7926795a.maxTessellationControlPerVertexInputComponents, cmaxTessellationControlPerVertexInputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlPerVertexInputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTessellationControlPerVertexInputComponents_allocs) + + var cmaxTessellationControlPerVertexOutputComponents_allocs *cgoAllocMap + ref7926795a.maxTessellationControlPerVertexOutputComponents, cmaxTessellationControlPerVertexOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlPerVertexOutputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTessellationControlPerVertexOutputComponents_allocs) + + var cmaxTessellationControlPerPatchOutputComponents_allocs *cgoAllocMap + ref7926795a.maxTessellationControlPerPatchOutputComponents, cmaxTessellationControlPerPatchOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlPerPatchOutputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTessellationControlPerPatchOutputComponents_allocs) + + var cmaxTessellationControlTotalOutputComponents_allocs *cgoAllocMap + ref7926795a.maxTessellationControlTotalOutputComponents, cmaxTessellationControlTotalOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlTotalOutputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTessellationControlTotalOutputComponents_allocs) + + var cmaxTessellationEvaluationInputComponents_allocs *cgoAllocMap + ref7926795a.maxTessellationEvaluationInputComponents, cmaxTessellationEvaluationInputComponents_allocs = (C.uint32_t)(x.MaxTessellationEvaluationInputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTessellationEvaluationInputComponents_allocs) + + var cmaxTessellationEvaluationOutputComponents_allocs *cgoAllocMap + ref7926795a.maxTessellationEvaluationOutputComponents, cmaxTessellationEvaluationOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationEvaluationOutputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTessellationEvaluationOutputComponents_allocs) + + var cmaxGeometryShaderInvocations_allocs *cgoAllocMap + ref7926795a.maxGeometryShaderInvocations, cmaxGeometryShaderInvocations_allocs = (C.uint32_t)(x.MaxGeometryShaderInvocations), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxGeometryShaderInvocations_allocs) + + var cmaxGeometryInputComponents_allocs *cgoAllocMap + ref7926795a.maxGeometryInputComponents, cmaxGeometryInputComponents_allocs = (C.uint32_t)(x.MaxGeometryInputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxGeometryInputComponents_allocs) + + var cmaxGeometryOutputComponents_allocs *cgoAllocMap + ref7926795a.maxGeometryOutputComponents, cmaxGeometryOutputComponents_allocs = (C.uint32_t)(x.MaxGeometryOutputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxGeometryOutputComponents_allocs) + + var cmaxGeometryOutputVertices_allocs *cgoAllocMap + ref7926795a.maxGeometryOutputVertices, cmaxGeometryOutputVertices_allocs = (C.uint32_t)(x.MaxGeometryOutputVertices), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxGeometryOutputVertices_allocs) + + var cmaxGeometryTotalOutputComponents_allocs *cgoAllocMap + ref7926795a.maxGeometryTotalOutputComponents, cmaxGeometryTotalOutputComponents_allocs = (C.uint32_t)(x.MaxGeometryTotalOutputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxGeometryTotalOutputComponents_allocs) + + var cmaxFragmentInputComponents_allocs *cgoAllocMap + ref7926795a.maxFragmentInputComponents, cmaxFragmentInputComponents_allocs = (C.uint32_t)(x.MaxFragmentInputComponents), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxFragmentInputComponents_allocs) + + var cmaxFragmentOutputAttachments_allocs *cgoAllocMap + ref7926795a.maxFragmentOutputAttachments, cmaxFragmentOutputAttachments_allocs = (C.uint32_t)(x.MaxFragmentOutputAttachments), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxFragmentOutputAttachments_allocs) + + var cmaxFragmentDualSrcAttachments_allocs *cgoAllocMap + ref7926795a.maxFragmentDualSrcAttachments, cmaxFragmentDualSrcAttachments_allocs = (C.uint32_t)(x.MaxFragmentDualSrcAttachments), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxFragmentDualSrcAttachments_allocs) + + var cmaxFragmentCombinedOutputResources_allocs *cgoAllocMap + ref7926795a.maxFragmentCombinedOutputResources, cmaxFragmentCombinedOutputResources_allocs = (C.uint32_t)(x.MaxFragmentCombinedOutputResources), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxFragmentCombinedOutputResources_allocs) + + var cmaxComputeSharedMemorySize_allocs *cgoAllocMap + ref7926795a.maxComputeSharedMemorySize, cmaxComputeSharedMemorySize_allocs = (C.uint32_t)(x.MaxComputeSharedMemorySize), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxComputeSharedMemorySize_allocs) + + var cmaxComputeWorkGroupCount_allocs *cgoAllocMap + ref7926795a.maxComputeWorkGroupCount, cmaxComputeWorkGroupCount_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.MaxComputeWorkGroupCount)), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxComputeWorkGroupCount_allocs) + + var cmaxComputeWorkGroupInvocations_allocs *cgoAllocMap + ref7926795a.maxComputeWorkGroupInvocations, cmaxComputeWorkGroupInvocations_allocs = (C.uint32_t)(x.MaxComputeWorkGroupInvocations), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxComputeWorkGroupInvocations_allocs) + + var cmaxComputeWorkGroupSize_allocs *cgoAllocMap + ref7926795a.maxComputeWorkGroupSize, cmaxComputeWorkGroupSize_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.MaxComputeWorkGroupSize)), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxComputeWorkGroupSize_allocs) + + var csubPixelPrecisionBits_allocs *cgoAllocMap + ref7926795a.subPixelPrecisionBits, csubPixelPrecisionBits_allocs = (C.uint32_t)(x.SubPixelPrecisionBits), cgoAllocsUnknown + allocs7926795a.Borrow(csubPixelPrecisionBits_allocs) + + var csubTexelPrecisionBits_allocs *cgoAllocMap + ref7926795a.subTexelPrecisionBits, csubTexelPrecisionBits_allocs = (C.uint32_t)(x.SubTexelPrecisionBits), cgoAllocsUnknown + allocs7926795a.Borrow(csubTexelPrecisionBits_allocs) + + var cmipmapPrecisionBits_allocs *cgoAllocMap + ref7926795a.mipmapPrecisionBits, cmipmapPrecisionBits_allocs = (C.uint32_t)(x.MipmapPrecisionBits), cgoAllocsUnknown + allocs7926795a.Borrow(cmipmapPrecisionBits_allocs) + + var cmaxDrawIndexedIndexValue_allocs *cgoAllocMap + ref7926795a.maxDrawIndexedIndexValue, cmaxDrawIndexedIndexValue_allocs = (C.uint32_t)(x.MaxDrawIndexedIndexValue), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxDrawIndexedIndexValue_allocs) + + var cmaxDrawIndirectCount_allocs *cgoAllocMap + ref7926795a.maxDrawIndirectCount, cmaxDrawIndirectCount_allocs = (C.uint32_t)(x.MaxDrawIndirectCount), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxDrawIndirectCount_allocs) + + var cmaxSamplerLodBias_allocs *cgoAllocMap + ref7926795a.maxSamplerLodBias, cmaxSamplerLodBias_allocs = (C.float)(x.MaxSamplerLodBias), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxSamplerLodBias_allocs) + + var cmaxSamplerAnisotropy_allocs *cgoAllocMap + ref7926795a.maxSamplerAnisotropy, cmaxSamplerAnisotropy_allocs = (C.float)(x.MaxSamplerAnisotropy), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxSamplerAnisotropy_allocs) + + var cmaxViewports_allocs *cgoAllocMap + ref7926795a.maxViewports, cmaxViewports_allocs = (C.uint32_t)(x.MaxViewports), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxViewports_allocs) + + var cmaxViewportDimensions_allocs *cgoAllocMap + ref7926795a.maxViewportDimensions, cmaxViewportDimensions_allocs = *(*[2]C.uint32_t)(unsafe.Pointer(&x.MaxViewportDimensions)), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxViewportDimensions_allocs) + + var cviewportBoundsRange_allocs *cgoAllocMap + ref7926795a.viewportBoundsRange, cviewportBoundsRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.ViewportBoundsRange)), cgoAllocsUnknown + allocs7926795a.Borrow(cviewportBoundsRange_allocs) + + var cviewportSubPixelBits_allocs *cgoAllocMap + ref7926795a.viewportSubPixelBits, cviewportSubPixelBits_allocs = (C.uint32_t)(x.ViewportSubPixelBits), cgoAllocsUnknown + allocs7926795a.Borrow(cviewportSubPixelBits_allocs) + + var cminMemoryMapAlignment_allocs *cgoAllocMap + ref7926795a.minMemoryMapAlignment, cminMemoryMapAlignment_allocs = (C.size_t)(x.MinMemoryMapAlignment), cgoAllocsUnknown + allocs7926795a.Borrow(cminMemoryMapAlignment_allocs) + + var cminTexelBufferOffsetAlignment_allocs *cgoAllocMap + ref7926795a.minTexelBufferOffsetAlignment, cminTexelBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.MinTexelBufferOffsetAlignment), cgoAllocsUnknown + allocs7926795a.Borrow(cminTexelBufferOffsetAlignment_allocs) + + var cminUniformBufferOffsetAlignment_allocs *cgoAllocMap + ref7926795a.minUniformBufferOffsetAlignment, cminUniformBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.MinUniformBufferOffsetAlignment), cgoAllocsUnknown + allocs7926795a.Borrow(cminUniformBufferOffsetAlignment_allocs) + + var cminStorageBufferOffsetAlignment_allocs *cgoAllocMap + ref7926795a.minStorageBufferOffsetAlignment, cminStorageBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.MinStorageBufferOffsetAlignment), cgoAllocsUnknown + allocs7926795a.Borrow(cminStorageBufferOffsetAlignment_allocs) + + var cminTexelOffset_allocs *cgoAllocMap + ref7926795a.minTexelOffset, cminTexelOffset_allocs = (C.int32_t)(x.MinTexelOffset), cgoAllocsUnknown + allocs7926795a.Borrow(cminTexelOffset_allocs) + + var cmaxTexelOffset_allocs *cgoAllocMap + ref7926795a.maxTexelOffset, cmaxTexelOffset_allocs = (C.uint32_t)(x.MaxTexelOffset), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTexelOffset_allocs) + + var cminTexelGatherOffset_allocs *cgoAllocMap + ref7926795a.minTexelGatherOffset, cminTexelGatherOffset_allocs = (C.int32_t)(x.MinTexelGatherOffset), cgoAllocsUnknown + allocs7926795a.Borrow(cminTexelGatherOffset_allocs) + + var cmaxTexelGatherOffset_allocs *cgoAllocMap + ref7926795a.maxTexelGatherOffset, cmaxTexelGatherOffset_allocs = (C.uint32_t)(x.MaxTexelGatherOffset), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxTexelGatherOffset_allocs) + + var cminInterpolationOffset_allocs *cgoAllocMap + ref7926795a.minInterpolationOffset, cminInterpolationOffset_allocs = (C.float)(x.MinInterpolationOffset), cgoAllocsUnknown + allocs7926795a.Borrow(cminInterpolationOffset_allocs) + + var cmaxInterpolationOffset_allocs *cgoAllocMap + ref7926795a.maxInterpolationOffset, cmaxInterpolationOffset_allocs = (C.float)(x.MaxInterpolationOffset), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxInterpolationOffset_allocs) + + var csubPixelInterpolationOffsetBits_allocs *cgoAllocMap + ref7926795a.subPixelInterpolationOffsetBits, csubPixelInterpolationOffsetBits_allocs = (C.uint32_t)(x.SubPixelInterpolationOffsetBits), cgoAllocsUnknown + allocs7926795a.Borrow(csubPixelInterpolationOffsetBits_allocs) + + var cmaxFramebufferWidth_allocs *cgoAllocMap + ref7926795a.maxFramebufferWidth, cmaxFramebufferWidth_allocs = (C.uint32_t)(x.MaxFramebufferWidth), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxFramebufferWidth_allocs) + + var cmaxFramebufferHeight_allocs *cgoAllocMap + ref7926795a.maxFramebufferHeight, cmaxFramebufferHeight_allocs = (C.uint32_t)(x.MaxFramebufferHeight), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxFramebufferHeight_allocs) + + var cmaxFramebufferLayers_allocs *cgoAllocMap + ref7926795a.maxFramebufferLayers, cmaxFramebufferLayers_allocs = (C.uint32_t)(x.MaxFramebufferLayers), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxFramebufferLayers_allocs) + + var cframebufferColorSampleCounts_allocs *cgoAllocMap + ref7926795a.framebufferColorSampleCounts, cframebufferColorSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferColorSampleCounts), cgoAllocsUnknown + allocs7926795a.Borrow(cframebufferColorSampleCounts_allocs) + + var cframebufferDepthSampleCounts_allocs *cgoAllocMap + ref7926795a.framebufferDepthSampleCounts, cframebufferDepthSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferDepthSampleCounts), cgoAllocsUnknown + allocs7926795a.Borrow(cframebufferDepthSampleCounts_allocs) + + var cframebufferStencilSampleCounts_allocs *cgoAllocMap + ref7926795a.framebufferStencilSampleCounts, cframebufferStencilSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferStencilSampleCounts), cgoAllocsUnknown + allocs7926795a.Borrow(cframebufferStencilSampleCounts_allocs) + + var cframebufferNoAttachmentsSampleCounts_allocs *cgoAllocMap + ref7926795a.framebufferNoAttachmentsSampleCounts, cframebufferNoAttachmentsSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferNoAttachmentsSampleCounts), cgoAllocsUnknown + allocs7926795a.Borrow(cframebufferNoAttachmentsSampleCounts_allocs) + + var cmaxColorAttachments_allocs *cgoAllocMap + ref7926795a.maxColorAttachments, cmaxColorAttachments_allocs = (C.uint32_t)(x.MaxColorAttachments), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxColorAttachments_allocs) + + var csampledImageColorSampleCounts_allocs *cgoAllocMap + ref7926795a.sampledImageColorSampleCounts, csampledImageColorSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageColorSampleCounts), cgoAllocsUnknown + allocs7926795a.Borrow(csampledImageColorSampleCounts_allocs) + + var csampledImageIntegerSampleCounts_allocs *cgoAllocMap + ref7926795a.sampledImageIntegerSampleCounts, csampledImageIntegerSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageIntegerSampleCounts), cgoAllocsUnknown + allocs7926795a.Borrow(csampledImageIntegerSampleCounts_allocs) + + var csampledImageDepthSampleCounts_allocs *cgoAllocMap + ref7926795a.sampledImageDepthSampleCounts, csampledImageDepthSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageDepthSampleCounts), cgoAllocsUnknown + allocs7926795a.Borrow(csampledImageDepthSampleCounts_allocs) + + var csampledImageStencilSampleCounts_allocs *cgoAllocMap + ref7926795a.sampledImageStencilSampleCounts, csampledImageStencilSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageStencilSampleCounts), cgoAllocsUnknown + allocs7926795a.Borrow(csampledImageStencilSampleCounts_allocs) + + var cstorageImageSampleCounts_allocs *cgoAllocMap + ref7926795a.storageImageSampleCounts, cstorageImageSampleCounts_allocs = (C.VkSampleCountFlags)(x.StorageImageSampleCounts), cgoAllocsUnknown + allocs7926795a.Borrow(cstorageImageSampleCounts_allocs) + + var cmaxSampleMaskWords_allocs *cgoAllocMap + ref7926795a.maxSampleMaskWords, cmaxSampleMaskWords_allocs = (C.uint32_t)(x.MaxSampleMaskWords), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxSampleMaskWords_allocs) + + var ctimestampComputeAndGraphics_allocs *cgoAllocMap + ref7926795a.timestampComputeAndGraphics, ctimestampComputeAndGraphics_allocs = (C.VkBool32)(x.TimestampComputeAndGraphics), cgoAllocsUnknown + allocs7926795a.Borrow(ctimestampComputeAndGraphics_allocs) + + var ctimestampPeriod_allocs *cgoAllocMap + ref7926795a.timestampPeriod, ctimestampPeriod_allocs = (C.float)(x.TimestampPeriod), cgoAllocsUnknown + allocs7926795a.Borrow(ctimestampPeriod_allocs) + + var cmaxClipDistances_allocs *cgoAllocMap + ref7926795a.maxClipDistances, cmaxClipDistances_allocs = (C.uint32_t)(x.MaxClipDistances), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxClipDistances_allocs) + + var cmaxCullDistances_allocs *cgoAllocMap + ref7926795a.maxCullDistances, cmaxCullDistances_allocs = (C.uint32_t)(x.MaxCullDistances), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxCullDistances_allocs) + + var cmaxCombinedClipAndCullDistances_allocs *cgoAllocMap + ref7926795a.maxCombinedClipAndCullDistances, cmaxCombinedClipAndCullDistances_allocs = (C.uint32_t)(x.MaxCombinedClipAndCullDistances), cgoAllocsUnknown + allocs7926795a.Borrow(cmaxCombinedClipAndCullDistances_allocs) + + var cdiscreteQueuePriorities_allocs *cgoAllocMap + ref7926795a.discreteQueuePriorities, cdiscreteQueuePriorities_allocs = (C.uint32_t)(x.DiscreteQueuePriorities), cgoAllocsUnknown + allocs7926795a.Borrow(cdiscreteQueuePriorities_allocs) + + var cpointSizeRange_allocs *cgoAllocMap + ref7926795a.pointSizeRange, cpointSizeRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.PointSizeRange)), cgoAllocsUnknown + allocs7926795a.Borrow(cpointSizeRange_allocs) + + var clineWidthRange_allocs *cgoAllocMap + ref7926795a.lineWidthRange, clineWidthRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.LineWidthRange)), cgoAllocsUnknown + allocs7926795a.Borrow(clineWidthRange_allocs) + + var cpointSizeGranularity_allocs *cgoAllocMap + ref7926795a.pointSizeGranularity, cpointSizeGranularity_allocs = (C.float)(x.PointSizeGranularity), cgoAllocsUnknown + allocs7926795a.Borrow(cpointSizeGranularity_allocs) + + var clineWidthGranularity_allocs *cgoAllocMap + ref7926795a.lineWidthGranularity, clineWidthGranularity_allocs = (C.float)(x.LineWidthGranularity), cgoAllocsUnknown + allocs7926795a.Borrow(clineWidthGranularity_allocs) + + var cstrictLines_allocs *cgoAllocMap + ref7926795a.strictLines, cstrictLines_allocs = (C.VkBool32)(x.StrictLines), cgoAllocsUnknown + allocs7926795a.Borrow(cstrictLines_allocs) + + var cstandardSampleLocations_allocs *cgoAllocMap + ref7926795a.standardSampleLocations, cstandardSampleLocations_allocs = (C.VkBool32)(x.StandardSampleLocations), cgoAllocsUnknown + allocs7926795a.Borrow(cstandardSampleLocations_allocs) + + var coptimalBufferCopyOffsetAlignment_allocs *cgoAllocMap + ref7926795a.optimalBufferCopyOffsetAlignment, coptimalBufferCopyOffsetAlignment_allocs = (C.VkDeviceSize)(x.OptimalBufferCopyOffsetAlignment), cgoAllocsUnknown + allocs7926795a.Borrow(coptimalBufferCopyOffsetAlignment_allocs) + + var coptimalBufferCopyRowPitchAlignment_allocs *cgoAllocMap + ref7926795a.optimalBufferCopyRowPitchAlignment, coptimalBufferCopyRowPitchAlignment_allocs = (C.VkDeviceSize)(x.OptimalBufferCopyRowPitchAlignment), cgoAllocsUnknown + allocs7926795a.Borrow(coptimalBufferCopyRowPitchAlignment_allocs) + + var cnonCoherentAtomSize_allocs *cgoAllocMap + ref7926795a.nonCoherentAtomSize, cnonCoherentAtomSize_allocs = (C.VkDeviceSize)(x.NonCoherentAtomSize), cgoAllocsUnknown + allocs7926795a.Borrow(cnonCoherentAtomSize_allocs) + + x.ref7926795a = ref7926795a + x.allocs7926795a = allocs7926795a + return ref7926795a, allocs7926795a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceLimits) PassValue() (C.VkPhysicalDeviceLimits, *cgoAllocMap) { + if x.ref7926795a != nil { + return *x.ref7926795a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceLimits) Deref() { + if x.ref7926795a == nil { + return + } + x.MaxImageDimension1D = (uint32)(x.ref7926795a.maxImageDimension1D) + x.MaxImageDimension2D = (uint32)(x.ref7926795a.maxImageDimension2D) + x.MaxImageDimension3D = (uint32)(x.ref7926795a.maxImageDimension3D) + x.MaxImageDimensionCube = (uint32)(x.ref7926795a.maxImageDimensionCube) + x.MaxImageArrayLayers = (uint32)(x.ref7926795a.maxImageArrayLayers) + x.MaxTexelBufferElements = (uint32)(x.ref7926795a.maxTexelBufferElements) + x.MaxUniformBufferRange = (uint32)(x.ref7926795a.maxUniformBufferRange) + x.MaxStorageBufferRange = (uint32)(x.ref7926795a.maxStorageBufferRange) + x.MaxPushConstantsSize = (uint32)(x.ref7926795a.maxPushConstantsSize) + x.MaxMemoryAllocationCount = (uint32)(x.ref7926795a.maxMemoryAllocationCount) + x.MaxSamplerAllocationCount = (uint32)(x.ref7926795a.maxSamplerAllocationCount) + x.BufferImageGranularity = (DeviceSize)(x.ref7926795a.bufferImageGranularity) + x.SparseAddressSpaceSize = (DeviceSize)(x.ref7926795a.sparseAddressSpaceSize) + x.MaxBoundDescriptorSets = (uint32)(x.ref7926795a.maxBoundDescriptorSets) + x.MaxPerStageDescriptorSamplers = (uint32)(x.ref7926795a.maxPerStageDescriptorSamplers) + x.MaxPerStageDescriptorUniformBuffers = (uint32)(x.ref7926795a.maxPerStageDescriptorUniformBuffers) + x.MaxPerStageDescriptorStorageBuffers = (uint32)(x.ref7926795a.maxPerStageDescriptorStorageBuffers) + x.MaxPerStageDescriptorSampledImages = (uint32)(x.ref7926795a.maxPerStageDescriptorSampledImages) + x.MaxPerStageDescriptorStorageImages = (uint32)(x.ref7926795a.maxPerStageDescriptorStorageImages) + x.MaxPerStageDescriptorInputAttachments = (uint32)(x.ref7926795a.maxPerStageDescriptorInputAttachments) + x.MaxPerStageResources = (uint32)(x.ref7926795a.maxPerStageResources) + x.MaxDescriptorSetSamplers = (uint32)(x.ref7926795a.maxDescriptorSetSamplers) + x.MaxDescriptorSetUniformBuffers = (uint32)(x.ref7926795a.maxDescriptorSetUniformBuffers) + x.MaxDescriptorSetUniformBuffersDynamic = (uint32)(x.ref7926795a.maxDescriptorSetUniformBuffersDynamic) + x.MaxDescriptorSetStorageBuffers = (uint32)(x.ref7926795a.maxDescriptorSetStorageBuffers) + x.MaxDescriptorSetStorageBuffersDynamic = (uint32)(x.ref7926795a.maxDescriptorSetStorageBuffersDynamic) + x.MaxDescriptorSetSampledImages = (uint32)(x.ref7926795a.maxDescriptorSetSampledImages) + x.MaxDescriptorSetStorageImages = (uint32)(x.ref7926795a.maxDescriptorSetStorageImages) + x.MaxDescriptorSetInputAttachments = (uint32)(x.ref7926795a.maxDescriptorSetInputAttachments) + x.MaxVertexInputAttributes = (uint32)(x.ref7926795a.maxVertexInputAttributes) + x.MaxVertexInputBindings = (uint32)(x.ref7926795a.maxVertexInputBindings) + x.MaxVertexInputAttributeOffset = (uint32)(x.ref7926795a.maxVertexInputAttributeOffset) + x.MaxVertexInputBindingStride = (uint32)(x.ref7926795a.maxVertexInputBindingStride) + x.MaxVertexOutputComponents = (uint32)(x.ref7926795a.maxVertexOutputComponents) + x.MaxTessellationGenerationLevel = (uint32)(x.ref7926795a.maxTessellationGenerationLevel) + x.MaxTessellationPatchSize = (uint32)(x.ref7926795a.maxTessellationPatchSize) + x.MaxTessellationControlPerVertexInputComponents = (uint32)(x.ref7926795a.maxTessellationControlPerVertexInputComponents) + x.MaxTessellationControlPerVertexOutputComponents = (uint32)(x.ref7926795a.maxTessellationControlPerVertexOutputComponents) + x.MaxTessellationControlPerPatchOutputComponents = (uint32)(x.ref7926795a.maxTessellationControlPerPatchOutputComponents) + x.MaxTessellationControlTotalOutputComponents = (uint32)(x.ref7926795a.maxTessellationControlTotalOutputComponents) + x.MaxTessellationEvaluationInputComponents = (uint32)(x.ref7926795a.maxTessellationEvaluationInputComponents) + x.MaxTessellationEvaluationOutputComponents = (uint32)(x.ref7926795a.maxTessellationEvaluationOutputComponents) + x.MaxGeometryShaderInvocations = (uint32)(x.ref7926795a.maxGeometryShaderInvocations) + x.MaxGeometryInputComponents = (uint32)(x.ref7926795a.maxGeometryInputComponents) + x.MaxGeometryOutputComponents = (uint32)(x.ref7926795a.maxGeometryOutputComponents) + x.MaxGeometryOutputVertices = (uint32)(x.ref7926795a.maxGeometryOutputVertices) + x.MaxGeometryTotalOutputComponents = (uint32)(x.ref7926795a.maxGeometryTotalOutputComponents) + x.MaxFragmentInputComponents = (uint32)(x.ref7926795a.maxFragmentInputComponents) + x.MaxFragmentOutputAttachments = (uint32)(x.ref7926795a.maxFragmentOutputAttachments) + x.MaxFragmentDualSrcAttachments = (uint32)(x.ref7926795a.maxFragmentDualSrcAttachments) + x.MaxFragmentCombinedOutputResources = (uint32)(x.ref7926795a.maxFragmentCombinedOutputResources) + x.MaxComputeSharedMemorySize = (uint32)(x.ref7926795a.maxComputeSharedMemorySize) + x.MaxComputeWorkGroupCount = *(*[3]uint32)(unsafe.Pointer(&x.ref7926795a.maxComputeWorkGroupCount)) + x.MaxComputeWorkGroupInvocations = (uint32)(x.ref7926795a.maxComputeWorkGroupInvocations) + x.MaxComputeWorkGroupSize = *(*[3]uint32)(unsafe.Pointer(&x.ref7926795a.maxComputeWorkGroupSize)) + x.SubPixelPrecisionBits = (uint32)(x.ref7926795a.subPixelPrecisionBits) + x.SubTexelPrecisionBits = (uint32)(x.ref7926795a.subTexelPrecisionBits) + x.MipmapPrecisionBits = (uint32)(x.ref7926795a.mipmapPrecisionBits) + x.MaxDrawIndexedIndexValue = (uint32)(x.ref7926795a.maxDrawIndexedIndexValue) + x.MaxDrawIndirectCount = (uint32)(x.ref7926795a.maxDrawIndirectCount) + x.MaxSamplerLodBias = (float32)(x.ref7926795a.maxSamplerLodBias) + x.MaxSamplerAnisotropy = (float32)(x.ref7926795a.maxSamplerAnisotropy) + x.MaxViewports = (uint32)(x.ref7926795a.maxViewports) + x.MaxViewportDimensions = *(*[2]uint32)(unsafe.Pointer(&x.ref7926795a.maxViewportDimensions)) + x.ViewportBoundsRange = *(*[2]float32)(unsafe.Pointer(&x.ref7926795a.viewportBoundsRange)) + x.ViewportSubPixelBits = (uint32)(x.ref7926795a.viewportSubPixelBits) + x.MinMemoryMapAlignment = (uint64)(x.ref7926795a.minMemoryMapAlignment) + x.MinTexelBufferOffsetAlignment = (DeviceSize)(x.ref7926795a.minTexelBufferOffsetAlignment) + x.MinUniformBufferOffsetAlignment = (DeviceSize)(x.ref7926795a.minUniformBufferOffsetAlignment) + x.MinStorageBufferOffsetAlignment = (DeviceSize)(x.ref7926795a.minStorageBufferOffsetAlignment) + x.MinTexelOffset = (int32)(x.ref7926795a.minTexelOffset) + x.MaxTexelOffset = (uint32)(x.ref7926795a.maxTexelOffset) + x.MinTexelGatherOffset = (int32)(x.ref7926795a.minTexelGatherOffset) + x.MaxTexelGatherOffset = (uint32)(x.ref7926795a.maxTexelGatherOffset) + x.MinInterpolationOffset = (float32)(x.ref7926795a.minInterpolationOffset) + x.MaxInterpolationOffset = (float32)(x.ref7926795a.maxInterpolationOffset) + x.SubPixelInterpolationOffsetBits = (uint32)(x.ref7926795a.subPixelInterpolationOffsetBits) + x.MaxFramebufferWidth = (uint32)(x.ref7926795a.maxFramebufferWidth) + x.MaxFramebufferHeight = (uint32)(x.ref7926795a.maxFramebufferHeight) + x.MaxFramebufferLayers = (uint32)(x.ref7926795a.maxFramebufferLayers) + x.FramebufferColorSampleCounts = (SampleCountFlags)(x.ref7926795a.framebufferColorSampleCounts) + x.FramebufferDepthSampleCounts = (SampleCountFlags)(x.ref7926795a.framebufferDepthSampleCounts) + x.FramebufferStencilSampleCounts = (SampleCountFlags)(x.ref7926795a.framebufferStencilSampleCounts) + x.FramebufferNoAttachmentsSampleCounts = (SampleCountFlags)(x.ref7926795a.framebufferNoAttachmentsSampleCounts) + x.MaxColorAttachments = (uint32)(x.ref7926795a.maxColorAttachments) + x.SampledImageColorSampleCounts = (SampleCountFlags)(x.ref7926795a.sampledImageColorSampleCounts) + x.SampledImageIntegerSampleCounts = (SampleCountFlags)(x.ref7926795a.sampledImageIntegerSampleCounts) + x.SampledImageDepthSampleCounts = (SampleCountFlags)(x.ref7926795a.sampledImageDepthSampleCounts) + x.SampledImageStencilSampleCounts = (SampleCountFlags)(x.ref7926795a.sampledImageStencilSampleCounts) + x.StorageImageSampleCounts = (SampleCountFlags)(x.ref7926795a.storageImageSampleCounts) + x.MaxSampleMaskWords = (uint32)(x.ref7926795a.maxSampleMaskWords) + x.TimestampComputeAndGraphics = (Bool32)(x.ref7926795a.timestampComputeAndGraphics) + x.TimestampPeriod = (float32)(x.ref7926795a.timestampPeriod) + x.MaxClipDistances = (uint32)(x.ref7926795a.maxClipDistances) + x.MaxCullDistances = (uint32)(x.ref7926795a.maxCullDistances) + x.MaxCombinedClipAndCullDistances = (uint32)(x.ref7926795a.maxCombinedClipAndCullDistances) + x.DiscreteQueuePriorities = (uint32)(x.ref7926795a.discreteQueuePriorities) + x.PointSizeRange = *(*[2]float32)(unsafe.Pointer(&x.ref7926795a.pointSizeRange)) + x.LineWidthRange = *(*[2]float32)(unsafe.Pointer(&x.ref7926795a.lineWidthRange)) + x.PointSizeGranularity = (float32)(x.ref7926795a.pointSizeGranularity) + x.LineWidthGranularity = (float32)(x.ref7926795a.lineWidthGranularity) + x.StrictLines = (Bool32)(x.ref7926795a.strictLines) + x.StandardSampleLocations = (Bool32)(x.ref7926795a.standardSampleLocations) + x.OptimalBufferCopyOffsetAlignment = (DeviceSize)(x.ref7926795a.optimalBufferCopyOffsetAlignment) + x.OptimalBufferCopyRowPitchAlignment = (DeviceSize)(x.ref7926795a.optimalBufferCopyRowPitchAlignment) + x.NonCoherentAtomSize = (DeviceSize)(x.ref7926795a.nonCoherentAtomSize) +} + +// allocPhysicalDeviceMemoryPropertiesMemory allocates memory for type C.VkPhysicalDeviceMemoryProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceMemoryPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceMemoryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryProperties{}) + +// allocA32MemoryTypeMemory allocates memory for type [32]C.VkMemoryType in C. +// The caller is responsible for freeing the this memory via C.free. +func allocA32MemoryTypeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfA32MemoryTypeValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfA32MemoryTypeValue = unsafe.Sizeof([1][32]C.VkMemoryType{}) + +// unpackA32MemoryType transforms a sliced Go data structure into plain C format. +func unpackA32MemoryType(x [32]MemoryType) (unpacked [32]C.VkMemoryType, allocs *cgoAllocMap) { + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(*[32]C.VkMemoryType) { + go allocs.Free() + }) + + mem0 := allocA32MemoryTypeMemory(1) + allocs.Add(mem0) + v0 := (*[32]C.VkMemoryType)(mem0) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + unpacked = *(*[32]C.VkMemoryType)(mem0) + return +} + +// allocA16MemoryHeapMemory allocates memory for type [16]C.VkMemoryHeap in C. +// The caller is responsible for freeing the this memory via C.free. +func allocA16MemoryHeapMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfA16MemoryHeapValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfA16MemoryHeapValue = unsafe.Sizeof([1][16]C.VkMemoryHeap{}) + +// unpackA16MemoryHeap transforms a sliced Go data structure into plain C format. +func unpackA16MemoryHeap(x [16]MemoryHeap) (unpacked [16]C.VkMemoryHeap, allocs *cgoAllocMap) { + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(*[16]C.VkMemoryHeap) { + go allocs.Free() + }) + + mem0 := allocA16MemoryHeapMemory(1) + allocs.Add(mem0) + v0 := (*[16]C.VkMemoryHeap)(mem0) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + unpacked = *(*[16]C.VkMemoryHeap)(mem0) + return +} + +// packA32MemoryType reads sliced Go data structure out from plain C format. +func packA32MemoryType(v *[32]MemoryType, ptr0 *[32]C.VkMemoryType) { + for i0 := range v { + ptr1 := ptr0[i0] + v[i0] = *NewMemoryTypeRef(unsafe.Pointer(&ptr1)) + } +} + +// packA16MemoryHeap reads sliced Go data structure out from plain C format. +func packA16MemoryHeap(v *[16]MemoryHeap, ptr0 *[16]C.VkMemoryHeap) { + for i0 := range v { + ptr1 := ptr0[i0] + v[i0] = *NewMemoryHeapRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceMemoryProperties) Ref() *C.VkPhysicalDeviceMemoryProperties { + if x == nil { + return nil + } + return x.ref3aabb5fd +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceMemoryProperties) Free() { + if x != nil && x.allocs3aabb5fd != nil { + x.allocs3aabb5fd.(*cgoAllocMap).Free() + x.ref3aabb5fd = nil + } +} + +// NewPhysicalDeviceMemoryPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceMemoryPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceMemoryProperties) + obj.ref3aabb5fd = (*C.VkPhysicalDeviceMemoryProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceMemoryProperties) PassRef() (*C.VkPhysicalDeviceMemoryProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref3aabb5fd != nil { + return x.ref3aabb5fd, nil + } + mem3aabb5fd := allocPhysicalDeviceMemoryPropertiesMemory(1) + ref3aabb5fd := (*C.VkPhysicalDeviceMemoryProperties)(mem3aabb5fd) + allocs3aabb5fd := new(cgoAllocMap) + allocs3aabb5fd.Add(mem3aabb5fd) + + var cmemoryTypeCount_allocs *cgoAllocMap + ref3aabb5fd.memoryTypeCount, cmemoryTypeCount_allocs = (C.uint32_t)(x.MemoryTypeCount), cgoAllocsUnknown + allocs3aabb5fd.Borrow(cmemoryTypeCount_allocs) + + var cmemoryTypes_allocs *cgoAllocMap + ref3aabb5fd.memoryTypes, cmemoryTypes_allocs = unpackA32MemoryType(x.MemoryTypes) + allocs3aabb5fd.Borrow(cmemoryTypes_allocs) + + var cmemoryHeapCount_allocs *cgoAllocMap + ref3aabb5fd.memoryHeapCount, cmemoryHeapCount_allocs = (C.uint32_t)(x.MemoryHeapCount), cgoAllocsUnknown + allocs3aabb5fd.Borrow(cmemoryHeapCount_allocs) + + var cmemoryHeaps_allocs *cgoAllocMap + ref3aabb5fd.memoryHeaps, cmemoryHeaps_allocs = unpackA16MemoryHeap(x.MemoryHeaps) + allocs3aabb5fd.Borrow(cmemoryHeaps_allocs) + + x.ref3aabb5fd = ref3aabb5fd + x.allocs3aabb5fd = allocs3aabb5fd + return ref3aabb5fd, allocs3aabb5fd + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceMemoryProperties) PassValue() (C.VkPhysicalDeviceMemoryProperties, *cgoAllocMap) { + if x.ref3aabb5fd != nil { + return *x.ref3aabb5fd, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceMemoryProperties) Deref() { + if x.ref3aabb5fd == nil { + return + } + x.MemoryTypeCount = (uint32)(x.ref3aabb5fd.memoryTypeCount) + packA32MemoryType(&x.MemoryTypes, (*[32]C.VkMemoryType)(unsafe.Pointer(&x.ref3aabb5fd.memoryTypes))) + x.MemoryHeapCount = (uint32)(x.ref3aabb5fd.memoryHeapCount) + packA16MemoryHeap(&x.MemoryHeaps, (*[16]C.VkMemoryHeap)(unsafe.Pointer(&x.ref3aabb5fd.memoryHeaps))) +} + +// allocPhysicalDeviceSparsePropertiesMemory allocates memory for type C.VkPhysicalDeviceSparseProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceSparsePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSparsePropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceSparsePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSparseProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceSparseProperties) Ref() *C.VkPhysicalDeviceSparseProperties { + if x == nil { + return nil + } + return x.ref6d7c11e6 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceSparseProperties) Free() { + if x != nil && x.allocs6d7c11e6 != nil { + x.allocs6d7c11e6.(*cgoAllocMap).Free() + x.ref6d7c11e6 = nil + } +} + +// NewPhysicalDeviceSparsePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceSparsePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSparseProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceSparseProperties) + obj.ref6d7c11e6 = (*C.VkPhysicalDeviceSparseProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceSparseProperties) PassRef() (*C.VkPhysicalDeviceSparseProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref6d7c11e6 != nil { + return x.ref6d7c11e6, nil + } + mem6d7c11e6 := allocPhysicalDeviceSparsePropertiesMemory(1) + ref6d7c11e6 := (*C.VkPhysicalDeviceSparseProperties)(mem6d7c11e6) + allocs6d7c11e6 := new(cgoAllocMap) + allocs6d7c11e6.Add(mem6d7c11e6) + + var cresidencyStandard2DBlockShape_allocs *cgoAllocMap + ref6d7c11e6.residencyStandard2DBlockShape, cresidencyStandard2DBlockShape_allocs = (C.VkBool32)(x.ResidencyStandard2DBlockShape), cgoAllocsUnknown + allocs6d7c11e6.Borrow(cresidencyStandard2DBlockShape_allocs) + + var cresidencyStandard2DMultisampleBlockShape_allocs *cgoAllocMap + ref6d7c11e6.residencyStandard2DMultisampleBlockShape, cresidencyStandard2DMultisampleBlockShape_allocs = (C.VkBool32)(x.ResidencyStandard2DMultisampleBlockShape), cgoAllocsUnknown + allocs6d7c11e6.Borrow(cresidencyStandard2DMultisampleBlockShape_allocs) + + var cresidencyStandard3DBlockShape_allocs *cgoAllocMap + ref6d7c11e6.residencyStandard3DBlockShape, cresidencyStandard3DBlockShape_allocs = (C.VkBool32)(x.ResidencyStandard3DBlockShape), cgoAllocsUnknown + allocs6d7c11e6.Borrow(cresidencyStandard3DBlockShape_allocs) + + var cresidencyAlignedMipSize_allocs *cgoAllocMap + ref6d7c11e6.residencyAlignedMipSize, cresidencyAlignedMipSize_allocs = (C.VkBool32)(x.ResidencyAlignedMipSize), cgoAllocsUnknown + allocs6d7c11e6.Borrow(cresidencyAlignedMipSize_allocs) + + var cresidencyNonResidentStrict_allocs *cgoAllocMap + ref6d7c11e6.residencyNonResidentStrict, cresidencyNonResidentStrict_allocs = (C.VkBool32)(x.ResidencyNonResidentStrict), cgoAllocsUnknown + allocs6d7c11e6.Borrow(cresidencyNonResidentStrict_allocs) + + x.ref6d7c11e6 = ref6d7c11e6 + x.allocs6d7c11e6 = allocs6d7c11e6 + return ref6d7c11e6, allocs6d7c11e6 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceSparseProperties) PassValue() (C.VkPhysicalDeviceSparseProperties, *cgoAllocMap) { + if x.ref6d7c11e6 != nil { + return *x.ref6d7c11e6, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceSparseProperties) Deref() { + if x.ref6d7c11e6 == nil { + return + } + x.ResidencyStandard2DBlockShape = (Bool32)(x.ref6d7c11e6.residencyStandard2DBlockShape) + x.ResidencyStandard2DMultisampleBlockShape = (Bool32)(x.ref6d7c11e6.residencyStandard2DMultisampleBlockShape) + x.ResidencyStandard3DBlockShape = (Bool32)(x.ref6d7c11e6.residencyStandard3DBlockShape) + x.ResidencyAlignedMipSize = (Bool32)(x.ref6d7c11e6.residencyAlignedMipSize) + x.ResidencyNonResidentStrict = (Bool32)(x.ref6d7c11e6.residencyNonResidentStrict) +} + +// allocPhysicalDevicePropertiesMemory allocates memory for type C.VkPhysicalDeviceProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDevicePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDevicePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceProperties) Ref() *C.VkPhysicalDeviceProperties { + if x == nil { + return nil + } + return x.ref1080ca9d +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceProperties) Free() { + if x != nil && x.allocs1080ca9d != nil { + x.allocs1080ca9d.(*cgoAllocMap).Free() + x.ref1080ca9d = nil + } +} + +// NewPhysicalDevicePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDevicePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceProperties) + obj.ref1080ca9d = (*C.VkPhysicalDeviceProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceProperties) PassRef() (*C.VkPhysicalDeviceProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref1080ca9d != nil { + return x.ref1080ca9d, nil + } + mem1080ca9d := allocPhysicalDevicePropertiesMemory(1) + ref1080ca9d := (*C.VkPhysicalDeviceProperties)(mem1080ca9d) + allocs1080ca9d := new(cgoAllocMap) + allocs1080ca9d.Add(mem1080ca9d) + + var capiVersion_allocs *cgoAllocMap + ref1080ca9d.apiVersion, capiVersion_allocs = (C.uint32_t)(x.ApiVersion), cgoAllocsUnknown + allocs1080ca9d.Borrow(capiVersion_allocs) + + var cdriverVersion_allocs *cgoAllocMap + ref1080ca9d.driverVersion, cdriverVersion_allocs = (C.uint32_t)(x.DriverVersion), cgoAllocsUnknown + allocs1080ca9d.Borrow(cdriverVersion_allocs) + + var cvendorID_allocs *cgoAllocMap + ref1080ca9d.vendorID, cvendorID_allocs = (C.uint32_t)(x.VendorID), cgoAllocsUnknown + allocs1080ca9d.Borrow(cvendorID_allocs) + + var cdeviceID_allocs *cgoAllocMap + ref1080ca9d.deviceID, cdeviceID_allocs = (C.uint32_t)(x.DeviceID), cgoAllocsUnknown + allocs1080ca9d.Borrow(cdeviceID_allocs) + + var cdeviceType_allocs *cgoAllocMap + ref1080ca9d.deviceType, cdeviceType_allocs = (C.VkPhysicalDeviceType)(x.DeviceType), cgoAllocsUnknown + allocs1080ca9d.Borrow(cdeviceType_allocs) + + var cdeviceName_allocs *cgoAllocMap + ref1080ca9d.deviceName, cdeviceName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.DeviceName)), cgoAllocsUnknown + allocs1080ca9d.Borrow(cdeviceName_allocs) + + var cpipelineCacheUUID_allocs *cgoAllocMap + ref1080ca9d.pipelineCacheUUID, cpipelineCacheUUID_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.PipelineCacheUUID)), cgoAllocsUnknown + allocs1080ca9d.Borrow(cpipelineCacheUUID_allocs) + + var climits_allocs *cgoAllocMap + ref1080ca9d.limits, climits_allocs = x.Limits.PassValue() + allocs1080ca9d.Borrow(climits_allocs) + + var csparseProperties_allocs *cgoAllocMap + ref1080ca9d.sparseProperties, csparseProperties_allocs = x.SparseProperties.PassValue() + allocs1080ca9d.Borrow(csparseProperties_allocs) + + x.ref1080ca9d = ref1080ca9d + x.allocs1080ca9d = allocs1080ca9d + return ref1080ca9d, allocs1080ca9d + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceProperties) PassValue() (C.VkPhysicalDeviceProperties, *cgoAllocMap) { + if x.ref1080ca9d != nil { + return *x.ref1080ca9d, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceProperties) Deref() { + if x.ref1080ca9d == nil { + return + } + x.ApiVersion = (uint32)(x.ref1080ca9d.apiVersion) + x.DriverVersion = (uint32)(x.ref1080ca9d.driverVersion) + x.VendorID = (uint32)(x.ref1080ca9d.vendorID) + x.DeviceID = (uint32)(x.ref1080ca9d.deviceID) + x.DeviceType = (PhysicalDeviceType)(x.ref1080ca9d.deviceType) + x.DeviceName = *(*[256]byte)(unsafe.Pointer(&x.ref1080ca9d.deviceName)) + x.PipelineCacheUUID = *(*[16]byte)(unsafe.Pointer(&x.ref1080ca9d.pipelineCacheUUID)) + x.Limits = *NewPhysicalDeviceLimitsRef(unsafe.Pointer(&x.ref1080ca9d.limits)) + x.SparseProperties = *NewPhysicalDeviceSparsePropertiesRef(unsafe.Pointer(&x.ref1080ca9d.sparseProperties)) +} + +// allocQueueFamilyPropertiesMemory allocates memory for type C.VkQueueFamilyProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocQueueFamilyPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfQueueFamilyPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *QueueFamilyProperties) Ref() *C.VkQueueFamilyProperties { + if x == nil { + return nil + } + return x.refd538c446 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *QueueFamilyProperties) Free() { + if x != nil && x.allocsd538c446 != nil { + x.allocsd538c446.(*cgoAllocMap).Free() + x.refd538c446 = nil + } +} + +// NewQueueFamilyPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewQueueFamilyPropertiesRef(ref unsafe.Pointer) *QueueFamilyProperties { + if ref == nil { + return nil + } + obj := new(QueueFamilyProperties) + obj.refd538c446 = (*C.VkQueueFamilyProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *QueueFamilyProperties) PassRef() (*C.VkQueueFamilyProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd538c446 != nil { + return x.refd538c446, nil + } + memd538c446 := allocQueueFamilyPropertiesMemory(1) + refd538c446 := (*C.VkQueueFamilyProperties)(memd538c446) + allocsd538c446 := new(cgoAllocMap) + allocsd538c446.Add(memd538c446) + + var cqueueFlags_allocs *cgoAllocMap + refd538c446.queueFlags, cqueueFlags_allocs = (C.VkQueueFlags)(x.QueueFlags), cgoAllocsUnknown + allocsd538c446.Borrow(cqueueFlags_allocs) + + var cqueueCount_allocs *cgoAllocMap + refd538c446.queueCount, cqueueCount_allocs = (C.uint32_t)(x.QueueCount), cgoAllocsUnknown + allocsd538c446.Borrow(cqueueCount_allocs) + + var ctimestampValidBits_allocs *cgoAllocMap + refd538c446.timestampValidBits, ctimestampValidBits_allocs = (C.uint32_t)(x.TimestampValidBits), cgoAllocsUnknown + allocsd538c446.Borrow(ctimestampValidBits_allocs) + + var cminImageTransferGranularity_allocs *cgoAllocMap + refd538c446.minImageTransferGranularity, cminImageTransferGranularity_allocs = x.MinImageTransferGranularity.PassValue() + allocsd538c446.Borrow(cminImageTransferGranularity_allocs) + + x.refd538c446 = refd538c446 + x.allocsd538c446 = allocsd538c446 + return refd538c446, allocsd538c446 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x QueueFamilyProperties) PassValue() (C.VkQueueFamilyProperties, *cgoAllocMap) { + if x.refd538c446 != nil { + return *x.refd538c446, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *QueueFamilyProperties) Deref() { + if x.refd538c446 == nil { + return + } + x.QueueFlags = (QueueFlags)(x.refd538c446.queueFlags) + x.QueueCount = (uint32)(x.refd538c446.queueCount) + x.TimestampValidBits = (uint32)(x.refd538c446.timestampValidBits) + x.MinImageTransferGranularity = *NewExtent3DRef(unsafe.Pointer(&x.refd538c446.minImageTransferGranularity)) +} + +// allocDeviceQueueCreateInfoMemory allocates memory for type C.VkDeviceQueueCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceQueueCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceQueueCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDeviceQueueCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DeviceQueueCreateInfo) Ref() *C.VkDeviceQueueCreateInfo { + if x == nil { + return nil + } + return x.ref6087b30d +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DeviceQueueCreateInfo) Free() { + if x != nil && x.allocs6087b30d != nil { + x.allocs6087b30d.(*cgoAllocMap).Free() + x.ref6087b30d = nil + } +} + +// NewDeviceQueueCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDeviceQueueCreateInfoRef(ref unsafe.Pointer) *DeviceQueueCreateInfo { + if ref == nil { + return nil + } + obj := new(DeviceQueueCreateInfo) + obj.ref6087b30d = (*C.VkDeviceQueueCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DeviceQueueCreateInfo) PassRef() (*C.VkDeviceQueueCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref6087b30d != nil { + return x.ref6087b30d, nil + } + mem6087b30d := allocDeviceQueueCreateInfoMemory(1) + ref6087b30d := (*C.VkDeviceQueueCreateInfo)(mem6087b30d) + allocs6087b30d := new(cgoAllocMap) + allocs6087b30d.Add(mem6087b30d) + + var csType_allocs *cgoAllocMap + ref6087b30d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6087b30d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref6087b30d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6087b30d.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref6087b30d.flags, cflags_allocs = (C.VkDeviceQueueCreateFlags)(x.Flags), cgoAllocsUnknown + allocs6087b30d.Borrow(cflags_allocs) + + var cqueueFamilyIndex_allocs *cgoAllocMap + ref6087b30d.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown + allocs6087b30d.Borrow(cqueueFamilyIndex_allocs) + + var cqueueCount_allocs *cgoAllocMap + ref6087b30d.queueCount, cqueueCount_allocs = (C.uint32_t)(x.QueueCount), cgoAllocsUnknown + allocs6087b30d.Borrow(cqueueCount_allocs) + + var cpQueuePriorities_allocs *cgoAllocMap + ref6087b30d.pQueuePriorities, cpQueuePriorities_allocs = (*C.float)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueuePriorities)).Data)), cgoAllocsUnknown + allocs6087b30d.Borrow(cpQueuePriorities_allocs) + + x.ref6087b30d = ref6087b30d + x.allocs6087b30d = allocs6087b30d + return ref6087b30d, allocs6087b30d + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DeviceQueueCreateInfo) PassValue() (C.VkDeviceQueueCreateInfo, *cgoAllocMap) { + if x.ref6087b30d != nil { + return *x.ref6087b30d, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DeviceQueueCreateInfo) Deref() { + if x.ref6087b30d == nil { + return + } + x.SType = (StructureType)(x.ref6087b30d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6087b30d.pNext)) + x.Flags = (DeviceQueueCreateFlags)(x.ref6087b30d.flags) + x.QueueFamilyIndex = (uint32)(x.ref6087b30d.queueFamilyIndex) + x.QueueCount = (uint32)(x.ref6087b30d.queueCount) + hxfc4425b := (*sliceHeader)(unsafe.Pointer(&x.PQueuePriorities)) + hxfc4425b.Data = unsafe.Pointer(x.ref6087b30d.pQueuePriorities) + hxfc4425b.Cap = 0x7fffffff + // hxfc4425b.Len = ? + +} + +// allocDeviceCreateInfoMemory allocates memory for type C.VkDeviceCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDeviceCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceCreateInfo{}) + +// unpackSDeviceQueueCreateInfo transforms a sliced Go data structure into plain C format. +func unpackSDeviceQueueCreateInfo(x []DeviceQueueCreateInfo) (unpacked *C.VkDeviceQueueCreateInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkDeviceQueueCreateInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocDeviceQueueCreateInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkDeviceQueueCreateInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkDeviceQueueCreateInfo)(h.Data) + return +} + +// unpackSPhysicalDeviceFeatures transforms a sliced Go data structure into plain C format. +func unpackSPhysicalDeviceFeatures(x []PhysicalDeviceFeatures) (unpacked *C.VkPhysicalDeviceFeatures, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkPhysicalDeviceFeatures) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocPhysicalDeviceFeaturesMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkPhysicalDeviceFeatures)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkPhysicalDeviceFeatures)(h.Data) + return +} + +// packSDeviceQueueCreateInfo reads sliced Go data structure out from plain C format. +func packSDeviceQueueCreateInfo(v []DeviceQueueCreateInfo, ptr0 *C.VkDeviceQueueCreateInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfDeviceQueueCreateInfoValue]C.VkDeviceQueueCreateInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewDeviceQueueCreateInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// packSPhysicalDeviceFeatures reads sliced Go data structure out from plain C format. +func packSPhysicalDeviceFeatures(v []PhysicalDeviceFeatures, ptr0 *C.VkPhysicalDeviceFeatures) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfPhysicalDeviceFeaturesValue]C.VkPhysicalDeviceFeatures)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewPhysicalDeviceFeaturesRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DeviceCreateInfo) Ref() *C.VkDeviceCreateInfo { + if x == nil { + return nil + } + return x.refc0d8b997 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DeviceCreateInfo) Free() { + if x != nil && x.allocsc0d8b997 != nil { + x.allocsc0d8b997.(*cgoAllocMap).Free() + x.refc0d8b997 = nil + } +} + +// NewDeviceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDeviceCreateInfoRef(ref unsafe.Pointer) *DeviceCreateInfo { + if ref == nil { + return nil + } + obj := new(DeviceCreateInfo) + obj.refc0d8b997 = (*C.VkDeviceCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DeviceCreateInfo) PassRef() (*C.VkDeviceCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc0d8b997 != nil { + return x.refc0d8b997, nil + } + memc0d8b997 := allocDeviceCreateInfoMemory(1) + refc0d8b997 := (*C.VkDeviceCreateInfo)(memc0d8b997) + allocsc0d8b997 := new(cgoAllocMap) + allocsc0d8b997.Add(memc0d8b997) + + var csType_allocs *cgoAllocMap + refc0d8b997.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc0d8b997.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc0d8b997.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc0d8b997.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refc0d8b997.flags, cflags_allocs = (C.VkDeviceCreateFlags)(x.Flags), cgoAllocsUnknown + allocsc0d8b997.Borrow(cflags_allocs) + + var cqueueCreateInfoCount_allocs *cgoAllocMap + refc0d8b997.queueCreateInfoCount, cqueueCreateInfoCount_allocs = (C.uint32_t)(x.QueueCreateInfoCount), cgoAllocsUnknown + allocsc0d8b997.Borrow(cqueueCreateInfoCount_allocs) + + var cpQueueCreateInfos_allocs *cgoAllocMap + refc0d8b997.pQueueCreateInfos, cpQueueCreateInfos_allocs = unpackSDeviceQueueCreateInfo(x.PQueueCreateInfos) + allocsc0d8b997.Borrow(cpQueueCreateInfos_allocs) + + var cenabledLayerCount_allocs *cgoAllocMap + refc0d8b997.enabledLayerCount, cenabledLayerCount_allocs = (C.uint32_t)(x.EnabledLayerCount), cgoAllocsUnknown + allocsc0d8b997.Borrow(cenabledLayerCount_allocs) + + var cppEnabledLayerNames_allocs *cgoAllocMap + refc0d8b997.ppEnabledLayerNames, cppEnabledLayerNames_allocs = unpackSString(x.PpEnabledLayerNames) + allocsc0d8b997.Borrow(cppEnabledLayerNames_allocs) + + var cenabledExtensionCount_allocs *cgoAllocMap + refc0d8b997.enabledExtensionCount, cenabledExtensionCount_allocs = (C.uint32_t)(x.EnabledExtensionCount), cgoAllocsUnknown + allocsc0d8b997.Borrow(cenabledExtensionCount_allocs) + + var cppEnabledExtensionNames_allocs *cgoAllocMap + refc0d8b997.ppEnabledExtensionNames, cppEnabledExtensionNames_allocs = unpackSString(x.PpEnabledExtensionNames) + allocsc0d8b997.Borrow(cppEnabledExtensionNames_allocs) + + var cpEnabledFeatures_allocs *cgoAllocMap + refc0d8b997.pEnabledFeatures, cpEnabledFeatures_allocs = unpackSPhysicalDeviceFeatures(x.PEnabledFeatures) + allocsc0d8b997.Borrow(cpEnabledFeatures_allocs) + + x.refc0d8b997 = refc0d8b997 + x.allocsc0d8b997 = allocsc0d8b997 + return refc0d8b997, allocsc0d8b997 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DeviceCreateInfo) PassValue() (C.VkDeviceCreateInfo, *cgoAllocMap) { + if x.refc0d8b997 != nil { + return *x.refc0d8b997, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DeviceCreateInfo) Deref() { + if x.refc0d8b997 == nil { + return + } + x.SType = (StructureType)(x.refc0d8b997.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc0d8b997.pNext)) + x.Flags = (DeviceCreateFlags)(x.refc0d8b997.flags) + x.QueueCreateInfoCount = (uint32)(x.refc0d8b997.queueCreateInfoCount) + packSDeviceQueueCreateInfo(x.PQueueCreateInfos, x.refc0d8b997.pQueueCreateInfos) + x.EnabledLayerCount = (uint32)(x.refc0d8b997.enabledLayerCount) + packSString(x.PpEnabledLayerNames, x.refc0d8b997.ppEnabledLayerNames) + x.EnabledExtensionCount = (uint32)(x.refc0d8b997.enabledExtensionCount) + packSString(x.PpEnabledExtensionNames, x.refc0d8b997.ppEnabledExtensionNames) + packSPhysicalDeviceFeatures(x.PEnabledFeatures, x.refc0d8b997.pEnabledFeatures) +} + +// allocExtensionPropertiesMemory allocates memory for type C.VkExtensionProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExtensionPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExtensionPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExtensionPropertiesValue = unsafe.Sizeof([1]C.VkExtensionProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExtensionProperties) Ref() *C.VkExtensionProperties { + if x == nil { + return nil + } + return x.ref2f001956 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExtensionProperties) Free() { + if x != nil && x.allocs2f001956 != nil { + x.allocs2f001956.(*cgoAllocMap).Free() + x.ref2f001956 = nil + } +} + +// NewExtensionPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExtensionPropertiesRef(ref unsafe.Pointer) *ExtensionProperties { + if ref == nil { + return nil + } + obj := new(ExtensionProperties) + obj.ref2f001956 = (*C.VkExtensionProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExtensionProperties) PassRef() (*C.VkExtensionProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2f001956 != nil { + return x.ref2f001956, nil + } + mem2f001956 := allocExtensionPropertiesMemory(1) + ref2f001956 := (*C.VkExtensionProperties)(mem2f001956) + allocs2f001956 := new(cgoAllocMap) + allocs2f001956.Add(mem2f001956) + + var cextensionName_allocs *cgoAllocMap + ref2f001956.extensionName, cextensionName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.ExtensionName)), cgoAllocsUnknown + allocs2f001956.Borrow(cextensionName_allocs) + + var cspecVersion_allocs *cgoAllocMap + ref2f001956.specVersion, cspecVersion_allocs = (C.uint32_t)(x.SpecVersion), cgoAllocsUnknown + allocs2f001956.Borrow(cspecVersion_allocs) + + x.ref2f001956 = ref2f001956 + x.allocs2f001956 = allocs2f001956 + return ref2f001956, allocs2f001956 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExtensionProperties) PassValue() (C.VkExtensionProperties, *cgoAllocMap) { + if x.ref2f001956 != nil { + return *x.ref2f001956, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExtensionProperties) Deref() { + if x.ref2f001956 == nil { + return + } + x.ExtensionName = *(*[256]byte)(unsafe.Pointer(&x.ref2f001956.extensionName)) + x.SpecVersion = (uint32)(x.ref2f001956.specVersion) +} + +// allocLayerPropertiesMemory allocates memory for type C.VkLayerProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocLayerPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfLayerPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfLayerPropertiesValue = unsafe.Sizeof([1]C.VkLayerProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *LayerProperties) Ref() *C.VkLayerProperties { + if x == nil { + return nil + } + return x.refd9407ce7 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *LayerProperties) Free() { + if x != nil && x.allocsd9407ce7 != nil { + x.allocsd9407ce7.(*cgoAllocMap).Free() + x.refd9407ce7 = nil + } +} + +// NewLayerPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewLayerPropertiesRef(ref unsafe.Pointer) *LayerProperties { + if ref == nil { + return nil + } + obj := new(LayerProperties) + obj.refd9407ce7 = (*C.VkLayerProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *LayerProperties) PassRef() (*C.VkLayerProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd9407ce7 != nil { + return x.refd9407ce7, nil + } + memd9407ce7 := allocLayerPropertiesMemory(1) + refd9407ce7 := (*C.VkLayerProperties)(memd9407ce7) + allocsd9407ce7 := new(cgoAllocMap) + allocsd9407ce7.Add(memd9407ce7) + + var clayerName_allocs *cgoAllocMap + refd9407ce7.layerName, clayerName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.LayerName)), cgoAllocsUnknown + allocsd9407ce7.Borrow(clayerName_allocs) + + var cspecVersion_allocs *cgoAllocMap + refd9407ce7.specVersion, cspecVersion_allocs = (C.uint32_t)(x.SpecVersion), cgoAllocsUnknown + allocsd9407ce7.Borrow(cspecVersion_allocs) + + var cimplementationVersion_allocs *cgoAllocMap + refd9407ce7.implementationVersion, cimplementationVersion_allocs = (C.uint32_t)(x.ImplementationVersion), cgoAllocsUnknown + allocsd9407ce7.Borrow(cimplementationVersion_allocs) + + var cdescription_allocs *cgoAllocMap + refd9407ce7.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown + allocsd9407ce7.Borrow(cdescription_allocs) + + x.refd9407ce7 = refd9407ce7 + x.allocsd9407ce7 = allocsd9407ce7 + return refd9407ce7, allocsd9407ce7 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x LayerProperties) PassValue() (C.VkLayerProperties, *cgoAllocMap) { + if x.refd9407ce7 != nil { + return *x.refd9407ce7, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *LayerProperties) Deref() { + if x.refd9407ce7 == nil { + return + } + x.LayerName = *(*[256]byte)(unsafe.Pointer(&x.refd9407ce7.layerName)) + x.SpecVersion = (uint32)(x.refd9407ce7.specVersion) + x.ImplementationVersion = (uint32)(x.refd9407ce7.implementationVersion) + x.Description = *(*[256]byte)(unsafe.Pointer(&x.refd9407ce7.description)) +} + +// allocSubmitInfoMemory allocates memory for type C.VkSubmitInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSubmitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubmitInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSubmitInfoValue = unsafe.Sizeof([1]C.VkSubmitInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SubmitInfo) Ref() *C.VkSubmitInfo { + if x == nil { + return nil + } + return x.ref22884025 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SubmitInfo) Free() { + if x != nil && x.allocs22884025 != nil { + x.allocs22884025.(*cgoAllocMap).Free() + x.ref22884025 = nil + } +} + +// NewSubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSubmitInfoRef(ref unsafe.Pointer) *SubmitInfo { + if ref == nil { + return nil + } + obj := new(SubmitInfo) + obj.ref22884025 = (*C.VkSubmitInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SubmitInfo) PassRef() (*C.VkSubmitInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref22884025 != nil { + return x.ref22884025, nil + } + mem22884025 := allocSubmitInfoMemory(1) + ref22884025 := (*C.VkSubmitInfo)(mem22884025) + allocs22884025 := new(cgoAllocMap) + allocs22884025.Add(mem22884025) + + var csType_allocs *cgoAllocMap + ref22884025.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs22884025.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref22884025.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs22884025.Borrow(cpNext_allocs) + + var cwaitSemaphoreCount_allocs *cgoAllocMap + ref22884025.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown + allocs22884025.Borrow(cwaitSemaphoreCount_allocs) + + var cpWaitSemaphores_allocs *cgoAllocMap + ref22884025.pWaitSemaphores, cpWaitSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)).Data)), cgoAllocsUnknown + allocs22884025.Borrow(cpWaitSemaphores_allocs) + + var cpWaitDstStageMask_allocs *cgoAllocMap + ref22884025.pWaitDstStageMask, cpWaitDstStageMask_allocs = (*C.VkPipelineStageFlags)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitDstStageMask)).Data)), cgoAllocsUnknown + allocs22884025.Borrow(cpWaitDstStageMask_allocs) + + var ccommandBufferCount_allocs *cgoAllocMap + ref22884025.commandBufferCount, ccommandBufferCount_allocs = (C.uint32_t)(x.CommandBufferCount), cgoAllocsUnknown + allocs22884025.Borrow(ccommandBufferCount_allocs) + + var cpCommandBuffers_allocs *cgoAllocMap + ref22884025.pCommandBuffers, cpCommandBuffers_allocs = (*C.VkCommandBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCommandBuffers)).Data)), cgoAllocsUnknown + allocs22884025.Borrow(cpCommandBuffers_allocs) + + var csignalSemaphoreCount_allocs *cgoAllocMap + ref22884025.signalSemaphoreCount, csignalSemaphoreCount_allocs = (C.uint32_t)(x.SignalSemaphoreCount), cgoAllocsUnknown + allocs22884025.Borrow(csignalSemaphoreCount_allocs) + + var cpSignalSemaphores_allocs *cgoAllocMap + ref22884025.pSignalSemaphores, cpSignalSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores)).Data)), cgoAllocsUnknown + allocs22884025.Borrow(cpSignalSemaphores_allocs) + + x.ref22884025 = ref22884025 + x.allocs22884025 = allocs22884025 + return ref22884025, allocs22884025 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SubmitInfo) PassValue() (C.VkSubmitInfo, *cgoAllocMap) { + if x.ref22884025 != nil { + return *x.ref22884025, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SubmitInfo) Deref() { + if x.ref22884025 == nil { + return + } + x.SType = (StructureType)(x.ref22884025.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref22884025.pNext)) + x.WaitSemaphoreCount = (uint32)(x.ref22884025.waitSemaphoreCount) + hxf95e7c8 := (*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)) + hxf95e7c8.Data = unsafe.Pointer(x.ref22884025.pWaitSemaphores) + hxf95e7c8.Cap = 0x7fffffff + // hxf95e7c8.Len = ? + + hxff2234b := (*sliceHeader)(unsafe.Pointer(&x.PWaitDstStageMask)) + hxff2234b.Data = unsafe.Pointer(x.ref22884025.pWaitDstStageMask) + hxff2234b.Cap = 0x7fffffff + // hxff2234b.Len = ? + + x.CommandBufferCount = (uint32)(x.ref22884025.commandBufferCount) + hxff73280 := (*sliceHeader)(unsafe.Pointer(&x.PCommandBuffers)) + hxff73280.Data = unsafe.Pointer(x.ref22884025.pCommandBuffers) + hxff73280.Cap = 0x7fffffff + // hxff73280.Len = ? + + x.SignalSemaphoreCount = (uint32)(x.ref22884025.signalSemaphoreCount) + hxfa9955c := (*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores)) + hxfa9955c.Data = unsafe.Pointer(x.ref22884025.pSignalSemaphores) + hxfa9955c.Cap = 0x7fffffff + // hxfa9955c.Len = ? + +} + +// allocMappedMemoryRangeMemory allocates memory for type C.VkMappedMemoryRange in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMappedMemoryRangeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMappedMemoryRangeValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMappedMemoryRangeValue = unsafe.Sizeof([1]C.VkMappedMemoryRange{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MappedMemoryRange) Ref() *C.VkMappedMemoryRange { + if x == nil { + return nil + } + return x.ref42a37320 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MappedMemoryRange) Free() { + if x != nil && x.allocs42a37320 != nil { + x.allocs42a37320.(*cgoAllocMap).Free() + x.ref42a37320 = nil + } +} + +// NewMappedMemoryRangeRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMappedMemoryRangeRef(ref unsafe.Pointer) *MappedMemoryRange { + if ref == nil { + return nil + } + obj := new(MappedMemoryRange) + obj.ref42a37320 = (*C.VkMappedMemoryRange)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MappedMemoryRange) PassRef() (*C.VkMappedMemoryRange, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref42a37320 != nil { + return x.ref42a37320, nil + } + mem42a37320 := allocMappedMemoryRangeMemory(1) + ref42a37320 := (*C.VkMappedMemoryRange)(mem42a37320) + allocs42a37320 := new(cgoAllocMap) + allocs42a37320.Add(mem42a37320) + + var csType_allocs *cgoAllocMap + ref42a37320.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs42a37320.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref42a37320.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs42a37320.Borrow(cpNext_allocs) + + var cmemory_allocs *cgoAllocMap + ref42a37320.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocs42a37320.Borrow(cmemory_allocs) + + var coffset_allocs *cgoAllocMap + ref42a37320.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocs42a37320.Borrow(coffset_allocs) + + var csize_allocs *cgoAllocMap + ref42a37320.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocs42a37320.Borrow(csize_allocs) + + x.ref42a37320 = ref42a37320 + x.allocs42a37320 = allocs42a37320 + return ref42a37320, allocs42a37320 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MappedMemoryRange) PassValue() (C.VkMappedMemoryRange, *cgoAllocMap) { + if x.ref42a37320 != nil { + return *x.ref42a37320, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MappedMemoryRange) Deref() { + if x.ref42a37320 == nil { + return + } + x.SType = (StructureType)(x.ref42a37320.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref42a37320.pNext)) + x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref42a37320.memory)) + x.Offset = (DeviceSize)(x.ref42a37320.offset) + x.Size = (DeviceSize)(x.ref42a37320.size) +} + +// allocMemoryAllocateInfoMemory allocates memory for type C.VkMemoryAllocateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryAllocateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryAllocateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryAllocateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryAllocateInfo) Ref() *C.VkMemoryAllocateInfo { + if x == nil { + return nil + } + return x.ref31032b +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryAllocateInfo) Free() { + if x != nil && x.allocs31032b != nil { + x.allocs31032b.(*cgoAllocMap).Free() + x.ref31032b = nil + } +} + +// NewMemoryAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryAllocateInfoRef(ref unsafe.Pointer) *MemoryAllocateInfo { + if ref == nil { + return nil + } + obj := new(MemoryAllocateInfo) + obj.ref31032b = (*C.VkMemoryAllocateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryAllocateInfo) PassRef() (*C.VkMemoryAllocateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref31032b != nil { + return x.ref31032b, nil + } + mem31032b := allocMemoryAllocateInfoMemory(1) + ref31032b := (*C.VkMemoryAllocateInfo)(mem31032b) + allocs31032b := new(cgoAllocMap) + allocs31032b.Add(mem31032b) + + var csType_allocs *cgoAllocMap + ref31032b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs31032b.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref31032b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs31032b.Borrow(cpNext_allocs) + + var callocationSize_allocs *cgoAllocMap + ref31032b.allocationSize, callocationSize_allocs = (C.VkDeviceSize)(x.AllocationSize), cgoAllocsUnknown + allocs31032b.Borrow(callocationSize_allocs) + + var cmemoryTypeIndex_allocs *cgoAllocMap + ref31032b.memoryTypeIndex, cmemoryTypeIndex_allocs = (C.uint32_t)(x.MemoryTypeIndex), cgoAllocsUnknown + allocs31032b.Borrow(cmemoryTypeIndex_allocs) + + x.ref31032b = ref31032b + x.allocs31032b = allocs31032b + return ref31032b, allocs31032b + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryAllocateInfo) PassValue() (C.VkMemoryAllocateInfo, *cgoAllocMap) { + if x.ref31032b != nil { + return *x.ref31032b, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryAllocateInfo) Deref() { + if x.ref31032b == nil { + return + } + x.SType = (StructureType)(x.ref31032b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref31032b.pNext)) + x.AllocationSize = (DeviceSize)(x.ref31032b.allocationSize) + x.MemoryTypeIndex = (uint32)(x.ref31032b.memoryTypeIndex) +} + +// allocMemoryRequirementsMemory allocates memory for type C.VkMemoryRequirements in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryRequirementsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryRequirementsValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryRequirementsValue = unsafe.Sizeof([1]C.VkMemoryRequirements{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryRequirements) Ref() *C.VkMemoryRequirements { + if x == nil { + return nil + } + return x.ref5259fc6b +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryRequirements) Free() { + if x != nil && x.allocs5259fc6b != nil { + x.allocs5259fc6b.(*cgoAllocMap).Free() + x.ref5259fc6b = nil + } +} + +// NewMemoryRequirementsRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryRequirementsRef(ref unsafe.Pointer) *MemoryRequirements { + if ref == nil { + return nil + } + obj := new(MemoryRequirements) + obj.ref5259fc6b = (*C.VkMemoryRequirements)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryRequirements) PassRef() (*C.VkMemoryRequirements, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5259fc6b != nil { + return x.ref5259fc6b, nil + } + mem5259fc6b := allocMemoryRequirementsMemory(1) + ref5259fc6b := (*C.VkMemoryRequirements)(mem5259fc6b) + allocs5259fc6b := new(cgoAllocMap) + allocs5259fc6b.Add(mem5259fc6b) + + var csize_allocs *cgoAllocMap + ref5259fc6b.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocs5259fc6b.Borrow(csize_allocs) + + var calignment_allocs *cgoAllocMap + ref5259fc6b.alignment, calignment_allocs = (C.VkDeviceSize)(x.Alignment), cgoAllocsUnknown + allocs5259fc6b.Borrow(calignment_allocs) + + var cmemoryTypeBits_allocs *cgoAllocMap + ref5259fc6b.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown + allocs5259fc6b.Borrow(cmemoryTypeBits_allocs) + + x.ref5259fc6b = ref5259fc6b + x.allocs5259fc6b = allocs5259fc6b + return ref5259fc6b, allocs5259fc6b + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryRequirements) PassValue() (C.VkMemoryRequirements, *cgoAllocMap) { + if x.ref5259fc6b != nil { + return *x.ref5259fc6b, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryRequirements) Deref() { + if x.ref5259fc6b == nil { + return + } + x.Size = (DeviceSize)(x.ref5259fc6b.size) + x.Alignment = (DeviceSize)(x.ref5259fc6b.alignment) + x.MemoryTypeBits = (uint32)(x.ref5259fc6b.memoryTypeBits) +} + +// allocSparseMemoryBindMemory allocates memory for type C.VkSparseMemoryBind in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSparseMemoryBindMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseMemoryBindValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSparseMemoryBindValue = unsafe.Sizeof([1]C.VkSparseMemoryBind{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SparseMemoryBind) Ref() *C.VkSparseMemoryBind { + if x == nil { + return nil + } + return x.ref5bf418e8 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SparseMemoryBind) Free() { + if x != nil && x.allocs5bf418e8 != nil { + x.allocs5bf418e8.(*cgoAllocMap).Free() + x.ref5bf418e8 = nil + } +} + +// NewSparseMemoryBindRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSparseMemoryBindRef(ref unsafe.Pointer) *SparseMemoryBind { + if ref == nil { + return nil + } + obj := new(SparseMemoryBind) + obj.ref5bf418e8 = (*C.VkSparseMemoryBind)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SparseMemoryBind) PassRef() (*C.VkSparseMemoryBind, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5bf418e8 != nil { + return x.ref5bf418e8, nil + } + mem5bf418e8 := allocSparseMemoryBindMemory(1) + ref5bf418e8 := (*C.VkSparseMemoryBind)(mem5bf418e8) + allocs5bf418e8 := new(cgoAllocMap) + allocs5bf418e8.Add(mem5bf418e8) + + var cresourceOffset_allocs *cgoAllocMap + ref5bf418e8.resourceOffset, cresourceOffset_allocs = (C.VkDeviceSize)(x.ResourceOffset), cgoAllocsUnknown + allocs5bf418e8.Borrow(cresourceOffset_allocs) + + var csize_allocs *cgoAllocMap + ref5bf418e8.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocs5bf418e8.Borrow(csize_allocs) + + var cmemory_allocs *cgoAllocMap + ref5bf418e8.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocs5bf418e8.Borrow(cmemory_allocs) + + var cmemoryOffset_allocs *cgoAllocMap + ref5bf418e8.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown + allocs5bf418e8.Borrow(cmemoryOffset_allocs) + + var cflags_allocs *cgoAllocMap + ref5bf418e8.flags, cflags_allocs = (C.VkSparseMemoryBindFlags)(x.Flags), cgoAllocsUnknown + allocs5bf418e8.Borrow(cflags_allocs) + + x.ref5bf418e8 = ref5bf418e8 + x.allocs5bf418e8 = allocs5bf418e8 + return ref5bf418e8, allocs5bf418e8 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SparseMemoryBind) PassValue() (C.VkSparseMemoryBind, *cgoAllocMap) { + if x.ref5bf418e8 != nil { + return *x.ref5bf418e8, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SparseMemoryBind) Deref() { + if x.ref5bf418e8 == nil { + return + } + x.ResourceOffset = (DeviceSize)(x.ref5bf418e8.resourceOffset) + x.Size = (DeviceSize)(x.ref5bf418e8.size) + x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref5bf418e8.memory)) + x.MemoryOffset = (DeviceSize)(x.ref5bf418e8.memoryOffset) + x.Flags = (SparseMemoryBindFlags)(x.ref5bf418e8.flags) +} + +// allocSparseBufferMemoryBindInfoMemory allocates memory for type C.VkSparseBufferMemoryBindInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSparseBufferMemoryBindInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseBufferMemoryBindInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSparseBufferMemoryBindInfoValue = unsafe.Sizeof([1]C.VkSparseBufferMemoryBindInfo{}) + +// unpackSSparseMemoryBind transforms a sliced Go data structure into plain C format. +func unpackSSparseMemoryBind(x []SparseMemoryBind) (unpacked *C.VkSparseMemoryBind, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseMemoryBind) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSparseMemoryBindMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSparseMemoryBind)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSparseMemoryBind)(h.Data) + return +} + +// packSSparseMemoryBind reads sliced Go data structure out from plain C format. +func packSSparseMemoryBind(v []SparseMemoryBind, ptr0 *C.VkSparseMemoryBind) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSparseMemoryBindValue]C.VkSparseMemoryBind)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSparseMemoryBindRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SparseBufferMemoryBindInfo) Ref() *C.VkSparseBufferMemoryBindInfo { + if x == nil { + return nil + } + return x.refebcaf40c +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SparseBufferMemoryBindInfo) Free() { + if x != nil && x.allocsebcaf40c != nil { + x.allocsebcaf40c.(*cgoAllocMap).Free() + x.refebcaf40c = nil + } +} + +// NewSparseBufferMemoryBindInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSparseBufferMemoryBindInfoRef(ref unsafe.Pointer) *SparseBufferMemoryBindInfo { + if ref == nil { + return nil + } + obj := new(SparseBufferMemoryBindInfo) + obj.refebcaf40c = (*C.VkSparseBufferMemoryBindInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SparseBufferMemoryBindInfo) PassRef() (*C.VkSparseBufferMemoryBindInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refebcaf40c != nil { + return x.refebcaf40c, nil + } + memebcaf40c := allocSparseBufferMemoryBindInfoMemory(1) + refebcaf40c := (*C.VkSparseBufferMemoryBindInfo)(memebcaf40c) + allocsebcaf40c := new(cgoAllocMap) + allocsebcaf40c.Add(memebcaf40c) + + var cbuffer_allocs *cgoAllocMap + refebcaf40c.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocsebcaf40c.Borrow(cbuffer_allocs) + + var cbindCount_allocs *cgoAllocMap + refebcaf40c.bindCount, cbindCount_allocs = (C.uint32_t)(x.BindCount), cgoAllocsUnknown + allocsebcaf40c.Borrow(cbindCount_allocs) + + var cpBinds_allocs *cgoAllocMap + refebcaf40c.pBinds, cpBinds_allocs = unpackSSparseMemoryBind(x.PBinds) + allocsebcaf40c.Borrow(cpBinds_allocs) + + x.refebcaf40c = refebcaf40c + x.allocsebcaf40c = allocsebcaf40c + return refebcaf40c, allocsebcaf40c + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SparseBufferMemoryBindInfo) PassValue() (C.VkSparseBufferMemoryBindInfo, *cgoAllocMap) { + if x.refebcaf40c != nil { + return *x.refebcaf40c, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SparseBufferMemoryBindInfo) Deref() { + if x.refebcaf40c == nil { + return + } + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refebcaf40c.buffer)) + x.BindCount = (uint32)(x.refebcaf40c.bindCount) + packSSparseMemoryBind(x.PBinds, x.refebcaf40c.pBinds) +} + +// allocSparseImageOpaqueMemoryBindInfoMemory allocates memory for type C.VkSparseImageOpaqueMemoryBindInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSparseImageOpaqueMemoryBindInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageOpaqueMemoryBindInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSparseImageOpaqueMemoryBindInfoValue = unsafe.Sizeof([1]C.VkSparseImageOpaqueMemoryBindInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SparseImageOpaqueMemoryBindInfo) Ref() *C.VkSparseImageOpaqueMemoryBindInfo { + if x == nil { + return nil + } + return x.reffb1b3d56 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SparseImageOpaqueMemoryBindInfo) Free() { + if x != nil && x.allocsfb1b3d56 != nil { + x.allocsfb1b3d56.(*cgoAllocMap).Free() + x.reffb1b3d56 = nil + } +} + +// NewSparseImageOpaqueMemoryBindInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSparseImageOpaqueMemoryBindInfoRef(ref unsafe.Pointer) *SparseImageOpaqueMemoryBindInfo { + if ref == nil { + return nil + } + obj := new(SparseImageOpaqueMemoryBindInfo) + obj.reffb1b3d56 = (*C.VkSparseImageOpaqueMemoryBindInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SparseImageOpaqueMemoryBindInfo) PassRef() (*C.VkSparseImageOpaqueMemoryBindInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reffb1b3d56 != nil { + return x.reffb1b3d56, nil + } + memfb1b3d56 := allocSparseImageOpaqueMemoryBindInfoMemory(1) + reffb1b3d56 := (*C.VkSparseImageOpaqueMemoryBindInfo)(memfb1b3d56) + allocsfb1b3d56 := new(cgoAllocMap) + allocsfb1b3d56.Add(memfb1b3d56) + + var cimage_allocs *cgoAllocMap + reffb1b3d56.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocsfb1b3d56.Borrow(cimage_allocs) + + var cbindCount_allocs *cgoAllocMap + reffb1b3d56.bindCount, cbindCount_allocs = (C.uint32_t)(x.BindCount), cgoAllocsUnknown + allocsfb1b3d56.Borrow(cbindCount_allocs) + + var cpBinds_allocs *cgoAllocMap + reffb1b3d56.pBinds, cpBinds_allocs = unpackSSparseMemoryBind(x.PBinds) + allocsfb1b3d56.Borrow(cpBinds_allocs) + + x.reffb1b3d56 = reffb1b3d56 + x.allocsfb1b3d56 = allocsfb1b3d56 + return reffb1b3d56, allocsfb1b3d56 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SparseImageOpaqueMemoryBindInfo) PassValue() (C.VkSparseImageOpaqueMemoryBindInfo, *cgoAllocMap) { + if x.reffb1b3d56 != nil { + return *x.reffb1b3d56, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SparseImageOpaqueMemoryBindInfo) Deref() { + if x.reffb1b3d56 == nil { + return + } + x.Image = *(*Image)(unsafe.Pointer(&x.reffb1b3d56.image)) + x.BindCount = (uint32)(x.reffb1b3d56.bindCount) + packSSparseMemoryBind(x.PBinds, x.reffb1b3d56.pBinds) +} + +// allocImageSubresourceMemory allocates memory for type C.VkImageSubresource in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageSubresourceMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSubresourceValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageSubresourceValue = unsafe.Sizeof([1]C.VkImageSubresource{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageSubresource) Ref() *C.VkImageSubresource { + if x == nil { + return nil + } + return x.reffeaa0d8a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageSubresource) Free() { + if x != nil && x.allocsfeaa0d8a != nil { + x.allocsfeaa0d8a.(*cgoAllocMap).Free() + x.reffeaa0d8a = nil + } +} + +// NewImageSubresourceRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageSubresourceRef(ref unsafe.Pointer) *ImageSubresource { + if ref == nil { + return nil + } + obj := new(ImageSubresource) + obj.reffeaa0d8a = (*C.VkImageSubresource)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageSubresource) PassRef() (*C.VkImageSubresource, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reffeaa0d8a != nil { + return x.reffeaa0d8a, nil + } + memfeaa0d8a := allocImageSubresourceMemory(1) + reffeaa0d8a := (*C.VkImageSubresource)(memfeaa0d8a) + allocsfeaa0d8a := new(cgoAllocMap) + allocsfeaa0d8a.Add(memfeaa0d8a) + + var caspectMask_allocs *cgoAllocMap + reffeaa0d8a.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown + allocsfeaa0d8a.Borrow(caspectMask_allocs) + + var cmipLevel_allocs *cgoAllocMap + reffeaa0d8a.mipLevel, cmipLevel_allocs = (C.uint32_t)(x.MipLevel), cgoAllocsUnknown + allocsfeaa0d8a.Borrow(cmipLevel_allocs) + + var carrayLayer_allocs *cgoAllocMap + reffeaa0d8a.arrayLayer, carrayLayer_allocs = (C.uint32_t)(x.ArrayLayer), cgoAllocsUnknown + allocsfeaa0d8a.Borrow(carrayLayer_allocs) + + x.reffeaa0d8a = reffeaa0d8a + x.allocsfeaa0d8a = allocsfeaa0d8a + return reffeaa0d8a, allocsfeaa0d8a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageSubresource) PassValue() (C.VkImageSubresource, *cgoAllocMap) { + if x.reffeaa0d8a != nil { + return *x.reffeaa0d8a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageSubresource) Deref() { + if x.reffeaa0d8a == nil { + return + } + x.AspectMask = (ImageAspectFlags)(x.reffeaa0d8a.aspectMask) + x.MipLevel = (uint32)(x.reffeaa0d8a.mipLevel) + x.ArrayLayer = (uint32)(x.reffeaa0d8a.arrayLayer) +} + +// allocSparseImageMemoryBindMemory allocates memory for type C.VkSparseImageMemoryBind in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSparseImageMemoryBindMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageMemoryBindValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSparseImageMemoryBindValue = unsafe.Sizeof([1]C.VkSparseImageMemoryBind{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SparseImageMemoryBind) Ref() *C.VkSparseImageMemoryBind { + if x == nil { + return nil + } + return x.ref41b516d7 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SparseImageMemoryBind) Free() { + if x != nil && x.allocs41b516d7 != nil { + x.allocs41b516d7.(*cgoAllocMap).Free() + x.ref41b516d7 = nil + } +} + +// NewSparseImageMemoryBindRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSparseImageMemoryBindRef(ref unsafe.Pointer) *SparseImageMemoryBind { + if ref == nil { + return nil + } + obj := new(SparseImageMemoryBind) + obj.ref41b516d7 = (*C.VkSparseImageMemoryBind)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SparseImageMemoryBind) PassRef() (*C.VkSparseImageMemoryBind, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref41b516d7 != nil { + return x.ref41b516d7, nil + } + mem41b516d7 := allocSparseImageMemoryBindMemory(1) + ref41b516d7 := (*C.VkSparseImageMemoryBind)(mem41b516d7) + allocs41b516d7 := new(cgoAllocMap) + allocs41b516d7.Add(mem41b516d7) + + var csubresource_allocs *cgoAllocMap + ref41b516d7.subresource, csubresource_allocs = x.Subresource.PassValue() + allocs41b516d7.Borrow(csubresource_allocs) + + var coffset_allocs *cgoAllocMap + ref41b516d7.offset, coffset_allocs = x.Offset.PassValue() + allocs41b516d7.Borrow(coffset_allocs) + + var cextent_allocs *cgoAllocMap + ref41b516d7.extent, cextent_allocs = x.Extent.PassValue() + allocs41b516d7.Borrow(cextent_allocs) + + var cmemory_allocs *cgoAllocMap + ref41b516d7.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocs41b516d7.Borrow(cmemory_allocs) + + var cmemoryOffset_allocs *cgoAllocMap + ref41b516d7.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown + allocs41b516d7.Borrow(cmemoryOffset_allocs) + + var cflags_allocs *cgoAllocMap + ref41b516d7.flags, cflags_allocs = (C.VkSparseMemoryBindFlags)(x.Flags), cgoAllocsUnknown + allocs41b516d7.Borrow(cflags_allocs) + + x.ref41b516d7 = ref41b516d7 + x.allocs41b516d7 = allocs41b516d7 + return ref41b516d7, allocs41b516d7 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SparseImageMemoryBind) PassValue() (C.VkSparseImageMemoryBind, *cgoAllocMap) { + if x.ref41b516d7 != nil { + return *x.ref41b516d7, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SparseImageMemoryBind) Deref() { + if x.ref41b516d7 == nil { + return + } + x.Subresource = *NewImageSubresourceRef(unsafe.Pointer(&x.ref41b516d7.subresource)) + x.Offset = *NewOffset3DRef(unsafe.Pointer(&x.ref41b516d7.offset)) + x.Extent = *NewExtent3DRef(unsafe.Pointer(&x.ref41b516d7.extent)) + x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref41b516d7.memory)) + x.MemoryOffset = (DeviceSize)(x.ref41b516d7.memoryOffset) + x.Flags = (SparseMemoryBindFlags)(x.ref41b516d7.flags) +} + +// allocSparseImageMemoryBindInfoMemory allocates memory for type C.VkSparseImageMemoryBindInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSparseImageMemoryBindInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageMemoryBindInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSparseImageMemoryBindInfoValue = unsafe.Sizeof([1]C.VkSparseImageMemoryBindInfo{}) + +// unpackSSparseImageMemoryBind transforms a sliced Go data structure into plain C format. +func unpackSSparseImageMemoryBind(x []SparseImageMemoryBind) (unpacked *C.VkSparseImageMemoryBind, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageMemoryBind) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSparseImageMemoryBindMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSparseImageMemoryBind)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSparseImageMemoryBind)(h.Data) + return +} + +// packSSparseImageMemoryBind reads sliced Go data structure out from plain C format. +func packSSparseImageMemoryBind(v []SparseImageMemoryBind, ptr0 *C.VkSparseImageMemoryBind) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSparseImageMemoryBindValue]C.VkSparseImageMemoryBind)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSparseImageMemoryBindRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SparseImageMemoryBindInfo) Ref() *C.VkSparseImageMemoryBindInfo { + if x == nil { + return nil + } + return x.ref50faeb70 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SparseImageMemoryBindInfo) Free() { + if x != nil && x.allocs50faeb70 != nil { + x.allocs50faeb70.(*cgoAllocMap).Free() + x.ref50faeb70 = nil + } +} + +// NewSparseImageMemoryBindInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSparseImageMemoryBindInfoRef(ref unsafe.Pointer) *SparseImageMemoryBindInfo { + if ref == nil { + return nil + } + obj := new(SparseImageMemoryBindInfo) + obj.ref50faeb70 = (*C.VkSparseImageMemoryBindInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SparseImageMemoryBindInfo) PassRef() (*C.VkSparseImageMemoryBindInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref50faeb70 != nil { + return x.ref50faeb70, nil + } + mem50faeb70 := allocSparseImageMemoryBindInfoMemory(1) + ref50faeb70 := (*C.VkSparseImageMemoryBindInfo)(mem50faeb70) + allocs50faeb70 := new(cgoAllocMap) + allocs50faeb70.Add(mem50faeb70) + + var cimage_allocs *cgoAllocMap + ref50faeb70.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocs50faeb70.Borrow(cimage_allocs) + + var cbindCount_allocs *cgoAllocMap + ref50faeb70.bindCount, cbindCount_allocs = (C.uint32_t)(x.BindCount), cgoAllocsUnknown + allocs50faeb70.Borrow(cbindCount_allocs) + + var cpBinds_allocs *cgoAllocMap + ref50faeb70.pBinds, cpBinds_allocs = unpackSSparseImageMemoryBind(x.PBinds) + allocs50faeb70.Borrow(cpBinds_allocs) + + x.ref50faeb70 = ref50faeb70 + x.allocs50faeb70 = allocs50faeb70 + return ref50faeb70, allocs50faeb70 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SparseImageMemoryBindInfo) PassValue() (C.VkSparseImageMemoryBindInfo, *cgoAllocMap) { + if x.ref50faeb70 != nil { + return *x.ref50faeb70, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SparseImageMemoryBindInfo) Deref() { + if x.ref50faeb70 == nil { + return + } + x.Image = *(*Image)(unsafe.Pointer(&x.ref50faeb70.image)) + x.BindCount = (uint32)(x.ref50faeb70.bindCount) + packSSparseImageMemoryBind(x.PBinds, x.ref50faeb70.pBinds) +} + +// allocBindSparseInfoMemory allocates memory for type C.VkBindSparseInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBindSparseInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindSparseInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBindSparseInfoValue = unsafe.Sizeof([1]C.VkBindSparseInfo{}) + +// unpackSSparseBufferMemoryBindInfo transforms a sliced Go data structure into plain C format. +func unpackSSparseBufferMemoryBindInfo(x []SparseBufferMemoryBindInfo) (unpacked *C.VkSparseBufferMemoryBindInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseBufferMemoryBindInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSparseBufferMemoryBindInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSparseBufferMemoryBindInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSparseBufferMemoryBindInfo)(h.Data) + return +} + +// unpackSSparseImageOpaqueMemoryBindInfo transforms a sliced Go data structure into plain C format. +func unpackSSparseImageOpaqueMemoryBindInfo(x []SparseImageOpaqueMemoryBindInfo) (unpacked *C.VkSparseImageOpaqueMemoryBindInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageOpaqueMemoryBindInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSparseImageOpaqueMemoryBindInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSparseImageOpaqueMemoryBindInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSparseImageOpaqueMemoryBindInfo)(h.Data) + return +} + +// unpackSSparseImageMemoryBindInfo transforms a sliced Go data structure into plain C format. +func unpackSSparseImageMemoryBindInfo(x []SparseImageMemoryBindInfo) (unpacked *C.VkSparseImageMemoryBindInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageMemoryBindInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSparseImageMemoryBindInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSparseImageMemoryBindInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSparseImageMemoryBindInfo)(h.Data) + return +} + +// packSSparseBufferMemoryBindInfo reads sliced Go data structure out from plain C format. +func packSSparseBufferMemoryBindInfo(v []SparseBufferMemoryBindInfo, ptr0 *C.VkSparseBufferMemoryBindInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSparseBufferMemoryBindInfoValue]C.VkSparseBufferMemoryBindInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSparseBufferMemoryBindInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// packSSparseImageOpaqueMemoryBindInfo reads sliced Go data structure out from plain C format. +func packSSparseImageOpaqueMemoryBindInfo(v []SparseImageOpaqueMemoryBindInfo, ptr0 *C.VkSparseImageOpaqueMemoryBindInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSparseImageOpaqueMemoryBindInfoValue]C.VkSparseImageOpaqueMemoryBindInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSparseImageOpaqueMemoryBindInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// packSSparseImageMemoryBindInfo reads sliced Go data structure out from plain C format. +func packSSparseImageMemoryBindInfo(v []SparseImageMemoryBindInfo, ptr0 *C.VkSparseImageMemoryBindInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSparseImageMemoryBindInfoValue]C.VkSparseImageMemoryBindInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSparseImageMemoryBindInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BindSparseInfo) Ref() *C.VkBindSparseInfo { + if x == nil { + return nil + } + return x.refb0cbe910 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BindSparseInfo) Free() { + if x != nil && x.allocsb0cbe910 != nil { + x.allocsb0cbe910.(*cgoAllocMap).Free() + x.refb0cbe910 = nil + } +} + +// NewBindSparseInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBindSparseInfoRef(ref unsafe.Pointer) *BindSparseInfo { + if ref == nil { + return nil + } + obj := new(BindSparseInfo) + obj.refb0cbe910 = (*C.VkBindSparseInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BindSparseInfo) PassRef() (*C.VkBindSparseInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb0cbe910 != nil { + return x.refb0cbe910, nil + } + memb0cbe910 := allocBindSparseInfoMemory(1) + refb0cbe910 := (*C.VkBindSparseInfo)(memb0cbe910) + allocsb0cbe910 := new(cgoAllocMap) + allocsb0cbe910.Add(memb0cbe910) + + var csType_allocs *cgoAllocMap + refb0cbe910.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb0cbe910.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb0cbe910.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb0cbe910.Borrow(cpNext_allocs) + + var cwaitSemaphoreCount_allocs *cgoAllocMap + refb0cbe910.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown + allocsb0cbe910.Borrow(cwaitSemaphoreCount_allocs) + + var cpWaitSemaphores_allocs *cgoAllocMap + refb0cbe910.pWaitSemaphores, cpWaitSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)).Data)), cgoAllocsUnknown + allocsb0cbe910.Borrow(cpWaitSemaphores_allocs) + + var cbufferBindCount_allocs *cgoAllocMap + refb0cbe910.bufferBindCount, cbufferBindCount_allocs = (C.uint32_t)(x.BufferBindCount), cgoAllocsUnknown + allocsb0cbe910.Borrow(cbufferBindCount_allocs) + + var cpBufferBinds_allocs *cgoAllocMap + refb0cbe910.pBufferBinds, cpBufferBinds_allocs = unpackSSparseBufferMemoryBindInfo(x.PBufferBinds) + allocsb0cbe910.Borrow(cpBufferBinds_allocs) + + var cimageOpaqueBindCount_allocs *cgoAllocMap + refb0cbe910.imageOpaqueBindCount, cimageOpaqueBindCount_allocs = (C.uint32_t)(x.ImageOpaqueBindCount), cgoAllocsUnknown + allocsb0cbe910.Borrow(cimageOpaqueBindCount_allocs) + + var cpImageOpaqueBinds_allocs *cgoAllocMap + refb0cbe910.pImageOpaqueBinds, cpImageOpaqueBinds_allocs = unpackSSparseImageOpaqueMemoryBindInfo(x.PImageOpaqueBinds) + allocsb0cbe910.Borrow(cpImageOpaqueBinds_allocs) + + var cimageBindCount_allocs *cgoAllocMap + refb0cbe910.imageBindCount, cimageBindCount_allocs = (C.uint32_t)(x.ImageBindCount), cgoAllocsUnknown + allocsb0cbe910.Borrow(cimageBindCount_allocs) + + var cpImageBinds_allocs *cgoAllocMap + refb0cbe910.pImageBinds, cpImageBinds_allocs = unpackSSparseImageMemoryBindInfo(x.PImageBinds) + allocsb0cbe910.Borrow(cpImageBinds_allocs) + + var csignalSemaphoreCount_allocs *cgoAllocMap + refb0cbe910.signalSemaphoreCount, csignalSemaphoreCount_allocs = (C.uint32_t)(x.SignalSemaphoreCount), cgoAllocsUnknown + allocsb0cbe910.Borrow(csignalSemaphoreCount_allocs) + + var cpSignalSemaphores_allocs *cgoAllocMap + refb0cbe910.pSignalSemaphores, cpSignalSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores)).Data)), cgoAllocsUnknown + allocsb0cbe910.Borrow(cpSignalSemaphores_allocs) + + x.refb0cbe910 = refb0cbe910 + x.allocsb0cbe910 = allocsb0cbe910 + return refb0cbe910, allocsb0cbe910 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BindSparseInfo) PassValue() (C.VkBindSparseInfo, *cgoAllocMap) { + if x.refb0cbe910 != nil { + return *x.refb0cbe910, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BindSparseInfo) Deref() { + if x.refb0cbe910 == nil { + return + } + x.SType = (StructureType)(x.refb0cbe910.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb0cbe910.pNext)) + x.WaitSemaphoreCount = (uint32)(x.refb0cbe910.waitSemaphoreCount) + hxfa3f05c := (*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)) + hxfa3f05c.Data = unsafe.Pointer(x.refb0cbe910.pWaitSemaphores) + hxfa3f05c.Cap = 0x7fffffff + // hxfa3f05c.Len = ? + + x.BufferBindCount = (uint32)(x.refb0cbe910.bufferBindCount) + packSSparseBufferMemoryBindInfo(x.PBufferBinds, x.refb0cbe910.pBufferBinds) + x.ImageOpaqueBindCount = (uint32)(x.refb0cbe910.imageOpaqueBindCount) + packSSparseImageOpaqueMemoryBindInfo(x.PImageOpaqueBinds, x.refb0cbe910.pImageOpaqueBinds) + x.ImageBindCount = (uint32)(x.refb0cbe910.imageBindCount) + packSSparseImageMemoryBindInfo(x.PImageBinds, x.refb0cbe910.pImageBinds) + x.SignalSemaphoreCount = (uint32)(x.refb0cbe910.signalSemaphoreCount) + hxf0d18b7 := (*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores)) + hxf0d18b7.Data = unsafe.Pointer(x.refb0cbe910.pSignalSemaphores) + hxf0d18b7.Cap = 0x7fffffff + // hxf0d18b7.Len = ? + +} + +// allocSparseImageFormatPropertiesMemory allocates memory for type C.VkSparseImageFormatProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSparseImageFormatPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageFormatPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSparseImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkSparseImageFormatProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SparseImageFormatProperties) Ref() *C.VkSparseImageFormatProperties { + if x == nil { + return nil + } + return x.ref2c12cf44 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SparseImageFormatProperties) Free() { + if x != nil && x.allocs2c12cf44 != nil { + x.allocs2c12cf44.(*cgoAllocMap).Free() + x.ref2c12cf44 = nil + } +} + +// NewSparseImageFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSparseImageFormatPropertiesRef(ref unsafe.Pointer) *SparseImageFormatProperties { + if ref == nil { + return nil + } + obj := new(SparseImageFormatProperties) + obj.ref2c12cf44 = (*C.VkSparseImageFormatProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SparseImageFormatProperties) PassRef() (*C.VkSparseImageFormatProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2c12cf44 != nil { + return x.ref2c12cf44, nil + } + mem2c12cf44 := allocSparseImageFormatPropertiesMemory(1) + ref2c12cf44 := (*C.VkSparseImageFormatProperties)(mem2c12cf44) + allocs2c12cf44 := new(cgoAllocMap) + allocs2c12cf44.Add(mem2c12cf44) + + var caspectMask_allocs *cgoAllocMap + ref2c12cf44.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown + allocs2c12cf44.Borrow(caspectMask_allocs) + + var cimageGranularity_allocs *cgoAllocMap + ref2c12cf44.imageGranularity, cimageGranularity_allocs = x.ImageGranularity.PassValue() + allocs2c12cf44.Borrow(cimageGranularity_allocs) + + var cflags_allocs *cgoAllocMap + ref2c12cf44.flags, cflags_allocs = (C.VkSparseImageFormatFlags)(x.Flags), cgoAllocsUnknown + allocs2c12cf44.Borrow(cflags_allocs) + + x.ref2c12cf44 = ref2c12cf44 + x.allocs2c12cf44 = allocs2c12cf44 + return ref2c12cf44, allocs2c12cf44 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SparseImageFormatProperties) PassValue() (C.VkSparseImageFormatProperties, *cgoAllocMap) { + if x.ref2c12cf44 != nil { + return *x.ref2c12cf44, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SparseImageFormatProperties) Deref() { + if x.ref2c12cf44 == nil { + return + } + x.AspectMask = (ImageAspectFlags)(x.ref2c12cf44.aspectMask) + x.ImageGranularity = *NewExtent3DRef(unsafe.Pointer(&x.ref2c12cf44.imageGranularity)) + x.Flags = (SparseImageFormatFlags)(x.ref2c12cf44.flags) +} + +// allocSparseImageMemoryRequirementsMemory allocates memory for type C.VkSparseImageMemoryRequirements in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSparseImageMemoryRequirementsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageMemoryRequirementsValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSparseImageMemoryRequirementsValue = unsafe.Sizeof([1]C.VkSparseImageMemoryRequirements{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SparseImageMemoryRequirements) Ref() *C.VkSparseImageMemoryRequirements { + if x == nil { + return nil + } + return x.ref685a2323 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SparseImageMemoryRequirements) Free() { + if x != nil && x.allocs685a2323 != nil { + x.allocs685a2323.(*cgoAllocMap).Free() + x.ref685a2323 = nil + } +} + +// NewSparseImageMemoryRequirementsRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSparseImageMemoryRequirementsRef(ref unsafe.Pointer) *SparseImageMemoryRequirements { + if ref == nil { + return nil + } + obj := new(SparseImageMemoryRequirements) + obj.ref685a2323 = (*C.VkSparseImageMemoryRequirements)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SparseImageMemoryRequirements) PassRef() (*C.VkSparseImageMemoryRequirements, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref685a2323 != nil { + return x.ref685a2323, nil + } + mem685a2323 := allocSparseImageMemoryRequirementsMemory(1) + ref685a2323 := (*C.VkSparseImageMemoryRequirements)(mem685a2323) + allocs685a2323 := new(cgoAllocMap) + allocs685a2323.Add(mem685a2323) + + var cformatProperties_allocs *cgoAllocMap + ref685a2323.formatProperties, cformatProperties_allocs = x.FormatProperties.PassValue() + allocs685a2323.Borrow(cformatProperties_allocs) + + var cimageMipTailFirstLod_allocs *cgoAllocMap + ref685a2323.imageMipTailFirstLod, cimageMipTailFirstLod_allocs = (C.uint32_t)(x.ImageMipTailFirstLod), cgoAllocsUnknown + allocs685a2323.Borrow(cimageMipTailFirstLod_allocs) + + var cimageMipTailSize_allocs *cgoAllocMap + ref685a2323.imageMipTailSize, cimageMipTailSize_allocs = (C.VkDeviceSize)(x.ImageMipTailSize), cgoAllocsUnknown + allocs685a2323.Borrow(cimageMipTailSize_allocs) + + var cimageMipTailOffset_allocs *cgoAllocMap + ref685a2323.imageMipTailOffset, cimageMipTailOffset_allocs = (C.VkDeviceSize)(x.ImageMipTailOffset), cgoAllocsUnknown + allocs685a2323.Borrow(cimageMipTailOffset_allocs) + + var cimageMipTailStride_allocs *cgoAllocMap + ref685a2323.imageMipTailStride, cimageMipTailStride_allocs = (C.VkDeviceSize)(x.ImageMipTailStride), cgoAllocsUnknown + allocs685a2323.Borrow(cimageMipTailStride_allocs) + + x.ref685a2323 = ref685a2323 + x.allocs685a2323 = allocs685a2323 + return ref685a2323, allocs685a2323 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SparseImageMemoryRequirements) PassValue() (C.VkSparseImageMemoryRequirements, *cgoAllocMap) { + if x.ref685a2323 != nil { + return *x.ref685a2323, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SparseImageMemoryRequirements) Deref() { + if x.ref685a2323 == nil { + return + } + x.FormatProperties = *NewSparseImageFormatPropertiesRef(unsafe.Pointer(&x.ref685a2323.formatProperties)) + x.ImageMipTailFirstLod = (uint32)(x.ref685a2323.imageMipTailFirstLod) + x.ImageMipTailSize = (DeviceSize)(x.ref685a2323.imageMipTailSize) + x.ImageMipTailOffset = (DeviceSize)(x.ref685a2323.imageMipTailOffset) + x.ImageMipTailStride = (DeviceSize)(x.ref685a2323.imageMipTailStride) +} + +// allocFenceCreateInfoMemory allocates memory for type C.VkFenceCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocFenceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFenceCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfFenceCreateInfoValue = unsafe.Sizeof([1]C.VkFenceCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *FenceCreateInfo) Ref() *C.VkFenceCreateInfo { + if x == nil { + return nil + } + return x.refb8ff4840 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *FenceCreateInfo) Free() { + if x != nil && x.allocsb8ff4840 != nil { + x.allocsb8ff4840.(*cgoAllocMap).Free() + x.refb8ff4840 = nil + } +} + +// NewFenceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewFenceCreateInfoRef(ref unsafe.Pointer) *FenceCreateInfo { + if ref == nil { + return nil + } + obj := new(FenceCreateInfo) + obj.refb8ff4840 = (*C.VkFenceCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *FenceCreateInfo) PassRef() (*C.VkFenceCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb8ff4840 != nil { + return x.refb8ff4840, nil + } + memb8ff4840 := allocFenceCreateInfoMemory(1) + refb8ff4840 := (*C.VkFenceCreateInfo)(memb8ff4840) + allocsb8ff4840 := new(cgoAllocMap) + allocsb8ff4840.Add(memb8ff4840) + + var csType_allocs *cgoAllocMap + refb8ff4840.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb8ff4840.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb8ff4840.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb8ff4840.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refb8ff4840.flags, cflags_allocs = (C.VkFenceCreateFlags)(x.Flags), cgoAllocsUnknown + allocsb8ff4840.Borrow(cflags_allocs) + + x.refb8ff4840 = refb8ff4840 + x.allocsb8ff4840 = allocsb8ff4840 + return refb8ff4840, allocsb8ff4840 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x FenceCreateInfo) PassValue() (C.VkFenceCreateInfo, *cgoAllocMap) { + if x.refb8ff4840 != nil { + return *x.refb8ff4840, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *FenceCreateInfo) Deref() { + if x.refb8ff4840 == nil { + return + } + x.SType = (StructureType)(x.refb8ff4840.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8ff4840.pNext)) + x.Flags = (FenceCreateFlags)(x.refb8ff4840.flags) +} + +// allocSemaphoreCreateInfoMemory allocates memory for type C.VkSemaphoreCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSemaphoreCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSemaphoreCreateInfoValue = unsafe.Sizeof([1]C.VkSemaphoreCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SemaphoreCreateInfo) Ref() *C.VkSemaphoreCreateInfo { + if x == nil { + return nil + } + return x.reff130cd2b +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SemaphoreCreateInfo) Free() { + if x != nil && x.allocsf130cd2b != nil { + x.allocsf130cd2b.(*cgoAllocMap).Free() + x.reff130cd2b = nil + } +} + +// NewSemaphoreCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSemaphoreCreateInfoRef(ref unsafe.Pointer) *SemaphoreCreateInfo { + if ref == nil { + return nil + } + obj := new(SemaphoreCreateInfo) + obj.reff130cd2b = (*C.VkSemaphoreCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SemaphoreCreateInfo) PassRef() (*C.VkSemaphoreCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff130cd2b != nil { + return x.reff130cd2b, nil + } + memf130cd2b := allocSemaphoreCreateInfoMemory(1) + reff130cd2b := (*C.VkSemaphoreCreateInfo)(memf130cd2b) + allocsf130cd2b := new(cgoAllocMap) + allocsf130cd2b.Add(memf130cd2b) + + var csType_allocs *cgoAllocMap + reff130cd2b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf130cd2b.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff130cd2b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf130cd2b.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + reff130cd2b.flags, cflags_allocs = (C.VkSemaphoreCreateFlags)(x.Flags), cgoAllocsUnknown + allocsf130cd2b.Borrow(cflags_allocs) + + x.reff130cd2b = reff130cd2b + x.allocsf130cd2b = allocsf130cd2b + return reff130cd2b, allocsf130cd2b + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SemaphoreCreateInfo) PassValue() (C.VkSemaphoreCreateInfo, *cgoAllocMap) { + if x.reff130cd2b != nil { + return *x.reff130cd2b, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SemaphoreCreateInfo) Deref() { + if x.reff130cd2b == nil { + return + } + x.SType = (StructureType)(x.reff130cd2b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff130cd2b.pNext)) + x.Flags = (SemaphoreCreateFlags)(x.reff130cd2b.flags) +} + +// allocEventCreateInfoMemory allocates memory for type C.VkEventCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocEventCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfEventCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfEventCreateInfoValue = unsafe.Sizeof([1]C.VkEventCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *EventCreateInfo) Ref() *C.VkEventCreateInfo { + if x == nil { + return nil + } + return x.refa54f9ec8 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *EventCreateInfo) Free() { + if x != nil && x.allocsa54f9ec8 != nil { + x.allocsa54f9ec8.(*cgoAllocMap).Free() + x.refa54f9ec8 = nil + } +} + +// NewEventCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewEventCreateInfoRef(ref unsafe.Pointer) *EventCreateInfo { + if ref == nil { + return nil + } + obj := new(EventCreateInfo) + obj.refa54f9ec8 = (*C.VkEventCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *EventCreateInfo) PassRef() (*C.VkEventCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa54f9ec8 != nil { + return x.refa54f9ec8, nil + } + mema54f9ec8 := allocEventCreateInfoMemory(1) + refa54f9ec8 := (*C.VkEventCreateInfo)(mema54f9ec8) + allocsa54f9ec8 := new(cgoAllocMap) + allocsa54f9ec8.Add(mema54f9ec8) + + var csType_allocs *cgoAllocMap + refa54f9ec8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa54f9ec8.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refa54f9ec8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa54f9ec8.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refa54f9ec8.flags, cflags_allocs = (C.VkEventCreateFlags)(x.Flags), cgoAllocsUnknown + allocsa54f9ec8.Borrow(cflags_allocs) + + x.refa54f9ec8 = refa54f9ec8 + x.allocsa54f9ec8 = allocsa54f9ec8 + return refa54f9ec8, allocsa54f9ec8 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x EventCreateInfo) PassValue() (C.VkEventCreateInfo, *cgoAllocMap) { + if x.refa54f9ec8 != nil { + return *x.refa54f9ec8, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *EventCreateInfo) Deref() { + if x.refa54f9ec8 == nil { + return + } + x.SType = (StructureType)(x.refa54f9ec8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa54f9ec8.pNext)) + x.Flags = (EventCreateFlags)(x.refa54f9ec8.flags) +} + +// allocQueryPoolCreateInfoMemory allocates memory for type C.VkQueryPoolCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocQueryPoolCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueryPoolCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfQueryPoolCreateInfoValue = unsafe.Sizeof([1]C.VkQueryPoolCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *QueryPoolCreateInfo) Ref() *C.VkQueryPoolCreateInfo { + if x == nil { + return nil + } + return x.ref85dfcd4a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *QueryPoolCreateInfo) Free() { + if x != nil && x.allocs85dfcd4a != nil { + x.allocs85dfcd4a.(*cgoAllocMap).Free() + x.ref85dfcd4a = nil + } +} + +// NewQueryPoolCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewQueryPoolCreateInfoRef(ref unsafe.Pointer) *QueryPoolCreateInfo { + if ref == nil { + return nil + } + obj := new(QueryPoolCreateInfo) + obj.ref85dfcd4a = (*C.VkQueryPoolCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *QueryPoolCreateInfo) PassRef() (*C.VkQueryPoolCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref85dfcd4a != nil { + return x.ref85dfcd4a, nil + } + mem85dfcd4a := allocQueryPoolCreateInfoMemory(1) + ref85dfcd4a := (*C.VkQueryPoolCreateInfo)(mem85dfcd4a) + allocs85dfcd4a := new(cgoAllocMap) + allocs85dfcd4a.Add(mem85dfcd4a) + + var csType_allocs *cgoAllocMap + ref85dfcd4a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs85dfcd4a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref85dfcd4a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs85dfcd4a.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref85dfcd4a.flags, cflags_allocs = (C.VkQueryPoolCreateFlags)(x.Flags), cgoAllocsUnknown + allocs85dfcd4a.Borrow(cflags_allocs) + + var cqueryType_allocs *cgoAllocMap + ref85dfcd4a.queryType, cqueryType_allocs = (C.VkQueryType)(x.QueryType), cgoAllocsUnknown + allocs85dfcd4a.Borrow(cqueryType_allocs) + + var cqueryCount_allocs *cgoAllocMap + ref85dfcd4a.queryCount, cqueryCount_allocs = (C.uint32_t)(x.QueryCount), cgoAllocsUnknown + allocs85dfcd4a.Borrow(cqueryCount_allocs) + + var cpipelineStatistics_allocs *cgoAllocMap + ref85dfcd4a.pipelineStatistics, cpipelineStatistics_allocs = (C.VkQueryPipelineStatisticFlags)(x.PipelineStatistics), cgoAllocsUnknown + allocs85dfcd4a.Borrow(cpipelineStatistics_allocs) + + x.ref85dfcd4a = ref85dfcd4a + x.allocs85dfcd4a = allocs85dfcd4a + return ref85dfcd4a, allocs85dfcd4a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x QueryPoolCreateInfo) PassValue() (C.VkQueryPoolCreateInfo, *cgoAllocMap) { + if x.ref85dfcd4a != nil { + return *x.ref85dfcd4a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *QueryPoolCreateInfo) Deref() { + if x.ref85dfcd4a == nil { + return + } + x.SType = (StructureType)(x.ref85dfcd4a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref85dfcd4a.pNext)) + x.Flags = (QueryPoolCreateFlags)(x.ref85dfcd4a.flags) + x.QueryType = (QueryType)(x.ref85dfcd4a.queryType) + x.QueryCount = (uint32)(x.ref85dfcd4a.queryCount) + x.PipelineStatistics = (QueryPipelineStatisticFlags)(x.ref85dfcd4a.pipelineStatistics) +} + +// allocBufferCreateInfoMemory allocates memory for type C.VkBufferCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBufferCreateInfoValue = unsafe.Sizeof([1]C.VkBufferCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BufferCreateInfo) Ref() *C.VkBufferCreateInfo { + if x == nil { + return nil + } + return x.reffe19d2cd +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BufferCreateInfo) Free() { + if x != nil && x.allocsfe19d2cd != nil { + x.allocsfe19d2cd.(*cgoAllocMap).Free() + x.reffe19d2cd = nil + } +} + +// NewBufferCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBufferCreateInfoRef(ref unsafe.Pointer) *BufferCreateInfo { + if ref == nil { + return nil + } + obj := new(BufferCreateInfo) + obj.reffe19d2cd = (*C.VkBufferCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BufferCreateInfo) PassRef() (*C.VkBufferCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reffe19d2cd != nil { + return x.reffe19d2cd, nil + } + memfe19d2cd := allocBufferCreateInfoMemory(1) + reffe19d2cd := (*C.VkBufferCreateInfo)(memfe19d2cd) + allocsfe19d2cd := new(cgoAllocMap) + allocsfe19d2cd.Add(memfe19d2cd) + + var csType_allocs *cgoAllocMap + reffe19d2cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfe19d2cd.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reffe19d2cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfe19d2cd.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + reffe19d2cd.flags, cflags_allocs = (C.VkBufferCreateFlags)(x.Flags), cgoAllocsUnknown + allocsfe19d2cd.Borrow(cflags_allocs) + + var csize_allocs *cgoAllocMap + reffe19d2cd.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocsfe19d2cd.Borrow(csize_allocs) + + var cusage_allocs *cgoAllocMap + reffe19d2cd.usage, cusage_allocs = (C.VkBufferUsageFlags)(x.Usage), cgoAllocsUnknown + allocsfe19d2cd.Borrow(cusage_allocs) + + var csharingMode_allocs *cgoAllocMap + reffe19d2cd.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown + allocsfe19d2cd.Borrow(csharingMode_allocs) + + var cqueueFamilyIndexCount_allocs *cgoAllocMap + reffe19d2cd.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown + allocsfe19d2cd.Borrow(cqueueFamilyIndexCount_allocs) + + var cpQueueFamilyIndices_allocs *cgoAllocMap + reffe19d2cd.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown + allocsfe19d2cd.Borrow(cpQueueFamilyIndices_allocs) + + x.reffe19d2cd = reffe19d2cd + x.allocsfe19d2cd = allocsfe19d2cd + return reffe19d2cd, allocsfe19d2cd + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BufferCreateInfo) PassValue() (C.VkBufferCreateInfo, *cgoAllocMap) { + if x.reffe19d2cd != nil { + return *x.reffe19d2cd, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BufferCreateInfo) Deref() { + if x.reffe19d2cd == nil { + return + } + x.SType = (StructureType)(x.reffe19d2cd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffe19d2cd.pNext)) + x.Flags = (BufferCreateFlags)(x.reffe19d2cd.flags) + x.Size = (DeviceSize)(x.reffe19d2cd.size) + x.Usage = (BufferUsageFlags)(x.reffe19d2cd.usage) + x.SharingMode = (SharingMode)(x.reffe19d2cd.sharingMode) + x.QueueFamilyIndexCount = (uint32)(x.reffe19d2cd.queueFamilyIndexCount) + hxf2fab0d := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) + hxf2fab0d.Data = unsafe.Pointer(x.reffe19d2cd.pQueueFamilyIndices) + hxf2fab0d.Cap = 0x7fffffff + // hxf2fab0d.Len = ? + +} + +// allocBufferViewCreateInfoMemory allocates memory for type C.VkBufferViewCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferViewCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferViewCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBufferViewCreateInfoValue = unsafe.Sizeof([1]C.VkBufferViewCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BufferViewCreateInfo) Ref() *C.VkBufferViewCreateInfo { + if x == nil { + return nil + } + return x.ref49b97027 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BufferViewCreateInfo) Free() { + if x != nil && x.allocs49b97027 != nil { + x.allocs49b97027.(*cgoAllocMap).Free() + x.ref49b97027 = nil + } +} + +// NewBufferViewCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBufferViewCreateInfoRef(ref unsafe.Pointer) *BufferViewCreateInfo { + if ref == nil { + return nil + } + obj := new(BufferViewCreateInfo) + obj.ref49b97027 = (*C.VkBufferViewCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BufferViewCreateInfo) PassRef() (*C.VkBufferViewCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref49b97027 != nil { + return x.ref49b97027, nil + } + mem49b97027 := allocBufferViewCreateInfoMemory(1) + ref49b97027 := (*C.VkBufferViewCreateInfo)(mem49b97027) + allocs49b97027 := new(cgoAllocMap) + allocs49b97027.Add(mem49b97027) + + var csType_allocs *cgoAllocMap + ref49b97027.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs49b97027.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref49b97027.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs49b97027.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref49b97027.flags, cflags_allocs = (C.VkBufferViewCreateFlags)(x.Flags), cgoAllocsUnknown + allocs49b97027.Borrow(cflags_allocs) + + var cbuffer_allocs *cgoAllocMap + ref49b97027.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs49b97027.Borrow(cbuffer_allocs) + + var cformat_allocs *cgoAllocMap + ref49b97027.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocs49b97027.Borrow(cformat_allocs) + + var coffset_allocs *cgoAllocMap + ref49b97027.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocs49b97027.Borrow(coffset_allocs) + + var c_range_allocs *cgoAllocMap + ref49b97027._range, c_range_allocs = (C.VkDeviceSize)(x.Range), cgoAllocsUnknown + allocs49b97027.Borrow(c_range_allocs) + + x.ref49b97027 = ref49b97027 + x.allocs49b97027 = allocs49b97027 + return ref49b97027, allocs49b97027 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BufferViewCreateInfo) PassValue() (C.VkBufferViewCreateInfo, *cgoAllocMap) { + if x.ref49b97027 != nil { + return *x.ref49b97027, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BufferViewCreateInfo) Deref() { + if x.ref49b97027 == nil { + return + } + x.SType = (StructureType)(x.ref49b97027.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref49b97027.pNext)) + x.Flags = (BufferViewCreateFlags)(x.ref49b97027.flags) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref49b97027.buffer)) + x.Format = (Format)(x.ref49b97027.format) + x.Offset = (DeviceSize)(x.ref49b97027.offset) + x.Range = (DeviceSize)(x.ref49b97027._range) +} + +// allocImageCreateInfoMemory allocates memory for type C.VkImageCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageCreateInfoValue = unsafe.Sizeof([1]C.VkImageCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageCreateInfo) Ref() *C.VkImageCreateInfo { + if x == nil { + return nil + } + return x.reffb587ba1 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageCreateInfo) Free() { + if x != nil && x.allocsfb587ba1 != nil { + x.allocsfb587ba1.(*cgoAllocMap).Free() + x.reffb587ba1 = nil + } +} + +// NewImageCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageCreateInfoRef(ref unsafe.Pointer) *ImageCreateInfo { + if ref == nil { + return nil + } + obj := new(ImageCreateInfo) + obj.reffb587ba1 = (*C.VkImageCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageCreateInfo) PassRef() (*C.VkImageCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reffb587ba1 != nil { + return x.reffb587ba1, nil + } + memfb587ba1 := allocImageCreateInfoMemory(1) + reffb587ba1 := (*C.VkImageCreateInfo)(memfb587ba1) + allocsfb587ba1 := new(cgoAllocMap) + allocsfb587ba1.Add(memfb587ba1) + + var csType_allocs *cgoAllocMap + reffb587ba1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfb587ba1.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reffb587ba1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfb587ba1.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + reffb587ba1.flags, cflags_allocs = (C.VkImageCreateFlags)(x.Flags), cgoAllocsUnknown + allocsfb587ba1.Borrow(cflags_allocs) + + var cimageType_allocs *cgoAllocMap + reffb587ba1.imageType, cimageType_allocs = (C.VkImageType)(x.ImageType), cgoAllocsUnknown + allocsfb587ba1.Borrow(cimageType_allocs) + + var cformat_allocs *cgoAllocMap + reffb587ba1.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocsfb587ba1.Borrow(cformat_allocs) + + var cextent_allocs *cgoAllocMap + reffb587ba1.extent, cextent_allocs = x.Extent.PassValue() + allocsfb587ba1.Borrow(cextent_allocs) + + var cmipLevels_allocs *cgoAllocMap + reffb587ba1.mipLevels, cmipLevels_allocs = (C.uint32_t)(x.MipLevels), cgoAllocsUnknown + allocsfb587ba1.Borrow(cmipLevels_allocs) + + var carrayLayers_allocs *cgoAllocMap + reffb587ba1.arrayLayers, carrayLayers_allocs = (C.uint32_t)(x.ArrayLayers), cgoAllocsUnknown + allocsfb587ba1.Borrow(carrayLayers_allocs) + + var csamples_allocs *cgoAllocMap + reffb587ba1.samples, csamples_allocs = (C.VkSampleCountFlagBits)(x.Samples), cgoAllocsUnknown + allocsfb587ba1.Borrow(csamples_allocs) + + var ctiling_allocs *cgoAllocMap + reffb587ba1.tiling, ctiling_allocs = (C.VkImageTiling)(x.Tiling), cgoAllocsUnknown + allocsfb587ba1.Borrow(ctiling_allocs) + + var cusage_allocs *cgoAllocMap + reffb587ba1.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown + allocsfb587ba1.Borrow(cusage_allocs) + + var csharingMode_allocs *cgoAllocMap + reffb587ba1.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown + allocsfb587ba1.Borrow(csharingMode_allocs) + + var cqueueFamilyIndexCount_allocs *cgoAllocMap + reffb587ba1.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown + allocsfb587ba1.Borrow(cqueueFamilyIndexCount_allocs) + + var cpQueueFamilyIndices_allocs *cgoAllocMap + reffb587ba1.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown + allocsfb587ba1.Borrow(cpQueueFamilyIndices_allocs) + + var cinitialLayout_allocs *cgoAllocMap + reffb587ba1.initialLayout, cinitialLayout_allocs = (C.VkImageLayout)(x.InitialLayout), cgoAllocsUnknown + allocsfb587ba1.Borrow(cinitialLayout_allocs) + + x.reffb587ba1 = reffb587ba1 + x.allocsfb587ba1 = allocsfb587ba1 + return reffb587ba1, allocsfb587ba1 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageCreateInfo) PassValue() (C.VkImageCreateInfo, *cgoAllocMap) { + if x.reffb587ba1 != nil { + return *x.reffb587ba1, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageCreateInfo) Deref() { + if x.reffb587ba1 == nil { + return + } + x.SType = (StructureType)(x.reffb587ba1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffb587ba1.pNext)) + x.Flags = (ImageCreateFlags)(x.reffb587ba1.flags) + x.ImageType = (ImageType)(x.reffb587ba1.imageType) + x.Format = (Format)(x.reffb587ba1.format) + x.Extent = *NewExtent3DRef(unsafe.Pointer(&x.reffb587ba1.extent)) + x.MipLevels = (uint32)(x.reffb587ba1.mipLevels) + x.ArrayLayers = (uint32)(x.reffb587ba1.arrayLayers) + x.Samples = (SampleCountFlagBits)(x.reffb587ba1.samples) + x.Tiling = (ImageTiling)(x.reffb587ba1.tiling) + x.Usage = (ImageUsageFlags)(x.reffb587ba1.usage) + x.SharingMode = (SharingMode)(x.reffb587ba1.sharingMode) + x.QueueFamilyIndexCount = (uint32)(x.reffb587ba1.queueFamilyIndexCount) + hxf69fe70 := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) + hxf69fe70.Data = unsafe.Pointer(x.reffb587ba1.pQueueFamilyIndices) + hxf69fe70.Cap = 0x7fffffff + // hxf69fe70.Len = ? + + x.InitialLayout = (ImageLayout)(x.reffb587ba1.initialLayout) +} + +// allocSubresourceLayoutMemory allocates memory for type C.VkSubresourceLayout in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSubresourceLayoutMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubresourceLayoutValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSubresourceLayoutValue = unsafe.Sizeof([1]C.VkSubresourceLayout{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SubresourceLayout) Ref() *C.VkSubresourceLayout { + if x == nil { + return nil + } + return x.ref182612ad +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SubresourceLayout) Free() { + if x != nil && x.allocs182612ad != nil { + x.allocs182612ad.(*cgoAllocMap).Free() + x.ref182612ad = nil + } +} + +// NewSubresourceLayoutRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSubresourceLayoutRef(ref unsafe.Pointer) *SubresourceLayout { + if ref == nil { + return nil + } + obj := new(SubresourceLayout) + obj.ref182612ad = (*C.VkSubresourceLayout)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SubresourceLayout) PassRef() (*C.VkSubresourceLayout, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref182612ad != nil { + return x.ref182612ad, nil + } + mem182612ad := allocSubresourceLayoutMemory(1) + ref182612ad := (*C.VkSubresourceLayout)(mem182612ad) + allocs182612ad := new(cgoAllocMap) + allocs182612ad.Add(mem182612ad) + + var coffset_allocs *cgoAllocMap + ref182612ad.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocs182612ad.Borrow(coffset_allocs) + + var csize_allocs *cgoAllocMap + ref182612ad.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocs182612ad.Borrow(csize_allocs) + + var crowPitch_allocs *cgoAllocMap + ref182612ad.rowPitch, crowPitch_allocs = (C.VkDeviceSize)(x.RowPitch), cgoAllocsUnknown + allocs182612ad.Borrow(crowPitch_allocs) + + var carrayPitch_allocs *cgoAllocMap + ref182612ad.arrayPitch, carrayPitch_allocs = (C.VkDeviceSize)(x.ArrayPitch), cgoAllocsUnknown + allocs182612ad.Borrow(carrayPitch_allocs) + + var cdepthPitch_allocs *cgoAllocMap + ref182612ad.depthPitch, cdepthPitch_allocs = (C.VkDeviceSize)(x.DepthPitch), cgoAllocsUnknown + allocs182612ad.Borrow(cdepthPitch_allocs) + + x.ref182612ad = ref182612ad + x.allocs182612ad = allocs182612ad + return ref182612ad, allocs182612ad + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SubresourceLayout) PassValue() (C.VkSubresourceLayout, *cgoAllocMap) { + if x.ref182612ad != nil { + return *x.ref182612ad, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SubresourceLayout) Deref() { + if x.ref182612ad == nil { + return + } + x.Offset = (DeviceSize)(x.ref182612ad.offset) + x.Size = (DeviceSize)(x.ref182612ad.size) + x.RowPitch = (DeviceSize)(x.ref182612ad.rowPitch) + x.ArrayPitch = (DeviceSize)(x.ref182612ad.arrayPitch) + x.DepthPitch = (DeviceSize)(x.ref182612ad.depthPitch) +} + +// allocComponentMappingMemory allocates memory for type C.VkComponentMapping in C. +// The caller is responsible for freeing the this memory via C.free. +func allocComponentMappingMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfComponentMappingValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfComponentMappingValue = unsafe.Sizeof([1]C.VkComponentMapping{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ComponentMapping) Ref() *C.VkComponentMapping { + if x == nil { + return nil + } + return x.ref63d3d563 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ComponentMapping) Free() { + if x != nil && x.allocs63d3d563 != nil { + x.allocs63d3d563.(*cgoAllocMap).Free() + x.ref63d3d563 = nil + } +} + +// NewComponentMappingRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewComponentMappingRef(ref unsafe.Pointer) *ComponentMapping { + if ref == nil { + return nil + } + obj := new(ComponentMapping) + obj.ref63d3d563 = (*C.VkComponentMapping)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ComponentMapping) PassRef() (*C.VkComponentMapping, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref63d3d563 != nil { + return x.ref63d3d563, nil + } + mem63d3d563 := allocComponentMappingMemory(1) + ref63d3d563 := (*C.VkComponentMapping)(mem63d3d563) + allocs63d3d563 := new(cgoAllocMap) + allocs63d3d563.Add(mem63d3d563) + + var cr_allocs *cgoAllocMap + ref63d3d563.r, cr_allocs = (C.VkComponentSwizzle)(x.R), cgoAllocsUnknown + allocs63d3d563.Borrow(cr_allocs) + + var cg_allocs *cgoAllocMap + ref63d3d563.g, cg_allocs = (C.VkComponentSwizzle)(x.G), cgoAllocsUnknown + allocs63d3d563.Borrow(cg_allocs) + + var cb_allocs *cgoAllocMap + ref63d3d563.b, cb_allocs = (C.VkComponentSwizzle)(x.B), cgoAllocsUnknown + allocs63d3d563.Borrow(cb_allocs) + + var ca_allocs *cgoAllocMap + ref63d3d563.a, ca_allocs = (C.VkComponentSwizzle)(x.A), cgoAllocsUnknown + allocs63d3d563.Borrow(ca_allocs) + + x.ref63d3d563 = ref63d3d563 + x.allocs63d3d563 = allocs63d3d563 + return ref63d3d563, allocs63d3d563 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ComponentMapping) PassValue() (C.VkComponentMapping, *cgoAllocMap) { + if x.ref63d3d563 != nil { + return *x.ref63d3d563, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ComponentMapping) Deref() { + if x.ref63d3d563 == nil { + return + } + x.R = (ComponentSwizzle)(x.ref63d3d563.r) + x.G = (ComponentSwizzle)(x.ref63d3d563.g) + x.B = (ComponentSwizzle)(x.ref63d3d563.b) + x.A = (ComponentSwizzle)(x.ref63d3d563.a) +} + +// allocImageViewCreateInfoMemory allocates memory for type C.VkImageViewCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageViewCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageViewCreateInfoValue = unsafe.Sizeof([1]C.VkImageViewCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageViewCreateInfo) Ref() *C.VkImageViewCreateInfo { + if x == nil { + return nil + } + return x.ref77e8d4b8 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageViewCreateInfo) Free() { + if x != nil && x.allocs77e8d4b8 != nil { + x.allocs77e8d4b8.(*cgoAllocMap).Free() + x.ref77e8d4b8 = nil + } +} + +// NewImageViewCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageViewCreateInfoRef(ref unsafe.Pointer) *ImageViewCreateInfo { + if ref == nil { + return nil + } + obj := new(ImageViewCreateInfo) + obj.ref77e8d4b8 = (*C.VkImageViewCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageViewCreateInfo) PassRef() (*C.VkImageViewCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref77e8d4b8 != nil { + return x.ref77e8d4b8, nil + } + mem77e8d4b8 := allocImageViewCreateInfoMemory(1) + ref77e8d4b8 := (*C.VkImageViewCreateInfo)(mem77e8d4b8) + allocs77e8d4b8 := new(cgoAllocMap) + allocs77e8d4b8.Add(mem77e8d4b8) + + var csType_allocs *cgoAllocMap + ref77e8d4b8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs77e8d4b8.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref77e8d4b8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs77e8d4b8.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref77e8d4b8.flags, cflags_allocs = (C.VkImageViewCreateFlags)(x.Flags), cgoAllocsUnknown + allocs77e8d4b8.Borrow(cflags_allocs) + + var cimage_allocs *cgoAllocMap + ref77e8d4b8.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocs77e8d4b8.Borrow(cimage_allocs) + + var cviewType_allocs *cgoAllocMap + ref77e8d4b8.viewType, cviewType_allocs = (C.VkImageViewType)(x.ViewType), cgoAllocsUnknown + allocs77e8d4b8.Borrow(cviewType_allocs) + + var cformat_allocs *cgoAllocMap + ref77e8d4b8.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocs77e8d4b8.Borrow(cformat_allocs) + + var ccomponents_allocs *cgoAllocMap + ref77e8d4b8.components, ccomponents_allocs = x.Components.PassValue() + allocs77e8d4b8.Borrow(ccomponents_allocs) + + var csubresourceRange_allocs *cgoAllocMap + ref77e8d4b8.subresourceRange, csubresourceRange_allocs = x.SubresourceRange.PassValue() + allocs77e8d4b8.Borrow(csubresourceRange_allocs) + + x.ref77e8d4b8 = ref77e8d4b8 + x.allocs77e8d4b8 = allocs77e8d4b8 + return ref77e8d4b8, allocs77e8d4b8 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageViewCreateInfo) PassValue() (C.VkImageViewCreateInfo, *cgoAllocMap) { + if x.ref77e8d4b8 != nil { + return *x.ref77e8d4b8, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageViewCreateInfo) Deref() { + if x.ref77e8d4b8 == nil { + return + } + x.SType = (StructureType)(x.ref77e8d4b8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref77e8d4b8.pNext)) + x.Flags = (ImageViewCreateFlags)(x.ref77e8d4b8.flags) + x.Image = *(*Image)(unsafe.Pointer(&x.ref77e8d4b8.image)) + x.ViewType = (ImageViewType)(x.ref77e8d4b8.viewType) + x.Format = (Format)(x.ref77e8d4b8.format) + x.Components = *NewComponentMappingRef(unsafe.Pointer(&x.ref77e8d4b8.components)) + x.SubresourceRange = *NewImageSubresourceRangeRef(unsafe.Pointer(&x.ref77e8d4b8.subresourceRange)) +} + +// allocShaderModuleCreateInfoMemory allocates memory for type C.VkShaderModuleCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocShaderModuleCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderModuleCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfShaderModuleCreateInfoValue = unsafe.Sizeof([1]C.VkShaderModuleCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ShaderModuleCreateInfo) Ref() *C.VkShaderModuleCreateInfo { + if x == nil { + return nil + } + return x.refc663d23e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ShaderModuleCreateInfo) Free() { + if x != nil && x.allocsc663d23e != nil { + x.allocsc663d23e.(*cgoAllocMap).Free() + x.refc663d23e = nil + } +} + +// NewShaderModuleCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewShaderModuleCreateInfoRef(ref unsafe.Pointer) *ShaderModuleCreateInfo { + if ref == nil { + return nil + } + obj := new(ShaderModuleCreateInfo) + obj.refc663d23e = (*C.VkShaderModuleCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ShaderModuleCreateInfo) PassRef() (*C.VkShaderModuleCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc663d23e != nil { + return x.refc663d23e, nil + } + memc663d23e := allocShaderModuleCreateInfoMemory(1) + refc663d23e := (*C.VkShaderModuleCreateInfo)(memc663d23e) + allocsc663d23e := new(cgoAllocMap) + allocsc663d23e.Add(memc663d23e) + + var csType_allocs *cgoAllocMap + refc663d23e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc663d23e.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc663d23e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc663d23e.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refc663d23e.flags, cflags_allocs = (C.VkShaderModuleCreateFlags)(x.Flags), cgoAllocsUnknown + allocsc663d23e.Borrow(cflags_allocs) + + var ccodeSize_allocs *cgoAllocMap + refc663d23e.codeSize, ccodeSize_allocs = (C.size_t)(x.CodeSize), cgoAllocsUnknown + allocsc663d23e.Borrow(ccodeSize_allocs) + + var cpCode_allocs *cgoAllocMap + refc663d23e.pCode, cpCode_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCode)).Data)), cgoAllocsUnknown + allocsc663d23e.Borrow(cpCode_allocs) + + x.refc663d23e = refc663d23e + x.allocsc663d23e = allocsc663d23e + return refc663d23e, allocsc663d23e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ShaderModuleCreateInfo) PassValue() (C.VkShaderModuleCreateInfo, *cgoAllocMap) { + if x.refc663d23e != nil { + return *x.refc663d23e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ShaderModuleCreateInfo) Deref() { + if x.refc663d23e == nil { + return + } + x.SType = (StructureType)(x.refc663d23e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc663d23e.pNext)) + x.Flags = (ShaderModuleCreateFlags)(x.refc663d23e.flags) + x.CodeSize = (uint64)(x.refc663d23e.codeSize) + hxf65bf54 := (*sliceHeader)(unsafe.Pointer(&x.PCode)) + hxf65bf54.Data = unsafe.Pointer(x.refc663d23e.pCode) + hxf65bf54.Cap = 0x7fffffff + // hxf65bf54.Len = ? + +} + +// allocPipelineCacheCreateInfoMemory allocates memory for type C.VkPipelineCacheCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineCacheCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCacheCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineCacheCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineCacheCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineCacheCreateInfo) Ref() *C.VkPipelineCacheCreateInfo { + if x == nil { + return nil + } + return x.reff11e7dd1 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineCacheCreateInfo) Free() { + if x != nil && x.allocsf11e7dd1 != nil { + x.allocsf11e7dd1.(*cgoAllocMap).Free() + x.reff11e7dd1 = nil + } +} + +// NewPipelineCacheCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineCacheCreateInfoRef(ref unsafe.Pointer) *PipelineCacheCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineCacheCreateInfo) + obj.reff11e7dd1 = (*C.VkPipelineCacheCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineCacheCreateInfo) PassRef() (*C.VkPipelineCacheCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff11e7dd1 != nil { + return x.reff11e7dd1, nil + } + memf11e7dd1 := allocPipelineCacheCreateInfoMemory(1) + reff11e7dd1 := (*C.VkPipelineCacheCreateInfo)(memf11e7dd1) + allocsf11e7dd1 := new(cgoAllocMap) + allocsf11e7dd1.Add(memf11e7dd1) + + var csType_allocs *cgoAllocMap + reff11e7dd1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf11e7dd1.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff11e7dd1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf11e7dd1.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + reff11e7dd1.flags, cflags_allocs = (C.VkPipelineCacheCreateFlags)(x.Flags), cgoAllocsUnknown + allocsf11e7dd1.Borrow(cflags_allocs) + + var cinitialDataSize_allocs *cgoAllocMap + reff11e7dd1.initialDataSize, cinitialDataSize_allocs = (C.size_t)(x.InitialDataSize), cgoAllocsUnknown + allocsf11e7dd1.Borrow(cinitialDataSize_allocs) + + var cpInitialData_allocs *cgoAllocMap + reff11e7dd1.pInitialData, cpInitialData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PInitialData)), cgoAllocsUnknown + allocsf11e7dd1.Borrow(cpInitialData_allocs) + + x.reff11e7dd1 = reff11e7dd1 + x.allocsf11e7dd1 = allocsf11e7dd1 + return reff11e7dd1, allocsf11e7dd1 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineCacheCreateInfo) PassValue() (C.VkPipelineCacheCreateInfo, *cgoAllocMap) { + if x.reff11e7dd1 != nil { + return *x.reff11e7dd1, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineCacheCreateInfo) Deref() { + if x.reff11e7dd1 == nil { + return + } + x.SType = (StructureType)(x.reff11e7dd1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff11e7dd1.pNext)) + x.Flags = (PipelineCacheCreateFlags)(x.reff11e7dd1.flags) + x.InitialDataSize = (uint64)(x.reff11e7dd1.initialDataSize) + x.PInitialData = (unsafe.Pointer)(unsafe.Pointer(x.reff11e7dd1.pInitialData)) +} + +// allocSpecializationMapEntryMemory allocates memory for type C.VkSpecializationMapEntry in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSpecializationMapEntryMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSpecializationMapEntryValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSpecializationMapEntryValue = unsafe.Sizeof([1]C.VkSpecializationMapEntry{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SpecializationMapEntry) Ref() *C.VkSpecializationMapEntry { + if x == nil { + return nil + } + return x.ref2fd815d1 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SpecializationMapEntry) Free() { + if x != nil && x.allocs2fd815d1 != nil { + x.allocs2fd815d1.(*cgoAllocMap).Free() + x.ref2fd815d1 = nil + } +} + +// NewSpecializationMapEntryRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSpecializationMapEntryRef(ref unsafe.Pointer) *SpecializationMapEntry { + if ref == nil { + return nil + } + obj := new(SpecializationMapEntry) + obj.ref2fd815d1 = (*C.VkSpecializationMapEntry)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SpecializationMapEntry) PassRef() (*C.VkSpecializationMapEntry, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2fd815d1 != nil { + return x.ref2fd815d1, nil + } + mem2fd815d1 := allocSpecializationMapEntryMemory(1) + ref2fd815d1 := (*C.VkSpecializationMapEntry)(mem2fd815d1) + allocs2fd815d1 := new(cgoAllocMap) + allocs2fd815d1.Add(mem2fd815d1) + + var cconstantID_allocs *cgoAllocMap + ref2fd815d1.constantID, cconstantID_allocs = (C.uint32_t)(x.ConstantID), cgoAllocsUnknown + allocs2fd815d1.Borrow(cconstantID_allocs) + + var coffset_allocs *cgoAllocMap + ref2fd815d1.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown + allocs2fd815d1.Borrow(coffset_allocs) + + var csize_allocs *cgoAllocMap + ref2fd815d1.size, csize_allocs = (C.size_t)(x.Size), cgoAllocsUnknown + allocs2fd815d1.Borrow(csize_allocs) + + x.ref2fd815d1 = ref2fd815d1 + x.allocs2fd815d1 = allocs2fd815d1 + return ref2fd815d1, allocs2fd815d1 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SpecializationMapEntry) PassValue() (C.VkSpecializationMapEntry, *cgoAllocMap) { + if x.ref2fd815d1 != nil { + return *x.ref2fd815d1, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SpecializationMapEntry) Deref() { + if x.ref2fd815d1 == nil { + return + } + x.ConstantID = (uint32)(x.ref2fd815d1.constantID) + x.Offset = (uint32)(x.ref2fd815d1.offset) + x.Size = (uint64)(x.ref2fd815d1.size) +} + +// allocSpecializationInfoMemory allocates memory for type C.VkSpecializationInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSpecializationInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSpecializationInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSpecializationInfoValue = unsafe.Sizeof([1]C.VkSpecializationInfo{}) + +// unpackSSpecializationMapEntry transforms a sliced Go data structure into plain C format. +func unpackSSpecializationMapEntry(x []SpecializationMapEntry) (unpacked *C.VkSpecializationMapEntry, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSpecializationMapEntry) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSpecializationMapEntryMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSpecializationMapEntry)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSpecializationMapEntry)(h.Data) + return +} + +// packSSpecializationMapEntry reads sliced Go data structure out from plain C format. +func packSSpecializationMapEntry(v []SpecializationMapEntry, ptr0 *C.VkSpecializationMapEntry) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSpecializationMapEntryValue]C.VkSpecializationMapEntry)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSpecializationMapEntryRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SpecializationInfo) Ref() *C.VkSpecializationInfo { + if x == nil { + return nil + } + return x.ref6bc395a3 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SpecializationInfo) Free() { + if x != nil && x.allocs6bc395a3 != nil { + x.allocs6bc395a3.(*cgoAllocMap).Free() + x.ref6bc395a3 = nil + } +} + +// NewSpecializationInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSpecializationInfoRef(ref unsafe.Pointer) *SpecializationInfo { + if ref == nil { + return nil + } + obj := new(SpecializationInfo) + obj.ref6bc395a3 = (*C.VkSpecializationInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SpecializationInfo) PassRef() (*C.VkSpecializationInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref6bc395a3 != nil { + return x.ref6bc395a3, nil + } + mem6bc395a3 := allocSpecializationInfoMemory(1) + ref6bc395a3 := (*C.VkSpecializationInfo)(mem6bc395a3) + allocs6bc395a3 := new(cgoAllocMap) + allocs6bc395a3.Add(mem6bc395a3) + + var cmapEntryCount_allocs *cgoAllocMap + ref6bc395a3.mapEntryCount, cmapEntryCount_allocs = (C.uint32_t)(x.MapEntryCount), cgoAllocsUnknown + allocs6bc395a3.Borrow(cmapEntryCount_allocs) + + var cpMapEntries_allocs *cgoAllocMap + ref6bc395a3.pMapEntries, cpMapEntries_allocs = unpackSSpecializationMapEntry(x.PMapEntries) + allocs6bc395a3.Borrow(cpMapEntries_allocs) + + var cdataSize_allocs *cgoAllocMap + ref6bc395a3.dataSize, cdataSize_allocs = (C.size_t)(x.DataSize), cgoAllocsUnknown + allocs6bc395a3.Borrow(cdataSize_allocs) + + var cpData_allocs *cgoAllocMap + ref6bc395a3.pData, cpData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PData)), cgoAllocsUnknown + allocs6bc395a3.Borrow(cpData_allocs) + + x.ref6bc395a3 = ref6bc395a3 + x.allocs6bc395a3 = allocs6bc395a3 + return ref6bc395a3, allocs6bc395a3 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SpecializationInfo) PassValue() (C.VkSpecializationInfo, *cgoAllocMap) { + if x.ref6bc395a3 != nil { + return *x.ref6bc395a3, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SpecializationInfo) Deref() { + if x.ref6bc395a3 == nil { + return + } + x.MapEntryCount = (uint32)(x.ref6bc395a3.mapEntryCount) + packSSpecializationMapEntry(x.PMapEntries, x.ref6bc395a3.pMapEntries) + x.DataSize = (uint64)(x.ref6bc395a3.dataSize) + x.PData = (unsafe.Pointer)(unsafe.Pointer(x.ref6bc395a3.pData)) +} + +// allocPipelineShaderStageCreateInfoMemory allocates memory for type C.VkPipelineShaderStageCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineShaderStageCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineShaderStageCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineShaderStageCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineShaderStageCreateInfo{}) + +// unpackSSpecializationInfo transforms a sliced Go data structure into plain C format. +func unpackSSpecializationInfo(x []SpecializationInfo) (unpacked *C.VkSpecializationInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSpecializationInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSpecializationInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSpecializationInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSpecializationInfo)(h.Data) + return +} + +// packSSpecializationInfo reads sliced Go data structure out from plain C format. +func packSSpecializationInfo(v []SpecializationInfo, ptr0 *C.VkSpecializationInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSpecializationInfoValue]C.VkSpecializationInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSpecializationInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineShaderStageCreateInfo) Ref() *C.VkPipelineShaderStageCreateInfo { + if x == nil { + return nil + } + return x.ref50ba8b60 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineShaderStageCreateInfo) Free() { + if x != nil && x.allocs50ba8b60 != nil { + x.allocs50ba8b60.(*cgoAllocMap).Free() + x.ref50ba8b60 = nil + } +} + +// NewPipelineShaderStageCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineShaderStageCreateInfoRef(ref unsafe.Pointer) *PipelineShaderStageCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineShaderStageCreateInfo) + obj.ref50ba8b60 = (*C.VkPipelineShaderStageCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineShaderStageCreateInfo) PassRef() (*C.VkPipelineShaderStageCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref50ba8b60 != nil { + return x.ref50ba8b60, nil + } + mem50ba8b60 := allocPipelineShaderStageCreateInfoMemory(1) + ref50ba8b60 := (*C.VkPipelineShaderStageCreateInfo)(mem50ba8b60) + allocs50ba8b60 := new(cgoAllocMap) + allocs50ba8b60.Add(mem50ba8b60) + + var csType_allocs *cgoAllocMap + ref50ba8b60.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs50ba8b60.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref50ba8b60.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs50ba8b60.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref50ba8b60.flags, cflags_allocs = (C.VkPipelineShaderStageCreateFlags)(x.Flags), cgoAllocsUnknown + allocs50ba8b60.Borrow(cflags_allocs) + + var cstage_allocs *cgoAllocMap + ref50ba8b60.stage, cstage_allocs = (C.VkShaderStageFlagBits)(x.Stage), cgoAllocsUnknown + allocs50ba8b60.Borrow(cstage_allocs) + + var cmodule_allocs *cgoAllocMap + ref50ba8b60.module, cmodule_allocs = *(*C.VkShaderModule)(unsafe.Pointer(&x.Module)), cgoAllocsUnknown + allocs50ba8b60.Borrow(cmodule_allocs) + + var cpName_allocs *cgoAllocMap + ref50ba8b60.pName, cpName_allocs = unpackPCharString(x.PName) + allocs50ba8b60.Borrow(cpName_allocs) + + var cpSpecializationInfo_allocs *cgoAllocMap + ref50ba8b60.pSpecializationInfo, cpSpecializationInfo_allocs = unpackSSpecializationInfo(x.PSpecializationInfo) + allocs50ba8b60.Borrow(cpSpecializationInfo_allocs) + + x.ref50ba8b60 = ref50ba8b60 + x.allocs50ba8b60 = allocs50ba8b60 + return ref50ba8b60, allocs50ba8b60 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineShaderStageCreateInfo) PassValue() (C.VkPipelineShaderStageCreateInfo, *cgoAllocMap) { + if x.ref50ba8b60 != nil { + return *x.ref50ba8b60, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineShaderStageCreateInfo) Deref() { + if x.ref50ba8b60 == nil { + return + } + x.SType = (StructureType)(x.ref50ba8b60.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref50ba8b60.pNext)) + x.Flags = (PipelineShaderStageCreateFlags)(x.ref50ba8b60.flags) + x.Stage = (ShaderStageFlagBits)(x.ref50ba8b60.stage) + x.Module = *(*ShaderModule)(unsafe.Pointer(&x.ref50ba8b60.module)) + x.PName = packPCharString(x.ref50ba8b60.pName) + packSSpecializationInfo(x.PSpecializationInfo, x.ref50ba8b60.pSpecializationInfo) +} + +// allocComputePipelineCreateInfoMemory allocates memory for type C.VkComputePipelineCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocComputePipelineCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfComputePipelineCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfComputePipelineCreateInfoValue = unsafe.Sizeof([1]C.VkComputePipelineCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ComputePipelineCreateInfo) Ref() *C.VkComputePipelineCreateInfo { + if x == nil { + return nil + } + return x.ref77823220 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ComputePipelineCreateInfo) Free() { + if x != nil && x.allocs77823220 != nil { + x.allocs77823220.(*cgoAllocMap).Free() + x.ref77823220 = nil + } +} + +// NewComputePipelineCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewComputePipelineCreateInfoRef(ref unsafe.Pointer) *ComputePipelineCreateInfo { + if ref == nil { + return nil + } + obj := new(ComputePipelineCreateInfo) + obj.ref77823220 = (*C.VkComputePipelineCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ComputePipelineCreateInfo) PassRef() (*C.VkComputePipelineCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref77823220 != nil { + return x.ref77823220, nil + } + mem77823220 := allocComputePipelineCreateInfoMemory(1) + ref77823220 := (*C.VkComputePipelineCreateInfo)(mem77823220) + allocs77823220 := new(cgoAllocMap) + allocs77823220.Add(mem77823220) + + var csType_allocs *cgoAllocMap + ref77823220.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs77823220.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref77823220.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs77823220.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref77823220.flags, cflags_allocs = (C.VkPipelineCreateFlags)(x.Flags), cgoAllocsUnknown + allocs77823220.Borrow(cflags_allocs) + + var cstage_allocs *cgoAllocMap + ref77823220.stage, cstage_allocs = x.Stage.PassValue() + allocs77823220.Borrow(cstage_allocs) + + var clayout_allocs *cgoAllocMap + ref77823220.layout, clayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.Layout)), cgoAllocsUnknown + allocs77823220.Borrow(clayout_allocs) + + var cbasePipelineHandle_allocs *cgoAllocMap + ref77823220.basePipelineHandle, cbasePipelineHandle_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.BasePipelineHandle)), cgoAllocsUnknown + allocs77823220.Borrow(cbasePipelineHandle_allocs) + + var cbasePipelineIndex_allocs *cgoAllocMap + ref77823220.basePipelineIndex, cbasePipelineIndex_allocs = (C.int32_t)(x.BasePipelineIndex), cgoAllocsUnknown + allocs77823220.Borrow(cbasePipelineIndex_allocs) + + x.ref77823220 = ref77823220 + x.allocs77823220 = allocs77823220 + return ref77823220, allocs77823220 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ComputePipelineCreateInfo) PassValue() (C.VkComputePipelineCreateInfo, *cgoAllocMap) { + if x.ref77823220 != nil { + return *x.ref77823220, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ComputePipelineCreateInfo) Deref() { + if x.ref77823220 == nil { + return + } + x.SType = (StructureType)(x.ref77823220.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref77823220.pNext)) + x.Flags = (PipelineCreateFlags)(x.ref77823220.flags) + x.Stage = *NewPipelineShaderStageCreateInfoRef(unsafe.Pointer(&x.ref77823220.stage)) + x.Layout = *(*PipelineLayout)(unsafe.Pointer(&x.ref77823220.layout)) + x.BasePipelineHandle = *(*Pipeline)(unsafe.Pointer(&x.ref77823220.basePipelineHandle)) + x.BasePipelineIndex = (int32)(x.ref77823220.basePipelineIndex) +} + +// allocVertexInputBindingDescriptionMemory allocates memory for type C.VkVertexInputBindingDescription in C. +// The caller is responsible for freeing the this memory via C.free. +func allocVertexInputBindingDescriptionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputBindingDescriptionValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfVertexInputBindingDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputBindingDescription{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *VertexInputBindingDescription) Ref() *C.VkVertexInputBindingDescription { + if x == nil { + return nil + } + return x.ref5c9d8c23 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *VertexInputBindingDescription) Free() { + if x != nil && x.allocs5c9d8c23 != nil { + x.allocs5c9d8c23.(*cgoAllocMap).Free() + x.ref5c9d8c23 = nil + } +} + +// NewVertexInputBindingDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewVertexInputBindingDescriptionRef(ref unsafe.Pointer) *VertexInputBindingDescription { + if ref == nil { + return nil + } + obj := new(VertexInputBindingDescription) + obj.ref5c9d8c23 = (*C.VkVertexInputBindingDescription)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *VertexInputBindingDescription) PassRef() (*C.VkVertexInputBindingDescription, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5c9d8c23 != nil { + return x.ref5c9d8c23, nil + } + mem5c9d8c23 := allocVertexInputBindingDescriptionMemory(1) + ref5c9d8c23 := (*C.VkVertexInputBindingDescription)(mem5c9d8c23) + allocs5c9d8c23 := new(cgoAllocMap) + allocs5c9d8c23.Add(mem5c9d8c23) + + var cbinding_allocs *cgoAllocMap + ref5c9d8c23.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown + allocs5c9d8c23.Borrow(cbinding_allocs) + + var cstride_allocs *cgoAllocMap + ref5c9d8c23.stride, cstride_allocs = (C.uint32_t)(x.Stride), cgoAllocsUnknown + allocs5c9d8c23.Borrow(cstride_allocs) + + var cinputRate_allocs *cgoAllocMap + ref5c9d8c23.inputRate, cinputRate_allocs = (C.VkVertexInputRate)(x.InputRate), cgoAllocsUnknown + allocs5c9d8c23.Borrow(cinputRate_allocs) + + x.ref5c9d8c23 = ref5c9d8c23 + x.allocs5c9d8c23 = allocs5c9d8c23 + return ref5c9d8c23, allocs5c9d8c23 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x VertexInputBindingDescription) PassValue() (C.VkVertexInputBindingDescription, *cgoAllocMap) { + if x.ref5c9d8c23 != nil { + return *x.ref5c9d8c23, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *VertexInputBindingDescription) Deref() { + if x.ref5c9d8c23 == nil { + return + } + x.Binding = (uint32)(x.ref5c9d8c23.binding) + x.Stride = (uint32)(x.ref5c9d8c23.stride) + x.InputRate = (VertexInputRate)(x.ref5c9d8c23.inputRate) +} + +// allocVertexInputAttributeDescriptionMemory allocates memory for type C.VkVertexInputAttributeDescription in C. +// The caller is responsible for freeing the this memory via C.free. +func allocVertexInputAttributeDescriptionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputAttributeDescriptionValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfVertexInputAttributeDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputAttributeDescription{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *VertexInputAttributeDescription) Ref() *C.VkVertexInputAttributeDescription { + if x == nil { + return nil + } + return x.refdc4635ff +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *VertexInputAttributeDescription) Free() { + if x != nil && x.allocsdc4635ff != nil { + x.allocsdc4635ff.(*cgoAllocMap).Free() + x.refdc4635ff = nil + } +} + +// NewVertexInputAttributeDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewVertexInputAttributeDescriptionRef(ref unsafe.Pointer) *VertexInputAttributeDescription { + if ref == nil { + return nil + } + obj := new(VertexInputAttributeDescription) + obj.refdc4635ff = (*C.VkVertexInputAttributeDescription)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *VertexInputAttributeDescription) PassRef() (*C.VkVertexInputAttributeDescription, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refdc4635ff != nil { + return x.refdc4635ff, nil + } + memdc4635ff := allocVertexInputAttributeDescriptionMemory(1) + refdc4635ff := (*C.VkVertexInputAttributeDescription)(memdc4635ff) + allocsdc4635ff := new(cgoAllocMap) + allocsdc4635ff.Add(memdc4635ff) + + var clocation_allocs *cgoAllocMap + refdc4635ff.location, clocation_allocs = (C.uint32_t)(x.Location), cgoAllocsUnknown + allocsdc4635ff.Borrow(clocation_allocs) + + var cbinding_allocs *cgoAllocMap + refdc4635ff.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown + allocsdc4635ff.Borrow(cbinding_allocs) + + var cformat_allocs *cgoAllocMap + refdc4635ff.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocsdc4635ff.Borrow(cformat_allocs) + + var coffset_allocs *cgoAllocMap + refdc4635ff.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown + allocsdc4635ff.Borrow(coffset_allocs) + + x.refdc4635ff = refdc4635ff + x.allocsdc4635ff = allocsdc4635ff + return refdc4635ff, allocsdc4635ff + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x VertexInputAttributeDescription) PassValue() (C.VkVertexInputAttributeDescription, *cgoAllocMap) { + if x.refdc4635ff != nil { + return *x.refdc4635ff, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *VertexInputAttributeDescription) Deref() { + if x.refdc4635ff == nil { + return + } + x.Location = (uint32)(x.refdc4635ff.location) + x.Binding = (uint32)(x.refdc4635ff.binding) + x.Format = (Format)(x.refdc4635ff.format) + x.Offset = (uint32)(x.refdc4635ff.offset) +} + +// allocPipelineVertexInputStateCreateInfoMemory allocates memory for type C.VkPipelineVertexInputStateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineVertexInputStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineVertexInputStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineVertexInputStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineVertexInputStateCreateInfo{}) + +// unpackSVertexInputBindingDescription transforms a sliced Go data structure into plain C format. +func unpackSVertexInputBindingDescription(x []VertexInputBindingDescription) (unpacked *C.VkVertexInputBindingDescription, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVertexInputBindingDescription) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVertexInputBindingDescriptionMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVertexInputBindingDescription)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkVertexInputBindingDescription)(h.Data) + return +} + +// unpackSVertexInputAttributeDescription transforms a sliced Go data structure into plain C format. +func unpackSVertexInputAttributeDescription(x []VertexInputAttributeDescription) (unpacked *C.VkVertexInputAttributeDescription, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVertexInputAttributeDescription) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVertexInputAttributeDescriptionMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVertexInputAttributeDescription)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkVertexInputAttributeDescription)(h.Data) + return +} + +// packSVertexInputBindingDescription reads sliced Go data structure out from plain C format. +func packSVertexInputBindingDescription(v []VertexInputBindingDescription, ptr0 *C.VkVertexInputBindingDescription) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVertexInputBindingDescriptionValue]C.VkVertexInputBindingDescription)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVertexInputBindingDescriptionRef(unsafe.Pointer(&ptr1)) + } +} + +// packSVertexInputAttributeDescription reads sliced Go data structure out from plain C format. +func packSVertexInputAttributeDescription(v []VertexInputAttributeDescription, ptr0 *C.VkVertexInputAttributeDescription) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVertexInputAttributeDescriptionValue]C.VkVertexInputAttributeDescription)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVertexInputAttributeDescriptionRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineVertexInputStateCreateInfo) Ref() *C.VkPipelineVertexInputStateCreateInfo { + if x == nil { + return nil + } + return x.ref5fe4aa50 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineVertexInputStateCreateInfo) Free() { + if x != nil && x.allocs5fe4aa50 != nil { + x.allocs5fe4aa50.(*cgoAllocMap).Free() + x.ref5fe4aa50 = nil + } +} + +// NewPipelineVertexInputStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineVertexInputStateCreateInfoRef(ref unsafe.Pointer) *PipelineVertexInputStateCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineVertexInputStateCreateInfo) + obj.ref5fe4aa50 = (*C.VkPipelineVertexInputStateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineVertexInputStateCreateInfo) PassRef() (*C.VkPipelineVertexInputStateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5fe4aa50 != nil { + return x.ref5fe4aa50, nil + } + mem5fe4aa50 := allocPipelineVertexInputStateCreateInfoMemory(1) + ref5fe4aa50 := (*C.VkPipelineVertexInputStateCreateInfo)(mem5fe4aa50) + allocs5fe4aa50 := new(cgoAllocMap) + allocs5fe4aa50.Add(mem5fe4aa50) + + var csType_allocs *cgoAllocMap + ref5fe4aa50.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5fe4aa50.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5fe4aa50.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5fe4aa50.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref5fe4aa50.flags, cflags_allocs = (C.VkPipelineVertexInputStateCreateFlags)(x.Flags), cgoAllocsUnknown + allocs5fe4aa50.Borrow(cflags_allocs) + + var cvertexBindingDescriptionCount_allocs *cgoAllocMap + ref5fe4aa50.vertexBindingDescriptionCount, cvertexBindingDescriptionCount_allocs = (C.uint32_t)(x.VertexBindingDescriptionCount), cgoAllocsUnknown + allocs5fe4aa50.Borrow(cvertexBindingDescriptionCount_allocs) + + var cpVertexBindingDescriptions_allocs *cgoAllocMap + ref5fe4aa50.pVertexBindingDescriptions, cpVertexBindingDescriptions_allocs = unpackSVertexInputBindingDescription(x.PVertexBindingDescriptions) + allocs5fe4aa50.Borrow(cpVertexBindingDescriptions_allocs) + + var cvertexAttributeDescriptionCount_allocs *cgoAllocMap + ref5fe4aa50.vertexAttributeDescriptionCount, cvertexAttributeDescriptionCount_allocs = (C.uint32_t)(x.VertexAttributeDescriptionCount), cgoAllocsUnknown + allocs5fe4aa50.Borrow(cvertexAttributeDescriptionCount_allocs) + + var cpVertexAttributeDescriptions_allocs *cgoAllocMap + ref5fe4aa50.pVertexAttributeDescriptions, cpVertexAttributeDescriptions_allocs = unpackSVertexInputAttributeDescription(x.PVertexAttributeDescriptions) + allocs5fe4aa50.Borrow(cpVertexAttributeDescriptions_allocs) + + x.ref5fe4aa50 = ref5fe4aa50 + x.allocs5fe4aa50 = allocs5fe4aa50 + return ref5fe4aa50, allocs5fe4aa50 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineVertexInputStateCreateInfo) PassValue() (C.VkPipelineVertexInputStateCreateInfo, *cgoAllocMap) { + if x.ref5fe4aa50 != nil { + return *x.ref5fe4aa50, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineVertexInputStateCreateInfo) Deref() { + if x.ref5fe4aa50 == nil { + return + } + x.SType = (StructureType)(x.ref5fe4aa50.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5fe4aa50.pNext)) + x.Flags = (PipelineVertexInputStateCreateFlags)(x.ref5fe4aa50.flags) + x.VertexBindingDescriptionCount = (uint32)(x.ref5fe4aa50.vertexBindingDescriptionCount) + packSVertexInputBindingDescription(x.PVertexBindingDescriptions, x.ref5fe4aa50.pVertexBindingDescriptions) + x.VertexAttributeDescriptionCount = (uint32)(x.ref5fe4aa50.vertexAttributeDescriptionCount) + packSVertexInputAttributeDescription(x.PVertexAttributeDescriptions, x.ref5fe4aa50.pVertexAttributeDescriptions) +} + +// allocPipelineInputAssemblyStateCreateInfoMemory allocates memory for type C.VkPipelineInputAssemblyStateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineInputAssemblyStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineInputAssemblyStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineInputAssemblyStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineInputAssemblyStateCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineInputAssemblyStateCreateInfo) Ref() *C.VkPipelineInputAssemblyStateCreateInfo { + if x == nil { + return nil + } + return x.ref22e1691d +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineInputAssemblyStateCreateInfo) Free() { + if x != nil && x.allocs22e1691d != nil { + x.allocs22e1691d.(*cgoAllocMap).Free() + x.ref22e1691d = nil + } +} + +// NewPipelineInputAssemblyStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineInputAssemblyStateCreateInfoRef(ref unsafe.Pointer) *PipelineInputAssemblyStateCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineInputAssemblyStateCreateInfo) + obj.ref22e1691d = (*C.VkPipelineInputAssemblyStateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineInputAssemblyStateCreateInfo) PassRef() (*C.VkPipelineInputAssemblyStateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref22e1691d != nil { + return x.ref22e1691d, nil + } + mem22e1691d := allocPipelineInputAssemblyStateCreateInfoMemory(1) + ref22e1691d := (*C.VkPipelineInputAssemblyStateCreateInfo)(mem22e1691d) + allocs22e1691d := new(cgoAllocMap) + allocs22e1691d.Add(mem22e1691d) + + var csType_allocs *cgoAllocMap + ref22e1691d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs22e1691d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref22e1691d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs22e1691d.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref22e1691d.flags, cflags_allocs = (C.VkPipelineInputAssemblyStateCreateFlags)(x.Flags), cgoAllocsUnknown + allocs22e1691d.Borrow(cflags_allocs) + + var ctopology_allocs *cgoAllocMap + ref22e1691d.topology, ctopology_allocs = (C.VkPrimitiveTopology)(x.Topology), cgoAllocsUnknown + allocs22e1691d.Borrow(ctopology_allocs) + + var cprimitiveRestartEnable_allocs *cgoAllocMap + ref22e1691d.primitiveRestartEnable, cprimitiveRestartEnable_allocs = (C.VkBool32)(x.PrimitiveRestartEnable), cgoAllocsUnknown + allocs22e1691d.Borrow(cprimitiveRestartEnable_allocs) + + x.ref22e1691d = ref22e1691d + x.allocs22e1691d = allocs22e1691d + return ref22e1691d, allocs22e1691d + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineInputAssemblyStateCreateInfo) PassValue() (C.VkPipelineInputAssemblyStateCreateInfo, *cgoAllocMap) { + if x.ref22e1691d != nil { + return *x.ref22e1691d, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineInputAssemblyStateCreateInfo) Deref() { + if x.ref22e1691d == nil { + return + } + x.SType = (StructureType)(x.ref22e1691d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref22e1691d.pNext)) + x.Flags = (PipelineInputAssemblyStateCreateFlags)(x.ref22e1691d.flags) + x.Topology = (PrimitiveTopology)(x.ref22e1691d.topology) + x.PrimitiveRestartEnable = (Bool32)(x.ref22e1691d.primitiveRestartEnable) +} + +// allocPipelineTessellationStateCreateInfoMemory allocates memory for type C.VkPipelineTessellationStateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineTessellationStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineTessellationStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineTessellationStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineTessellationStateCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineTessellationStateCreateInfo) Ref() *C.VkPipelineTessellationStateCreateInfo { + if x == nil { + return nil + } + return x.ref4ef3997a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineTessellationStateCreateInfo) Free() { + if x != nil && x.allocs4ef3997a != nil { + x.allocs4ef3997a.(*cgoAllocMap).Free() + x.ref4ef3997a = nil + } +} + +// NewPipelineTessellationStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineTessellationStateCreateInfoRef(ref unsafe.Pointer) *PipelineTessellationStateCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineTessellationStateCreateInfo) + obj.ref4ef3997a = (*C.VkPipelineTessellationStateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineTessellationStateCreateInfo) PassRef() (*C.VkPipelineTessellationStateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4ef3997a != nil { + return x.ref4ef3997a, nil + } + mem4ef3997a := allocPipelineTessellationStateCreateInfoMemory(1) + ref4ef3997a := (*C.VkPipelineTessellationStateCreateInfo)(mem4ef3997a) + allocs4ef3997a := new(cgoAllocMap) + allocs4ef3997a.Add(mem4ef3997a) + + var csType_allocs *cgoAllocMap + ref4ef3997a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4ef3997a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref4ef3997a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4ef3997a.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref4ef3997a.flags, cflags_allocs = (C.VkPipelineTessellationStateCreateFlags)(x.Flags), cgoAllocsUnknown + allocs4ef3997a.Borrow(cflags_allocs) + + var cpatchControlPoints_allocs *cgoAllocMap + ref4ef3997a.patchControlPoints, cpatchControlPoints_allocs = (C.uint32_t)(x.PatchControlPoints), cgoAllocsUnknown + allocs4ef3997a.Borrow(cpatchControlPoints_allocs) + + x.ref4ef3997a = ref4ef3997a + x.allocs4ef3997a = allocs4ef3997a + return ref4ef3997a, allocs4ef3997a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineTessellationStateCreateInfo) PassValue() (C.VkPipelineTessellationStateCreateInfo, *cgoAllocMap) { + if x.ref4ef3997a != nil { + return *x.ref4ef3997a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineTessellationStateCreateInfo) Deref() { + if x.ref4ef3997a == nil { + return + } + x.SType = (StructureType)(x.ref4ef3997a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4ef3997a.pNext)) + x.Flags = (PipelineTessellationStateCreateFlags)(x.ref4ef3997a.flags) + x.PatchControlPoints = (uint32)(x.ref4ef3997a.patchControlPoints) +} + +// allocViewportMemory allocates memory for type C.VkViewport in C. +// The caller is responsible for freeing the this memory via C.free. +func allocViewportMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfViewportValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfViewportValue = unsafe.Sizeof([1]C.VkViewport{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *Viewport) Ref() *C.VkViewport { + if x == nil { + return nil + } + return x.ref75cf5291 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *Viewport) Free() { + if x != nil && x.allocs75cf5291 != nil { + x.allocs75cf5291.(*cgoAllocMap).Free() + x.ref75cf5291 = nil + } +} + +// NewViewportRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewViewportRef(ref unsafe.Pointer) *Viewport { + if ref == nil { + return nil + } + obj := new(Viewport) + obj.ref75cf5291 = (*C.VkViewport)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *Viewport) PassRef() (*C.VkViewport, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref75cf5291 != nil { + return x.ref75cf5291, nil + } + mem75cf5291 := allocViewportMemory(1) + ref75cf5291 := (*C.VkViewport)(mem75cf5291) + allocs75cf5291 := new(cgoAllocMap) + allocs75cf5291.Add(mem75cf5291) + + var cx_allocs *cgoAllocMap + ref75cf5291.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown + allocs75cf5291.Borrow(cx_allocs) + + var cy_allocs *cgoAllocMap + ref75cf5291.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown + allocs75cf5291.Borrow(cy_allocs) + + var cwidth_allocs *cgoAllocMap + ref75cf5291.width, cwidth_allocs = (C.float)(x.Width), cgoAllocsUnknown + allocs75cf5291.Borrow(cwidth_allocs) + + var cheight_allocs *cgoAllocMap + ref75cf5291.height, cheight_allocs = (C.float)(x.Height), cgoAllocsUnknown + allocs75cf5291.Borrow(cheight_allocs) + + var cminDepth_allocs *cgoAllocMap + ref75cf5291.minDepth, cminDepth_allocs = (C.float)(x.MinDepth), cgoAllocsUnknown + allocs75cf5291.Borrow(cminDepth_allocs) + + var cmaxDepth_allocs *cgoAllocMap + ref75cf5291.maxDepth, cmaxDepth_allocs = (C.float)(x.MaxDepth), cgoAllocsUnknown + allocs75cf5291.Borrow(cmaxDepth_allocs) + + x.ref75cf5291 = ref75cf5291 + x.allocs75cf5291 = allocs75cf5291 + return ref75cf5291, allocs75cf5291 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x Viewport) PassValue() (C.VkViewport, *cgoAllocMap) { + if x.ref75cf5291 != nil { + return *x.ref75cf5291, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *Viewport) Deref() { + if x.ref75cf5291 == nil { + return + } + x.X = (float32)(x.ref75cf5291.x) + x.Y = (float32)(x.ref75cf5291.y) + x.Width = (float32)(x.ref75cf5291.width) + x.Height = (float32)(x.ref75cf5291.height) + x.MinDepth = (float32)(x.ref75cf5291.minDepth) + x.MaxDepth = (float32)(x.ref75cf5291.maxDepth) +} + +// allocPipelineViewportStateCreateInfoMemory allocates memory for type C.VkPipelineViewportStateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineViewportStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineViewportStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineViewportStateCreateInfo{}) + +// unpackSViewport transforms a sliced Go data structure into plain C format. +func unpackSViewport(x []Viewport) (unpacked *C.VkViewport, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkViewport) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocViewportMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkViewport)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkViewport)(h.Data) + return +} + +// unpackSRect2D transforms a sliced Go data structure into plain C format. +func unpackSRect2D(x []Rect2D) (unpacked *C.VkRect2D, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkRect2D) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocRect2DMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkRect2D)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkRect2D)(h.Data) + return +} + +// packSViewport reads sliced Go data structure out from plain C format. +func packSViewport(v []Viewport, ptr0 *C.VkViewport) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfViewportValue]C.VkViewport)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewViewportRef(unsafe.Pointer(&ptr1)) + } +} + +// packSRect2D reads sliced Go data structure out from plain C format. +func packSRect2D(v []Rect2D, ptr0 *C.VkRect2D) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfRect2DValue]C.VkRect2D)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewRect2DRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineViewportStateCreateInfo) Ref() *C.VkPipelineViewportStateCreateInfo { + if x == nil { + return nil + } + return x.refc4705791 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineViewportStateCreateInfo) Free() { + if x != nil && x.allocsc4705791 != nil { + x.allocsc4705791.(*cgoAllocMap).Free() + x.refc4705791 = nil + } +} + +// NewPipelineViewportStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineViewportStateCreateInfoRef(ref unsafe.Pointer) *PipelineViewportStateCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineViewportStateCreateInfo) + obj.refc4705791 = (*C.VkPipelineViewportStateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineViewportStateCreateInfo) PassRef() (*C.VkPipelineViewportStateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc4705791 != nil { + return x.refc4705791, nil + } + memc4705791 := allocPipelineViewportStateCreateInfoMemory(1) + refc4705791 := (*C.VkPipelineViewportStateCreateInfo)(memc4705791) + allocsc4705791 := new(cgoAllocMap) + allocsc4705791.Add(memc4705791) + + var csType_allocs *cgoAllocMap + refc4705791.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc4705791.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc4705791.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc4705791.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refc4705791.flags, cflags_allocs = (C.VkPipelineViewportStateCreateFlags)(x.Flags), cgoAllocsUnknown + allocsc4705791.Borrow(cflags_allocs) + + var cviewportCount_allocs *cgoAllocMap + refc4705791.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown + allocsc4705791.Borrow(cviewportCount_allocs) + + var cpViewports_allocs *cgoAllocMap + refc4705791.pViewports, cpViewports_allocs = unpackSViewport(x.PViewports) + allocsc4705791.Borrow(cpViewports_allocs) + + var cscissorCount_allocs *cgoAllocMap + refc4705791.scissorCount, cscissorCount_allocs = (C.uint32_t)(x.ScissorCount), cgoAllocsUnknown + allocsc4705791.Borrow(cscissorCount_allocs) + + var cpScissors_allocs *cgoAllocMap + refc4705791.pScissors, cpScissors_allocs = unpackSRect2D(x.PScissors) + allocsc4705791.Borrow(cpScissors_allocs) + + x.refc4705791 = refc4705791 + x.allocsc4705791 = allocsc4705791 + return refc4705791, allocsc4705791 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineViewportStateCreateInfo) PassValue() (C.VkPipelineViewportStateCreateInfo, *cgoAllocMap) { + if x.refc4705791 != nil { + return *x.refc4705791, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineViewportStateCreateInfo) Deref() { + if x.refc4705791 == nil { + return + } + x.SType = (StructureType)(x.refc4705791.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc4705791.pNext)) + x.Flags = (PipelineViewportStateCreateFlags)(x.refc4705791.flags) + x.ViewportCount = (uint32)(x.refc4705791.viewportCount) + packSViewport(x.PViewports, x.refc4705791.pViewports) + x.ScissorCount = (uint32)(x.refc4705791.scissorCount) + packSRect2D(x.PScissors, x.refc4705791.pScissors) +} + +// allocPipelineRasterizationStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationStateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineRasterizationStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineRasterizationStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineRasterizationStateCreateInfo) Ref() *C.VkPipelineRasterizationStateCreateInfo { + if x == nil { + return nil + } + return x.ref48cb9fad +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineRasterizationStateCreateInfo) Free() { + if x != nil && x.allocs48cb9fad != nil { + x.allocs48cb9fad.(*cgoAllocMap).Free() + x.ref48cb9fad = nil + } +} + +// NewPipelineRasterizationStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineRasterizationStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationStateCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineRasterizationStateCreateInfo) + obj.ref48cb9fad = (*C.VkPipelineRasterizationStateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineRasterizationStateCreateInfo) PassRef() (*C.VkPipelineRasterizationStateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref48cb9fad != nil { + return x.ref48cb9fad, nil + } + mem48cb9fad := allocPipelineRasterizationStateCreateInfoMemory(1) + ref48cb9fad := (*C.VkPipelineRasterizationStateCreateInfo)(mem48cb9fad) + allocs48cb9fad := new(cgoAllocMap) + allocs48cb9fad.Add(mem48cb9fad) + + var csType_allocs *cgoAllocMap + ref48cb9fad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs48cb9fad.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref48cb9fad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs48cb9fad.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref48cb9fad.flags, cflags_allocs = (C.VkPipelineRasterizationStateCreateFlags)(x.Flags), cgoAllocsUnknown + allocs48cb9fad.Borrow(cflags_allocs) + + var cdepthClampEnable_allocs *cgoAllocMap + ref48cb9fad.depthClampEnable, cdepthClampEnable_allocs = (C.VkBool32)(x.DepthClampEnable), cgoAllocsUnknown + allocs48cb9fad.Borrow(cdepthClampEnable_allocs) + + var crasterizerDiscardEnable_allocs *cgoAllocMap + ref48cb9fad.rasterizerDiscardEnable, crasterizerDiscardEnable_allocs = (C.VkBool32)(x.RasterizerDiscardEnable), cgoAllocsUnknown + allocs48cb9fad.Borrow(crasterizerDiscardEnable_allocs) + + var cpolygonMode_allocs *cgoAllocMap + ref48cb9fad.polygonMode, cpolygonMode_allocs = (C.VkPolygonMode)(x.PolygonMode), cgoAllocsUnknown + allocs48cb9fad.Borrow(cpolygonMode_allocs) + + var ccullMode_allocs *cgoAllocMap + ref48cb9fad.cullMode, ccullMode_allocs = (C.VkCullModeFlags)(x.CullMode), cgoAllocsUnknown + allocs48cb9fad.Borrow(ccullMode_allocs) + + var cfrontFace_allocs *cgoAllocMap + ref48cb9fad.frontFace, cfrontFace_allocs = (C.VkFrontFace)(x.FrontFace), cgoAllocsUnknown + allocs48cb9fad.Borrow(cfrontFace_allocs) + + var cdepthBiasEnable_allocs *cgoAllocMap + ref48cb9fad.depthBiasEnable, cdepthBiasEnable_allocs = (C.VkBool32)(x.DepthBiasEnable), cgoAllocsUnknown + allocs48cb9fad.Borrow(cdepthBiasEnable_allocs) + + var cdepthBiasConstantFactor_allocs *cgoAllocMap + ref48cb9fad.depthBiasConstantFactor, cdepthBiasConstantFactor_allocs = (C.float)(x.DepthBiasConstantFactor), cgoAllocsUnknown + allocs48cb9fad.Borrow(cdepthBiasConstantFactor_allocs) + + var cdepthBiasClamp_allocs *cgoAllocMap + ref48cb9fad.depthBiasClamp, cdepthBiasClamp_allocs = (C.float)(x.DepthBiasClamp), cgoAllocsUnknown + allocs48cb9fad.Borrow(cdepthBiasClamp_allocs) + + var cdepthBiasSlopeFactor_allocs *cgoAllocMap + ref48cb9fad.depthBiasSlopeFactor, cdepthBiasSlopeFactor_allocs = (C.float)(x.DepthBiasSlopeFactor), cgoAllocsUnknown + allocs48cb9fad.Borrow(cdepthBiasSlopeFactor_allocs) + + var clineWidth_allocs *cgoAllocMap + ref48cb9fad.lineWidth, clineWidth_allocs = (C.float)(x.LineWidth), cgoAllocsUnknown + allocs48cb9fad.Borrow(clineWidth_allocs) + + x.ref48cb9fad = ref48cb9fad + x.allocs48cb9fad = allocs48cb9fad + return ref48cb9fad, allocs48cb9fad + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineRasterizationStateCreateInfo) PassValue() (C.VkPipelineRasterizationStateCreateInfo, *cgoAllocMap) { + if x.ref48cb9fad != nil { + return *x.ref48cb9fad, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineRasterizationStateCreateInfo) Deref() { + if x.ref48cb9fad == nil { + return + } + x.SType = (StructureType)(x.ref48cb9fad.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref48cb9fad.pNext)) + x.Flags = (PipelineRasterizationStateCreateFlags)(x.ref48cb9fad.flags) + x.DepthClampEnable = (Bool32)(x.ref48cb9fad.depthClampEnable) + x.RasterizerDiscardEnable = (Bool32)(x.ref48cb9fad.rasterizerDiscardEnable) + x.PolygonMode = (PolygonMode)(x.ref48cb9fad.polygonMode) + x.CullMode = (CullModeFlags)(x.ref48cb9fad.cullMode) + x.FrontFace = (FrontFace)(x.ref48cb9fad.frontFace) + x.DepthBiasEnable = (Bool32)(x.ref48cb9fad.depthBiasEnable) + x.DepthBiasConstantFactor = (float32)(x.ref48cb9fad.depthBiasConstantFactor) + x.DepthBiasClamp = (float32)(x.ref48cb9fad.depthBiasClamp) + x.DepthBiasSlopeFactor = (float32)(x.ref48cb9fad.depthBiasSlopeFactor) + x.LineWidth = (float32)(x.ref48cb9fad.lineWidth) +} + +// allocPipelineMultisampleStateCreateInfoMemory allocates memory for type C.VkPipelineMultisampleStateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineMultisampleStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineMultisampleStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineMultisampleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineMultisampleStateCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineMultisampleStateCreateInfo) Ref() *C.VkPipelineMultisampleStateCreateInfo { + if x == nil { + return nil + } + return x.refb6538bfb +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineMultisampleStateCreateInfo) Free() { + if x != nil && x.allocsb6538bfb != nil { + x.allocsb6538bfb.(*cgoAllocMap).Free() + x.refb6538bfb = nil + } +} + +// NewPipelineMultisampleStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineMultisampleStateCreateInfoRef(ref unsafe.Pointer) *PipelineMultisampleStateCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineMultisampleStateCreateInfo) + obj.refb6538bfb = (*C.VkPipelineMultisampleStateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineMultisampleStateCreateInfo) PassRef() (*C.VkPipelineMultisampleStateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb6538bfb != nil { + return x.refb6538bfb, nil + } + memb6538bfb := allocPipelineMultisampleStateCreateInfoMemory(1) + refb6538bfb := (*C.VkPipelineMultisampleStateCreateInfo)(memb6538bfb) + allocsb6538bfb := new(cgoAllocMap) + allocsb6538bfb.Add(memb6538bfb) + + var csType_allocs *cgoAllocMap + refb6538bfb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb6538bfb.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb6538bfb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb6538bfb.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refb6538bfb.flags, cflags_allocs = (C.VkPipelineMultisampleStateCreateFlags)(x.Flags), cgoAllocsUnknown + allocsb6538bfb.Borrow(cflags_allocs) + + var crasterizationSamples_allocs *cgoAllocMap + refb6538bfb.rasterizationSamples, crasterizationSamples_allocs = (C.VkSampleCountFlagBits)(x.RasterizationSamples), cgoAllocsUnknown + allocsb6538bfb.Borrow(crasterizationSamples_allocs) + + var csampleShadingEnable_allocs *cgoAllocMap + refb6538bfb.sampleShadingEnable, csampleShadingEnable_allocs = (C.VkBool32)(x.SampleShadingEnable), cgoAllocsUnknown + allocsb6538bfb.Borrow(csampleShadingEnable_allocs) + + var cminSampleShading_allocs *cgoAllocMap + refb6538bfb.minSampleShading, cminSampleShading_allocs = (C.float)(x.MinSampleShading), cgoAllocsUnknown + allocsb6538bfb.Borrow(cminSampleShading_allocs) + + var cpSampleMask_allocs *cgoAllocMap + refb6538bfb.pSampleMask, cpSampleMask_allocs = (*C.VkSampleMask)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSampleMask)).Data)), cgoAllocsUnknown + allocsb6538bfb.Borrow(cpSampleMask_allocs) + + var calphaToCoverageEnable_allocs *cgoAllocMap + refb6538bfb.alphaToCoverageEnable, calphaToCoverageEnable_allocs = (C.VkBool32)(x.AlphaToCoverageEnable), cgoAllocsUnknown + allocsb6538bfb.Borrow(calphaToCoverageEnable_allocs) + + var calphaToOneEnable_allocs *cgoAllocMap + refb6538bfb.alphaToOneEnable, calphaToOneEnable_allocs = (C.VkBool32)(x.AlphaToOneEnable), cgoAllocsUnknown + allocsb6538bfb.Borrow(calphaToOneEnable_allocs) + + x.refb6538bfb = refb6538bfb + x.allocsb6538bfb = allocsb6538bfb + return refb6538bfb, allocsb6538bfb + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineMultisampleStateCreateInfo) PassValue() (C.VkPipelineMultisampleStateCreateInfo, *cgoAllocMap) { + if x.refb6538bfb != nil { + return *x.refb6538bfb, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineMultisampleStateCreateInfo) Deref() { + if x.refb6538bfb == nil { + return + } + x.SType = (StructureType)(x.refb6538bfb.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb6538bfb.pNext)) + x.Flags = (PipelineMultisampleStateCreateFlags)(x.refb6538bfb.flags) + x.RasterizationSamples = (SampleCountFlagBits)(x.refb6538bfb.rasterizationSamples) + x.SampleShadingEnable = (Bool32)(x.refb6538bfb.sampleShadingEnable) + x.MinSampleShading = (float32)(x.refb6538bfb.minSampleShading) + hxf3b8dbd := (*sliceHeader)(unsafe.Pointer(&x.PSampleMask)) + hxf3b8dbd.Data = unsafe.Pointer(x.refb6538bfb.pSampleMask) + hxf3b8dbd.Cap = 0x7fffffff + // hxf3b8dbd.Len = ? + + x.AlphaToCoverageEnable = (Bool32)(x.refb6538bfb.alphaToCoverageEnable) + x.AlphaToOneEnable = (Bool32)(x.refb6538bfb.alphaToOneEnable) +} + +// allocStencilOpStateMemory allocates memory for type C.VkStencilOpState in C. +// The caller is responsible for freeing the this memory via C.free. +func allocStencilOpStateMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfStencilOpStateValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfStencilOpStateValue = unsafe.Sizeof([1]C.VkStencilOpState{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *StencilOpState) Ref() *C.VkStencilOpState { + if x == nil { + return nil + } + return x.ref28886871 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *StencilOpState) Free() { + if x != nil && x.allocs28886871 != nil { + x.allocs28886871.(*cgoAllocMap).Free() + x.ref28886871 = nil + } +} + +// NewStencilOpStateRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewStencilOpStateRef(ref unsafe.Pointer) *StencilOpState { + if ref == nil { + return nil + } + obj := new(StencilOpState) + obj.ref28886871 = (*C.VkStencilOpState)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *StencilOpState) PassRef() (*C.VkStencilOpState, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref28886871 != nil { + return x.ref28886871, nil + } + mem28886871 := allocStencilOpStateMemory(1) + ref28886871 := (*C.VkStencilOpState)(mem28886871) + allocs28886871 := new(cgoAllocMap) + allocs28886871.Add(mem28886871) + + var cfailOp_allocs *cgoAllocMap + ref28886871.failOp, cfailOp_allocs = (C.VkStencilOp)(x.FailOp), cgoAllocsUnknown + allocs28886871.Borrow(cfailOp_allocs) + + var cpassOp_allocs *cgoAllocMap + ref28886871.passOp, cpassOp_allocs = (C.VkStencilOp)(x.PassOp), cgoAllocsUnknown + allocs28886871.Borrow(cpassOp_allocs) + + var cdepthFailOp_allocs *cgoAllocMap + ref28886871.depthFailOp, cdepthFailOp_allocs = (C.VkStencilOp)(x.DepthFailOp), cgoAllocsUnknown + allocs28886871.Borrow(cdepthFailOp_allocs) + + var ccompareOp_allocs *cgoAllocMap + ref28886871.compareOp, ccompareOp_allocs = (C.VkCompareOp)(x.CompareOp), cgoAllocsUnknown + allocs28886871.Borrow(ccompareOp_allocs) + + var ccompareMask_allocs *cgoAllocMap + ref28886871.compareMask, ccompareMask_allocs = (C.uint32_t)(x.CompareMask), cgoAllocsUnknown + allocs28886871.Borrow(ccompareMask_allocs) + + var cwriteMask_allocs *cgoAllocMap + ref28886871.writeMask, cwriteMask_allocs = (C.uint32_t)(x.WriteMask), cgoAllocsUnknown + allocs28886871.Borrow(cwriteMask_allocs) + + var creference_allocs *cgoAllocMap + ref28886871.reference, creference_allocs = (C.uint32_t)(x.Reference), cgoAllocsUnknown + allocs28886871.Borrow(creference_allocs) + + x.ref28886871 = ref28886871 + x.allocs28886871 = allocs28886871 + return ref28886871, allocs28886871 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x StencilOpState) PassValue() (C.VkStencilOpState, *cgoAllocMap) { + if x.ref28886871 != nil { + return *x.ref28886871, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *StencilOpState) Deref() { + if x.ref28886871 == nil { + return + } + x.FailOp = (StencilOp)(x.ref28886871.failOp) + x.PassOp = (StencilOp)(x.ref28886871.passOp) + x.DepthFailOp = (StencilOp)(x.ref28886871.depthFailOp) + x.CompareOp = (CompareOp)(x.ref28886871.compareOp) + x.CompareMask = (uint32)(x.ref28886871.compareMask) + x.WriteMask = (uint32)(x.ref28886871.writeMask) + x.Reference = (uint32)(x.ref28886871.reference) +} + +// allocPipelineDepthStencilStateCreateInfoMemory allocates memory for type C.VkPipelineDepthStencilStateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineDepthStencilStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineDepthStencilStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineDepthStencilStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDepthStencilStateCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineDepthStencilStateCreateInfo) Ref() *C.VkPipelineDepthStencilStateCreateInfo { + if x == nil { + return nil + } + return x.refeabfcf1 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineDepthStencilStateCreateInfo) Free() { + if x != nil && x.allocseabfcf1 != nil { + x.allocseabfcf1.(*cgoAllocMap).Free() + x.refeabfcf1 = nil + } +} + +// NewPipelineDepthStencilStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineDepthStencilStateCreateInfoRef(ref unsafe.Pointer) *PipelineDepthStencilStateCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineDepthStencilStateCreateInfo) + obj.refeabfcf1 = (*C.VkPipelineDepthStencilStateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineDepthStencilStateCreateInfo) PassRef() (*C.VkPipelineDepthStencilStateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refeabfcf1 != nil { + return x.refeabfcf1, nil + } + memeabfcf1 := allocPipelineDepthStencilStateCreateInfoMemory(1) + refeabfcf1 := (*C.VkPipelineDepthStencilStateCreateInfo)(memeabfcf1) + allocseabfcf1 := new(cgoAllocMap) + allocseabfcf1.Add(memeabfcf1) + + var csType_allocs *cgoAllocMap + refeabfcf1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseabfcf1.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refeabfcf1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseabfcf1.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refeabfcf1.flags, cflags_allocs = (C.VkPipelineDepthStencilStateCreateFlags)(x.Flags), cgoAllocsUnknown + allocseabfcf1.Borrow(cflags_allocs) + + var cdepthTestEnable_allocs *cgoAllocMap + refeabfcf1.depthTestEnable, cdepthTestEnable_allocs = (C.VkBool32)(x.DepthTestEnable), cgoAllocsUnknown + allocseabfcf1.Borrow(cdepthTestEnable_allocs) + + var cdepthWriteEnable_allocs *cgoAllocMap + refeabfcf1.depthWriteEnable, cdepthWriteEnable_allocs = (C.VkBool32)(x.DepthWriteEnable), cgoAllocsUnknown + allocseabfcf1.Borrow(cdepthWriteEnable_allocs) + + var cdepthCompareOp_allocs *cgoAllocMap + refeabfcf1.depthCompareOp, cdepthCompareOp_allocs = (C.VkCompareOp)(x.DepthCompareOp), cgoAllocsUnknown + allocseabfcf1.Borrow(cdepthCompareOp_allocs) + + var cdepthBoundsTestEnable_allocs *cgoAllocMap + refeabfcf1.depthBoundsTestEnable, cdepthBoundsTestEnable_allocs = (C.VkBool32)(x.DepthBoundsTestEnable), cgoAllocsUnknown + allocseabfcf1.Borrow(cdepthBoundsTestEnable_allocs) + + var cstencilTestEnable_allocs *cgoAllocMap + refeabfcf1.stencilTestEnable, cstencilTestEnable_allocs = (C.VkBool32)(x.StencilTestEnable), cgoAllocsUnknown + allocseabfcf1.Borrow(cstencilTestEnable_allocs) + + var cfront_allocs *cgoAllocMap + refeabfcf1.front, cfront_allocs = x.Front.PassValue() + allocseabfcf1.Borrow(cfront_allocs) + + var cback_allocs *cgoAllocMap + refeabfcf1.back, cback_allocs = x.Back.PassValue() + allocseabfcf1.Borrow(cback_allocs) + + var cminDepthBounds_allocs *cgoAllocMap + refeabfcf1.minDepthBounds, cminDepthBounds_allocs = (C.float)(x.MinDepthBounds), cgoAllocsUnknown + allocseabfcf1.Borrow(cminDepthBounds_allocs) + + var cmaxDepthBounds_allocs *cgoAllocMap + refeabfcf1.maxDepthBounds, cmaxDepthBounds_allocs = (C.float)(x.MaxDepthBounds), cgoAllocsUnknown + allocseabfcf1.Borrow(cmaxDepthBounds_allocs) + + x.refeabfcf1 = refeabfcf1 + x.allocseabfcf1 = allocseabfcf1 + return refeabfcf1, allocseabfcf1 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineDepthStencilStateCreateInfo) PassValue() (C.VkPipelineDepthStencilStateCreateInfo, *cgoAllocMap) { + if x.refeabfcf1 != nil { + return *x.refeabfcf1, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineDepthStencilStateCreateInfo) Deref() { + if x.refeabfcf1 == nil { + return + } + x.SType = (StructureType)(x.refeabfcf1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeabfcf1.pNext)) + x.Flags = (PipelineDepthStencilStateCreateFlags)(x.refeabfcf1.flags) + x.DepthTestEnable = (Bool32)(x.refeabfcf1.depthTestEnable) + x.DepthWriteEnable = (Bool32)(x.refeabfcf1.depthWriteEnable) + x.DepthCompareOp = (CompareOp)(x.refeabfcf1.depthCompareOp) + x.DepthBoundsTestEnable = (Bool32)(x.refeabfcf1.depthBoundsTestEnable) + x.StencilTestEnable = (Bool32)(x.refeabfcf1.stencilTestEnable) + x.Front = *NewStencilOpStateRef(unsafe.Pointer(&x.refeabfcf1.front)) + x.Back = *NewStencilOpStateRef(unsafe.Pointer(&x.refeabfcf1.back)) + x.MinDepthBounds = (float32)(x.refeabfcf1.minDepthBounds) + x.MaxDepthBounds = (float32)(x.refeabfcf1.maxDepthBounds) +} + +// allocPipelineColorBlendAttachmentStateMemory allocates memory for type C.VkPipelineColorBlendAttachmentState in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineColorBlendAttachmentStateMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineColorBlendAttachmentStateValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineColorBlendAttachmentStateValue = unsafe.Sizeof([1]C.VkPipelineColorBlendAttachmentState{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineColorBlendAttachmentState) Ref() *C.VkPipelineColorBlendAttachmentState { + if x == nil { + return nil + } + return x.ref9e889477 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineColorBlendAttachmentState) Free() { + if x != nil && x.allocs9e889477 != nil { + x.allocs9e889477.(*cgoAllocMap).Free() + x.ref9e889477 = nil + } +} + +// NewPipelineColorBlendAttachmentStateRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineColorBlendAttachmentStateRef(ref unsafe.Pointer) *PipelineColorBlendAttachmentState { + if ref == nil { + return nil + } + obj := new(PipelineColorBlendAttachmentState) + obj.ref9e889477 = (*C.VkPipelineColorBlendAttachmentState)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineColorBlendAttachmentState) PassRef() (*C.VkPipelineColorBlendAttachmentState, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref9e889477 != nil { + return x.ref9e889477, nil + } + mem9e889477 := allocPipelineColorBlendAttachmentStateMemory(1) + ref9e889477 := (*C.VkPipelineColorBlendAttachmentState)(mem9e889477) + allocs9e889477 := new(cgoAllocMap) + allocs9e889477.Add(mem9e889477) + + var cblendEnable_allocs *cgoAllocMap + ref9e889477.blendEnable, cblendEnable_allocs = (C.VkBool32)(x.BlendEnable), cgoAllocsUnknown + allocs9e889477.Borrow(cblendEnable_allocs) + + var csrcColorBlendFactor_allocs *cgoAllocMap + ref9e889477.srcColorBlendFactor, csrcColorBlendFactor_allocs = (C.VkBlendFactor)(x.SrcColorBlendFactor), cgoAllocsUnknown + allocs9e889477.Borrow(csrcColorBlendFactor_allocs) + + var cdstColorBlendFactor_allocs *cgoAllocMap + ref9e889477.dstColorBlendFactor, cdstColorBlendFactor_allocs = (C.VkBlendFactor)(x.DstColorBlendFactor), cgoAllocsUnknown + allocs9e889477.Borrow(cdstColorBlendFactor_allocs) + + var ccolorBlendOp_allocs *cgoAllocMap + ref9e889477.colorBlendOp, ccolorBlendOp_allocs = (C.VkBlendOp)(x.ColorBlendOp), cgoAllocsUnknown + allocs9e889477.Borrow(ccolorBlendOp_allocs) + + var csrcAlphaBlendFactor_allocs *cgoAllocMap + ref9e889477.srcAlphaBlendFactor, csrcAlphaBlendFactor_allocs = (C.VkBlendFactor)(x.SrcAlphaBlendFactor), cgoAllocsUnknown + allocs9e889477.Borrow(csrcAlphaBlendFactor_allocs) + + var cdstAlphaBlendFactor_allocs *cgoAllocMap + ref9e889477.dstAlphaBlendFactor, cdstAlphaBlendFactor_allocs = (C.VkBlendFactor)(x.DstAlphaBlendFactor), cgoAllocsUnknown + allocs9e889477.Borrow(cdstAlphaBlendFactor_allocs) + + var calphaBlendOp_allocs *cgoAllocMap + ref9e889477.alphaBlendOp, calphaBlendOp_allocs = (C.VkBlendOp)(x.AlphaBlendOp), cgoAllocsUnknown + allocs9e889477.Borrow(calphaBlendOp_allocs) + + var ccolorWriteMask_allocs *cgoAllocMap + ref9e889477.colorWriteMask, ccolorWriteMask_allocs = (C.VkColorComponentFlags)(x.ColorWriteMask), cgoAllocsUnknown + allocs9e889477.Borrow(ccolorWriteMask_allocs) + + x.ref9e889477 = ref9e889477 + x.allocs9e889477 = allocs9e889477 + return ref9e889477, allocs9e889477 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineColorBlendAttachmentState) PassValue() (C.VkPipelineColorBlendAttachmentState, *cgoAllocMap) { + if x.ref9e889477 != nil { + return *x.ref9e889477, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineColorBlendAttachmentState) Deref() { + if x.ref9e889477 == nil { + return + } + x.BlendEnable = (Bool32)(x.ref9e889477.blendEnable) + x.SrcColorBlendFactor = (BlendFactor)(x.ref9e889477.srcColorBlendFactor) + x.DstColorBlendFactor = (BlendFactor)(x.ref9e889477.dstColorBlendFactor) + x.ColorBlendOp = (BlendOp)(x.ref9e889477.colorBlendOp) + x.SrcAlphaBlendFactor = (BlendFactor)(x.ref9e889477.srcAlphaBlendFactor) + x.DstAlphaBlendFactor = (BlendFactor)(x.ref9e889477.dstAlphaBlendFactor) + x.AlphaBlendOp = (BlendOp)(x.ref9e889477.alphaBlendOp) + x.ColorWriteMask = (ColorComponentFlags)(x.ref9e889477.colorWriteMask) +} + +// allocPipelineColorBlendStateCreateInfoMemory allocates memory for type C.VkPipelineColorBlendStateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineColorBlendStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineColorBlendStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineColorBlendStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorBlendStateCreateInfo{}) + +// unpackSPipelineColorBlendAttachmentState transforms a sliced Go data structure into plain C format. +func unpackSPipelineColorBlendAttachmentState(x []PipelineColorBlendAttachmentState) (unpacked *C.VkPipelineColorBlendAttachmentState, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineColorBlendAttachmentState) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocPipelineColorBlendAttachmentStateMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkPipelineColorBlendAttachmentState)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkPipelineColorBlendAttachmentState)(h.Data) + return +} + +// packSPipelineColorBlendAttachmentState reads sliced Go data structure out from plain C format. +func packSPipelineColorBlendAttachmentState(v []PipelineColorBlendAttachmentState, ptr0 *C.VkPipelineColorBlendAttachmentState) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfPipelineColorBlendAttachmentStateValue]C.VkPipelineColorBlendAttachmentState)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewPipelineColorBlendAttachmentStateRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineColorBlendStateCreateInfo) Ref() *C.VkPipelineColorBlendStateCreateInfo { + if x == nil { + return nil + } + return x.ref2a9b490b +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineColorBlendStateCreateInfo) Free() { + if x != nil && x.allocs2a9b490b != nil { + x.allocs2a9b490b.(*cgoAllocMap).Free() + x.ref2a9b490b = nil + } +} + +// NewPipelineColorBlendStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineColorBlendStateCreateInfoRef(ref unsafe.Pointer) *PipelineColorBlendStateCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineColorBlendStateCreateInfo) + obj.ref2a9b490b = (*C.VkPipelineColorBlendStateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineColorBlendStateCreateInfo) PassRef() (*C.VkPipelineColorBlendStateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2a9b490b != nil { + return x.ref2a9b490b, nil + } + mem2a9b490b := allocPipelineColorBlendStateCreateInfoMemory(1) + ref2a9b490b := (*C.VkPipelineColorBlendStateCreateInfo)(mem2a9b490b) + allocs2a9b490b := new(cgoAllocMap) + allocs2a9b490b.Add(mem2a9b490b) + + var csType_allocs *cgoAllocMap + ref2a9b490b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2a9b490b.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref2a9b490b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2a9b490b.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref2a9b490b.flags, cflags_allocs = (C.VkPipelineColorBlendStateCreateFlags)(x.Flags), cgoAllocsUnknown + allocs2a9b490b.Borrow(cflags_allocs) + + var clogicOpEnable_allocs *cgoAllocMap + ref2a9b490b.logicOpEnable, clogicOpEnable_allocs = (C.VkBool32)(x.LogicOpEnable), cgoAllocsUnknown + allocs2a9b490b.Borrow(clogicOpEnable_allocs) + + var clogicOp_allocs *cgoAllocMap + ref2a9b490b.logicOp, clogicOp_allocs = (C.VkLogicOp)(x.LogicOp), cgoAllocsUnknown + allocs2a9b490b.Borrow(clogicOp_allocs) + + var cattachmentCount_allocs *cgoAllocMap + ref2a9b490b.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown + allocs2a9b490b.Borrow(cattachmentCount_allocs) + + var cpAttachments_allocs *cgoAllocMap + ref2a9b490b.pAttachments, cpAttachments_allocs = unpackSPipelineColorBlendAttachmentState(x.PAttachments) + allocs2a9b490b.Borrow(cpAttachments_allocs) + + var cblendConstants_allocs *cgoAllocMap + ref2a9b490b.blendConstants, cblendConstants_allocs = *(*[4]C.float)(unsafe.Pointer(&x.BlendConstants)), cgoAllocsUnknown + allocs2a9b490b.Borrow(cblendConstants_allocs) + + x.ref2a9b490b = ref2a9b490b + x.allocs2a9b490b = allocs2a9b490b + return ref2a9b490b, allocs2a9b490b + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineColorBlendStateCreateInfo) PassValue() (C.VkPipelineColorBlendStateCreateInfo, *cgoAllocMap) { + if x.ref2a9b490b != nil { + return *x.ref2a9b490b, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineColorBlendStateCreateInfo) Deref() { + if x.ref2a9b490b == nil { + return + } + x.SType = (StructureType)(x.ref2a9b490b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2a9b490b.pNext)) + x.Flags = (PipelineColorBlendStateCreateFlags)(x.ref2a9b490b.flags) + x.LogicOpEnable = (Bool32)(x.ref2a9b490b.logicOpEnable) + x.LogicOp = (LogicOp)(x.ref2a9b490b.logicOp) + x.AttachmentCount = (uint32)(x.ref2a9b490b.attachmentCount) + packSPipelineColorBlendAttachmentState(x.PAttachments, x.ref2a9b490b.pAttachments) + x.BlendConstants = *(*[4]float32)(unsafe.Pointer(&x.ref2a9b490b.blendConstants)) +} + +// allocPipelineDynamicStateCreateInfoMemory allocates memory for type C.VkPipelineDynamicStateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineDynamicStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineDynamicStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineDynamicStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDynamicStateCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineDynamicStateCreateInfo) Ref() *C.VkPipelineDynamicStateCreateInfo { + if x == nil { + return nil + } + return x.ref246d7bc8 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineDynamicStateCreateInfo) Free() { + if x != nil && x.allocs246d7bc8 != nil { + x.allocs246d7bc8.(*cgoAllocMap).Free() + x.ref246d7bc8 = nil + } +} + +// NewPipelineDynamicStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineDynamicStateCreateInfoRef(ref unsafe.Pointer) *PipelineDynamicStateCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineDynamicStateCreateInfo) + obj.ref246d7bc8 = (*C.VkPipelineDynamicStateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineDynamicStateCreateInfo) PassRef() (*C.VkPipelineDynamicStateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref246d7bc8 != nil { + return x.ref246d7bc8, nil + } + mem246d7bc8 := allocPipelineDynamicStateCreateInfoMemory(1) + ref246d7bc8 := (*C.VkPipelineDynamicStateCreateInfo)(mem246d7bc8) + allocs246d7bc8 := new(cgoAllocMap) + allocs246d7bc8.Add(mem246d7bc8) + + var csType_allocs *cgoAllocMap + ref246d7bc8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs246d7bc8.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref246d7bc8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs246d7bc8.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref246d7bc8.flags, cflags_allocs = (C.VkPipelineDynamicStateCreateFlags)(x.Flags), cgoAllocsUnknown + allocs246d7bc8.Borrow(cflags_allocs) + + var cdynamicStateCount_allocs *cgoAllocMap + ref246d7bc8.dynamicStateCount, cdynamicStateCount_allocs = (C.uint32_t)(x.DynamicStateCount), cgoAllocsUnknown + allocs246d7bc8.Borrow(cdynamicStateCount_allocs) + + var cpDynamicStates_allocs *cgoAllocMap + ref246d7bc8.pDynamicStates, cpDynamicStates_allocs = (*C.VkDynamicState)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDynamicStates)).Data)), cgoAllocsUnknown + allocs246d7bc8.Borrow(cpDynamicStates_allocs) + + x.ref246d7bc8 = ref246d7bc8 + x.allocs246d7bc8 = allocs246d7bc8 + return ref246d7bc8, allocs246d7bc8 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineDynamicStateCreateInfo) PassValue() (C.VkPipelineDynamicStateCreateInfo, *cgoAllocMap) { + if x.ref246d7bc8 != nil { + return *x.ref246d7bc8, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineDynamicStateCreateInfo) Deref() { + if x.ref246d7bc8 == nil { + return + } + x.SType = (StructureType)(x.ref246d7bc8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref246d7bc8.pNext)) + x.Flags = (PipelineDynamicStateCreateFlags)(x.ref246d7bc8.flags) + x.DynamicStateCount = (uint32)(x.ref246d7bc8.dynamicStateCount) + hxf7a6dff := (*sliceHeader)(unsafe.Pointer(&x.PDynamicStates)) + hxf7a6dff.Data = unsafe.Pointer(x.ref246d7bc8.pDynamicStates) + hxf7a6dff.Cap = 0x7fffffff + // hxf7a6dff.Len = ? + +} + +// allocGraphicsPipelineCreateInfoMemory allocates memory for type C.VkGraphicsPipelineCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocGraphicsPipelineCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsPipelineCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfGraphicsPipelineCreateInfoValue = unsafe.Sizeof([1]C.VkGraphicsPipelineCreateInfo{}) + +// unpackSPipelineShaderStageCreateInfo transforms a sliced Go data structure into plain C format. +func unpackSPipelineShaderStageCreateInfo(x []PipelineShaderStageCreateInfo) (unpacked *C.VkPipelineShaderStageCreateInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineShaderStageCreateInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocPipelineShaderStageCreateInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkPipelineShaderStageCreateInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkPipelineShaderStageCreateInfo)(h.Data) + return +} + +// packSPipelineShaderStageCreateInfo reads sliced Go data structure out from plain C format. +func packSPipelineShaderStageCreateInfo(v []PipelineShaderStageCreateInfo, ptr0 *C.VkPipelineShaderStageCreateInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfPipelineShaderStageCreateInfoValue]C.VkPipelineShaderStageCreateInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewPipelineShaderStageCreateInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *GraphicsPipelineCreateInfo) Ref() *C.VkGraphicsPipelineCreateInfo { + if x == nil { + return nil + } + return x.ref178f88b6 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *GraphicsPipelineCreateInfo) Free() { + if x != nil && x.allocs178f88b6 != nil { + x.allocs178f88b6.(*cgoAllocMap).Free() + x.ref178f88b6 = nil + } +} + +// NewGraphicsPipelineCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewGraphicsPipelineCreateInfoRef(ref unsafe.Pointer) *GraphicsPipelineCreateInfo { + if ref == nil { + return nil + } + obj := new(GraphicsPipelineCreateInfo) + obj.ref178f88b6 = (*C.VkGraphicsPipelineCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *GraphicsPipelineCreateInfo) PassRef() (*C.VkGraphicsPipelineCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref178f88b6 != nil { + return x.ref178f88b6, nil + } + mem178f88b6 := allocGraphicsPipelineCreateInfoMemory(1) + ref178f88b6 := (*C.VkGraphicsPipelineCreateInfo)(mem178f88b6) + allocs178f88b6 := new(cgoAllocMap) + allocs178f88b6.Add(mem178f88b6) + + var csType_allocs *cgoAllocMap + ref178f88b6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs178f88b6.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref178f88b6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs178f88b6.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref178f88b6.flags, cflags_allocs = (C.VkPipelineCreateFlags)(x.Flags), cgoAllocsUnknown + allocs178f88b6.Borrow(cflags_allocs) + + var cstageCount_allocs *cgoAllocMap + ref178f88b6.stageCount, cstageCount_allocs = (C.uint32_t)(x.StageCount), cgoAllocsUnknown + allocs178f88b6.Borrow(cstageCount_allocs) + + var cpStages_allocs *cgoAllocMap + ref178f88b6.pStages, cpStages_allocs = unpackSPipelineShaderStageCreateInfo(x.PStages) + allocs178f88b6.Borrow(cpStages_allocs) + + var cpVertexInputState_allocs *cgoAllocMap + ref178f88b6.pVertexInputState, cpVertexInputState_allocs = x.PVertexInputState.PassRef() + allocs178f88b6.Borrow(cpVertexInputState_allocs) + + var cpInputAssemblyState_allocs *cgoAllocMap + ref178f88b6.pInputAssemblyState, cpInputAssemblyState_allocs = x.PInputAssemblyState.PassRef() + allocs178f88b6.Borrow(cpInputAssemblyState_allocs) + + var cpTessellationState_allocs *cgoAllocMap + ref178f88b6.pTessellationState, cpTessellationState_allocs = x.PTessellationState.PassRef() + allocs178f88b6.Borrow(cpTessellationState_allocs) + + var cpViewportState_allocs *cgoAllocMap + ref178f88b6.pViewportState, cpViewportState_allocs = x.PViewportState.PassRef() + allocs178f88b6.Borrow(cpViewportState_allocs) + + var cpRasterizationState_allocs *cgoAllocMap + ref178f88b6.pRasterizationState, cpRasterizationState_allocs = x.PRasterizationState.PassRef() + allocs178f88b6.Borrow(cpRasterizationState_allocs) + + var cpMultisampleState_allocs *cgoAllocMap + ref178f88b6.pMultisampleState, cpMultisampleState_allocs = x.PMultisampleState.PassRef() + allocs178f88b6.Borrow(cpMultisampleState_allocs) + + var cpDepthStencilState_allocs *cgoAllocMap + ref178f88b6.pDepthStencilState, cpDepthStencilState_allocs = x.PDepthStencilState.PassRef() + allocs178f88b6.Borrow(cpDepthStencilState_allocs) + + var cpColorBlendState_allocs *cgoAllocMap + ref178f88b6.pColorBlendState, cpColorBlendState_allocs = x.PColorBlendState.PassRef() + allocs178f88b6.Borrow(cpColorBlendState_allocs) + + var cpDynamicState_allocs *cgoAllocMap + ref178f88b6.pDynamicState, cpDynamicState_allocs = x.PDynamicState.PassRef() + allocs178f88b6.Borrow(cpDynamicState_allocs) + + var clayout_allocs *cgoAllocMap + ref178f88b6.layout, clayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.Layout)), cgoAllocsUnknown + allocs178f88b6.Borrow(clayout_allocs) + + var crenderPass_allocs *cgoAllocMap + ref178f88b6.renderPass, crenderPass_allocs = *(*C.VkRenderPass)(unsafe.Pointer(&x.RenderPass)), cgoAllocsUnknown + allocs178f88b6.Borrow(crenderPass_allocs) + + var csubpass_allocs *cgoAllocMap + ref178f88b6.subpass, csubpass_allocs = (C.uint32_t)(x.Subpass), cgoAllocsUnknown + allocs178f88b6.Borrow(csubpass_allocs) + + var cbasePipelineHandle_allocs *cgoAllocMap + ref178f88b6.basePipelineHandle, cbasePipelineHandle_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.BasePipelineHandle)), cgoAllocsUnknown + allocs178f88b6.Borrow(cbasePipelineHandle_allocs) + + var cbasePipelineIndex_allocs *cgoAllocMap + ref178f88b6.basePipelineIndex, cbasePipelineIndex_allocs = (C.int32_t)(x.BasePipelineIndex), cgoAllocsUnknown + allocs178f88b6.Borrow(cbasePipelineIndex_allocs) + + x.ref178f88b6 = ref178f88b6 + x.allocs178f88b6 = allocs178f88b6 + return ref178f88b6, allocs178f88b6 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x GraphicsPipelineCreateInfo) PassValue() (C.VkGraphicsPipelineCreateInfo, *cgoAllocMap) { + if x.ref178f88b6 != nil { + return *x.ref178f88b6, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *GraphicsPipelineCreateInfo) Deref() { + if x.ref178f88b6 == nil { + return + } + x.SType = (StructureType)(x.ref178f88b6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref178f88b6.pNext)) + x.Flags = (PipelineCreateFlags)(x.ref178f88b6.flags) + x.StageCount = (uint32)(x.ref178f88b6.stageCount) + packSPipelineShaderStageCreateInfo(x.PStages, x.ref178f88b6.pStages) + x.PVertexInputState = NewPipelineVertexInputStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pVertexInputState)) + x.PInputAssemblyState = NewPipelineInputAssemblyStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pInputAssemblyState)) + x.PTessellationState = NewPipelineTessellationStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pTessellationState)) + x.PViewportState = NewPipelineViewportStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pViewportState)) + x.PRasterizationState = NewPipelineRasterizationStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pRasterizationState)) + x.PMultisampleState = NewPipelineMultisampleStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pMultisampleState)) + x.PDepthStencilState = NewPipelineDepthStencilStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pDepthStencilState)) + x.PColorBlendState = NewPipelineColorBlendStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pColorBlendState)) + x.PDynamicState = NewPipelineDynamicStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pDynamicState)) + x.Layout = *(*PipelineLayout)(unsafe.Pointer(&x.ref178f88b6.layout)) + x.RenderPass = *(*RenderPass)(unsafe.Pointer(&x.ref178f88b6.renderPass)) + x.Subpass = (uint32)(x.ref178f88b6.subpass) + x.BasePipelineHandle = *(*Pipeline)(unsafe.Pointer(&x.ref178f88b6.basePipelineHandle)) + x.BasePipelineIndex = (int32)(x.ref178f88b6.basePipelineIndex) +} + +// allocPushConstantRangeMemory allocates memory for type C.VkPushConstantRange in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPushConstantRangeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPushConstantRangeValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPushConstantRangeValue = unsafe.Sizeof([1]C.VkPushConstantRange{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PushConstantRange) Ref() *C.VkPushConstantRange { + if x == nil { + return nil + } + return x.ref6f025856 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PushConstantRange) Free() { + if x != nil && x.allocs6f025856 != nil { + x.allocs6f025856.(*cgoAllocMap).Free() + x.ref6f025856 = nil + } +} + +// NewPushConstantRangeRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPushConstantRangeRef(ref unsafe.Pointer) *PushConstantRange { + if ref == nil { + return nil + } + obj := new(PushConstantRange) + obj.ref6f025856 = (*C.VkPushConstantRange)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PushConstantRange) PassRef() (*C.VkPushConstantRange, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref6f025856 != nil { + return x.ref6f025856, nil + } + mem6f025856 := allocPushConstantRangeMemory(1) + ref6f025856 := (*C.VkPushConstantRange)(mem6f025856) + allocs6f025856 := new(cgoAllocMap) + allocs6f025856.Add(mem6f025856) + + var cstageFlags_allocs *cgoAllocMap + ref6f025856.stageFlags, cstageFlags_allocs = (C.VkShaderStageFlags)(x.StageFlags), cgoAllocsUnknown + allocs6f025856.Borrow(cstageFlags_allocs) + + var coffset_allocs *cgoAllocMap + ref6f025856.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown + allocs6f025856.Borrow(coffset_allocs) + + var csize_allocs *cgoAllocMap + ref6f025856.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown + allocs6f025856.Borrow(csize_allocs) + + x.ref6f025856 = ref6f025856 + x.allocs6f025856 = allocs6f025856 + return ref6f025856, allocs6f025856 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PushConstantRange) PassValue() (C.VkPushConstantRange, *cgoAllocMap) { + if x.ref6f025856 != nil { + return *x.ref6f025856, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PushConstantRange) Deref() { + if x.ref6f025856 == nil { + return + } + x.StageFlags = (ShaderStageFlags)(x.ref6f025856.stageFlags) + x.Offset = (uint32)(x.ref6f025856.offset) + x.Size = (uint32)(x.ref6f025856.size) +} + +// allocPipelineLayoutCreateInfoMemory allocates memory for type C.VkPipelineLayoutCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineLayoutCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineLayoutCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineLayoutCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineLayoutCreateInfo{}) + +// unpackSPushConstantRange transforms a sliced Go data structure into plain C format. +func unpackSPushConstantRange(x []PushConstantRange) (unpacked *C.VkPushConstantRange, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkPushConstantRange) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocPushConstantRangeMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkPushConstantRange)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkPushConstantRange)(h.Data) + return +} + +// packSPushConstantRange reads sliced Go data structure out from plain C format. +func packSPushConstantRange(v []PushConstantRange, ptr0 *C.VkPushConstantRange) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfPushConstantRangeValue]C.VkPushConstantRange)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewPushConstantRangeRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineLayoutCreateInfo) Ref() *C.VkPipelineLayoutCreateInfo { + if x == nil { + return nil + } + return x.ref64cc4eed +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineLayoutCreateInfo) Free() { + if x != nil && x.allocs64cc4eed != nil { + x.allocs64cc4eed.(*cgoAllocMap).Free() + x.ref64cc4eed = nil + } +} + +// NewPipelineLayoutCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineLayoutCreateInfoRef(ref unsafe.Pointer) *PipelineLayoutCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineLayoutCreateInfo) + obj.ref64cc4eed = (*C.VkPipelineLayoutCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineLayoutCreateInfo) PassRef() (*C.VkPipelineLayoutCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref64cc4eed != nil { + return x.ref64cc4eed, nil + } + mem64cc4eed := allocPipelineLayoutCreateInfoMemory(1) + ref64cc4eed := (*C.VkPipelineLayoutCreateInfo)(mem64cc4eed) + allocs64cc4eed := new(cgoAllocMap) + allocs64cc4eed.Add(mem64cc4eed) + + var csType_allocs *cgoAllocMap + ref64cc4eed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs64cc4eed.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref64cc4eed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs64cc4eed.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref64cc4eed.flags, cflags_allocs = (C.VkPipelineLayoutCreateFlags)(x.Flags), cgoAllocsUnknown + allocs64cc4eed.Borrow(cflags_allocs) + + var csetLayoutCount_allocs *cgoAllocMap + ref64cc4eed.setLayoutCount, csetLayoutCount_allocs = (C.uint32_t)(x.SetLayoutCount), cgoAllocsUnknown + allocs64cc4eed.Borrow(csetLayoutCount_allocs) + + var cpSetLayouts_allocs *cgoAllocMap + ref64cc4eed.pSetLayouts, cpSetLayouts_allocs = (*C.VkDescriptorSetLayout)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSetLayouts)).Data)), cgoAllocsUnknown + allocs64cc4eed.Borrow(cpSetLayouts_allocs) + + var cpushConstantRangeCount_allocs *cgoAllocMap + ref64cc4eed.pushConstantRangeCount, cpushConstantRangeCount_allocs = (C.uint32_t)(x.PushConstantRangeCount), cgoAllocsUnknown + allocs64cc4eed.Borrow(cpushConstantRangeCount_allocs) + + var cpPushConstantRanges_allocs *cgoAllocMap + ref64cc4eed.pPushConstantRanges, cpPushConstantRanges_allocs = unpackSPushConstantRange(x.PPushConstantRanges) + allocs64cc4eed.Borrow(cpPushConstantRanges_allocs) + + x.ref64cc4eed = ref64cc4eed + x.allocs64cc4eed = allocs64cc4eed + return ref64cc4eed, allocs64cc4eed + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineLayoutCreateInfo) PassValue() (C.VkPipelineLayoutCreateInfo, *cgoAllocMap) { + if x.ref64cc4eed != nil { + return *x.ref64cc4eed, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineLayoutCreateInfo) Deref() { + if x.ref64cc4eed == nil { + return + } + x.SType = (StructureType)(x.ref64cc4eed.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref64cc4eed.pNext)) + x.Flags = (PipelineLayoutCreateFlags)(x.ref64cc4eed.flags) + x.SetLayoutCount = (uint32)(x.ref64cc4eed.setLayoutCount) + hxfe48d67 := (*sliceHeader)(unsafe.Pointer(&x.PSetLayouts)) + hxfe48d67.Data = unsafe.Pointer(x.ref64cc4eed.pSetLayouts) + hxfe48d67.Cap = 0x7fffffff + // hxfe48d67.Len = ? + + x.PushConstantRangeCount = (uint32)(x.ref64cc4eed.pushConstantRangeCount) + packSPushConstantRange(x.PPushConstantRanges, x.ref64cc4eed.pPushConstantRanges) +} + +// allocSamplerCreateInfoMemory allocates memory for type C.VkSamplerCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSamplerCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSamplerCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SamplerCreateInfo) Ref() *C.VkSamplerCreateInfo { + if x == nil { + return nil + } + return x.refce034abf +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SamplerCreateInfo) Free() { + if x != nil && x.allocsce034abf != nil { + x.allocsce034abf.(*cgoAllocMap).Free() + x.refce034abf = nil + } +} + +// NewSamplerCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSamplerCreateInfoRef(ref unsafe.Pointer) *SamplerCreateInfo { + if ref == nil { + return nil + } + obj := new(SamplerCreateInfo) + obj.refce034abf = (*C.VkSamplerCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SamplerCreateInfo) PassRef() (*C.VkSamplerCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refce034abf != nil { + return x.refce034abf, nil + } + memce034abf := allocSamplerCreateInfoMemory(1) + refce034abf := (*C.VkSamplerCreateInfo)(memce034abf) + allocsce034abf := new(cgoAllocMap) + allocsce034abf.Add(memce034abf) + + var csType_allocs *cgoAllocMap + refce034abf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsce034abf.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refce034abf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsce034abf.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refce034abf.flags, cflags_allocs = (C.VkSamplerCreateFlags)(x.Flags), cgoAllocsUnknown + allocsce034abf.Borrow(cflags_allocs) + + var cmagFilter_allocs *cgoAllocMap + refce034abf.magFilter, cmagFilter_allocs = (C.VkFilter)(x.MagFilter), cgoAllocsUnknown + allocsce034abf.Borrow(cmagFilter_allocs) + + var cminFilter_allocs *cgoAllocMap + refce034abf.minFilter, cminFilter_allocs = (C.VkFilter)(x.MinFilter), cgoAllocsUnknown + allocsce034abf.Borrow(cminFilter_allocs) + + var cmipmapMode_allocs *cgoAllocMap + refce034abf.mipmapMode, cmipmapMode_allocs = (C.VkSamplerMipmapMode)(x.MipmapMode), cgoAllocsUnknown + allocsce034abf.Borrow(cmipmapMode_allocs) + + var caddressModeU_allocs *cgoAllocMap + refce034abf.addressModeU, caddressModeU_allocs = (C.VkSamplerAddressMode)(x.AddressModeU), cgoAllocsUnknown + allocsce034abf.Borrow(caddressModeU_allocs) + + var caddressModeV_allocs *cgoAllocMap + refce034abf.addressModeV, caddressModeV_allocs = (C.VkSamplerAddressMode)(x.AddressModeV), cgoAllocsUnknown + allocsce034abf.Borrow(caddressModeV_allocs) + + var caddressModeW_allocs *cgoAllocMap + refce034abf.addressModeW, caddressModeW_allocs = (C.VkSamplerAddressMode)(x.AddressModeW), cgoAllocsUnknown + allocsce034abf.Borrow(caddressModeW_allocs) + + var cmipLodBias_allocs *cgoAllocMap + refce034abf.mipLodBias, cmipLodBias_allocs = (C.float)(x.MipLodBias), cgoAllocsUnknown + allocsce034abf.Borrow(cmipLodBias_allocs) + + var canisotropyEnable_allocs *cgoAllocMap + refce034abf.anisotropyEnable, canisotropyEnable_allocs = (C.VkBool32)(x.AnisotropyEnable), cgoAllocsUnknown + allocsce034abf.Borrow(canisotropyEnable_allocs) + + var cmaxAnisotropy_allocs *cgoAllocMap + refce034abf.maxAnisotropy, cmaxAnisotropy_allocs = (C.float)(x.MaxAnisotropy), cgoAllocsUnknown + allocsce034abf.Borrow(cmaxAnisotropy_allocs) + + var ccompareEnable_allocs *cgoAllocMap + refce034abf.compareEnable, ccompareEnable_allocs = (C.VkBool32)(x.CompareEnable), cgoAllocsUnknown + allocsce034abf.Borrow(ccompareEnable_allocs) + + var ccompareOp_allocs *cgoAllocMap + refce034abf.compareOp, ccompareOp_allocs = (C.VkCompareOp)(x.CompareOp), cgoAllocsUnknown + allocsce034abf.Borrow(ccompareOp_allocs) + + var cminLod_allocs *cgoAllocMap + refce034abf.minLod, cminLod_allocs = (C.float)(x.MinLod), cgoAllocsUnknown + allocsce034abf.Borrow(cminLod_allocs) + + var cmaxLod_allocs *cgoAllocMap + refce034abf.maxLod, cmaxLod_allocs = (C.float)(x.MaxLod), cgoAllocsUnknown + allocsce034abf.Borrow(cmaxLod_allocs) + + var cborderColor_allocs *cgoAllocMap + refce034abf.borderColor, cborderColor_allocs = (C.VkBorderColor)(x.BorderColor), cgoAllocsUnknown + allocsce034abf.Borrow(cborderColor_allocs) + + var cunnormalizedCoordinates_allocs *cgoAllocMap + refce034abf.unnormalizedCoordinates, cunnormalizedCoordinates_allocs = (C.VkBool32)(x.UnnormalizedCoordinates), cgoAllocsUnknown + allocsce034abf.Borrow(cunnormalizedCoordinates_allocs) + + x.refce034abf = refce034abf + x.allocsce034abf = allocsce034abf + return refce034abf, allocsce034abf + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SamplerCreateInfo) PassValue() (C.VkSamplerCreateInfo, *cgoAllocMap) { + if x.refce034abf != nil { + return *x.refce034abf, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SamplerCreateInfo) Deref() { + if x.refce034abf == nil { + return + } + x.SType = (StructureType)(x.refce034abf.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refce034abf.pNext)) + x.Flags = (SamplerCreateFlags)(x.refce034abf.flags) + x.MagFilter = (Filter)(x.refce034abf.magFilter) + x.MinFilter = (Filter)(x.refce034abf.minFilter) + x.MipmapMode = (SamplerMipmapMode)(x.refce034abf.mipmapMode) + x.AddressModeU = (SamplerAddressMode)(x.refce034abf.addressModeU) + x.AddressModeV = (SamplerAddressMode)(x.refce034abf.addressModeV) + x.AddressModeW = (SamplerAddressMode)(x.refce034abf.addressModeW) + x.MipLodBias = (float32)(x.refce034abf.mipLodBias) + x.AnisotropyEnable = (Bool32)(x.refce034abf.anisotropyEnable) + x.MaxAnisotropy = (float32)(x.refce034abf.maxAnisotropy) + x.CompareEnable = (Bool32)(x.refce034abf.compareEnable) + x.CompareOp = (CompareOp)(x.refce034abf.compareOp) + x.MinLod = (float32)(x.refce034abf.minLod) + x.MaxLod = (float32)(x.refce034abf.maxLod) + x.BorderColor = (BorderColor)(x.refce034abf.borderColor) + x.UnnormalizedCoordinates = (Bool32)(x.refce034abf.unnormalizedCoordinates) +} + +// allocCopyDescriptorSetMemory allocates memory for type C.VkCopyDescriptorSet in C. +// The caller is responsible for freeing the this memory via C.free. +func allocCopyDescriptorSetMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyDescriptorSetValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfCopyDescriptorSetValue = unsafe.Sizeof([1]C.VkCopyDescriptorSet{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *CopyDescriptorSet) Ref() *C.VkCopyDescriptorSet { + if x == nil { + return nil + } + return x.reffe237a3a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *CopyDescriptorSet) Free() { + if x != nil && x.allocsfe237a3a != nil { + x.allocsfe237a3a.(*cgoAllocMap).Free() + x.reffe237a3a = nil + } +} + +// NewCopyDescriptorSetRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewCopyDescriptorSetRef(ref unsafe.Pointer) *CopyDescriptorSet { + if ref == nil { + return nil + } + obj := new(CopyDescriptorSet) + obj.reffe237a3a = (*C.VkCopyDescriptorSet)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *CopyDescriptorSet) PassRef() (*C.VkCopyDescriptorSet, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reffe237a3a != nil { + return x.reffe237a3a, nil + } + memfe237a3a := allocCopyDescriptorSetMemory(1) + reffe237a3a := (*C.VkCopyDescriptorSet)(memfe237a3a) + allocsfe237a3a := new(cgoAllocMap) + allocsfe237a3a.Add(memfe237a3a) + + var csType_allocs *cgoAllocMap + reffe237a3a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfe237a3a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reffe237a3a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfe237a3a.Borrow(cpNext_allocs) + + var csrcSet_allocs *cgoAllocMap + reffe237a3a.srcSet, csrcSet_allocs = *(*C.VkDescriptorSet)(unsafe.Pointer(&x.SrcSet)), cgoAllocsUnknown + allocsfe237a3a.Borrow(csrcSet_allocs) + + var csrcBinding_allocs *cgoAllocMap + reffe237a3a.srcBinding, csrcBinding_allocs = (C.uint32_t)(x.SrcBinding), cgoAllocsUnknown + allocsfe237a3a.Borrow(csrcBinding_allocs) + + var csrcArrayElement_allocs *cgoAllocMap + reffe237a3a.srcArrayElement, csrcArrayElement_allocs = (C.uint32_t)(x.SrcArrayElement), cgoAllocsUnknown + allocsfe237a3a.Borrow(csrcArrayElement_allocs) + + var cdstSet_allocs *cgoAllocMap + reffe237a3a.dstSet, cdstSet_allocs = *(*C.VkDescriptorSet)(unsafe.Pointer(&x.DstSet)), cgoAllocsUnknown + allocsfe237a3a.Borrow(cdstSet_allocs) + + var cdstBinding_allocs *cgoAllocMap + reffe237a3a.dstBinding, cdstBinding_allocs = (C.uint32_t)(x.DstBinding), cgoAllocsUnknown + allocsfe237a3a.Borrow(cdstBinding_allocs) + + var cdstArrayElement_allocs *cgoAllocMap + reffe237a3a.dstArrayElement, cdstArrayElement_allocs = (C.uint32_t)(x.DstArrayElement), cgoAllocsUnknown + allocsfe237a3a.Borrow(cdstArrayElement_allocs) + + var cdescriptorCount_allocs *cgoAllocMap + reffe237a3a.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown + allocsfe237a3a.Borrow(cdescriptorCount_allocs) + + x.reffe237a3a = reffe237a3a + x.allocsfe237a3a = allocsfe237a3a + return reffe237a3a, allocsfe237a3a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x CopyDescriptorSet) PassValue() (C.VkCopyDescriptorSet, *cgoAllocMap) { + if x.reffe237a3a != nil { + return *x.reffe237a3a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *CopyDescriptorSet) Deref() { + if x.reffe237a3a == nil { + return + } + x.SType = (StructureType)(x.reffe237a3a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffe237a3a.pNext)) + x.SrcSet = *(*DescriptorSet)(unsafe.Pointer(&x.reffe237a3a.srcSet)) + x.SrcBinding = (uint32)(x.reffe237a3a.srcBinding) + x.SrcArrayElement = (uint32)(x.reffe237a3a.srcArrayElement) + x.DstSet = *(*DescriptorSet)(unsafe.Pointer(&x.reffe237a3a.dstSet)) + x.DstBinding = (uint32)(x.reffe237a3a.dstBinding) + x.DstArrayElement = (uint32)(x.reffe237a3a.dstArrayElement) + x.DescriptorCount = (uint32)(x.reffe237a3a.descriptorCount) +} + +// allocDescriptorBufferInfoMemory allocates memory for type C.VkDescriptorBufferInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorBufferInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorBufferInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorBufferInfoValue = unsafe.Sizeof([1]C.VkDescriptorBufferInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorBufferInfo) Ref() *C.VkDescriptorBufferInfo { + if x == nil { + return nil + } + return x.refe64bec0e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorBufferInfo) Free() { + if x != nil && x.allocse64bec0e != nil { + x.allocse64bec0e.(*cgoAllocMap).Free() + x.refe64bec0e = nil + } +} + +// NewDescriptorBufferInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorBufferInfoRef(ref unsafe.Pointer) *DescriptorBufferInfo { + if ref == nil { + return nil + } + obj := new(DescriptorBufferInfo) + obj.refe64bec0e = (*C.VkDescriptorBufferInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorBufferInfo) PassRef() (*C.VkDescriptorBufferInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refe64bec0e != nil { + return x.refe64bec0e, nil + } + meme64bec0e := allocDescriptorBufferInfoMemory(1) + refe64bec0e := (*C.VkDescriptorBufferInfo)(meme64bec0e) + allocse64bec0e := new(cgoAllocMap) + allocse64bec0e.Add(meme64bec0e) + + var cbuffer_allocs *cgoAllocMap + refe64bec0e.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocse64bec0e.Borrow(cbuffer_allocs) + + var coffset_allocs *cgoAllocMap + refe64bec0e.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocse64bec0e.Borrow(coffset_allocs) + + var c_range_allocs *cgoAllocMap + refe64bec0e._range, c_range_allocs = (C.VkDeviceSize)(x.Range), cgoAllocsUnknown + allocse64bec0e.Borrow(c_range_allocs) + + x.refe64bec0e = refe64bec0e + x.allocse64bec0e = allocse64bec0e + return refe64bec0e, allocse64bec0e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorBufferInfo) PassValue() (C.VkDescriptorBufferInfo, *cgoAllocMap) { + if x.refe64bec0e != nil { + return *x.refe64bec0e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorBufferInfo) Deref() { + if x.refe64bec0e == nil { + return + } + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refe64bec0e.buffer)) + x.Offset = (DeviceSize)(x.refe64bec0e.offset) + x.Range = (DeviceSize)(x.refe64bec0e._range) +} + +// allocDescriptorImageInfoMemory allocates memory for type C.VkDescriptorImageInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorImageInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorImageInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorImageInfoValue = unsafe.Sizeof([1]C.VkDescriptorImageInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorImageInfo) Ref() *C.VkDescriptorImageInfo { + if x == nil { + return nil + } + return x.refaf073b07 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorImageInfo) Free() { + if x != nil && x.allocsaf073b07 != nil { + x.allocsaf073b07.(*cgoAllocMap).Free() + x.refaf073b07 = nil + } +} + +// NewDescriptorImageInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorImageInfoRef(ref unsafe.Pointer) *DescriptorImageInfo { + if ref == nil { + return nil + } + obj := new(DescriptorImageInfo) + obj.refaf073b07 = (*C.VkDescriptorImageInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorImageInfo) PassRef() (*C.VkDescriptorImageInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refaf073b07 != nil { + return x.refaf073b07, nil + } + memaf073b07 := allocDescriptorImageInfoMemory(1) + refaf073b07 := (*C.VkDescriptorImageInfo)(memaf073b07) + allocsaf073b07 := new(cgoAllocMap) + allocsaf073b07.Add(memaf073b07) + + var csampler_allocs *cgoAllocMap + refaf073b07.sampler, csampler_allocs = *(*C.VkSampler)(unsafe.Pointer(&x.Sampler)), cgoAllocsUnknown + allocsaf073b07.Borrow(csampler_allocs) + + var cimageView_allocs *cgoAllocMap + refaf073b07.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocsaf073b07.Borrow(cimageView_allocs) + + var cimageLayout_allocs *cgoAllocMap + refaf073b07.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown + allocsaf073b07.Borrow(cimageLayout_allocs) + + x.refaf073b07 = refaf073b07 + x.allocsaf073b07 = allocsaf073b07 + return refaf073b07, allocsaf073b07 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorImageInfo) PassValue() (C.VkDescriptorImageInfo, *cgoAllocMap) { + if x.refaf073b07 != nil { + return *x.refaf073b07, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorImageInfo) Deref() { + if x.refaf073b07 == nil { + return + } + x.Sampler = *(*Sampler)(unsafe.Pointer(&x.refaf073b07.sampler)) + x.ImageView = *(*ImageView)(unsafe.Pointer(&x.refaf073b07.imageView)) + x.ImageLayout = (ImageLayout)(x.refaf073b07.imageLayout) +} + +// allocDescriptorPoolSizeMemory allocates memory for type C.VkDescriptorPoolSize in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorPoolSizeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorPoolSizeValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorPoolSizeValue = unsafe.Sizeof([1]C.VkDescriptorPoolSize{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorPoolSize) Ref() *C.VkDescriptorPoolSize { + if x == nil { + return nil + } + return x.refe15137da +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorPoolSize) Free() { + if x != nil && x.allocse15137da != nil { + x.allocse15137da.(*cgoAllocMap).Free() + x.refe15137da = nil + } +} + +// NewDescriptorPoolSizeRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorPoolSizeRef(ref unsafe.Pointer) *DescriptorPoolSize { + if ref == nil { + return nil + } + obj := new(DescriptorPoolSize) + obj.refe15137da = (*C.VkDescriptorPoolSize)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorPoolSize) PassRef() (*C.VkDescriptorPoolSize, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refe15137da != nil { + return x.refe15137da, nil + } + meme15137da := allocDescriptorPoolSizeMemory(1) + refe15137da := (*C.VkDescriptorPoolSize)(meme15137da) + allocse15137da := new(cgoAllocMap) + allocse15137da.Add(meme15137da) + + var c_type_allocs *cgoAllocMap + refe15137da._type, c_type_allocs = (C.VkDescriptorType)(x.Type), cgoAllocsUnknown + allocse15137da.Borrow(c_type_allocs) + + var cdescriptorCount_allocs *cgoAllocMap + refe15137da.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown + allocse15137da.Borrow(cdescriptorCount_allocs) + + x.refe15137da = refe15137da + x.allocse15137da = allocse15137da + return refe15137da, allocse15137da + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorPoolSize) PassValue() (C.VkDescriptorPoolSize, *cgoAllocMap) { + if x.refe15137da != nil { + return *x.refe15137da, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorPoolSize) Deref() { + if x.refe15137da == nil { + return + } + x.Type = (DescriptorType)(x.refe15137da._type) + x.DescriptorCount = (uint32)(x.refe15137da.descriptorCount) +} + +// allocDescriptorPoolCreateInfoMemory allocates memory for type C.VkDescriptorPoolCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorPoolCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorPoolCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorPoolCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorPoolCreateInfo{}) + +// unpackSDescriptorPoolSize transforms a sliced Go data structure into plain C format. +func unpackSDescriptorPoolSize(x []DescriptorPoolSize) (unpacked *C.VkDescriptorPoolSize, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorPoolSize) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocDescriptorPoolSizeMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkDescriptorPoolSize)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkDescriptorPoolSize)(h.Data) + return +} + +// packSDescriptorPoolSize reads sliced Go data structure out from plain C format. +func packSDescriptorPoolSize(v []DescriptorPoolSize, ptr0 *C.VkDescriptorPoolSize) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfDescriptorPoolSizeValue]C.VkDescriptorPoolSize)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewDescriptorPoolSizeRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorPoolCreateInfo) Ref() *C.VkDescriptorPoolCreateInfo { + if x == nil { + return nil + } + return x.ref19868463 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorPoolCreateInfo) Free() { + if x != nil && x.allocs19868463 != nil { + x.allocs19868463.(*cgoAllocMap).Free() + x.ref19868463 = nil + } +} + +// NewDescriptorPoolCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorPoolCreateInfoRef(ref unsafe.Pointer) *DescriptorPoolCreateInfo { + if ref == nil { + return nil + } + obj := new(DescriptorPoolCreateInfo) + obj.ref19868463 = (*C.VkDescriptorPoolCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorPoolCreateInfo) PassRef() (*C.VkDescriptorPoolCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref19868463 != nil { + return x.ref19868463, nil + } + mem19868463 := allocDescriptorPoolCreateInfoMemory(1) + ref19868463 := (*C.VkDescriptorPoolCreateInfo)(mem19868463) + allocs19868463 := new(cgoAllocMap) + allocs19868463.Add(mem19868463) + + var csType_allocs *cgoAllocMap + ref19868463.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs19868463.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref19868463.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs19868463.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref19868463.flags, cflags_allocs = (C.VkDescriptorPoolCreateFlags)(x.Flags), cgoAllocsUnknown + allocs19868463.Borrow(cflags_allocs) + + var cmaxSets_allocs *cgoAllocMap + ref19868463.maxSets, cmaxSets_allocs = (C.uint32_t)(x.MaxSets), cgoAllocsUnknown + allocs19868463.Borrow(cmaxSets_allocs) + + var cpoolSizeCount_allocs *cgoAllocMap + ref19868463.poolSizeCount, cpoolSizeCount_allocs = (C.uint32_t)(x.PoolSizeCount), cgoAllocsUnknown + allocs19868463.Borrow(cpoolSizeCount_allocs) + + var cpPoolSizes_allocs *cgoAllocMap + ref19868463.pPoolSizes, cpPoolSizes_allocs = unpackSDescriptorPoolSize(x.PPoolSizes) + allocs19868463.Borrow(cpPoolSizes_allocs) + + x.ref19868463 = ref19868463 + x.allocs19868463 = allocs19868463 + return ref19868463, allocs19868463 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorPoolCreateInfo) PassValue() (C.VkDescriptorPoolCreateInfo, *cgoAllocMap) { + if x.ref19868463 != nil { + return *x.ref19868463, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorPoolCreateInfo) Deref() { + if x.ref19868463 == nil { + return + } + x.SType = (StructureType)(x.ref19868463.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref19868463.pNext)) + x.Flags = (DescriptorPoolCreateFlags)(x.ref19868463.flags) + x.MaxSets = (uint32)(x.ref19868463.maxSets) + x.PoolSizeCount = (uint32)(x.ref19868463.poolSizeCount) + packSDescriptorPoolSize(x.PPoolSizes, x.ref19868463.pPoolSizes) +} + +// allocDescriptorSetAllocateInfoMemory allocates memory for type C.VkDescriptorSetAllocateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorSetAllocateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetAllocateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorSetAllocateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetAllocateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorSetAllocateInfo) Ref() *C.VkDescriptorSetAllocateInfo { + if x == nil { + return nil + } + return x.ref2dd6cc22 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorSetAllocateInfo) Free() { + if x != nil && x.allocs2dd6cc22 != nil { + x.allocs2dd6cc22.(*cgoAllocMap).Free() + x.ref2dd6cc22 = nil + } +} + +// NewDescriptorSetAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorSetAllocateInfoRef(ref unsafe.Pointer) *DescriptorSetAllocateInfo { + if ref == nil { + return nil + } + obj := new(DescriptorSetAllocateInfo) + obj.ref2dd6cc22 = (*C.VkDescriptorSetAllocateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorSetAllocateInfo) PassRef() (*C.VkDescriptorSetAllocateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2dd6cc22 != nil { + return x.ref2dd6cc22, nil + } + mem2dd6cc22 := allocDescriptorSetAllocateInfoMemory(1) + ref2dd6cc22 := (*C.VkDescriptorSetAllocateInfo)(mem2dd6cc22) + allocs2dd6cc22 := new(cgoAllocMap) + allocs2dd6cc22.Add(mem2dd6cc22) + + var csType_allocs *cgoAllocMap + ref2dd6cc22.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2dd6cc22.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref2dd6cc22.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2dd6cc22.Borrow(cpNext_allocs) + + var cdescriptorPool_allocs *cgoAllocMap + ref2dd6cc22.descriptorPool, cdescriptorPool_allocs = *(*C.VkDescriptorPool)(unsafe.Pointer(&x.DescriptorPool)), cgoAllocsUnknown + allocs2dd6cc22.Borrow(cdescriptorPool_allocs) + + var cdescriptorSetCount_allocs *cgoAllocMap + ref2dd6cc22.descriptorSetCount, cdescriptorSetCount_allocs = (C.uint32_t)(x.DescriptorSetCount), cgoAllocsUnknown + allocs2dd6cc22.Borrow(cdescriptorSetCount_allocs) + + var cpSetLayouts_allocs *cgoAllocMap + ref2dd6cc22.pSetLayouts, cpSetLayouts_allocs = (*C.VkDescriptorSetLayout)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSetLayouts)).Data)), cgoAllocsUnknown + allocs2dd6cc22.Borrow(cpSetLayouts_allocs) + + x.ref2dd6cc22 = ref2dd6cc22 + x.allocs2dd6cc22 = allocs2dd6cc22 + return ref2dd6cc22, allocs2dd6cc22 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorSetAllocateInfo) PassValue() (C.VkDescriptorSetAllocateInfo, *cgoAllocMap) { + if x.ref2dd6cc22 != nil { + return *x.ref2dd6cc22, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorSetAllocateInfo) Deref() { + if x.ref2dd6cc22 == nil { + return + } + x.SType = (StructureType)(x.ref2dd6cc22.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2dd6cc22.pNext)) + x.DescriptorPool = *(*DescriptorPool)(unsafe.Pointer(&x.ref2dd6cc22.descriptorPool)) + x.DescriptorSetCount = (uint32)(x.ref2dd6cc22.descriptorSetCount) + hxf4171bf := (*sliceHeader)(unsafe.Pointer(&x.PSetLayouts)) + hxf4171bf.Data = unsafe.Pointer(x.ref2dd6cc22.pSetLayouts) + hxf4171bf.Cap = 0x7fffffff + // hxf4171bf.Len = ? + +} + +// allocDescriptorSetLayoutBindingMemory allocates memory for type C.VkDescriptorSetLayoutBinding in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorSetLayoutBindingMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutBindingValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorSetLayoutBindingValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutBinding{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorSetLayoutBinding) Ref() *C.VkDescriptorSetLayoutBinding { + if x == nil { + return nil + } + return x.ref8b50b4ec +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorSetLayoutBinding) Free() { + if x != nil && x.allocs8b50b4ec != nil { + x.allocs8b50b4ec.(*cgoAllocMap).Free() + x.ref8b50b4ec = nil + } +} + +// NewDescriptorSetLayoutBindingRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorSetLayoutBindingRef(ref unsafe.Pointer) *DescriptorSetLayoutBinding { + if ref == nil { + return nil + } + obj := new(DescriptorSetLayoutBinding) + obj.ref8b50b4ec = (*C.VkDescriptorSetLayoutBinding)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorSetLayoutBinding) PassRef() (*C.VkDescriptorSetLayoutBinding, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref8b50b4ec != nil { + return x.ref8b50b4ec, nil + } + mem8b50b4ec := allocDescriptorSetLayoutBindingMemory(1) + ref8b50b4ec := (*C.VkDescriptorSetLayoutBinding)(mem8b50b4ec) + allocs8b50b4ec := new(cgoAllocMap) + allocs8b50b4ec.Add(mem8b50b4ec) + + var cbinding_allocs *cgoAllocMap + ref8b50b4ec.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown + allocs8b50b4ec.Borrow(cbinding_allocs) + + var cdescriptorType_allocs *cgoAllocMap + ref8b50b4ec.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown + allocs8b50b4ec.Borrow(cdescriptorType_allocs) + + var cdescriptorCount_allocs *cgoAllocMap + ref8b50b4ec.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown + allocs8b50b4ec.Borrow(cdescriptorCount_allocs) + + var cstageFlags_allocs *cgoAllocMap + ref8b50b4ec.stageFlags, cstageFlags_allocs = (C.VkShaderStageFlags)(x.StageFlags), cgoAllocsUnknown + allocs8b50b4ec.Borrow(cstageFlags_allocs) + + var cpImmutableSamplers_allocs *cgoAllocMap + ref8b50b4ec.pImmutableSamplers, cpImmutableSamplers_allocs = (*C.VkSampler)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PImmutableSamplers)).Data)), cgoAllocsUnknown + allocs8b50b4ec.Borrow(cpImmutableSamplers_allocs) + + x.ref8b50b4ec = ref8b50b4ec + x.allocs8b50b4ec = allocs8b50b4ec + return ref8b50b4ec, allocs8b50b4ec + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorSetLayoutBinding) PassValue() (C.VkDescriptorSetLayoutBinding, *cgoAllocMap) { + if x.ref8b50b4ec != nil { + return *x.ref8b50b4ec, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorSetLayoutBinding) Deref() { + if x.ref8b50b4ec == nil { + return + } + x.Binding = (uint32)(x.ref8b50b4ec.binding) + x.DescriptorType = (DescriptorType)(x.ref8b50b4ec.descriptorType) + x.DescriptorCount = (uint32)(x.ref8b50b4ec.descriptorCount) + x.StageFlags = (ShaderStageFlags)(x.ref8b50b4ec.stageFlags) + hxf058b18 := (*sliceHeader)(unsafe.Pointer(&x.PImmutableSamplers)) + hxf058b18.Data = unsafe.Pointer(x.ref8b50b4ec.pImmutableSamplers) + hxf058b18.Cap = 0x7fffffff + // hxf058b18.Len = ? + +} + +// allocDescriptorSetLayoutCreateInfoMemory allocates memory for type C.VkDescriptorSetLayoutCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorSetLayoutCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorSetLayoutCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutCreateInfo{}) + +// unpackSDescriptorSetLayoutBinding transforms a sliced Go data structure into plain C format. +func unpackSDescriptorSetLayoutBinding(x []DescriptorSetLayoutBinding) (unpacked *C.VkDescriptorSetLayoutBinding, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorSetLayoutBinding) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocDescriptorSetLayoutBindingMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkDescriptorSetLayoutBinding)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkDescriptorSetLayoutBinding)(h.Data) + return +} + +// packSDescriptorSetLayoutBinding reads sliced Go data structure out from plain C format. +func packSDescriptorSetLayoutBinding(v []DescriptorSetLayoutBinding, ptr0 *C.VkDescriptorSetLayoutBinding) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfDescriptorSetLayoutBindingValue]C.VkDescriptorSetLayoutBinding)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewDescriptorSetLayoutBindingRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorSetLayoutCreateInfo) Ref() *C.VkDescriptorSetLayoutCreateInfo { + if x == nil { + return nil + } + return x.ref5ee8e0ed +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorSetLayoutCreateInfo) Free() { + if x != nil && x.allocs5ee8e0ed != nil { + x.allocs5ee8e0ed.(*cgoAllocMap).Free() + x.ref5ee8e0ed = nil + } +} + +// NewDescriptorSetLayoutCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorSetLayoutCreateInfoRef(ref unsafe.Pointer) *DescriptorSetLayoutCreateInfo { + if ref == nil { + return nil + } + obj := new(DescriptorSetLayoutCreateInfo) + obj.ref5ee8e0ed = (*C.VkDescriptorSetLayoutCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorSetLayoutCreateInfo) PassRef() (*C.VkDescriptorSetLayoutCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5ee8e0ed != nil { + return x.ref5ee8e0ed, nil + } + mem5ee8e0ed := allocDescriptorSetLayoutCreateInfoMemory(1) + ref5ee8e0ed := (*C.VkDescriptorSetLayoutCreateInfo)(mem5ee8e0ed) + allocs5ee8e0ed := new(cgoAllocMap) + allocs5ee8e0ed.Add(mem5ee8e0ed) + + var csType_allocs *cgoAllocMap + ref5ee8e0ed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5ee8e0ed.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5ee8e0ed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5ee8e0ed.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref5ee8e0ed.flags, cflags_allocs = (C.VkDescriptorSetLayoutCreateFlags)(x.Flags), cgoAllocsUnknown + allocs5ee8e0ed.Borrow(cflags_allocs) + + var cbindingCount_allocs *cgoAllocMap + ref5ee8e0ed.bindingCount, cbindingCount_allocs = (C.uint32_t)(x.BindingCount), cgoAllocsUnknown + allocs5ee8e0ed.Borrow(cbindingCount_allocs) + + var cpBindings_allocs *cgoAllocMap + ref5ee8e0ed.pBindings, cpBindings_allocs = unpackSDescriptorSetLayoutBinding(x.PBindings) + allocs5ee8e0ed.Borrow(cpBindings_allocs) + + x.ref5ee8e0ed = ref5ee8e0ed + x.allocs5ee8e0ed = allocs5ee8e0ed + return ref5ee8e0ed, allocs5ee8e0ed + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorSetLayoutCreateInfo) PassValue() (C.VkDescriptorSetLayoutCreateInfo, *cgoAllocMap) { + if x.ref5ee8e0ed != nil { + return *x.ref5ee8e0ed, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorSetLayoutCreateInfo) Deref() { + if x.ref5ee8e0ed == nil { + return + } + x.SType = (StructureType)(x.ref5ee8e0ed.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5ee8e0ed.pNext)) + x.Flags = (DescriptorSetLayoutCreateFlags)(x.ref5ee8e0ed.flags) + x.BindingCount = (uint32)(x.ref5ee8e0ed.bindingCount) + packSDescriptorSetLayoutBinding(x.PBindings, x.ref5ee8e0ed.pBindings) +} + +// allocWriteDescriptorSetMemory allocates memory for type C.VkWriteDescriptorSet in C. +// The caller is responsible for freeing the this memory via C.free. +func allocWriteDescriptorSetMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfWriteDescriptorSetValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfWriteDescriptorSetValue = unsafe.Sizeof([1]C.VkWriteDescriptorSet{}) + +// unpackSDescriptorImageInfo transforms a sliced Go data structure into plain C format. +func unpackSDescriptorImageInfo(x []DescriptorImageInfo) (unpacked *C.VkDescriptorImageInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorImageInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocDescriptorImageInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkDescriptorImageInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkDescriptorImageInfo)(h.Data) + return +} + +// unpackSDescriptorBufferInfo transforms a sliced Go data structure into plain C format. +func unpackSDescriptorBufferInfo(x []DescriptorBufferInfo) (unpacked *C.VkDescriptorBufferInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorBufferInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocDescriptorBufferInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkDescriptorBufferInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkDescriptorBufferInfo)(h.Data) + return +} + +// packSDescriptorImageInfo reads sliced Go data structure out from plain C format. +func packSDescriptorImageInfo(v []DescriptorImageInfo, ptr0 *C.VkDescriptorImageInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfDescriptorImageInfoValue]C.VkDescriptorImageInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewDescriptorImageInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// packSDescriptorBufferInfo reads sliced Go data structure out from plain C format. +func packSDescriptorBufferInfo(v []DescriptorBufferInfo, ptr0 *C.VkDescriptorBufferInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfDescriptorBufferInfoValue]C.VkDescriptorBufferInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewDescriptorBufferInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *WriteDescriptorSet) Ref() *C.VkWriteDescriptorSet { + if x == nil { + return nil + } + return x.ref3cec3f3f +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *WriteDescriptorSet) Free() { + if x != nil && x.allocs3cec3f3f != nil { + x.allocs3cec3f3f.(*cgoAllocMap).Free() + x.ref3cec3f3f = nil + } +} + +// NewWriteDescriptorSetRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewWriteDescriptorSetRef(ref unsafe.Pointer) *WriteDescriptorSet { + if ref == nil { + return nil + } + obj := new(WriteDescriptorSet) + obj.ref3cec3f3f = (*C.VkWriteDescriptorSet)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *WriteDescriptorSet) PassRef() (*C.VkWriteDescriptorSet, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref3cec3f3f != nil { + return x.ref3cec3f3f, nil + } + mem3cec3f3f := allocWriteDescriptorSetMemory(1) + ref3cec3f3f := (*C.VkWriteDescriptorSet)(mem3cec3f3f) + allocs3cec3f3f := new(cgoAllocMap) + allocs3cec3f3f.Add(mem3cec3f3f) + + var csType_allocs *cgoAllocMap + ref3cec3f3f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3cec3f3f.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref3cec3f3f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3cec3f3f.Borrow(cpNext_allocs) + + var cdstSet_allocs *cgoAllocMap + ref3cec3f3f.dstSet, cdstSet_allocs = *(*C.VkDescriptorSet)(unsafe.Pointer(&x.DstSet)), cgoAllocsUnknown + allocs3cec3f3f.Borrow(cdstSet_allocs) + + var cdstBinding_allocs *cgoAllocMap + ref3cec3f3f.dstBinding, cdstBinding_allocs = (C.uint32_t)(x.DstBinding), cgoAllocsUnknown + allocs3cec3f3f.Borrow(cdstBinding_allocs) + + var cdstArrayElement_allocs *cgoAllocMap + ref3cec3f3f.dstArrayElement, cdstArrayElement_allocs = (C.uint32_t)(x.DstArrayElement), cgoAllocsUnknown + allocs3cec3f3f.Borrow(cdstArrayElement_allocs) + + var cdescriptorCount_allocs *cgoAllocMap + ref3cec3f3f.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown + allocs3cec3f3f.Borrow(cdescriptorCount_allocs) + + var cdescriptorType_allocs *cgoAllocMap + ref3cec3f3f.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown + allocs3cec3f3f.Borrow(cdescriptorType_allocs) + + var cpImageInfo_allocs *cgoAllocMap + ref3cec3f3f.pImageInfo, cpImageInfo_allocs = unpackSDescriptorImageInfo(x.PImageInfo) + allocs3cec3f3f.Borrow(cpImageInfo_allocs) + + var cpBufferInfo_allocs *cgoAllocMap + ref3cec3f3f.pBufferInfo, cpBufferInfo_allocs = unpackSDescriptorBufferInfo(x.PBufferInfo) + allocs3cec3f3f.Borrow(cpBufferInfo_allocs) + + var cpTexelBufferView_allocs *cgoAllocMap + ref3cec3f3f.pTexelBufferView, cpTexelBufferView_allocs = (*C.VkBufferView)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PTexelBufferView)).Data)), cgoAllocsUnknown + allocs3cec3f3f.Borrow(cpTexelBufferView_allocs) + + x.ref3cec3f3f = ref3cec3f3f + x.allocs3cec3f3f = allocs3cec3f3f + return ref3cec3f3f, allocs3cec3f3f + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x WriteDescriptorSet) PassValue() (C.VkWriteDescriptorSet, *cgoAllocMap) { + if x.ref3cec3f3f != nil { + return *x.ref3cec3f3f, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *WriteDescriptorSet) Deref() { + if x.ref3cec3f3f == nil { + return + } + x.SType = (StructureType)(x.ref3cec3f3f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3cec3f3f.pNext)) + x.DstSet = *(*DescriptorSet)(unsafe.Pointer(&x.ref3cec3f3f.dstSet)) + x.DstBinding = (uint32)(x.ref3cec3f3f.dstBinding) + x.DstArrayElement = (uint32)(x.ref3cec3f3f.dstArrayElement) + x.DescriptorCount = (uint32)(x.ref3cec3f3f.descriptorCount) + x.DescriptorType = (DescriptorType)(x.ref3cec3f3f.descriptorType) + packSDescriptorImageInfo(x.PImageInfo, x.ref3cec3f3f.pImageInfo) + packSDescriptorBufferInfo(x.PBufferInfo, x.ref3cec3f3f.pBufferInfo) + hxff6bc57 := (*sliceHeader)(unsafe.Pointer(&x.PTexelBufferView)) + hxff6bc57.Data = unsafe.Pointer(x.ref3cec3f3f.pTexelBufferView) + hxff6bc57.Cap = 0x7fffffff + // hxff6bc57.Len = ? + +} + +// allocAttachmentDescriptionMemory allocates memory for type C.VkAttachmentDescription in C. +// The caller is responsible for freeing the this memory via C.free. +func allocAttachmentDescriptionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentDescriptionValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfAttachmentDescriptionValue = unsafe.Sizeof([1]C.VkAttachmentDescription{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *AttachmentDescription) Ref() *C.VkAttachmentDescription { + if x == nil { + return nil + } + return x.refa5d685fc +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *AttachmentDescription) Free() { + if x != nil && x.allocsa5d685fc != nil { + x.allocsa5d685fc.(*cgoAllocMap).Free() + x.refa5d685fc = nil + } +} + +// NewAttachmentDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewAttachmentDescriptionRef(ref unsafe.Pointer) *AttachmentDescription { + if ref == nil { + return nil + } + obj := new(AttachmentDescription) + obj.refa5d685fc = (*C.VkAttachmentDescription)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *AttachmentDescription) PassRef() (*C.VkAttachmentDescription, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa5d685fc != nil { + return x.refa5d685fc, nil + } + mema5d685fc := allocAttachmentDescriptionMemory(1) + refa5d685fc := (*C.VkAttachmentDescription)(mema5d685fc) + allocsa5d685fc := new(cgoAllocMap) + allocsa5d685fc.Add(mema5d685fc) + + var cflags_allocs *cgoAllocMap + refa5d685fc.flags, cflags_allocs = (C.VkAttachmentDescriptionFlags)(x.Flags), cgoAllocsUnknown + allocsa5d685fc.Borrow(cflags_allocs) + + var cformat_allocs *cgoAllocMap + refa5d685fc.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocsa5d685fc.Borrow(cformat_allocs) + + var csamples_allocs *cgoAllocMap + refa5d685fc.samples, csamples_allocs = (C.VkSampleCountFlagBits)(x.Samples), cgoAllocsUnknown + allocsa5d685fc.Borrow(csamples_allocs) + + var cloadOp_allocs *cgoAllocMap + refa5d685fc.loadOp, cloadOp_allocs = (C.VkAttachmentLoadOp)(x.LoadOp), cgoAllocsUnknown + allocsa5d685fc.Borrow(cloadOp_allocs) + + var cstoreOp_allocs *cgoAllocMap + refa5d685fc.storeOp, cstoreOp_allocs = (C.VkAttachmentStoreOp)(x.StoreOp), cgoAllocsUnknown + allocsa5d685fc.Borrow(cstoreOp_allocs) + + var cstencilLoadOp_allocs *cgoAllocMap + refa5d685fc.stencilLoadOp, cstencilLoadOp_allocs = (C.VkAttachmentLoadOp)(x.StencilLoadOp), cgoAllocsUnknown + allocsa5d685fc.Borrow(cstencilLoadOp_allocs) + + var cstencilStoreOp_allocs *cgoAllocMap + refa5d685fc.stencilStoreOp, cstencilStoreOp_allocs = (C.VkAttachmentStoreOp)(x.StencilStoreOp), cgoAllocsUnknown + allocsa5d685fc.Borrow(cstencilStoreOp_allocs) + + var cinitialLayout_allocs *cgoAllocMap + refa5d685fc.initialLayout, cinitialLayout_allocs = (C.VkImageLayout)(x.InitialLayout), cgoAllocsUnknown + allocsa5d685fc.Borrow(cinitialLayout_allocs) + + var cfinalLayout_allocs *cgoAllocMap + refa5d685fc.finalLayout, cfinalLayout_allocs = (C.VkImageLayout)(x.FinalLayout), cgoAllocsUnknown + allocsa5d685fc.Borrow(cfinalLayout_allocs) + + x.refa5d685fc = refa5d685fc + x.allocsa5d685fc = allocsa5d685fc + return refa5d685fc, allocsa5d685fc + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x AttachmentDescription) PassValue() (C.VkAttachmentDescription, *cgoAllocMap) { + if x.refa5d685fc != nil { + return *x.refa5d685fc, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *AttachmentDescription) Deref() { + if x.refa5d685fc == nil { + return + } + x.Flags = (AttachmentDescriptionFlags)(x.refa5d685fc.flags) + x.Format = (Format)(x.refa5d685fc.format) + x.Samples = (SampleCountFlagBits)(x.refa5d685fc.samples) + x.LoadOp = (AttachmentLoadOp)(x.refa5d685fc.loadOp) + x.StoreOp = (AttachmentStoreOp)(x.refa5d685fc.storeOp) + x.StencilLoadOp = (AttachmentLoadOp)(x.refa5d685fc.stencilLoadOp) + x.StencilStoreOp = (AttachmentStoreOp)(x.refa5d685fc.stencilStoreOp) + x.InitialLayout = (ImageLayout)(x.refa5d685fc.initialLayout) + x.FinalLayout = (ImageLayout)(x.refa5d685fc.finalLayout) +} + +// allocAttachmentReferenceMemory allocates memory for type C.VkAttachmentReference in C. +// The caller is responsible for freeing the this memory via C.free. +func allocAttachmentReferenceMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentReferenceValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfAttachmentReferenceValue = unsafe.Sizeof([1]C.VkAttachmentReference{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *AttachmentReference) Ref() *C.VkAttachmentReference { + if x == nil { + return nil + } + return x.refef4776de +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *AttachmentReference) Free() { + if x != nil && x.allocsef4776de != nil { + x.allocsef4776de.(*cgoAllocMap).Free() + x.refef4776de = nil + } +} + +// NewAttachmentReferenceRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewAttachmentReferenceRef(ref unsafe.Pointer) *AttachmentReference { + if ref == nil { + return nil + } + obj := new(AttachmentReference) + obj.refef4776de = (*C.VkAttachmentReference)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *AttachmentReference) PassRef() (*C.VkAttachmentReference, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refef4776de != nil { + return x.refef4776de, nil + } + memef4776de := allocAttachmentReferenceMemory(1) + refef4776de := (*C.VkAttachmentReference)(memef4776de) + allocsef4776de := new(cgoAllocMap) + allocsef4776de.Add(memef4776de) + + var cattachment_allocs *cgoAllocMap + refef4776de.attachment, cattachment_allocs = (C.uint32_t)(x.Attachment), cgoAllocsUnknown + allocsef4776de.Borrow(cattachment_allocs) + + var clayout_allocs *cgoAllocMap + refef4776de.layout, clayout_allocs = (C.VkImageLayout)(x.Layout), cgoAllocsUnknown + allocsef4776de.Borrow(clayout_allocs) + + x.refef4776de = refef4776de + x.allocsef4776de = allocsef4776de + return refef4776de, allocsef4776de + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x AttachmentReference) PassValue() (C.VkAttachmentReference, *cgoAllocMap) { + if x.refef4776de != nil { + return *x.refef4776de, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *AttachmentReference) Deref() { + if x.refef4776de == nil { + return + } + x.Attachment = (uint32)(x.refef4776de.attachment) + x.Layout = (ImageLayout)(x.refef4776de.layout) +} + +// allocFramebufferCreateInfoMemory allocates memory for type C.VkFramebufferCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocFramebufferCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFramebufferCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfFramebufferCreateInfoValue = unsafe.Sizeof([1]C.VkFramebufferCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *FramebufferCreateInfo) Ref() *C.VkFramebufferCreateInfo { + if x == nil { + return nil + } + return x.refa3ad85cc +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *FramebufferCreateInfo) Free() { + if x != nil && x.allocsa3ad85cc != nil { + x.allocsa3ad85cc.(*cgoAllocMap).Free() + x.refa3ad85cc = nil + } +} + +// NewFramebufferCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewFramebufferCreateInfoRef(ref unsafe.Pointer) *FramebufferCreateInfo { + if ref == nil { + return nil + } + obj := new(FramebufferCreateInfo) + obj.refa3ad85cc = (*C.VkFramebufferCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *FramebufferCreateInfo) PassRef() (*C.VkFramebufferCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa3ad85cc != nil { + return x.refa3ad85cc, nil + } + mema3ad85cc := allocFramebufferCreateInfoMemory(1) + refa3ad85cc := (*C.VkFramebufferCreateInfo)(mema3ad85cc) + allocsa3ad85cc := new(cgoAllocMap) + allocsa3ad85cc.Add(mema3ad85cc) + + var csType_allocs *cgoAllocMap + refa3ad85cc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa3ad85cc.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refa3ad85cc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa3ad85cc.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refa3ad85cc.flags, cflags_allocs = (C.VkFramebufferCreateFlags)(x.Flags), cgoAllocsUnknown + allocsa3ad85cc.Borrow(cflags_allocs) + + var crenderPass_allocs *cgoAllocMap + refa3ad85cc.renderPass, crenderPass_allocs = *(*C.VkRenderPass)(unsafe.Pointer(&x.RenderPass)), cgoAllocsUnknown + allocsa3ad85cc.Borrow(crenderPass_allocs) + + var cattachmentCount_allocs *cgoAllocMap + refa3ad85cc.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown + allocsa3ad85cc.Borrow(cattachmentCount_allocs) + + var cpAttachments_allocs *cgoAllocMap + refa3ad85cc.pAttachments, cpAttachments_allocs = (*C.VkImageView)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PAttachments)).Data)), cgoAllocsUnknown + allocsa3ad85cc.Borrow(cpAttachments_allocs) + + var cwidth_allocs *cgoAllocMap + refa3ad85cc.width, cwidth_allocs = (C.uint32_t)(x.Width), cgoAllocsUnknown + allocsa3ad85cc.Borrow(cwidth_allocs) + + var cheight_allocs *cgoAllocMap + refa3ad85cc.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown + allocsa3ad85cc.Borrow(cheight_allocs) + + var clayers_allocs *cgoAllocMap + refa3ad85cc.layers, clayers_allocs = (C.uint32_t)(x.Layers), cgoAllocsUnknown + allocsa3ad85cc.Borrow(clayers_allocs) + + x.refa3ad85cc = refa3ad85cc + x.allocsa3ad85cc = allocsa3ad85cc + return refa3ad85cc, allocsa3ad85cc + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x FramebufferCreateInfo) PassValue() (C.VkFramebufferCreateInfo, *cgoAllocMap) { + if x.refa3ad85cc != nil { + return *x.refa3ad85cc, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *FramebufferCreateInfo) Deref() { + if x.refa3ad85cc == nil { + return + } + x.SType = (StructureType)(x.refa3ad85cc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa3ad85cc.pNext)) + x.Flags = (FramebufferCreateFlags)(x.refa3ad85cc.flags) + x.RenderPass = *(*RenderPass)(unsafe.Pointer(&x.refa3ad85cc.renderPass)) + x.AttachmentCount = (uint32)(x.refa3ad85cc.attachmentCount) + hxf5fa529 := (*sliceHeader)(unsafe.Pointer(&x.PAttachments)) + hxf5fa529.Data = unsafe.Pointer(x.refa3ad85cc.pAttachments) + hxf5fa529.Cap = 0x7fffffff + // hxf5fa529.Len = ? + + x.Width = (uint32)(x.refa3ad85cc.width) + x.Height = (uint32)(x.refa3ad85cc.height) + x.Layers = (uint32)(x.refa3ad85cc.layers) +} + +// allocSubpassDescriptionMemory allocates memory for type C.VkSubpassDescription in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSubpassDescriptionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassDescriptionValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSubpassDescriptionValue = unsafe.Sizeof([1]C.VkSubpassDescription{}) + +// unpackSAttachmentReference transforms a sliced Go data structure into plain C format. +func unpackSAttachmentReference(x []AttachmentReference) (unpacked *C.VkAttachmentReference, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentReference) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocAttachmentReferenceMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkAttachmentReference)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkAttachmentReference)(h.Data) + return +} + +// packSAttachmentReference reads sliced Go data structure out from plain C format. +func packSAttachmentReference(v []AttachmentReference, ptr0 *C.VkAttachmentReference) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfAttachmentReferenceValue]C.VkAttachmentReference)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewAttachmentReferenceRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SubpassDescription) Ref() *C.VkSubpassDescription { + if x == nil { + return nil + } + return x.refc7bfeda +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SubpassDescription) Free() { + if x != nil && x.allocsc7bfeda != nil { + x.allocsc7bfeda.(*cgoAllocMap).Free() + x.refc7bfeda = nil + } +} + +// NewSubpassDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSubpassDescriptionRef(ref unsafe.Pointer) *SubpassDescription { + if ref == nil { + return nil + } + obj := new(SubpassDescription) + obj.refc7bfeda = (*C.VkSubpassDescription)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SubpassDescription) PassRef() (*C.VkSubpassDescription, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc7bfeda != nil { + return x.refc7bfeda, nil + } + memc7bfeda := allocSubpassDescriptionMemory(1) + refc7bfeda := (*C.VkSubpassDescription)(memc7bfeda) + allocsc7bfeda := new(cgoAllocMap) + allocsc7bfeda.Add(memc7bfeda) + + var cflags_allocs *cgoAllocMap + refc7bfeda.flags, cflags_allocs = (C.VkSubpassDescriptionFlags)(x.Flags), cgoAllocsUnknown + allocsc7bfeda.Borrow(cflags_allocs) + + var cpipelineBindPoint_allocs *cgoAllocMap + refc7bfeda.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocsc7bfeda.Borrow(cpipelineBindPoint_allocs) + + var cinputAttachmentCount_allocs *cgoAllocMap + refc7bfeda.inputAttachmentCount, cinputAttachmentCount_allocs = (C.uint32_t)(x.InputAttachmentCount), cgoAllocsUnknown + allocsc7bfeda.Borrow(cinputAttachmentCount_allocs) + + var cpInputAttachments_allocs *cgoAllocMap + refc7bfeda.pInputAttachments, cpInputAttachments_allocs = unpackSAttachmentReference(x.PInputAttachments) + allocsc7bfeda.Borrow(cpInputAttachments_allocs) + + var ccolorAttachmentCount_allocs *cgoAllocMap + refc7bfeda.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocsc7bfeda.Borrow(ccolorAttachmentCount_allocs) + + var cpColorAttachments_allocs *cgoAllocMap + refc7bfeda.pColorAttachments, cpColorAttachments_allocs = unpackSAttachmentReference(x.PColorAttachments) + allocsc7bfeda.Borrow(cpColorAttachments_allocs) + + var cpResolveAttachments_allocs *cgoAllocMap + refc7bfeda.pResolveAttachments, cpResolveAttachments_allocs = unpackSAttachmentReference(x.PResolveAttachments) + allocsc7bfeda.Borrow(cpResolveAttachments_allocs) + + var cpDepthStencilAttachment_allocs *cgoAllocMap + refc7bfeda.pDepthStencilAttachment, cpDepthStencilAttachment_allocs = x.PDepthStencilAttachment.PassRef() + allocsc7bfeda.Borrow(cpDepthStencilAttachment_allocs) + + var cpreserveAttachmentCount_allocs *cgoAllocMap + refc7bfeda.preserveAttachmentCount, cpreserveAttachmentCount_allocs = (C.uint32_t)(x.PreserveAttachmentCount), cgoAllocsUnknown + allocsc7bfeda.Borrow(cpreserveAttachmentCount_allocs) + + var cpPreserveAttachments_allocs *cgoAllocMap + refc7bfeda.pPreserveAttachments, cpPreserveAttachments_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments)).Data)), cgoAllocsUnknown + allocsc7bfeda.Borrow(cpPreserveAttachments_allocs) + + x.refc7bfeda = refc7bfeda + x.allocsc7bfeda = allocsc7bfeda + return refc7bfeda, allocsc7bfeda + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SubpassDescription) PassValue() (C.VkSubpassDescription, *cgoAllocMap) { + if x.refc7bfeda != nil { + return *x.refc7bfeda, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SubpassDescription) Deref() { + if x.refc7bfeda == nil { + return + } + x.Flags = (SubpassDescriptionFlags)(x.refc7bfeda.flags) + x.PipelineBindPoint = (PipelineBindPoint)(x.refc7bfeda.pipelineBindPoint) + x.InputAttachmentCount = (uint32)(x.refc7bfeda.inputAttachmentCount) + packSAttachmentReference(x.PInputAttachments, x.refc7bfeda.pInputAttachments) + x.ColorAttachmentCount = (uint32)(x.refc7bfeda.colorAttachmentCount) + packSAttachmentReference(x.PColorAttachments, x.refc7bfeda.pColorAttachments) + packSAttachmentReference(x.PResolveAttachments, x.refc7bfeda.pResolveAttachments) + x.PDepthStencilAttachment = NewAttachmentReferenceRef(unsafe.Pointer(x.refc7bfeda.pDepthStencilAttachment)) + x.PreserveAttachmentCount = (uint32)(x.refc7bfeda.preserveAttachmentCount) + hxf21690b := (*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments)) + hxf21690b.Data = unsafe.Pointer(x.refc7bfeda.pPreserveAttachments) + hxf21690b.Cap = 0x7fffffff + // hxf21690b.Len = ? + +} + +// allocSubpassDependencyMemory allocates memory for type C.VkSubpassDependency in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSubpassDependencyMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassDependencyValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSubpassDependencyValue = unsafe.Sizeof([1]C.VkSubpassDependency{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SubpassDependency) Ref() *C.VkSubpassDependency { + if x == nil { + return nil + } + return x.refdb197adb +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SubpassDependency) Free() { + if x != nil && x.allocsdb197adb != nil { + x.allocsdb197adb.(*cgoAllocMap).Free() + x.refdb197adb = nil + } +} + +// NewSubpassDependencyRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSubpassDependencyRef(ref unsafe.Pointer) *SubpassDependency { + if ref == nil { + return nil + } + obj := new(SubpassDependency) + obj.refdb197adb = (*C.VkSubpassDependency)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SubpassDependency) PassRef() (*C.VkSubpassDependency, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refdb197adb != nil { + return x.refdb197adb, nil + } + memdb197adb := allocSubpassDependencyMemory(1) + refdb197adb := (*C.VkSubpassDependency)(memdb197adb) + allocsdb197adb := new(cgoAllocMap) + allocsdb197adb.Add(memdb197adb) + + var csrcSubpass_allocs *cgoAllocMap + refdb197adb.srcSubpass, csrcSubpass_allocs = (C.uint32_t)(x.SrcSubpass), cgoAllocsUnknown + allocsdb197adb.Borrow(csrcSubpass_allocs) + + var cdstSubpass_allocs *cgoAllocMap + refdb197adb.dstSubpass, cdstSubpass_allocs = (C.uint32_t)(x.DstSubpass), cgoAllocsUnknown + allocsdb197adb.Borrow(cdstSubpass_allocs) + + var csrcStageMask_allocs *cgoAllocMap + refdb197adb.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags)(x.SrcStageMask), cgoAllocsUnknown + allocsdb197adb.Borrow(csrcStageMask_allocs) + + var cdstStageMask_allocs *cgoAllocMap + refdb197adb.dstStageMask, cdstStageMask_allocs = (C.VkPipelineStageFlags)(x.DstStageMask), cgoAllocsUnknown + allocsdb197adb.Borrow(cdstStageMask_allocs) + + var csrcAccessMask_allocs *cgoAllocMap + refdb197adb.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown + allocsdb197adb.Borrow(csrcAccessMask_allocs) + + var cdstAccessMask_allocs *cgoAllocMap + refdb197adb.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown + allocsdb197adb.Borrow(cdstAccessMask_allocs) + + var cdependencyFlags_allocs *cgoAllocMap + refdb197adb.dependencyFlags, cdependencyFlags_allocs = (C.VkDependencyFlags)(x.DependencyFlags), cgoAllocsUnknown + allocsdb197adb.Borrow(cdependencyFlags_allocs) + + x.refdb197adb = refdb197adb + x.allocsdb197adb = allocsdb197adb + return refdb197adb, allocsdb197adb + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SubpassDependency) PassValue() (C.VkSubpassDependency, *cgoAllocMap) { + if x.refdb197adb != nil { + return *x.refdb197adb, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SubpassDependency) Deref() { + if x.refdb197adb == nil { + return + } + x.SrcSubpass = (uint32)(x.refdb197adb.srcSubpass) + x.DstSubpass = (uint32)(x.refdb197adb.dstSubpass) + x.SrcStageMask = (PipelineStageFlags)(x.refdb197adb.srcStageMask) + x.DstStageMask = (PipelineStageFlags)(x.refdb197adb.dstStageMask) + x.SrcAccessMask = (AccessFlags)(x.refdb197adb.srcAccessMask) + x.DstAccessMask = (AccessFlags)(x.refdb197adb.dstAccessMask) + x.DependencyFlags = (DependencyFlags)(x.refdb197adb.dependencyFlags) +} + +// allocRenderPassCreateInfoMemory allocates memory for type C.VkRenderPassCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocRenderPassCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfRenderPassCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassCreateInfo{}) + +// unpackSAttachmentDescription transforms a sliced Go data structure into plain C format. +func unpackSAttachmentDescription(x []AttachmentDescription) (unpacked *C.VkAttachmentDescription, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentDescription) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocAttachmentDescriptionMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkAttachmentDescription)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkAttachmentDescription)(h.Data) + return +} + +// unpackSSubpassDescription transforms a sliced Go data structure into plain C format. +func unpackSSubpassDescription(x []SubpassDescription) (unpacked *C.VkSubpassDescription, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDescription) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSubpassDescriptionMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSubpassDescription)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSubpassDescription)(h.Data) + return +} + +// unpackSSubpassDependency transforms a sliced Go data structure into plain C format. +func unpackSSubpassDependency(x []SubpassDependency) (unpacked *C.VkSubpassDependency, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDependency) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSubpassDependencyMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSubpassDependency)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSubpassDependency)(h.Data) + return +} + +// packSAttachmentDescription reads sliced Go data structure out from plain C format. +func packSAttachmentDescription(v []AttachmentDescription, ptr0 *C.VkAttachmentDescription) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfAttachmentDescriptionValue]C.VkAttachmentDescription)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewAttachmentDescriptionRef(unsafe.Pointer(&ptr1)) + } +} + +// packSSubpassDescription reads sliced Go data structure out from plain C format. +func packSSubpassDescription(v []SubpassDescription, ptr0 *C.VkSubpassDescription) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSubpassDescriptionValue]C.VkSubpassDescription)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSubpassDescriptionRef(unsafe.Pointer(&ptr1)) + } +} + +// packSSubpassDependency reads sliced Go data structure out from plain C format. +func packSSubpassDependency(v []SubpassDependency, ptr0 *C.VkSubpassDependency) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSubpassDependencyValue]C.VkSubpassDependency)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSubpassDependencyRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *RenderPassCreateInfo) Ref() *C.VkRenderPassCreateInfo { + if x == nil { + return nil + } + return x.ref886d7d86 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *RenderPassCreateInfo) Free() { + if x != nil && x.allocs886d7d86 != nil { + x.allocs886d7d86.(*cgoAllocMap).Free() + x.ref886d7d86 = nil + } +} + +// NewRenderPassCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewRenderPassCreateInfoRef(ref unsafe.Pointer) *RenderPassCreateInfo { + if ref == nil { + return nil + } + obj := new(RenderPassCreateInfo) + obj.ref886d7d86 = (*C.VkRenderPassCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *RenderPassCreateInfo) PassRef() (*C.VkRenderPassCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref886d7d86 != nil { + return x.ref886d7d86, nil + } + mem886d7d86 := allocRenderPassCreateInfoMemory(1) + ref886d7d86 := (*C.VkRenderPassCreateInfo)(mem886d7d86) + allocs886d7d86 := new(cgoAllocMap) + allocs886d7d86.Add(mem886d7d86) + + var csType_allocs *cgoAllocMap + ref886d7d86.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs886d7d86.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref886d7d86.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs886d7d86.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref886d7d86.flags, cflags_allocs = (C.VkRenderPassCreateFlags)(x.Flags), cgoAllocsUnknown + allocs886d7d86.Borrow(cflags_allocs) + + var cattachmentCount_allocs *cgoAllocMap + ref886d7d86.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown + allocs886d7d86.Borrow(cattachmentCount_allocs) + + var cpAttachments_allocs *cgoAllocMap + ref886d7d86.pAttachments, cpAttachments_allocs = unpackSAttachmentDescription(x.PAttachments) + allocs886d7d86.Borrow(cpAttachments_allocs) + + var csubpassCount_allocs *cgoAllocMap + ref886d7d86.subpassCount, csubpassCount_allocs = (C.uint32_t)(x.SubpassCount), cgoAllocsUnknown + allocs886d7d86.Borrow(csubpassCount_allocs) + + var cpSubpasses_allocs *cgoAllocMap + ref886d7d86.pSubpasses, cpSubpasses_allocs = unpackSSubpassDescription(x.PSubpasses) + allocs886d7d86.Borrow(cpSubpasses_allocs) + + var cdependencyCount_allocs *cgoAllocMap + ref886d7d86.dependencyCount, cdependencyCount_allocs = (C.uint32_t)(x.DependencyCount), cgoAllocsUnknown + allocs886d7d86.Borrow(cdependencyCount_allocs) + + var cpDependencies_allocs *cgoAllocMap + ref886d7d86.pDependencies, cpDependencies_allocs = unpackSSubpassDependency(x.PDependencies) + allocs886d7d86.Borrow(cpDependencies_allocs) + + x.ref886d7d86 = ref886d7d86 + x.allocs886d7d86 = allocs886d7d86 + return ref886d7d86, allocs886d7d86 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x RenderPassCreateInfo) PassValue() (C.VkRenderPassCreateInfo, *cgoAllocMap) { + if x.ref886d7d86 != nil { + return *x.ref886d7d86, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *RenderPassCreateInfo) Deref() { + if x.ref886d7d86 == nil { + return + } + x.SType = (StructureType)(x.ref886d7d86.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref886d7d86.pNext)) + x.Flags = (RenderPassCreateFlags)(x.ref886d7d86.flags) + x.AttachmentCount = (uint32)(x.ref886d7d86.attachmentCount) + packSAttachmentDescription(x.PAttachments, x.ref886d7d86.pAttachments) + x.SubpassCount = (uint32)(x.ref886d7d86.subpassCount) + packSSubpassDescription(x.PSubpasses, x.ref886d7d86.pSubpasses) + x.DependencyCount = (uint32)(x.ref886d7d86.dependencyCount) + packSSubpassDependency(x.PDependencies, x.ref886d7d86.pDependencies) +} + +// allocCommandPoolCreateInfoMemory allocates memory for type C.VkCommandPoolCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocCommandPoolCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandPoolCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfCommandPoolCreateInfoValue = unsafe.Sizeof([1]C.VkCommandPoolCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *CommandPoolCreateInfo) Ref() *C.VkCommandPoolCreateInfo { + if x == nil { + return nil + } + return x.ref73550de0 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *CommandPoolCreateInfo) Free() { + if x != nil && x.allocs73550de0 != nil { + x.allocs73550de0.(*cgoAllocMap).Free() + x.ref73550de0 = nil + } +} + +// NewCommandPoolCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewCommandPoolCreateInfoRef(ref unsafe.Pointer) *CommandPoolCreateInfo { + if ref == nil { + return nil + } + obj := new(CommandPoolCreateInfo) + obj.ref73550de0 = (*C.VkCommandPoolCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *CommandPoolCreateInfo) PassRef() (*C.VkCommandPoolCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref73550de0 != nil { + return x.ref73550de0, nil + } + mem73550de0 := allocCommandPoolCreateInfoMemory(1) + ref73550de0 := (*C.VkCommandPoolCreateInfo)(mem73550de0) + allocs73550de0 := new(cgoAllocMap) + allocs73550de0.Add(mem73550de0) + + var csType_allocs *cgoAllocMap + ref73550de0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73550de0.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref73550de0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73550de0.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref73550de0.flags, cflags_allocs = (C.VkCommandPoolCreateFlags)(x.Flags), cgoAllocsUnknown + allocs73550de0.Borrow(cflags_allocs) + + var cqueueFamilyIndex_allocs *cgoAllocMap + ref73550de0.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown + allocs73550de0.Borrow(cqueueFamilyIndex_allocs) + + x.ref73550de0 = ref73550de0 + x.allocs73550de0 = allocs73550de0 + return ref73550de0, allocs73550de0 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x CommandPoolCreateInfo) PassValue() (C.VkCommandPoolCreateInfo, *cgoAllocMap) { + if x.ref73550de0 != nil { + return *x.ref73550de0, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *CommandPoolCreateInfo) Deref() { + if x.ref73550de0 == nil { + return + } + x.SType = (StructureType)(x.ref73550de0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73550de0.pNext)) + x.Flags = (CommandPoolCreateFlags)(x.ref73550de0.flags) + x.QueueFamilyIndex = (uint32)(x.ref73550de0.queueFamilyIndex) +} + +// allocCommandBufferAllocateInfoMemory allocates memory for type C.VkCommandBufferAllocateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocCommandBufferAllocateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferAllocateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfCommandBufferAllocateInfoValue = unsafe.Sizeof([1]C.VkCommandBufferAllocateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *CommandBufferAllocateInfo) Ref() *C.VkCommandBufferAllocateInfo { + if x == nil { + return nil + } + return x.refd1a0a7c8 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *CommandBufferAllocateInfo) Free() { + if x != nil && x.allocsd1a0a7c8 != nil { + x.allocsd1a0a7c8.(*cgoAllocMap).Free() + x.refd1a0a7c8 = nil + } +} + +// NewCommandBufferAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewCommandBufferAllocateInfoRef(ref unsafe.Pointer) *CommandBufferAllocateInfo { + if ref == nil { + return nil + } + obj := new(CommandBufferAllocateInfo) + obj.refd1a0a7c8 = (*C.VkCommandBufferAllocateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *CommandBufferAllocateInfo) PassRef() (*C.VkCommandBufferAllocateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd1a0a7c8 != nil { + return x.refd1a0a7c8, nil + } + memd1a0a7c8 := allocCommandBufferAllocateInfoMemory(1) + refd1a0a7c8 := (*C.VkCommandBufferAllocateInfo)(memd1a0a7c8) + allocsd1a0a7c8 := new(cgoAllocMap) + allocsd1a0a7c8.Add(memd1a0a7c8) + + var csType_allocs *cgoAllocMap + refd1a0a7c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd1a0a7c8.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd1a0a7c8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd1a0a7c8.Borrow(cpNext_allocs) + + var ccommandPool_allocs *cgoAllocMap + refd1a0a7c8.commandPool, ccommandPool_allocs = *(*C.VkCommandPool)(unsafe.Pointer(&x.CommandPool)), cgoAllocsUnknown + allocsd1a0a7c8.Borrow(ccommandPool_allocs) + + var clevel_allocs *cgoAllocMap + refd1a0a7c8.level, clevel_allocs = (C.VkCommandBufferLevel)(x.Level), cgoAllocsUnknown + allocsd1a0a7c8.Borrow(clevel_allocs) + + var ccommandBufferCount_allocs *cgoAllocMap + refd1a0a7c8.commandBufferCount, ccommandBufferCount_allocs = (C.uint32_t)(x.CommandBufferCount), cgoAllocsUnknown + allocsd1a0a7c8.Borrow(ccommandBufferCount_allocs) + + x.refd1a0a7c8 = refd1a0a7c8 + x.allocsd1a0a7c8 = allocsd1a0a7c8 + return refd1a0a7c8, allocsd1a0a7c8 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x CommandBufferAllocateInfo) PassValue() (C.VkCommandBufferAllocateInfo, *cgoAllocMap) { + if x.refd1a0a7c8 != nil { + return *x.refd1a0a7c8, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *CommandBufferAllocateInfo) Deref() { + if x.refd1a0a7c8 == nil { + return + } + x.SType = (StructureType)(x.refd1a0a7c8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd1a0a7c8.pNext)) + x.CommandPool = *(*CommandPool)(unsafe.Pointer(&x.refd1a0a7c8.commandPool)) + x.Level = (CommandBufferLevel)(x.refd1a0a7c8.level) + x.CommandBufferCount = (uint32)(x.refd1a0a7c8.commandBufferCount) +} + +// allocCommandBufferInheritanceInfoMemory allocates memory for type C.VkCommandBufferInheritanceInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocCommandBufferInheritanceInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfCommandBufferInheritanceInfoValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *CommandBufferInheritanceInfo) Ref() *C.VkCommandBufferInheritanceInfo { + if x == nil { + return nil + } + return x.ref737f8019 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *CommandBufferInheritanceInfo) Free() { + if x != nil && x.allocs737f8019 != nil { + x.allocs737f8019.(*cgoAllocMap).Free() + x.ref737f8019 = nil + } +} + +// NewCommandBufferInheritanceInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewCommandBufferInheritanceInfoRef(ref unsafe.Pointer) *CommandBufferInheritanceInfo { + if ref == nil { + return nil + } + obj := new(CommandBufferInheritanceInfo) + obj.ref737f8019 = (*C.VkCommandBufferInheritanceInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *CommandBufferInheritanceInfo) PassRef() (*C.VkCommandBufferInheritanceInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref737f8019 != nil { + return x.ref737f8019, nil + } + mem737f8019 := allocCommandBufferInheritanceInfoMemory(1) + ref737f8019 := (*C.VkCommandBufferInheritanceInfo)(mem737f8019) + allocs737f8019 := new(cgoAllocMap) + allocs737f8019.Add(mem737f8019) + + var csType_allocs *cgoAllocMap + ref737f8019.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs737f8019.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref737f8019.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs737f8019.Borrow(cpNext_allocs) + + var crenderPass_allocs *cgoAllocMap + ref737f8019.renderPass, crenderPass_allocs = *(*C.VkRenderPass)(unsafe.Pointer(&x.RenderPass)), cgoAllocsUnknown + allocs737f8019.Borrow(crenderPass_allocs) + + var csubpass_allocs *cgoAllocMap + ref737f8019.subpass, csubpass_allocs = (C.uint32_t)(x.Subpass), cgoAllocsUnknown + allocs737f8019.Borrow(csubpass_allocs) + + var cframebuffer_allocs *cgoAllocMap + ref737f8019.framebuffer, cframebuffer_allocs = *(*C.VkFramebuffer)(unsafe.Pointer(&x.Framebuffer)), cgoAllocsUnknown + allocs737f8019.Borrow(cframebuffer_allocs) + + var cocclusionQueryEnable_allocs *cgoAllocMap + ref737f8019.occlusionQueryEnable, cocclusionQueryEnable_allocs = (C.VkBool32)(x.OcclusionQueryEnable), cgoAllocsUnknown + allocs737f8019.Borrow(cocclusionQueryEnable_allocs) + + var cqueryFlags_allocs *cgoAllocMap + ref737f8019.queryFlags, cqueryFlags_allocs = (C.VkQueryControlFlags)(x.QueryFlags), cgoAllocsUnknown + allocs737f8019.Borrow(cqueryFlags_allocs) + + var cpipelineStatistics_allocs *cgoAllocMap + ref737f8019.pipelineStatistics, cpipelineStatistics_allocs = (C.VkQueryPipelineStatisticFlags)(x.PipelineStatistics), cgoAllocsUnknown + allocs737f8019.Borrow(cpipelineStatistics_allocs) + + x.ref737f8019 = ref737f8019 + x.allocs737f8019 = allocs737f8019 + return ref737f8019, allocs737f8019 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x CommandBufferInheritanceInfo) PassValue() (C.VkCommandBufferInheritanceInfo, *cgoAllocMap) { + if x.ref737f8019 != nil { + return *x.ref737f8019, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *CommandBufferInheritanceInfo) Deref() { + if x.ref737f8019 == nil { + return + } + x.SType = (StructureType)(x.ref737f8019.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref737f8019.pNext)) + x.RenderPass = *(*RenderPass)(unsafe.Pointer(&x.ref737f8019.renderPass)) + x.Subpass = (uint32)(x.ref737f8019.subpass) + x.Framebuffer = *(*Framebuffer)(unsafe.Pointer(&x.ref737f8019.framebuffer)) + x.OcclusionQueryEnable = (Bool32)(x.ref737f8019.occlusionQueryEnable) + x.QueryFlags = (QueryControlFlags)(x.ref737f8019.queryFlags) + x.PipelineStatistics = (QueryPipelineStatisticFlags)(x.ref737f8019.pipelineStatistics) +} + +// allocCommandBufferBeginInfoMemory allocates memory for type C.VkCommandBufferBeginInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocCommandBufferBeginInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferBeginInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfCommandBufferBeginInfoValue = unsafe.Sizeof([1]C.VkCommandBufferBeginInfo{}) + +// unpackSCommandBufferInheritanceInfo transforms a sliced Go data structure into plain C format. +func unpackSCommandBufferInheritanceInfo(x []CommandBufferInheritanceInfo) (unpacked *C.VkCommandBufferInheritanceInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkCommandBufferInheritanceInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocCommandBufferInheritanceInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkCommandBufferInheritanceInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkCommandBufferInheritanceInfo)(h.Data) + return +} + +// packSCommandBufferInheritanceInfo reads sliced Go data structure out from plain C format. +func packSCommandBufferInheritanceInfo(v []CommandBufferInheritanceInfo, ptr0 *C.VkCommandBufferInheritanceInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfCommandBufferInheritanceInfoValue]C.VkCommandBufferInheritanceInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewCommandBufferInheritanceInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *CommandBufferBeginInfo) Ref() *C.VkCommandBufferBeginInfo { + if x == nil { + return nil + } + return x.ref266762df +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *CommandBufferBeginInfo) Free() { + if x != nil && x.allocs266762df != nil { + x.allocs266762df.(*cgoAllocMap).Free() + x.ref266762df = nil + } +} + +// NewCommandBufferBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewCommandBufferBeginInfoRef(ref unsafe.Pointer) *CommandBufferBeginInfo { + if ref == nil { + return nil + } + obj := new(CommandBufferBeginInfo) + obj.ref266762df = (*C.VkCommandBufferBeginInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *CommandBufferBeginInfo) PassRef() (*C.VkCommandBufferBeginInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref266762df != nil { + return x.ref266762df, nil + } + mem266762df := allocCommandBufferBeginInfoMemory(1) + ref266762df := (*C.VkCommandBufferBeginInfo)(mem266762df) + allocs266762df := new(cgoAllocMap) + allocs266762df.Add(mem266762df) + + var csType_allocs *cgoAllocMap + ref266762df.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs266762df.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref266762df.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs266762df.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref266762df.flags, cflags_allocs = (C.VkCommandBufferUsageFlags)(x.Flags), cgoAllocsUnknown + allocs266762df.Borrow(cflags_allocs) + + var cpInheritanceInfo_allocs *cgoAllocMap + ref266762df.pInheritanceInfo, cpInheritanceInfo_allocs = unpackSCommandBufferInheritanceInfo(x.PInheritanceInfo) + allocs266762df.Borrow(cpInheritanceInfo_allocs) + + x.ref266762df = ref266762df + x.allocs266762df = allocs266762df + return ref266762df, allocs266762df + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x CommandBufferBeginInfo) PassValue() (C.VkCommandBufferBeginInfo, *cgoAllocMap) { + if x.ref266762df != nil { + return *x.ref266762df, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *CommandBufferBeginInfo) Deref() { + if x.ref266762df == nil { + return + } + x.SType = (StructureType)(x.ref266762df.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref266762df.pNext)) + x.Flags = (CommandBufferUsageFlags)(x.ref266762df.flags) + packSCommandBufferInheritanceInfo(x.PInheritanceInfo, x.ref266762df.pInheritanceInfo) +} + +// allocBufferCopyMemory allocates memory for type C.VkBufferCopy in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferCopyMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferCopyValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBufferCopyValue = unsafe.Sizeof([1]C.VkBufferCopy{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BufferCopy) Ref() *C.VkBufferCopy { + if x == nil { + return nil + } + return x.ref12184ffd +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BufferCopy) Free() { + if x != nil && x.allocs12184ffd != nil { + x.allocs12184ffd.(*cgoAllocMap).Free() + x.ref12184ffd = nil + } +} + +// NewBufferCopyRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBufferCopyRef(ref unsafe.Pointer) *BufferCopy { + if ref == nil { + return nil + } + obj := new(BufferCopy) + obj.ref12184ffd = (*C.VkBufferCopy)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BufferCopy) PassRef() (*C.VkBufferCopy, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref12184ffd != nil { + return x.ref12184ffd, nil + } + mem12184ffd := allocBufferCopyMemory(1) + ref12184ffd := (*C.VkBufferCopy)(mem12184ffd) + allocs12184ffd := new(cgoAllocMap) + allocs12184ffd.Add(mem12184ffd) + + var csrcOffset_allocs *cgoAllocMap + ref12184ffd.srcOffset, csrcOffset_allocs = (C.VkDeviceSize)(x.SrcOffset), cgoAllocsUnknown + allocs12184ffd.Borrow(csrcOffset_allocs) + + var cdstOffset_allocs *cgoAllocMap + ref12184ffd.dstOffset, cdstOffset_allocs = (C.VkDeviceSize)(x.DstOffset), cgoAllocsUnknown + allocs12184ffd.Borrow(cdstOffset_allocs) + + var csize_allocs *cgoAllocMap + ref12184ffd.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocs12184ffd.Borrow(csize_allocs) + + x.ref12184ffd = ref12184ffd + x.allocs12184ffd = allocs12184ffd + return ref12184ffd, allocs12184ffd + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BufferCopy) PassValue() (C.VkBufferCopy, *cgoAllocMap) { + if x.ref12184ffd != nil { + return *x.ref12184ffd, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BufferCopy) Deref() { + if x.ref12184ffd == nil { + return + } + x.SrcOffset = (DeviceSize)(x.ref12184ffd.srcOffset) + x.DstOffset = (DeviceSize)(x.ref12184ffd.dstOffset) + x.Size = (DeviceSize)(x.ref12184ffd.size) +} + +// allocImageSubresourceLayersMemory allocates memory for type C.VkImageSubresourceLayers in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageSubresourceLayersMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSubresourceLayersValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageSubresourceLayersValue = unsafe.Sizeof([1]C.VkImageSubresourceLayers{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageSubresourceLayers) Ref() *C.VkImageSubresourceLayers { + if x == nil { + return nil + } + return x.ref3b13bcd2 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageSubresourceLayers) Free() { + if x != nil && x.allocs3b13bcd2 != nil { + x.allocs3b13bcd2.(*cgoAllocMap).Free() + x.ref3b13bcd2 = nil + } +} + +// NewImageSubresourceLayersRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageSubresourceLayersRef(ref unsafe.Pointer) *ImageSubresourceLayers { + if ref == nil { + return nil + } + obj := new(ImageSubresourceLayers) + obj.ref3b13bcd2 = (*C.VkImageSubresourceLayers)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageSubresourceLayers) PassRef() (*C.VkImageSubresourceLayers, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref3b13bcd2 != nil { + return x.ref3b13bcd2, nil + } + mem3b13bcd2 := allocImageSubresourceLayersMemory(1) + ref3b13bcd2 := (*C.VkImageSubresourceLayers)(mem3b13bcd2) + allocs3b13bcd2 := new(cgoAllocMap) + allocs3b13bcd2.Add(mem3b13bcd2) + + var caspectMask_allocs *cgoAllocMap + ref3b13bcd2.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown + allocs3b13bcd2.Borrow(caspectMask_allocs) + + var cmipLevel_allocs *cgoAllocMap + ref3b13bcd2.mipLevel, cmipLevel_allocs = (C.uint32_t)(x.MipLevel), cgoAllocsUnknown + allocs3b13bcd2.Borrow(cmipLevel_allocs) + + var cbaseArrayLayer_allocs *cgoAllocMap + ref3b13bcd2.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown + allocs3b13bcd2.Borrow(cbaseArrayLayer_allocs) + + var clayerCount_allocs *cgoAllocMap + ref3b13bcd2.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown + allocs3b13bcd2.Borrow(clayerCount_allocs) + + x.ref3b13bcd2 = ref3b13bcd2 + x.allocs3b13bcd2 = allocs3b13bcd2 + return ref3b13bcd2, allocs3b13bcd2 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageSubresourceLayers) PassValue() (C.VkImageSubresourceLayers, *cgoAllocMap) { + if x.ref3b13bcd2 != nil { + return *x.ref3b13bcd2, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageSubresourceLayers) Deref() { + if x.ref3b13bcd2 == nil { + return + } + x.AspectMask = (ImageAspectFlags)(x.ref3b13bcd2.aspectMask) + x.MipLevel = (uint32)(x.ref3b13bcd2.mipLevel) + x.BaseArrayLayer = (uint32)(x.ref3b13bcd2.baseArrayLayer) + x.LayerCount = (uint32)(x.ref3b13bcd2.layerCount) +} + +// allocBufferImageCopyMemory allocates memory for type C.VkBufferImageCopy in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferImageCopyMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferImageCopyValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBufferImageCopyValue = unsafe.Sizeof([1]C.VkBufferImageCopy{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BufferImageCopy) Ref() *C.VkBufferImageCopy { + if x == nil { + return nil + } + return x.ref6d50e36e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BufferImageCopy) Free() { + if x != nil && x.allocs6d50e36e != nil { + x.allocs6d50e36e.(*cgoAllocMap).Free() + x.ref6d50e36e = nil + } +} + +// NewBufferImageCopyRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBufferImageCopyRef(ref unsafe.Pointer) *BufferImageCopy { + if ref == nil { + return nil + } + obj := new(BufferImageCopy) + obj.ref6d50e36e = (*C.VkBufferImageCopy)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BufferImageCopy) PassRef() (*C.VkBufferImageCopy, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref6d50e36e != nil { + return x.ref6d50e36e, nil + } + mem6d50e36e := allocBufferImageCopyMemory(1) + ref6d50e36e := (*C.VkBufferImageCopy)(mem6d50e36e) + allocs6d50e36e := new(cgoAllocMap) + allocs6d50e36e.Add(mem6d50e36e) + + var cbufferOffset_allocs *cgoAllocMap + ref6d50e36e.bufferOffset, cbufferOffset_allocs = (C.VkDeviceSize)(x.BufferOffset), cgoAllocsUnknown + allocs6d50e36e.Borrow(cbufferOffset_allocs) + + var cbufferRowLength_allocs *cgoAllocMap + ref6d50e36e.bufferRowLength, cbufferRowLength_allocs = (C.uint32_t)(x.BufferRowLength), cgoAllocsUnknown + allocs6d50e36e.Borrow(cbufferRowLength_allocs) + + var cbufferImageHeight_allocs *cgoAllocMap + ref6d50e36e.bufferImageHeight, cbufferImageHeight_allocs = (C.uint32_t)(x.BufferImageHeight), cgoAllocsUnknown + allocs6d50e36e.Borrow(cbufferImageHeight_allocs) + + var cimageSubresource_allocs *cgoAllocMap + ref6d50e36e.imageSubresource, cimageSubresource_allocs = x.ImageSubresource.PassValue() + allocs6d50e36e.Borrow(cimageSubresource_allocs) + + var cimageOffset_allocs *cgoAllocMap + ref6d50e36e.imageOffset, cimageOffset_allocs = x.ImageOffset.PassValue() + allocs6d50e36e.Borrow(cimageOffset_allocs) + + var cimageExtent_allocs *cgoAllocMap + ref6d50e36e.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() + allocs6d50e36e.Borrow(cimageExtent_allocs) + + x.ref6d50e36e = ref6d50e36e + x.allocs6d50e36e = allocs6d50e36e + return ref6d50e36e, allocs6d50e36e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BufferImageCopy) PassValue() (C.VkBufferImageCopy, *cgoAllocMap) { + if x.ref6d50e36e != nil { + return *x.ref6d50e36e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BufferImageCopy) Deref() { + if x.ref6d50e36e == nil { + return + } + x.BufferOffset = (DeviceSize)(x.ref6d50e36e.bufferOffset) + x.BufferRowLength = (uint32)(x.ref6d50e36e.bufferRowLength) + x.BufferImageHeight = (uint32)(x.ref6d50e36e.bufferImageHeight) + x.ImageSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref6d50e36e.imageSubresource)) + x.ImageOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref6d50e36e.imageOffset)) + x.ImageExtent = *NewExtent3DRef(unsafe.Pointer(&x.ref6d50e36e.imageExtent)) +} + +// allocClearDepthStencilValueMemory allocates memory for type C.VkClearDepthStencilValue in C. +// The caller is responsible for freeing the this memory via C.free. +func allocClearDepthStencilValueMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfClearDepthStencilValueValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfClearDepthStencilValueValue = unsafe.Sizeof([1]C.VkClearDepthStencilValue{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ClearDepthStencilValue) Ref() *C.VkClearDepthStencilValue { + if x == nil { + return nil + } + return x.refa7d07c03 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ClearDepthStencilValue) Free() { + if x != nil && x.allocsa7d07c03 != nil { + x.allocsa7d07c03.(*cgoAllocMap).Free() + x.refa7d07c03 = nil + } +} + +// NewClearDepthStencilValueRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewClearDepthStencilValueRef(ref unsafe.Pointer) *ClearDepthStencilValue { + if ref == nil { + return nil + } + obj := new(ClearDepthStencilValue) + obj.refa7d07c03 = (*C.VkClearDepthStencilValue)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ClearDepthStencilValue) PassRef() (*C.VkClearDepthStencilValue, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa7d07c03 != nil { + return x.refa7d07c03, nil + } + mema7d07c03 := allocClearDepthStencilValueMemory(1) + refa7d07c03 := (*C.VkClearDepthStencilValue)(mema7d07c03) + allocsa7d07c03 := new(cgoAllocMap) + allocsa7d07c03.Add(mema7d07c03) + + var cdepth_allocs *cgoAllocMap + refa7d07c03.depth, cdepth_allocs = (C.float)(x.Depth), cgoAllocsUnknown + allocsa7d07c03.Borrow(cdepth_allocs) + + var cstencil_allocs *cgoAllocMap + refa7d07c03.stencil, cstencil_allocs = (C.uint32_t)(x.Stencil), cgoAllocsUnknown + allocsa7d07c03.Borrow(cstencil_allocs) + + x.refa7d07c03 = refa7d07c03 + x.allocsa7d07c03 = allocsa7d07c03 + return refa7d07c03, allocsa7d07c03 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ClearDepthStencilValue) PassValue() (C.VkClearDepthStencilValue, *cgoAllocMap) { + if x.refa7d07c03 != nil { + return *x.refa7d07c03, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ClearDepthStencilValue) Deref() { + if x.refa7d07c03 == nil { + return + } + x.Depth = (float32)(x.refa7d07c03.depth) + x.Stencil = (uint32)(x.refa7d07c03.stencil) +} + +// allocClearAttachmentMemory allocates memory for type C.VkClearAttachment in C. +// The caller is responsible for freeing the this memory via C.free. +func allocClearAttachmentMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfClearAttachmentValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfClearAttachmentValue = unsafe.Sizeof([1]C.VkClearAttachment{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ClearAttachment) Ref() *C.VkClearAttachment { + if x == nil { + return nil + } + return x.refe9150303 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ClearAttachment) Free() { + if x != nil && x.allocse9150303 != nil { + x.allocse9150303.(*cgoAllocMap).Free() + x.refe9150303 = nil + } +} + +// NewClearAttachmentRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewClearAttachmentRef(ref unsafe.Pointer) *ClearAttachment { + if ref == nil { + return nil + } + obj := new(ClearAttachment) + obj.refe9150303 = (*C.VkClearAttachment)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ClearAttachment) PassRef() (*C.VkClearAttachment, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refe9150303 != nil { + return x.refe9150303, nil + } + meme9150303 := allocClearAttachmentMemory(1) + refe9150303 := (*C.VkClearAttachment)(meme9150303) + allocse9150303 := new(cgoAllocMap) + allocse9150303.Add(meme9150303) + + var caspectMask_allocs *cgoAllocMap + refe9150303.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown + allocse9150303.Borrow(caspectMask_allocs) + + var ccolorAttachment_allocs *cgoAllocMap + refe9150303.colorAttachment, ccolorAttachment_allocs = (C.uint32_t)(x.ColorAttachment), cgoAllocsUnknown + allocse9150303.Borrow(ccolorAttachment_allocs) + + var cclearValue_allocs *cgoAllocMap + refe9150303.clearValue, cclearValue_allocs = *(*C.VkClearValue)(unsafe.Pointer(&x.ClearValue)), cgoAllocsUnknown + allocse9150303.Borrow(cclearValue_allocs) + + x.refe9150303 = refe9150303 + x.allocse9150303 = allocse9150303 + return refe9150303, allocse9150303 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ClearAttachment) PassValue() (C.VkClearAttachment, *cgoAllocMap) { + if x.refe9150303 != nil { + return *x.refe9150303, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ClearAttachment) Deref() { + if x.refe9150303 == nil { + return + } + x.AspectMask = (ImageAspectFlags)(x.refe9150303.aspectMask) + x.ColorAttachment = (uint32)(x.refe9150303.colorAttachment) + x.ClearValue = *(*ClearValue)(unsafe.Pointer(&x.refe9150303.clearValue)) +} + +// allocClearRectMemory allocates memory for type C.VkClearRect in C. +// The caller is responsible for freeing the this memory via C.free. +func allocClearRectMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfClearRectValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfClearRectValue = unsafe.Sizeof([1]C.VkClearRect{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ClearRect) Ref() *C.VkClearRect { + if x == nil { + return nil + } + return x.ref1d449c8b +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ClearRect) Free() { + if x != nil && x.allocs1d449c8b != nil { + x.allocs1d449c8b.(*cgoAllocMap).Free() + x.ref1d449c8b = nil + } +} + +// NewClearRectRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewClearRectRef(ref unsafe.Pointer) *ClearRect { + if ref == nil { + return nil + } + obj := new(ClearRect) + obj.ref1d449c8b = (*C.VkClearRect)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ClearRect) PassRef() (*C.VkClearRect, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref1d449c8b != nil { + return x.ref1d449c8b, nil + } + mem1d449c8b := allocClearRectMemory(1) + ref1d449c8b := (*C.VkClearRect)(mem1d449c8b) + allocs1d449c8b := new(cgoAllocMap) + allocs1d449c8b.Add(mem1d449c8b) + + var crect_allocs *cgoAllocMap + ref1d449c8b.rect, crect_allocs = x.Rect.PassValue() + allocs1d449c8b.Borrow(crect_allocs) + + var cbaseArrayLayer_allocs *cgoAllocMap + ref1d449c8b.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown + allocs1d449c8b.Borrow(cbaseArrayLayer_allocs) + + var clayerCount_allocs *cgoAllocMap + ref1d449c8b.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown + allocs1d449c8b.Borrow(clayerCount_allocs) + + x.ref1d449c8b = ref1d449c8b + x.allocs1d449c8b = allocs1d449c8b + return ref1d449c8b, allocs1d449c8b + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ClearRect) PassValue() (C.VkClearRect, *cgoAllocMap) { + if x.ref1d449c8b != nil { + return *x.ref1d449c8b, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ClearRect) Deref() { + if x.ref1d449c8b == nil { + return + } + x.Rect = *NewRect2DRef(unsafe.Pointer(&x.ref1d449c8b.rect)) + x.BaseArrayLayer = (uint32)(x.ref1d449c8b.baseArrayLayer) + x.LayerCount = (uint32)(x.ref1d449c8b.layerCount) +} + +// allocImageBlitMemory allocates memory for type C.VkImageBlit in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageBlitMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageBlitValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageBlitValue = unsafe.Sizeof([1]C.VkImageBlit{}) + +// allocA2Offset3DMemory allocates memory for type [2]C.VkOffset3D in C. +// The caller is responsible for freeing the this memory via C.free. +func allocA2Offset3DMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfA2Offset3DValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfA2Offset3DValue = unsafe.Sizeof([1][2]C.VkOffset3D{}) + +// unpackA2Offset3D transforms a sliced Go data structure into plain C format. +func unpackA2Offset3D(x [2]Offset3D) (unpacked [2]C.VkOffset3D, allocs *cgoAllocMap) { + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(*[2]C.VkOffset3D) { + go allocs.Free() + }) + + mem0 := allocA2Offset3DMemory(1) + allocs.Add(mem0) + v0 := (*[2]C.VkOffset3D)(mem0) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + unpacked = *(*[2]C.VkOffset3D)(mem0) + return +} + +// packA2Offset3D reads sliced Go data structure out from plain C format. +func packA2Offset3D(v *[2]Offset3D, ptr0 *[2]C.VkOffset3D) { + for i0 := range v { + ptr1 := ptr0[i0] + v[i0] = *NewOffset3DRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageBlit) Ref() *C.VkImageBlit { + if x == nil { + return nil + } + return x.ref11311e8d +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageBlit) Free() { + if x != nil && x.allocs11311e8d != nil { + x.allocs11311e8d.(*cgoAllocMap).Free() + x.ref11311e8d = nil + } +} + +// NewImageBlitRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageBlitRef(ref unsafe.Pointer) *ImageBlit { + if ref == nil { + return nil + } + obj := new(ImageBlit) + obj.ref11311e8d = (*C.VkImageBlit)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageBlit) PassRef() (*C.VkImageBlit, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref11311e8d != nil { + return x.ref11311e8d, nil + } + mem11311e8d := allocImageBlitMemory(1) + ref11311e8d := (*C.VkImageBlit)(mem11311e8d) + allocs11311e8d := new(cgoAllocMap) + allocs11311e8d.Add(mem11311e8d) + + var csrcSubresource_allocs *cgoAllocMap + ref11311e8d.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() + allocs11311e8d.Borrow(csrcSubresource_allocs) + + var csrcOffsets_allocs *cgoAllocMap + ref11311e8d.srcOffsets, csrcOffsets_allocs = unpackA2Offset3D(x.SrcOffsets) + allocs11311e8d.Borrow(csrcOffsets_allocs) + + var cdstSubresource_allocs *cgoAllocMap + ref11311e8d.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() + allocs11311e8d.Borrow(cdstSubresource_allocs) + + var cdstOffsets_allocs *cgoAllocMap + ref11311e8d.dstOffsets, cdstOffsets_allocs = unpackA2Offset3D(x.DstOffsets) + allocs11311e8d.Borrow(cdstOffsets_allocs) + + x.ref11311e8d = ref11311e8d + x.allocs11311e8d = allocs11311e8d + return ref11311e8d, allocs11311e8d + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageBlit) PassValue() (C.VkImageBlit, *cgoAllocMap) { + if x.ref11311e8d != nil { + return *x.ref11311e8d, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageBlit) Deref() { + if x.ref11311e8d == nil { + return + } + x.SrcSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref11311e8d.srcSubresource)) + packA2Offset3D(&x.SrcOffsets, (*[2]C.VkOffset3D)(unsafe.Pointer(&x.ref11311e8d.srcOffsets))) + x.DstSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref11311e8d.dstSubresource)) + packA2Offset3D(&x.DstOffsets, (*[2]C.VkOffset3D)(unsafe.Pointer(&x.ref11311e8d.dstOffsets))) +} + +// allocImageCopyMemory allocates memory for type C.VkImageCopy in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageCopyMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageCopyValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageCopyValue = unsafe.Sizeof([1]C.VkImageCopy{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageCopy) Ref() *C.VkImageCopy { + if x == nil { + return nil + } + return x.ref4e7a1214 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageCopy) Free() { + if x != nil && x.allocs4e7a1214 != nil { + x.allocs4e7a1214.(*cgoAllocMap).Free() + x.ref4e7a1214 = nil + } +} + +// NewImageCopyRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageCopyRef(ref unsafe.Pointer) *ImageCopy { + if ref == nil { + return nil + } + obj := new(ImageCopy) + obj.ref4e7a1214 = (*C.VkImageCopy)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageCopy) PassRef() (*C.VkImageCopy, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4e7a1214 != nil { + return x.ref4e7a1214, nil + } + mem4e7a1214 := allocImageCopyMemory(1) + ref4e7a1214 := (*C.VkImageCopy)(mem4e7a1214) + allocs4e7a1214 := new(cgoAllocMap) + allocs4e7a1214.Add(mem4e7a1214) + + var csrcSubresource_allocs *cgoAllocMap + ref4e7a1214.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() + allocs4e7a1214.Borrow(csrcSubresource_allocs) + + var csrcOffset_allocs *cgoAllocMap + ref4e7a1214.srcOffset, csrcOffset_allocs = x.SrcOffset.PassValue() + allocs4e7a1214.Borrow(csrcOffset_allocs) + + var cdstSubresource_allocs *cgoAllocMap + ref4e7a1214.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() + allocs4e7a1214.Borrow(cdstSubresource_allocs) + + var cdstOffset_allocs *cgoAllocMap + ref4e7a1214.dstOffset, cdstOffset_allocs = x.DstOffset.PassValue() + allocs4e7a1214.Borrow(cdstOffset_allocs) + + var cextent_allocs *cgoAllocMap + ref4e7a1214.extent, cextent_allocs = x.Extent.PassValue() + allocs4e7a1214.Borrow(cextent_allocs) + + x.ref4e7a1214 = ref4e7a1214 + x.allocs4e7a1214 = allocs4e7a1214 + return ref4e7a1214, allocs4e7a1214 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageCopy) PassValue() (C.VkImageCopy, *cgoAllocMap) { + if x.ref4e7a1214 != nil { + return *x.ref4e7a1214, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageCopy) Deref() { + if x.ref4e7a1214 == nil { + return + } + x.SrcSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref4e7a1214.srcSubresource)) + x.SrcOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref4e7a1214.srcOffset)) + x.DstSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref4e7a1214.dstSubresource)) + x.DstOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref4e7a1214.dstOffset)) + x.Extent = *NewExtent3DRef(unsafe.Pointer(&x.ref4e7a1214.extent)) +} + +// allocImageResolveMemory allocates memory for type C.VkImageResolve in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageResolveMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageResolveValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageResolveValue = unsafe.Sizeof([1]C.VkImageResolve{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageResolve) Ref() *C.VkImageResolve { + if x == nil { + return nil + } + return x.ref7bda856d +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageResolve) Free() { + if x != nil && x.allocs7bda856d != nil { + x.allocs7bda856d.(*cgoAllocMap).Free() + x.ref7bda856d = nil + } +} + +// NewImageResolveRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageResolveRef(ref unsafe.Pointer) *ImageResolve { + if ref == nil { + return nil + } + obj := new(ImageResolve) + obj.ref7bda856d = (*C.VkImageResolve)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageResolve) PassRef() (*C.VkImageResolve, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref7bda856d != nil { + return x.ref7bda856d, nil + } + mem7bda856d := allocImageResolveMemory(1) + ref7bda856d := (*C.VkImageResolve)(mem7bda856d) + allocs7bda856d := new(cgoAllocMap) + allocs7bda856d.Add(mem7bda856d) + + var csrcSubresource_allocs *cgoAllocMap + ref7bda856d.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() + allocs7bda856d.Borrow(csrcSubresource_allocs) + + var csrcOffset_allocs *cgoAllocMap + ref7bda856d.srcOffset, csrcOffset_allocs = x.SrcOffset.PassValue() + allocs7bda856d.Borrow(csrcOffset_allocs) + + var cdstSubresource_allocs *cgoAllocMap + ref7bda856d.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() + allocs7bda856d.Borrow(cdstSubresource_allocs) + + var cdstOffset_allocs *cgoAllocMap + ref7bda856d.dstOffset, cdstOffset_allocs = x.DstOffset.PassValue() + allocs7bda856d.Borrow(cdstOffset_allocs) + + var cextent_allocs *cgoAllocMap + ref7bda856d.extent, cextent_allocs = x.Extent.PassValue() + allocs7bda856d.Borrow(cextent_allocs) + + x.ref7bda856d = ref7bda856d + x.allocs7bda856d = allocs7bda856d + return ref7bda856d, allocs7bda856d + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageResolve) PassValue() (C.VkImageResolve, *cgoAllocMap) { + if x.ref7bda856d != nil { + return *x.ref7bda856d, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageResolve) Deref() { + if x.ref7bda856d == nil { + return + } + x.SrcSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref7bda856d.srcSubresource)) + x.SrcOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref7bda856d.srcOffset)) + x.DstSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref7bda856d.dstSubresource)) + x.DstOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref7bda856d.dstOffset)) + x.Extent = *NewExtent3DRef(unsafe.Pointer(&x.ref7bda856d.extent)) +} + +// allocRenderPassBeginInfoMemory allocates memory for type C.VkRenderPassBeginInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocRenderPassBeginInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassBeginInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfRenderPassBeginInfoValue = unsafe.Sizeof([1]C.VkRenderPassBeginInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *RenderPassBeginInfo) Ref() *C.VkRenderPassBeginInfo { + if x == nil { + return nil + } + return x.ref3c3752c8 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *RenderPassBeginInfo) Free() { + if x != nil && x.allocs3c3752c8 != nil { + x.allocs3c3752c8.(*cgoAllocMap).Free() + x.ref3c3752c8 = nil + } +} + +// NewRenderPassBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewRenderPassBeginInfoRef(ref unsafe.Pointer) *RenderPassBeginInfo { + if ref == nil { + return nil + } + obj := new(RenderPassBeginInfo) + obj.ref3c3752c8 = (*C.VkRenderPassBeginInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *RenderPassBeginInfo) PassRef() (*C.VkRenderPassBeginInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref3c3752c8 != nil { + return x.ref3c3752c8, nil + } + mem3c3752c8 := allocRenderPassBeginInfoMemory(1) + ref3c3752c8 := (*C.VkRenderPassBeginInfo)(mem3c3752c8) + allocs3c3752c8 := new(cgoAllocMap) + allocs3c3752c8.Add(mem3c3752c8) + + var csType_allocs *cgoAllocMap + ref3c3752c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3c3752c8.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref3c3752c8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3c3752c8.Borrow(cpNext_allocs) + + var crenderPass_allocs *cgoAllocMap + ref3c3752c8.renderPass, crenderPass_allocs = *(*C.VkRenderPass)(unsafe.Pointer(&x.RenderPass)), cgoAllocsUnknown + allocs3c3752c8.Borrow(crenderPass_allocs) + + var cframebuffer_allocs *cgoAllocMap + ref3c3752c8.framebuffer, cframebuffer_allocs = *(*C.VkFramebuffer)(unsafe.Pointer(&x.Framebuffer)), cgoAllocsUnknown + allocs3c3752c8.Borrow(cframebuffer_allocs) + + var crenderArea_allocs *cgoAllocMap + ref3c3752c8.renderArea, crenderArea_allocs = x.RenderArea.PassValue() + allocs3c3752c8.Borrow(crenderArea_allocs) + + var cclearValueCount_allocs *cgoAllocMap + ref3c3752c8.clearValueCount, cclearValueCount_allocs = (C.uint32_t)(x.ClearValueCount), cgoAllocsUnknown + allocs3c3752c8.Borrow(cclearValueCount_allocs) + + var cpClearValues_allocs *cgoAllocMap + ref3c3752c8.pClearValues, cpClearValues_allocs = (*C.VkClearValue)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PClearValues)).Data)), cgoAllocsUnknown + allocs3c3752c8.Borrow(cpClearValues_allocs) + + x.ref3c3752c8 = ref3c3752c8 + x.allocs3c3752c8 = allocs3c3752c8 + return ref3c3752c8, allocs3c3752c8 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x RenderPassBeginInfo) PassValue() (C.VkRenderPassBeginInfo, *cgoAllocMap) { + if x.ref3c3752c8 != nil { + return *x.ref3c3752c8, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *RenderPassBeginInfo) Deref() { + if x.ref3c3752c8 == nil { + return + } + x.SType = (StructureType)(x.ref3c3752c8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3c3752c8.pNext)) + x.RenderPass = *(*RenderPass)(unsafe.Pointer(&x.ref3c3752c8.renderPass)) + x.Framebuffer = *(*Framebuffer)(unsafe.Pointer(&x.ref3c3752c8.framebuffer)) + x.RenderArea = *NewRect2DRef(unsafe.Pointer(&x.ref3c3752c8.renderArea)) + x.ClearValueCount = (uint32)(x.ref3c3752c8.clearValueCount) + hxf1231c9 := (*sliceHeader)(unsafe.Pointer(&x.PClearValues)) + hxf1231c9.Data = unsafe.Pointer(x.ref3c3752c8.pClearValues) + hxf1231c9.Cap = 0x7fffffff + // hxf1231c9.Len = ? + +} + +// allocPhysicalDeviceSubgroupPropertiesMemory allocates memory for type C.VkPhysicalDeviceSubgroupProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceSubgroupPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubgroupPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceSubgroupPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubgroupProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceSubgroupProperties) Ref() *C.VkPhysicalDeviceSubgroupProperties { + if x == nil { + return nil + } + return x.refb019c29f +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceSubgroupProperties) Free() { + if x != nil && x.allocsb019c29f != nil { + x.allocsb019c29f.(*cgoAllocMap).Free() + x.refb019c29f = nil + } +} + +// NewPhysicalDeviceSubgroupPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceSubgroupPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSubgroupProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceSubgroupProperties) + obj.refb019c29f = (*C.VkPhysicalDeviceSubgroupProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceSubgroupProperties) PassRef() (*C.VkPhysicalDeviceSubgroupProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb019c29f != nil { + return x.refb019c29f, nil + } + memb019c29f := allocPhysicalDeviceSubgroupPropertiesMemory(1) + refb019c29f := (*C.VkPhysicalDeviceSubgroupProperties)(memb019c29f) + allocsb019c29f := new(cgoAllocMap) + allocsb019c29f.Add(memb019c29f) + + var csType_allocs *cgoAllocMap + refb019c29f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb019c29f.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb019c29f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb019c29f.Borrow(cpNext_allocs) + + var csubgroupSize_allocs *cgoAllocMap + refb019c29f.subgroupSize, csubgroupSize_allocs = (C.uint32_t)(x.SubgroupSize), cgoAllocsUnknown + allocsb019c29f.Borrow(csubgroupSize_allocs) + + var csupportedStages_allocs *cgoAllocMap + refb019c29f.supportedStages, csupportedStages_allocs = (C.VkShaderStageFlags)(x.SupportedStages), cgoAllocsUnknown + allocsb019c29f.Borrow(csupportedStages_allocs) + + var csupportedOperations_allocs *cgoAllocMap + refb019c29f.supportedOperations, csupportedOperations_allocs = (C.VkSubgroupFeatureFlags)(x.SupportedOperations), cgoAllocsUnknown + allocsb019c29f.Borrow(csupportedOperations_allocs) + + var cquadOperationsInAllStages_allocs *cgoAllocMap + refb019c29f.quadOperationsInAllStages, cquadOperationsInAllStages_allocs = (C.VkBool32)(x.QuadOperationsInAllStages), cgoAllocsUnknown + allocsb019c29f.Borrow(cquadOperationsInAllStages_allocs) + + x.refb019c29f = refb019c29f + x.allocsb019c29f = allocsb019c29f + return refb019c29f, allocsb019c29f + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceSubgroupProperties) PassValue() (C.VkPhysicalDeviceSubgroupProperties, *cgoAllocMap) { + if x.refb019c29f != nil { + return *x.refb019c29f, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceSubgroupProperties) Deref() { + if x.refb019c29f == nil { + return + } + x.SType = (StructureType)(x.refb019c29f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb019c29f.pNext)) + x.SubgroupSize = (uint32)(x.refb019c29f.subgroupSize) + x.SupportedStages = (ShaderStageFlags)(x.refb019c29f.supportedStages) + x.SupportedOperations = (SubgroupFeatureFlags)(x.refb019c29f.supportedOperations) + x.QuadOperationsInAllStages = (Bool32)(x.refb019c29f.quadOperationsInAllStages) +} + +// allocBindBufferMemoryInfoMemory allocates memory for type C.VkBindBufferMemoryInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBindBufferMemoryInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindBufferMemoryInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBindBufferMemoryInfoValue = unsafe.Sizeof([1]C.VkBindBufferMemoryInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BindBufferMemoryInfo) Ref() *C.VkBindBufferMemoryInfo { + if x == nil { + return nil + } + return x.refd392322d +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BindBufferMemoryInfo) Free() { + if x != nil && x.allocsd392322d != nil { + x.allocsd392322d.(*cgoAllocMap).Free() + x.refd392322d = nil + } +} + +// NewBindBufferMemoryInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBindBufferMemoryInfoRef(ref unsafe.Pointer) *BindBufferMemoryInfo { + if ref == nil { + return nil + } + obj := new(BindBufferMemoryInfo) + obj.refd392322d = (*C.VkBindBufferMemoryInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BindBufferMemoryInfo) PassRef() (*C.VkBindBufferMemoryInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd392322d != nil { + return x.refd392322d, nil + } + memd392322d := allocBindBufferMemoryInfoMemory(1) + refd392322d := (*C.VkBindBufferMemoryInfo)(memd392322d) + allocsd392322d := new(cgoAllocMap) + allocsd392322d.Add(memd392322d) + + var csType_allocs *cgoAllocMap + refd392322d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd392322d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd392322d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd392322d.Borrow(cpNext_allocs) + + var cbuffer_allocs *cgoAllocMap + refd392322d.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocsd392322d.Borrow(cbuffer_allocs) + + var cmemory_allocs *cgoAllocMap + refd392322d.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocsd392322d.Borrow(cmemory_allocs) + + var cmemoryOffset_allocs *cgoAllocMap + refd392322d.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown + allocsd392322d.Borrow(cmemoryOffset_allocs) + + x.refd392322d = refd392322d + x.allocsd392322d = allocsd392322d + return refd392322d, allocsd392322d + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BindBufferMemoryInfo) PassValue() (C.VkBindBufferMemoryInfo, *cgoAllocMap) { + if x.refd392322d != nil { + return *x.refd392322d, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BindBufferMemoryInfo) Deref() { + if x.refd392322d == nil { + return + } + x.SType = (StructureType)(x.refd392322d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd392322d.pNext)) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refd392322d.buffer)) + x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.refd392322d.memory)) + x.MemoryOffset = (DeviceSize)(x.refd392322d.memoryOffset) +} + +// allocBindImageMemoryInfoMemory allocates memory for type C.VkBindImageMemoryInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBindImageMemoryInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindImageMemoryInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBindImageMemoryInfoValue = unsafe.Sizeof([1]C.VkBindImageMemoryInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BindImageMemoryInfo) Ref() *C.VkBindImageMemoryInfo { + if x == nil { + return nil + } + return x.ref767a2113 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BindImageMemoryInfo) Free() { + if x != nil && x.allocs767a2113 != nil { + x.allocs767a2113.(*cgoAllocMap).Free() + x.ref767a2113 = nil + } +} + +// NewBindImageMemoryInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBindImageMemoryInfoRef(ref unsafe.Pointer) *BindImageMemoryInfo { + if ref == nil { + return nil + } + obj := new(BindImageMemoryInfo) + obj.ref767a2113 = (*C.VkBindImageMemoryInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BindImageMemoryInfo) PassRef() (*C.VkBindImageMemoryInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref767a2113 != nil { + return x.ref767a2113, nil + } + mem767a2113 := allocBindImageMemoryInfoMemory(1) + ref767a2113 := (*C.VkBindImageMemoryInfo)(mem767a2113) + allocs767a2113 := new(cgoAllocMap) + allocs767a2113.Add(mem767a2113) + + var csType_allocs *cgoAllocMap + ref767a2113.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs767a2113.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref767a2113.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs767a2113.Borrow(cpNext_allocs) + + var cimage_allocs *cgoAllocMap + ref767a2113.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocs767a2113.Borrow(cimage_allocs) + + var cmemory_allocs *cgoAllocMap + ref767a2113.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocs767a2113.Borrow(cmemory_allocs) + + var cmemoryOffset_allocs *cgoAllocMap + ref767a2113.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown + allocs767a2113.Borrow(cmemoryOffset_allocs) + + x.ref767a2113 = ref767a2113 + x.allocs767a2113 = allocs767a2113 + return ref767a2113, allocs767a2113 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BindImageMemoryInfo) PassValue() (C.VkBindImageMemoryInfo, *cgoAllocMap) { + if x.ref767a2113 != nil { + return *x.ref767a2113, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BindImageMemoryInfo) Deref() { + if x.ref767a2113 == nil { + return + } + x.SType = (StructureType)(x.ref767a2113.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref767a2113.pNext)) + x.Image = *(*Image)(unsafe.Pointer(&x.ref767a2113.image)) + x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref767a2113.memory)) + x.MemoryOffset = (DeviceSize)(x.ref767a2113.memoryOffset) +} + +// allocPhysicalDevice16BitStorageFeaturesMemory allocates memory for type C.VkPhysicalDevice16BitStorageFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDevice16BitStorageFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevice16BitStorageFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDevice16BitStorageFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevice16BitStorageFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDevice16BitStorageFeatures) Ref() *C.VkPhysicalDevice16BitStorageFeatures { + if x == nil { + return nil + } + return x.refa90fed14 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDevice16BitStorageFeatures) Free() { + if x != nil && x.allocsa90fed14 != nil { + x.allocsa90fed14.(*cgoAllocMap).Free() + x.refa90fed14 = nil + } +} + +// NewPhysicalDevice16BitStorageFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDevice16BitStorageFeaturesRef(ref unsafe.Pointer) *PhysicalDevice16BitStorageFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDevice16BitStorageFeatures) + obj.refa90fed14 = (*C.VkPhysicalDevice16BitStorageFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDevice16BitStorageFeatures) PassRef() (*C.VkPhysicalDevice16BitStorageFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa90fed14 != nil { + return x.refa90fed14, nil + } + mema90fed14 := allocPhysicalDevice16BitStorageFeaturesMemory(1) + refa90fed14 := (*C.VkPhysicalDevice16BitStorageFeatures)(mema90fed14) + allocsa90fed14 := new(cgoAllocMap) + allocsa90fed14.Add(mema90fed14) + + var csType_allocs *cgoAllocMap + refa90fed14.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa90fed14.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refa90fed14.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa90fed14.Borrow(cpNext_allocs) + + var cstorageBuffer16BitAccess_allocs *cgoAllocMap + refa90fed14.storageBuffer16BitAccess, cstorageBuffer16BitAccess_allocs = (C.VkBool32)(x.StorageBuffer16BitAccess), cgoAllocsUnknown + allocsa90fed14.Borrow(cstorageBuffer16BitAccess_allocs) + + var cuniformAndStorageBuffer16BitAccess_allocs *cgoAllocMap + refa90fed14.uniformAndStorageBuffer16BitAccess, cuniformAndStorageBuffer16BitAccess_allocs = (C.VkBool32)(x.UniformAndStorageBuffer16BitAccess), cgoAllocsUnknown + allocsa90fed14.Borrow(cuniformAndStorageBuffer16BitAccess_allocs) + + var cstoragePushConstant16_allocs *cgoAllocMap + refa90fed14.storagePushConstant16, cstoragePushConstant16_allocs = (C.VkBool32)(x.StoragePushConstant16), cgoAllocsUnknown + allocsa90fed14.Borrow(cstoragePushConstant16_allocs) + + var cstorageInputOutput16_allocs *cgoAllocMap + refa90fed14.storageInputOutput16, cstorageInputOutput16_allocs = (C.VkBool32)(x.StorageInputOutput16), cgoAllocsUnknown + allocsa90fed14.Borrow(cstorageInputOutput16_allocs) + + x.refa90fed14 = refa90fed14 + x.allocsa90fed14 = allocsa90fed14 + return refa90fed14, allocsa90fed14 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDevice16BitStorageFeatures) PassValue() (C.VkPhysicalDevice16BitStorageFeatures, *cgoAllocMap) { + if x.refa90fed14 != nil { + return *x.refa90fed14, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDevice16BitStorageFeatures) Deref() { + if x.refa90fed14 == nil { + return + } + x.SType = (StructureType)(x.refa90fed14.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa90fed14.pNext)) + x.StorageBuffer16BitAccess = (Bool32)(x.refa90fed14.storageBuffer16BitAccess) + x.UniformAndStorageBuffer16BitAccess = (Bool32)(x.refa90fed14.uniformAndStorageBuffer16BitAccess) + x.StoragePushConstant16 = (Bool32)(x.refa90fed14.storagePushConstant16) + x.StorageInputOutput16 = (Bool32)(x.refa90fed14.storageInputOutput16) +} + +// allocMemoryDedicatedRequirementsMemory allocates memory for type C.VkMemoryDedicatedRequirements in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryDedicatedRequirementsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryDedicatedRequirementsValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryDedicatedRequirementsValue = unsafe.Sizeof([1]C.VkMemoryDedicatedRequirements{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryDedicatedRequirements) Ref() *C.VkMemoryDedicatedRequirements { + if x == nil { + return nil + } + return x.refaa924122 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryDedicatedRequirements) Free() { + if x != nil && x.allocsaa924122 != nil { + x.allocsaa924122.(*cgoAllocMap).Free() + x.refaa924122 = nil + } +} + +// NewMemoryDedicatedRequirementsRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryDedicatedRequirementsRef(ref unsafe.Pointer) *MemoryDedicatedRequirements { + if ref == nil { + return nil + } + obj := new(MemoryDedicatedRequirements) + obj.refaa924122 = (*C.VkMemoryDedicatedRequirements)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryDedicatedRequirements) PassRef() (*C.VkMemoryDedicatedRequirements, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refaa924122 != nil { + return x.refaa924122, nil + } + memaa924122 := allocMemoryDedicatedRequirementsMemory(1) + refaa924122 := (*C.VkMemoryDedicatedRequirements)(memaa924122) + allocsaa924122 := new(cgoAllocMap) + allocsaa924122.Add(memaa924122) + + var csType_allocs *cgoAllocMap + refaa924122.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaa924122.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refaa924122.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaa924122.Borrow(cpNext_allocs) + + var cprefersDedicatedAllocation_allocs *cgoAllocMap + refaa924122.prefersDedicatedAllocation, cprefersDedicatedAllocation_allocs = (C.VkBool32)(x.PrefersDedicatedAllocation), cgoAllocsUnknown + allocsaa924122.Borrow(cprefersDedicatedAllocation_allocs) + + var crequiresDedicatedAllocation_allocs *cgoAllocMap + refaa924122.requiresDedicatedAllocation, crequiresDedicatedAllocation_allocs = (C.VkBool32)(x.RequiresDedicatedAllocation), cgoAllocsUnknown + allocsaa924122.Borrow(crequiresDedicatedAllocation_allocs) + + x.refaa924122 = refaa924122 + x.allocsaa924122 = allocsaa924122 + return refaa924122, allocsaa924122 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryDedicatedRequirements) PassValue() (C.VkMemoryDedicatedRequirements, *cgoAllocMap) { + if x.refaa924122 != nil { + return *x.refaa924122, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryDedicatedRequirements) Deref() { + if x.refaa924122 == nil { + return + } + x.SType = (StructureType)(x.refaa924122.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaa924122.pNext)) + x.PrefersDedicatedAllocation = (Bool32)(x.refaa924122.prefersDedicatedAllocation) + x.RequiresDedicatedAllocation = (Bool32)(x.refaa924122.requiresDedicatedAllocation) +} + +// allocMemoryDedicatedAllocateInfoMemory allocates memory for type C.VkMemoryDedicatedAllocateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryDedicatedAllocateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryDedicatedAllocateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryDedicatedAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryDedicatedAllocateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryDedicatedAllocateInfo) Ref() *C.VkMemoryDedicatedAllocateInfo { + if x == nil { + return nil + } + return x.reff8fabe62 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryDedicatedAllocateInfo) Free() { + if x != nil && x.allocsf8fabe62 != nil { + x.allocsf8fabe62.(*cgoAllocMap).Free() + x.reff8fabe62 = nil + } +} + +// NewMemoryDedicatedAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryDedicatedAllocateInfoRef(ref unsafe.Pointer) *MemoryDedicatedAllocateInfo { + if ref == nil { + return nil + } + obj := new(MemoryDedicatedAllocateInfo) + obj.reff8fabe62 = (*C.VkMemoryDedicatedAllocateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryDedicatedAllocateInfo) PassRef() (*C.VkMemoryDedicatedAllocateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff8fabe62 != nil { + return x.reff8fabe62, nil + } + memf8fabe62 := allocMemoryDedicatedAllocateInfoMemory(1) + reff8fabe62 := (*C.VkMemoryDedicatedAllocateInfo)(memf8fabe62) + allocsf8fabe62 := new(cgoAllocMap) + allocsf8fabe62.Add(memf8fabe62) + + var csType_allocs *cgoAllocMap + reff8fabe62.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf8fabe62.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff8fabe62.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf8fabe62.Borrow(cpNext_allocs) + + var cimage_allocs *cgoAllocMap + reff8fabe62.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocsf8fabe62.Borrow(cimage_allocs) + + var cbuffer_allocs *cgoAllocMap + reff8fabe62.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocsf8fabe62.Borrow(cbuffer_allocs) + + x.reff8fabe62 = reff8fabe62 + x.allocsf8fabe62 = allocsf8fabe62 + return reff8fabe62, allocsf8fabe62 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryDedicatedAllocateInfo) PassValue() (C.VkMemoryDedicatedAllocateInfo, *cgoAllocMap) { + if x.reff8fabe62 != nil { + return *x.reff8fabe62, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryDedicatedAllocateInfo) Deref() { + if x.reff8fabe62 == nil { + return + } + x.SType = (StructureType)(x.reff8fabe62.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff8fabe62.pNext)) + x.Image = *(*Image)(unsafe.Pointer(&x.reff8fabe62.image)) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.reff8fabe62.buffer)) +} + +// allocMemoryAllocateFlagsInfoMemory allocates memory for type C.VkMemoryAllocateFlagsInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryAllocateFlagsInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryAllocateFlagsInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryAllocateFlagsInfoValue = unsafe.Sizeof([1]C.VkMemoryAllocateFlagsInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryAllocateFlagsInfo) Ref() *C.VkMemoryAllocateFlagsInfo { + if x == nil { + return nil + } + return x.ref7ca6664 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryAllocateFlagsInfo) Free() { + if x != nil && x.allocs7ca6664 != nil { + x.allocs7ca6664.(*cgoAllocMap).Free() + x.ref7ca6664 = nil + } +} + +// NewMemoryAllocateFlagsInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryAllocateFlagsInfoRef(ref unsafe.Pointer) *MemoryAllocateFlagsInfo { + if ref == nil { + return nil + } + obj := new(MemoryAllocateFlagsInfo) + obj.ref7ca6664 = (*C.VkMemoryAllocateFlagsInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryAllocateFlagsInfo) PassRef() (*C.VkMemoryAllocateFlagsInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref7ca6664 != nil { + return x.ref7ca6664, nil + } + mem7ca6664 := allocMemoryAllocateFlagsInfoMemory(1) + ref7ca6664 := (*C.VkMemoryAllocateFlagsInfo)(mem7ca6664) + allocs7ca6664 := new(cgoAllocMap) + allocs7ca6664.Add(mem7ca6664) + + var csType_allocs *cgoAllocMap + ref7ca6664.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7ca6664.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref7ca6664.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7ca6664.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref7ca6664.flags, cflags_allocs = (C.VkMemoryAllocateFlags)(x.Flags), cgoAllocsUnknown + allocs7ca6664.Borrow(cflags_allocs) + + var cdeviceMask_allocs *cgoAllocMap + ref7ca6664.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown + allocs7ca6664.Borrow(cdeviceMask_allocs) + + x.ref7ca6664 = ref7ca6664 + x.allocs7ca6664 = allocs7ca6664 + return ref7ca6664, allocs7ca6664 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryAllocateFlagsInfo) PassValue() (C.VkMemoryAllocateFlagsInfo, *cgoAllocMap) { + if x.ref7ca6664 != nil { + return *x.ref7ca6664, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryAllocateFlagsInfo) Deref() { + if x.ref7ca6664 == nil { + return + } + x.SType = (StructureType)(x.ref7ca6664.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7ca6664.pNext)) + x.Flags = (MemoryAllocateFlags)(x.ref7ca6664.flags) + x.DeviceMask = (uint32)(x.ref7ca6664.deviceMask) +} + +// allocDeviceGroupRenderPassBeginInfoMemory allocates memory for type C.VkDeviceGroupRenderPassBeginInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceGroupRenderPassBeginInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupRenderPassBeginInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDeviceGroupRenderPassBeginInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupRenderPassBeginInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DeviceGroupRenderPassBeginInfo) Ref() *C.VkDeviceGroupRenderPassBeginInfo { + if x == nil { + return nil + } + return x.ref139f3599 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DeviceGroupRenderPassBeginInfo) Free() { + if x != nil && x.allocs139f3599 != nil { + x.allocs139f3599.(*cgoAllocMap).Free() + x.ref139f3599 = nil + } +} + +// NewDeviceGroupRenderPassBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDeviceGroupRenderPassBeginInfoRef(ref unsafe.Pointer) *DeviceGroupRenderPassBeginInfo { + if ref == nil { + return nil + } + obj := new(DeviceGroupRenderPassBeginInfo) + obj.ref139f3599 = (*C.VkDeviceGroupRenderPassBeginInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DeviceGroupRenderPassBeginInfo) PassRef() (*C.VkDeviceGroupRenderPassBeginInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref139f3599 != nil { + return x.ref139f3599, nil + } + mem139f3599 := allocDeviceGroupRenderPassBeginInfoMemory(1) + ref139f3599 := (*C.VkDeviceGroupRenderPassBeginInfo)(mem139f3599) + allocs139f3599 := new(cgoAllocMap) + allocs139f3599.Add(mem139f3599) + + var csType_allocs *cgoAllocMap + ref139f3599.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs139f3599.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref139f3599.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs139f3599.Borrow(cpNext_allocs) + + var cdeviceMask_allocs *cgoAllocMap + ref139f3599.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown + allocs139f3599.Borrow(cdeviceMask_allocs) + + var cdeviceRenderAreaCount_allocs *cgoAllocMap + ref139f3599.deviceRenderAreaCount, cdeviceRenderAreaCount_allocs = (C.uint32_t)(x.DeviceRenderAreaCount), cgoAllocsUnknown + allocs139f3599.Borrow(cdeviceRenderAreaCount_allocs) + + var cpDeviceRenderAreas_allocs *cgoAllocMap + ref139f3599.pDeviceRenderAreas, cpDeviceRenderAreas_allocs = unpackSRect2D(x.PDeviceRenderAreas) + allocs139f3599.Borrow(cpDeviceRenderAreas_allocs) + + x.ref139f3599 = ref139f3599 + x.allocs139f3599 = allocs139f3599 + return ref139f3599, allocs139f3599 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DeviceGroupRenderPassBeginInfo) PassValue() (C.VkDeviceGroupRenderPassBeginInfo, *cgoAllocMap) { + if x.ref139f3599 != nil { + return *x.ref139f3599, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DeviceGroupRenderPassBeginInfo) Deref() { + if x.ref139f3599 == nil { + return + } + x.SType = (StructureType)(x.ref139f3599.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref139f3599.pNext)) + x.DeviceMask = (uint32)(x.ref139f3599.deviceMask) + x.DeviceRenderAreaCount = (uint32)(x.ref139f3599.deviceRenderAreaCount) + packSRect2D(x.PDeviceRenderAreas, x.ref139f3599.pDeviceRenderAreas) +} + +// allocDeviceGroupCommandBufferBeginInfoMemory allocates memory for type C.VkDeviceGroupCommandBufferBeginInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceGroupCommandBufferBeginInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupCommandBufferBeginInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDeviceGroupCommandBufferBeginInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupCommandBufferBeginInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DeviceGroupCommandBufferBeginInfo) Ref() *C.VkDeviceGroupCommandBufferBeginInfo { + if x == nil { + return nil + } + return x.refb9a8f0cd +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DeviceGroupCommandBufferBeginInfo) Free() { + if x != nil && x.allocsb9a8f0cd != nil { + x.allocsb9a8f0cd.(*cgoAllocMap).Free() + x.refb9a8f0cd = nil + } +} + +// NewDeviceGroupCommandBufferBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDeviceGroupCommandBufferBeginInfoRef(ref unsafe.Pointer) *DeviceGroupCommandBufferBeginInfo { + if ref == nil { + return nil + } + obj := new(DeviceGroupCommandBufferBeginInfo) + obj.refb9a8f0cd = (*C.VkDeviceGroupCommandBufferBeginInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DeviceGroupCommandBufferBeginInfo) PassRef() (*C.VkDeviceGroupCommandBufferBeginInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb9a8f0cd != nil { + return x.refb9a8f0cd, nil + } + memb9a8f0cd := allocDeviceGroupCommandBufferBeginInfoMemory(1) + refb9a8f0cd := (*C.VkDeviceGroupCommandBufferBeginInfo)(memb9a8f0cd) + allocsb9a8f0cd := new(cgoAllocMap) + allocsb9a8f0cd.Add(memb9a8f0cd) + + var csType_allocs *cgoAllocMap + refb9a8f0cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb9a8f0cd.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb9a8f0cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb9a8f0cd.Borrow(cpNext_allocs) + + var cdeviceMask_allocs *cgoAllocMap + refb9a8f0cd.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown + allocsb9a8f0cd.Borrow(cdeviceMask_allocs) + + x.refb9a8f0cd = refb9a8f0cd + x.allocsb9a8f0cd = allocsb9a8f0cd + return refb9a8f0cd, allocsb9a8f0cd + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DeviceGroupCommandBufferBeginInfo) PassValue() (C.VkDeviceGroupCommandBufferBeginInfo, *cgoAllocMap) { + if x.refb9a8f0cd != nil { + return *x.refb9a8f0cd, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DeviceGroupCommandBufferBeginInfo) Deref() { + if x.refb9a8f0cd == nil { + return + } + x.SType = (StructureType)(x.refb9a8f0cd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb9a8f0cd.pNext)) + x.DeviceMask = (uint32)(x.refb9a8f0cd.deviceMask) +} + +// allocDeviceGroupSubmitInfoMemory allocates memory for type C.VkDeviceGroupSubmitInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceGroupSubmitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupSubmitInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDeviceGroupSubmitInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupSubmitInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DeviceGroupSubmitInfo) Ref() *C.VkDeviceGroupSubmitInfo { + if x == nil { + return nil + } + return x.refea4e7ce4 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DeviceGroupSubmitInfo) Free() { + if x != nil && x.allocsea4e7ce4 != nil { + x.allocsea4e7ce4.(*cgoAllocMap).Free() + x.refea4e7ce4 = nil + } +} + +// NewDeviceGroupSubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDeviceGroupSubmitInfoRef(ref unsafe.Pointer) *DeviceGroupSubmitInfo { + if ref == nil { + return nil + } + obj := new(DeviceGroupSubmitInfo) + obj.refea4e7ce4 = (*C.VkDeviceGroupSubmitInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DeviceGroupSubmitInfo) PassRef() (*C.VkDeviceGroupSubmitInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refea4e7ce4 != nil { + return x.refea4e7ce4, nil + } + memea4e7ce4 := allocDeviceGroupSubmitInfoMemory(1) + refea4e7ce4 := (*C.VkDeviceGroupSubmitInfo)(memea4e7ce4) + allocsea4e7ce4 := new(cgoAllocMap) + allocsea4e7ce4.Add(memea4e7ce4) + + var csType_allocs *cgoAllocMap + refea4e7ce4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsea4e7ce4.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refea4e7ce4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsea4e7ce4.Borrow(cpNext_allocs) + + var cwaitSemaphoreCount_allocs *cgoAllocMap + refea4e7ce4.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown + allocsea4e7ce4.Borrow(cwaitSemaphoreCount_allocs) + + var cpWaitSemaphoreDeviceIndices_allocs *cgoAllocMap + refea4e7ce4.pWaitSemaphoreDeviceIndices, cpWaitSemaphoreDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreDeviceIndices)).Data)), cgoAllocsUnknown + allocsea4e7ce4.Borrow(cpWaitSemaphoreDeviceIndices_allocs) + + var ccommandBufferCount_allocs *cgoAllocMap + refea4e7ce4.commandBufferCount, ccommandBufferCount_allocs = (C.uint32_t)(x.CommandBufferCount), cgoAllocsUnknown + allocsea4e7ce4.Borrow(ccommandBufferCount_allocs) + + var cpCommandBufferDeviceMasks_allocs *cgoAllocMap + refea4e7ce4.pCommandBufferDeviceMasks, cpCommandBufferDeviceMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCommandBufferDeviceMasks)).Data)), cgoAllocsUnknown + allocsea4e7ce4.Borrow(cpCommandBufferDeviceMasks_allocs) + + var csignalSemaphoreCount_allocs *cgoAllocMap + refea4e7ce4.signalSemaphoreCount, csignalSemaphoreCount_allocs = (C.uint32_t)(x.SignalSemaphoreCount), cgoAllocsUnknown + allocsea4e7ce4.Borrow(csignalSemaphoreCount_allocs) + + var cpSignalSemaphoreDeviceIndices_allocs *cgoAllocMap + refea4e7ce4.pSignalSemaphoreDeviceIndices, cpSignalSemaphoreDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreDeviceIndices)).Data)), cgoAllocsUnknown + allocsea4e7ce4.Borrow(cpSignalSemaphoreDeviceIndices_allocs) + + x.refea4e7ce4 = refea4e7ce4 + x.allocsea4e7ce4 = allocsea4e7ce4 + return refea4e7ce4, allocsea4e7ce4 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DeviceGroupSubmitInfo) PassValue() (C.VkDeviceGroupSubmitInfo, *cgoAllocMap) { + if x.refea4e7ce4 != nil { + return *x.refea4e7ce4, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DeviceGroupSubmitInfo) Deref() { + if x.refea4e7ce4 == nil { + return + } + x.SType = (StructureType)(x.refea4e7ce4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refea4e7ce4.pNext)) + x.WaitSemaphoreCount = (uint32)(x.refea4e7ce4.waitSemaphoreCount) + hxf04b15b := (*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreDeviceIndices)) + hxf04b15b.Data = unsafe.Pointer(x.refea4e7ce4.pWaitSemaphoreDeviceIndices) + hxf04b15b.Cap = 0x7fffffff + // hxf04b15b.Len = ? + + x.CommandBufferCount = (uint32)(x.refea4e7ce4.commandBufferCount) + hxf2f888b := (*sliceHeader)(unsafe.Pointer(&x.PCommandBufferDeviceMasks)) + hxf2f888b.Data = unsafe.Pointer(x.refea4e7ce4.pCommandBufferDeviceMasks) + hxf2f888b.Cap = 0x7fffffff + // hxf2f888b.Len = ? + + x.SignalSemaphoreCount = (uint32)(x.refea4e7ce4.signalSemaphoreCount) + hxf5d1de2 := (*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreDeviceIndices)) + hxf5d1de2.Data = unsafe.Pointer(x.refea4e7ce4.pSignalSemaphoreDeviceIndices) + hxf5d1de2.Cap = 0x7fffffff + // hxf5d1de2.Len = ? + +} + +// allocDeviceGroupBindSparseInfoMemory allocates memory for type C.VkDeviceGroupBindSparseInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceGroupBindSparseInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupBindSparseInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDeviceGroupBindSparseInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupBindSparseInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DeviceGroupBindSparseInfo) Ref() *C.VkDeviceGroupBindSparseInfo { + if x == nil { + return nil + } + return x.ref5b5446cd +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DeviceGroupBindSparseInfo) Free() { + if x != nil && x.allocs5b5446cd != nil { + x.allocs5b5446cd.(*cgoAllocMap).Free() + x.ref5b5446cd = nil + } +} + +// NewDeviceGroupBindSparseInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDeviceGroupBindSparseInfoRef(ref unsafe.Pointer) *DeviceGroupBindSparseInfo { + if ref == nil { + return nil + } + obj := new(DeviceGroupBindSparseInfo) + obj.ref5b5446cd = (*C.VkDeviceGroupBindSparseInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DeviceGroupBindSparseInfo) PassRef() (*C.VkDeviceGroupBindSparseInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5b5446cd != nil { + return x.ref5b5446cd, nil + } + mem5b5446cd := allocDeviceGroupBindSparseInfoMemory(1) + ref5b5446cd := (*C.VkDeviceGroupBindSparseInfo)(mem5b5446cd) + allocs5b5446cd := new(cgoAllocMap) + allocs5b5446cd.Add(mem5b5446cd) + + var csType_allocs *cgoAllocMap + ref5b5446cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5b5446cd.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5b5446cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5b5446cd.Borrow(cpNext_allocs) + + var cresourceDeviceIndex_allocs *cgoAllocMap + ref5b5446cd.resourceDeviceIndex, cresourceDeviceIndex_allocs = (C.uint32_t)(x.ResourceDeviceIndex), cgoAllocsUnknown + allocs5b5446cd.Borrow(cresourceDeviceIndex_allocs) + + var cmemoryDeviceIndex_allocs *cgoAllocMap + ref5b5446cd.memoryDeviceIndex, cmemoryDeviceIndex_allocs = (C.uint32_t)(x.MemoryDeviceIndex), cgoAllocsUnknown + allocs5b5446cd.Borrow(cmemoryDeviceIndex_allocs) + + x.ref5b5446cd = ref5b5446cd + x.allocs5b5446cd = allocs5b5446cd + return ref5b5446cd, allocs5b5446cd + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DeviceGroupBindSparseInfo) PassValue() (C.VkDeviceGroupBindSparseInfo, *cgoAllocMap) { + if x.ref5b5446cd != nil { + return *x.ref5b5446cd, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DeviceGroupBindSparseInfo) Deref() { + if x.ref5b5446cd == nil { + return + } + x.SType = (StructureType)(x.ref5b5446cd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5b5446cd.pNext)) + x.ResourceDeviceIndex = (uint32)(x.ref5b5446cd.resourceDeviceIndex) + x.MemoryDeviceIndex = (uint32)(x.ref5b5446cd.memoryDeviceIndex) +} + +// allocBindBufferMemoryDeviceGroupInfoMemory allocates memory for type C.VkBindBufferMemoryDeviceGroupInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBindBufferMemoryDeviceGroupInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindBufferMemoryDeviceGroupInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBindBufferMemoryDeviceGroupInfoValue = unsafe.Sizeof([1]C.VkBindBufferMemoryDeviceGroupInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BindBufferMemoryDeviceGroupInfo) Ref() *C.VkBindBufferMemoryDeviceGroupInfo { + if x == nil { + return nil + } + return x.reff136b64f +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BindBufferMemoryDeviceGroupInfo) Free() { + if x != nil && x.allocsf136b64f != nil { + x.allocsf136b64f.(*cgoAllocMap).Free() + x.reff136b64f = nil + } +} + +// NewBindBufferMemoryDeviceGroupInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBindBufferMemoryDeviceGroupInfoRef(ref unsafe.Pointer) *BindBufferMemoryDeviceGroupInfo { + if ref == nil { + return nil + } + obj := new(BindBufferMemoryDeviceGroupInfo) + obj.reff136b64f = (*C.VkBindBufferMemoryDeviceGroupInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BindBufferMemoryDeviceGroupInfo) PassRef() (*C.VkBindBufferMemoryDeviceGroupInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff136b64f != nil { + return x.reff136b64f, nil + } + memf136b64f := allocBindBufferMemoryDeviceGroupInfoMemory(1) + reff136b64f := (*C.VkBindBufferMemoryDeviceGroupInfo)(memf136b64f) + allocsf136b64f := new(cgoAllocMap) + allocsf136b64f.Add(memf136b64f) + + var csType_allocs *cgoAllocMap + reff136b64f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf136b64f.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff136b64f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf136b64f.Borrow(cpNext_allocs) + + var cdeviceIndexCount_allocs *cgoAllocMap + reff136b64f.deviceIndexCount, cdeviceIndexCount_allocs = (C.uint32_t)(x.DeviceIndexCount), cgoAllocsUnknown + allocsf136b64f.Borrow(cdeviceIndexCount_allocs) + + var cpDeviceIndices_allocs *cgoAllocMap + reff136b64f.pDeviceIndices, cpDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)).Data)), cgoAllocsUnknown + allocsf136b64f.Borrow(cpDeviceIndices_allocs) + + x.reff136b64f = reff136b64f + x.allocsf136b64f = allocsf136b64f + return reff136b64f, allocsf136b64f + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BindBufferMemoryDeviceGroupInfo) PassValue() (C.VkBindBufferMemoryDeviceGroupInfo, *cgoAllocMap) { + if x.reff136b64f != nil { + return *x.reff136b64f, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BindBufferMemoryDeviceGroupInfo) Deref() { + if x.reff136b64f == nil { + return + } + x.SType = (StructureType)(x.reff136b64f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff136b64f.pNext)) + x.DeviceIndexCount = (uint32)(x.reff136b64f.deviceIndexCount) + hxfe53d34 := (*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)) + hxfe53d34.Data = unsafe.Pointer(x.reff136b64f.pDeviceIndices) + hxfe53d34.Cap = 0x7fffffff + // hxfe53d34.Len = ? + +} + +// allocBindImageMemoryDeviceGroupInfoMemory allocates memory for type C.VkBindImageMemoryDeviceGroupInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBindImageMemoryDeviceGroupInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindImageMemoryDeviceGroupInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBindImageMemoryDeviceGroupInfoValue = unsafe.Sizeof([1]C.VkBindImageMemoryDeviceGroupInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BindImageMemoryDeviceGroupInfo) Ref() *C.VkBindImageMemoryDeviceGroupInfo { + if x == nil { + return nil + } + return x.ref24f026a5 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BindImageMemoryDeviceGroupInfo) Free() { + if x != nil && x.allocs24f026a5 != nil { + x.allocs24f026a5.(*cgoAllocMap).Free() + x.ref24f026a5 = nil + } +} + +// NewBindImageMemoryDeviceGroupInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBindImageMemoryDeviceGroupInfoRef(ref unsafe.Pointer) *BindImageMemoryDeviceGroupInfo { + if ref == nil { + return nil + } + obj := new(BindImageMemoryDeviceGroupInfo) + obj.ref24f026a5 = (*C.VkBindImageMemoryDeviceGroupInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BindImageMemoryDeviceGroupInfo) PassRef() (*C.VkBindImageMemoryDeviceGroupInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref24f026a5 != nil { + return x.ref24f026a5, nil + } + mem24f026a5 := allocBindImageMemoryDeviceGroupInfoMemory(1) + ref24f026a5 := (*C.VkBindImageMemoryDeviceGroupInfo)(mem24f026a5) + allocs24f026a5 := new(cgoAllocMap) + allocs24f026a5.Add(mem24f026a5) + + var csType_allocs *cgoAllocMap + ref24f026a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs24f026a5.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref24f026a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs24f026a5.Borrow(cpNext_allocs) + + var cdeviceIndexCount_allocs *cgoAllocMap + ref24f026a5.deviceIndexCount, cdeviceIndexCount_allocs = (C.uint32_t)(x.DeviceIndexCount), cgoAllocsUnknown + allocs24f026a5.Borrow(cdeviceIndexCount_allocs) + + var cpDeviceIndices_allocs *cgoAllocMap + ref24f026a5.pDeviceIndices, cpDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)).Data)), cgoAllocsUnknown + allocs24f026a5.Borrow(cpDeviceIndices_allocs) + + var csplitInstanceBindRegionCount_allocs *cgoAllocMap + ref24f026a5.splitInstanceBindRegionCount, csplitInstanceBindRegionCount_allocs = (C.uint32_t)(x.SplitInstanceBindRegionCount), cgoAllocsUnknown + allocs24f026a5.Borrow(csplitInstanceBindRegionCount_allocs) + + var cpSplitInstanceBindRegions_allocs *cgoAllocMap + ref24f026a5.pSplitInstanceBindRegions, cpSplitInstanceBindRegions_allocs = unpackSRect2D(x.PSplitInstanceBindRegions) + allocs24f026a5.Borrow(cpSplitInstanceBindRegions_allocs) + + x.ref24f026a5 = ref24f026a5 + x.allocs24f026a5 = allocs24f026a5 + return ref24f026a5, allocs24f026a5 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BindImageMemoryDeviceGroupInfo) PassValue() (C.VkBindImageMemoryDeviceGroupInfo, *cgoAllocMap) { + if x.ref24f026a5 != nil { + return *x.ref24f026a5, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BindImageMemoryDeviceGroupInfo) Deref() { + if x.ref24f026a5 == nil { + return + } + x.SType = (StructureType)(x.ref24f026a5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref24f026a5.pNext)) + x.DeviceIndexCount = (uint32)(x.ref24f026a5.deviceIndexCount) + hxf547023 := (*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)) + hxf547023.Data = unsafe.Pointer(x.ref24f026a5.pDeviceIndices) + hxf547023.Cap = 0x7fffffff + // hxf547023.Len = ? + + x.SplitInstanceBindRegionCount = (uint32)(x.ref24f026a5.splitInstanceBindRegionCount) + packSRect2D(x.PSplitInstanceBindRegions, x.ref24f026a5.pSplitInstanceBindRegions) +} + +// allocPhysicalDeviceGroupPropertiesMemory allocates memory for type C.VkPhysicalDeviceGroupProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceGroupPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGroupPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceGroupPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGroupProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceGroupProperties) Ref() *C.VkPhysicalDeviceGroupProperties { + if x == nil { + return nil + } + return x.ref2aa9a663 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceGroupProperties) Free() { + if x != nil && x.allocs2aa9a663 != nil { + x.allocs2aa9a663.(*cgoAllocMap).Free() + x.ref2aa9a663 = nil + } +} + +// NewPhysicalDeviceGroupPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceGroupPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceGroupProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceGroupProperties) + obj.ref2aa9a663 = (*C.VkPhysicalDeviceGroupProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceGroupProperties) PassRef() (*C.VkPhysicalDeviceGroupProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2aa9a663 != nil { + return x.ref2aa9a663, nil + } + mem2aa9a663 := allocPhysicalDeviceGroupPropertiesMemory(1) + ref2aa9a663 := (*C.VkPhysicalDeviceGroupProperties)(mem2aa9a663) + allocs2aa9a663 := new(cgoAllocMap) + allocs2aa9a663.Add(mem2aa9a663) + + var csType_allocs *cgoAllocMap + ref2aa9a663.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2aa9a663.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref2aa9a663.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2aa9a663.Borrow(cpNext_allocs) + + var cphysicalDeviceCount_allocs *cgoAllocMap + ref2aa9a663.physicalDeviceCount, cphysicalDeviceCount_allocs = (C.uint32_t)(x.PhysicalDeviceCount), cgoAllocsUnknown + allocs2aa9a663.Borrow(cphysicalDeviceCount_allocs) + + var cphysicalDevices_allocs *cgoAllocMap + ref2aa9a663.physicalDevices, cphysicalDevices_allocs = *(*[32]C.VkPhysicalDevice)(unsafe.Pointer(&x.PhysicalDevices)), cgoAllocsUnknown + allocs2aa9a663.Borrow(cphysicalDevices_allocs) + + var csubsetAllocation_allocs *cgoAllocMap + ref2aa9a663.subsetAllocation, csubsetAllocation_allocs = (C.VkBool32)(x.SubsetAllocation), cgoAllocsUnknown + allocs2aa9a663.Borrow(csubsetAllocation_allocs) + + x.ref2aa9a663 = ref2aa9a663 + x.allocs2aa9a663 = allocs2aa9a663 + return ref2aa9a663, allocs2aa9a663 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceGroupProperties) PassValue() (C.VkPhysicalDeviceGroupProperties, *cgoAllocMap) { + if x.ref2aa9a663 != nil { + return *x.ref2aa9a663, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceGroupProperties) Deref() { + if x.ref2aa9a663 == nil { + return + } + x.SType = (StructureType)(x.ref2aa9a663.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2aa9a663.pNext)) + x.PhysicalDeviceCount = (uint32)(x.ref2aa9a663.physicalDeviceCount) + x.PhysicalDevices = *(*[32]PhysicalDevice)(unsafe.Pointer(&x.ref2aa9a663.physicalDevices)) + x.SubsetAllocation = (Bool32)(x.ref2aa9a663.subsetAllocation) +} + +// allocDeviceGroupDeviceCreateInfoMemory allocates memory for type C.VkDeviceGroupDeviceCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceGroupDeviceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupDeviceCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDeviceGroupDeviceCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupDeviceCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DeviceGroupDeviceCreateInfo) Ref() *C.VkDeviceGroupDeviceCreateInfo { + if x == nil { + return nil + } + return x.refb2275723 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DeviceGroupDeviceCreateInfo) Free() { + if x != nil && x.allocsb2275723 != nil { + x.allocsb2275723.(*cgoAllocMap).Free() + x.refb2275723 = nil + } +} + +// NewDeviceGroupDeviceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDeviceGroupDeviceCreateInfoRef(ref unsafe.Pointer) *DeviceGroupDeviceCreateInfo { + if ref == nil { + return nil + } + obj := new(DeviceGroupDeviceCreateInfo) + obj.refb2275723 = (*C.VkDeviceGroupDeviceCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DeviceGroupDeviceCreateInfo) PassRef() (*C.VkDeviceGroupDeviceCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb2275723 != nil { + return x.refb2275723, nil + } + memb2275723 := allocDeviceGroupDeviceCreateInfoMemory(1) + refb2275723 := (*C.VkDeviceGroupDeviceCreateInfo)(memb2275723) + allocsb2275723 := new(cgoAllocMap) + allocsb2275723.Add(memb2275723) + + var csType_allocs *cgoAllocMap + refb2275723.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb2275723.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb2275723.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb2275723.Borrow(cpNext_allocs) + + var cphysicalDeviceCount_allocs *cgoAllocMap + refb2275723.physicalDeviceCount, cphysicalDeviceCount_allocs = (C.uint32_t)(x.PhysicalDeviceCount), cgoAllocsUnknown + allocsb2275723.Borrow(cphysicalDeviceCount_allocs) + + var cpPhysicalDevices_allocs *cgoAllocMap + refb2275723.pPhysicalDevices, cpPhysicalDevices_allocs = (*C.VkPhysicalDevice)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPhysicalDevices)).Data)), cgoAllocsUnknown + allocsb2275723.Borrow(cpPhysicalDevices_allocs) + + x.refb2275723 = refb2275723 + x.allocsb2275723 = allocsb2275723 + return refb2275723, allocsb2275723 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DeviceGroupDeviceCreateInfo) PassValue() (C.VkDeviceGroupDeviceCreateInfo, *cgoAllocMap) { + if x.refb2275723 != nil { + return *x.refb2275723, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DeviceGroupDeviceCreateInfo) Deref() { + if x.refb2275723 == nil { + return + } + x.SType = (StructureType)(x.refb2275723.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb2275723.pNext)) + x.PhysicalDeviceCount = (uint32)(x.refb2275723.physicalDeviceCount) + hxf5ebb88 := (*sliceHeader)(unsafe.Pointer(&x.PPhysicalDevices)) + hxf5ebb88.Data = unsafe.Pointer(x.refb2275723.pPhysicalDevices) + hxf5ebb88.Cap = 0x7fffffff + // hxf5ebb88.Len = ? + +} + +// allocBufferMemoryRequirementsInfo2Memory allocates memory for type C.VkBufferMemoryRequirementsInfo2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferMemoryRequirementsInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferMemoryRequirementsInfo2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBufferMemoryRequirementsInfo2Value = unsafe.Sizeof([1]C.VkBufferMemoryRequirementsInfo2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BufferMemoryRequirementsInfo2) Ref() *C.VkBufferMemoryRequirementsInfo2 { + if x == nil { + return nil + } + return x.reff54a2a42 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BufferMemoryRequirementsInfo2) Free() { + if x != nil && x.allocsf54a2a42 != nil { + x.allocsf54a2a42.(*cgoAllocMap).Free() + x.reff54a2a42 = nil + } +} + +// NewBufferMemoryRequirementsInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBufferMemoryRequirementsInfo2Ref(ref unsafe.Pointer) *BufferMemoryRequirementsInfo2 { + if ref == nil { + return nil + } + obj := new(BufferMemoryRequirementsInfo2) + obj.reff54a2a42 = (*C.VkBufferMemoryRequirementsInfo2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BufferMemoryRequirementsInfo2) PassRef() (*C.VkBufferMemoryRequirementsInfo2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff54a2a42 != nil { + return x.reff54a2a42, nil + } + memf54a2a42 := allocBufferMemoryRequirementsInfo2Memory(1) + reff54a2a42 := (*C.VkBufferMemoryRequirementsInfo2)(memf54a2a42) + allocsf54a2a42 := new(cgoAllocMap) + allocsf54a2a42.Add(memf54a2a42) + + var csType_allocs *cgoAllocMap + reff54a2a42.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf54a2a42.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff54a2a42.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf54a2a42.Borrow(cpNext_allocs) + + var cbuffer_allocs *cgoAllocMap + reff54a2a42.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocsf54a2a42.Borrow(cbuffer_allocs) + + x.reff54a2a42 = reff54a2a42 + x.allocsf54a2a42 = allocsf54a2a42 + return reff54a2a42, allocsf54a2a42 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BufferMemoryRequirementsInfo2) PassValue() (C.VkBufferMemoryRequirementsInfo2, *cgoAllocMap) { + if x.reff54a2a42 != nil { + return *x.reff54a2a42, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BufferMemoryRequirementsInfo2) Deref() { + if x.reff54a2a42 == nil { + return + } + x.SType = (StructureType)(x.reff54a2a42.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff54a2a42.pNext)) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.reff54a2a42.buffer)) +} + +// allocImageMemoryRequirementsInfo2Memory allocates memory for type C.VkImageMemoryRequirementsInfo2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageMemoryRequirementsInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageMemoryRequirementsInfo2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageMemoryRequirementsInfo2Value = unsafe.Sizeof([1]C.VkImageMemoryRequirementsInfo2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageMemoryRequirementsInfo2) Ref() *C.VkImageMemoryRequirementsInfo2 { + if x == nil { + return nil + } + return x.ref75b3ca05 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageMemoryRequirementsInfo2) Free() { + if x != nil && x.allocs75b3ca05 != nil { + x.allocs75b3ca05.(*cgoAllocMap).Free() + x.ref75b3ca05 = nil + } +} + +// NewImageMemoryRequirementsInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageMemoryRequirementsInfo2Ref(ref unsafe.Pointer) *ImageMemoryRequirementsInfo2 { + if ref == nil { + return nil + } + obj := new(ImageMemoryRequirementsInfo2) + obj.ref75b3ca05 = (*C.VkImageMemoryRequirementsInfo2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageMemoryRequirementsInfo2) PassRef() (*C.VkImageMemoryRequirementsInfo2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref75b3ca05 != nil { + return x.ref75b3ca05, nil + } + mem75b3ca05 := allocImageMemoryRequirementsInfo2Memory(1) + ref75b3ca05 := (*C.VkImageMemoryRequirementsInfo2)(mem75b3ca05) + allocs75b3ca05 := new(cgoAllocMap) + allocs75b3ca05.Add(mem75b3ca05) + + var csType_allocs *cgoAllocMap + ref75b3ca05.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs75b3ca05.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref75b3ca05.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs75b3ca05.Borrow(cpNext_allocs) + + var cimage_allocs *cgoAllocMap + ref75b3ca05.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocs75b3ca05.Borrow(cimage_allocs) + + x.ref75b3ca05 = ref75b3ca05 + x.allocs75b3ca05 = allocs75b3ca05 + return ref75b3ca05, allocs75b3ca05 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageMemoryRequirementsInfo2) PassValue() (C.VkImageMemoryRequirementsInfo2, *cgoAllocMap) { + if x.ref75b3ca05 != nil { + return *x.ref75b3ca05, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageMemoryRequirementsInfo2) Deref() { + if x.ref75b3ca05 == nil { + return + } + x.SType = (StructureType)(x.ref75b3ca05.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref75b3ca05.pNext)) + x.Image = *(*Image)(unsafe.Pointer(&x.ref75b3ca05.image)) +} + +// allocImageSparseMemoryRequirementsInfo2Memory allocates memory for type C.VkImageSparseMemoryRequirementsInfo2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageSparseMemoryRequirementsInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSparseMemoryRequirementsInfo2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageSparseMemoryRequirementsInfo2Value = unsafe.Sizeof([1]C.VkImageSparseMemoryRequirementsInfo2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageSparseMemoryRequirementsInfo2) Ref() *C.VkImageSparseMemoryRequirementsInfo2 { + if x == nil { + return nil + } + return x.ref878956f7 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageSparseMemoryRequirementsInfo2) Free() { + if x != nil && x.allocs878956f7 != nil { + x.allocs878956f7.(*cgoAllocMap).Free() + x.ref878956f7 = nil + } +} + +// NewImageSparseMemoryRequirementsInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageSparseMemoryRequirementsInfo2Ref(ref unsafe.Pointer) *ImageSparseMemoryRequirementsInfo2 { + if ref == nil { + return nil + } + obj := new(ImageSparseMemoryRequirementsInfo2) + obj.ref878956f7 = (*C.VkImageSparseMemoryRequirementsInfo2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageSparseMemoryRequirementsInfo2) PassRef() (*C.VkImageSparseMemoryRequirementsInfo2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref878956f7 != nil { + return x.ref878956f7, nil + } + mem878956f7 := allocImageSparseMemoryRequirementsInfo2Memory(1) + ref878956f7 := (*C.VkImageSparseMemoryRequirementsInfo2)(mem878956f7) + allocs878956f7 := new(cgoAllocMap) + allocs878956f7.Add(mem878956f7) + + var csType_allocs *cgoAllocMap + ref878956f7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs878956f7.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref878956f7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs878956f7.Borrow(cpNext_allocs) + + var cimage_allocs *cgoAllocMap + ref878956f7.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocs878956f7.Borrow(cimage_allocs) + + x.ref878956f7 = ref878956f7 + x.allocs878956f7 = allocs878956f7 + return ref878956f7, allocs878956f7 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageSparseMemoryRequirementsInfo2) PassValue() (C.VkImageSparseMemoryRequirementsInfo2, *cgoAllocMap) { + if x.ref878956f7 != nil { + return *x.ref878956f7, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageSparseMemoryRequirementsInfo2) Deref() { + if x.ref878956f7 == nil { + return + } + x.SType = (StructureType)(x.ref878956f7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref878956f7.pNext)) + x.Image = *(*Image)(unsafe.Pointer(&x.ref878956f7.image)) +} + +// allocMemoryRequirements2Memory allocates memory for type C.VkMemoryRequirements2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryRequirements2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryRequirements2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryRequirements2Value = unsafe.Sizeof([1]C.VkMemoryRequirements2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryRequirements2) Ref() *C.VkMemoryRequirements2 { + if x == nil { + return nil + } + return x.refc0e75f21 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryRequirements2) Free() { + if x != nil && x.allocsc0e75f21 != nil { + x.allocsc0e75f21.(*cgoAllocMap).Free() + x.refc0e75f21 = nil + } +} + +// NewMemoryRequirements2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryRequirements2Ref(ref unsafe.Pointer) *MemoryRequirements2 { + if ref == nil { + return nil + } + obj := new(MemoryRequirements2) + obj.refc0e75f21 = (*C.VkMemoryRequirements2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryRequirements2) PassRef() (*C.VkMemoryRequirements2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc0e75f21 != nil { + return x.refc0e75f21, nil + } + memc0e75f21 := allocMemoryRequirements2Memory(1) + refc0e75f21 := (*C.VkMemoryRequirements2)(memc0e75f21) + allocsc0e75f21 := new(cgoAllocMap) + allocsc0e75f21.Add(memc0e75f21) + + var csType_allocs *cgoAllocMap + refc0e75f21.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc0e75f21.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc0e75f21.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc0e75f21.Borrow(cpNext_allocs) + + var cmemoryRequirements_allocs *cgoAllocMap + refc0e75f21.memoryRequirements, cmemoryRequirements_allocs = x.MemoryRequirements.PassValue() + allocsc0e75f21.Borrow(cmemoryRequirements_allocs) + + x.refc0e75f21 = refc0e75f21 + x.allocsc0e75f21 = allocsc0e75f21 + return refc0e75f21, allocsc0e75f21 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryRequirements2) PassValue() (C.VkMemoryRequirements2, *cgoAllocMap) { + if x.refc0e75f21 != nil { + return *x.refc0e75f21, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryRequirements2) Deref() { + if x.refc0e75f21 == nil { + return + } + x.SType = (StructureType)(x.refc0e75f21.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc0e75f21.pNext)) + x.MemoryRequirements = *NewMemoryRequirementsRef(unsafe.Pointer(&x.refc0e75f21.memoryRequirements)) +} + +// allocSparseImageMemoryRequirements2Memory allocates memory for type C.VkSparseImageMemoryRequirements2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSparseImageMemoryRequirements2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageMemoryRequirements2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSparseImageMemoryRequirements2Value = unsafe.Sizeof([1]C.VkSparseImageMemoryRequirements2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SparseImageMemoryRequirements2) Ref() *C.VkSparseImageMemoryRequirements2 { + if x == nil { + return nil + } + return x.refb8da955c +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SparseImageMemoryRequirements2) Free() { + if x != nil && x.allocsb8da955c != nil { + x.allocsb8da955c.(*cgoAllocMap).Free() + x.refb8da955c = nil + } +} + +// NewSparseImageMemoryRequirements2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSparseImageMemoryRequirements2Ref(ref unsafe.Pointer) *SparseImageMemoryRequirements2 { + if ref == nil { + return nil + } + obj := new(SparseImageMemoryRequirements2) + obj.refb8da955c = (*C.VkSparseImageMemoryRequirements2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SparseImageMemoryRequirements2) PassRef() (*C.VkSparseImageMemoryRequirements2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb8da955c != nil { + return x.refb8da955c, nil + } + memb8da955c := allocSparseImageMemoryRequirements2Memory(1) + refb8da955c := (*C.VkSparseImageMemoryRequirements2)(memb8da955c) + allocsb8da955c := new(cgoAllocMap) + allocsb8da955c.Add(memb8da955c) + + var csType_allocs *cgoAllocMap + refb8da955c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb8da955c.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb8da955c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb8da955c.Borrow(cpNext_allocs) + + var cmemoryRequirements_allocs *cgoAllocMap + refb8da955c.memoryRequirements, cmemoryRequirements_allocs = x.MemoryRequirements.PassValue() + allocsb8da955c.Borrow(cmemoryRequirements_allocs) + + x.refb8da955c = refb8da955c + x.allocsb8da955c = allocsb8da955c + return refb8da955c, allocsb8da955c + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SparseImageMemoryRequirements2) PassValue() (C.VkSparseImageMemoryRequirements2, *cgoAllocMap) { + if x.refb8da955c != nil { + return *x.refb8da955c, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SparseImageMemoryRequirements2) Deref() { + if x.refb8da955c == nil { + return + } + x.SType = (StructureType)(x.refb8da955c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8da955c.pNext)) + x.MemoryRequirements = *NewSparseImageMemoryRequirementsRef(unsafe.Pointer(&x.refb8da955c.memoryRequirements)) +} + +// allocPhysicalDeviceFeatures2Memory allocates memory for type C.VkPhysicalDeviceFeatures2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceFeatures2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFeatures2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceFeatures2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceFeatures2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceFeatures2) Ref() *C.VkPhysicalDeviceFeatures2 { + if x == nil { + return nil + } + return x.refff6ed04 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceFeatures2) Free() { + if x != nil && x.allocsff6ed04 != nil { + x.allocsff6ed04.(*cgoAllocMap).Free() + x.refff6ed04 = nil + } +} + +// NewPhysicalDeviceFeatures2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceFeatures2Ref(ref unsafe.Pointer) *PhysicalDeviceFeatures2 { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceFeatures2) + obj.refff6ed04 = (*C.VkPhysicalDeviceFeatures2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceFeatures2) PassRef() (*C.VkPhysicalDeviceFeatures2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refff6ed04 != nil { + return x.refff6ed04, nil + } + memff6ed04 := allocPhysicalDeviceFeatures2Memory(1) + refff6ed04 := (*C.VkPhysicalDeviceFeatures2)(memff6ed04) + allocsff6ed04 := new(cgoAllocMap) + allocsff6ed04.Add(memff6ed04) + + var csType_allocs *cgoAllocMap + refff6ed04.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsff6ed04.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refff6ed04.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsff6ed04.Borrow(cpNext_allocs) + + var cfeatures_allocs *cgoAllocMap + refff6ed04.features, cfeatures_allocs = x.Features.PassValue() + allocsff6ed04.Borrow(cfeatures_allocs) + + x.refff6ed04 = refff6ed04 + x.allocsff6ed04 = allocsff6ed04 + return refff6ed04, allocsff6ed04 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceFeatures2) PassValue() (C.VkPhysicalDeviceFeatures2, *cgoAllocMap) { + if x.refff6ed04 != nil { + return *x.refff6ed04, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceFeatures2) Deref() { + if x.refff6ed04 == nil { + return + } + x.SType = (StructureType)(x.refff6ed04.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refff6ed04.pNext)) + x.Features = *NewPhysicalDeviceFeaturesRef(unsafe.Pointer(&x.refff6ed04.features)) +} + +// allocPhysicalDeviceProperties2Memory allocates memory for type C.VkPhysicalDeviceProperties2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProperties2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceProperties2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceProperties2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceProperties2) Ref() *C.VkPhysicalDeviceProperties2 { + if x == nil { + return nil + } + return x.ref947bd13e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceProperties2) Free() { + if x != nil && x.allocs947bd13e != nil { + x.allocs947bd13e.(*cgoAllocMap).Free() + x.ref947bd13e = nil + } +} + +// NewPhysicalDeviceProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceProperties2Ref(ref unsafe.Pointer) *PhysicalDeviceProperties2 { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceProperties2) + obj.ref947bd13e = (*C.VkPhysicalDeviceProperties2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceProperties2) PassRef() (*C.VkPhysicalDeviceProperties2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref947bd13e != nil { + return x.ref947bd13e, nil + } + mem947bd13e := allocPhysicalDeviceProperties2Memory(1) + ref947bd13e := (*C.VkPhysicalDeviceProperties2)(mem947bd13e) + allocs947bd13e := new(cgoAllocMap) + allocs947bd13e.Add(mem947bd13e) + + var csType_allocs *cgoAllocMap + ref947bd13e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs947bd13e.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref947bd13e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs947bd13e.Borrow(cpNext_allocs) + + var cproperties_allocs *cgoAllocMap + ref947bd13e.properties, cproperties_allocs = x.Properties.PassValue() + allocs947bd13e.Borrow(cproperties_allocs) + + x.ref947bd13e = ref947bd13e + x.allocs947bd13e = allocs947bd13e + return ref947bd13e, allocs947bd13e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceProperties2) PassValue() (C.VkPhysicalDeviceProperties2, *cgoAllocMap) { + if x.ref947bd13e != nil { + return *x.ref947bd13e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceProperties2) Deref() { + if x.ref947bd13e == nil { + return + } + x.SType = (StructureType)(x.ref947bd13e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref947bd13e.pNext)) + x.Properties = *NewPhysicalDevicePropertiesRef(unsafe.Pointer(&x.ref947bd13e.properties)) +} + +// allocFormatProperties2Memory allocates memory for type C.VkFormatProperties2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocFormatProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFormatProperties2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfFormatProperties2Value = unsafe.Sizeof([1]C.VkFormatProperties2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *FormatProperties2) Ref() *C.VkFormatProperties2 { + if x == nil { + return nil + } + return x.refddc6af2a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *FormatProperties2) Free() { + if x != nil && x.allocsddc6af2a != nil { + x.allocsddc6af2a.(*cgoAllocMap).Free() + x.refddc6af2a = nil + } +} + +// NewFormatProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewFormatProperties2Ref(ref unsafe.Pointer) *FormatProperties2 { + if ref == nil { + return nil + } + obj := new(FormatProperties2) + obj.refddc6af2a = (*C.VkFormatProperties2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *FormatProperties2) PassRef() (*C.VkFormatProperties2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refddc6af2a != nil { + return x.refddc6af2a, nil + } + memddc6af2a := allocFormatProperties2Memory(1) + refddc6af2a := (*C.VkFormatProperties2)(memddc6af2a) + allocsddc6af2a := new(cgoAllocMap) + allocsddc6af2a.Add(memddc6af2a) + + var csType_allocs *cgoAllocMap + refddc6af2a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsddc6af2a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refddc6af2a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsddc6af2a.Borrow(cpNext_allocs) + + var cformatProperties_allocs *cgoAllocMap + refddc6af2a.formatProperties, cformatProperties_allocs = x.FormatProperties.PassValue() + allocsddc6af2a.Borrow(cformatProperties_allocs) + + x.refddc6af2a = refddc6af2a + x.allocsddc6af2a = allocsddc6af2a + return refddc6af2a, allocsddc6af2a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x FormatProperties2) PassValue() (C.VkFormatProperties2, *cgoAllocMap) { + if x.refddc6af2a != nil { + return *x.refddc6af2a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *FormatProperties2) Deref() { + if x.refddc6af2a == nil { + return + } + x.SType = (StructureType)(x.refddc6af2a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refddc6af2a.pNext)) + x.FormatProperties = *NewFormatPropertiesRef(unsafe.Pointer(&x.refddc6af2a.formatProperties)) +} + +// allocImageFormatProperties2Memory allocates memory for type C.VkImageFormatProperties2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageFormatProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageFormatProperties2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageFormatProperties2Value = unsafe.Sizeof([1]C.VkImageFormatProperties2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageFormatProperties2) Ref() *C.VkImageFormatProperties2 { + if x == nil { + return nil + } + return x.ref224187e7 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageFormatProperties2) Free() { + if x != nil && x.allocs224187e7 != nil { + x.allocs224187e7.(*cgoAllocMap).Free() + x.ref224187e7 = nil + } +} + +// NewImageFormatProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageFormatProperties2Ref(ref unsafe.Pointer) *ImageFormatProperties2 { + if ref == nil { + return nil + } + obj := new(ImageFormatProperties2) + obj.ref224187e7 = (*C.VkImageFormatProperties2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageFormatProperties2) PassRef() (*C.VkImageFormatProperties2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref224187e7 != nil { + return x.ref224187e7, nil + } + mem224187e7 := allocImageFormatProperties2Memory(1) + ref224187e7 := (*C.VkImageFormatProperties2)(mem224187e7) + allocs224187e7 := new(cgoAllocMap) + allocs224187e7.Add(mem224187e7) + + var csType_allocs *cgoAllocMap + ref224187e7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs224187e7.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref224187e7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs224187e7.Borrow(cpNext_allocs) + + var cimageFormatProperties_allocs *cgoAllocMap + ref224187e7.imageFormatProperties, cimageFormatProperties_allocs = x.ImageFormatProperties.PassValue() + allocs224187e7.Borrow(cimageFormatProperties_allocs) + + x.ref224187e7 = ref224187e7 + x.allocs224187e7 = allocs224187e7 + return ref224187e7, allocs224187e7 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageFormatProperties2) PassValue() (C.VkImageFormatProperties2, *cgoAllocMap) { + if x.ref224187e7 != nil { + return *x.ref224187e7, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageFormatProperties2) Deref() { + if x.ref224187e7 == nil { + return + } + x.SType = (StructureType)(x.ref224187e7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref224187e7.pNext)) + x.ImageFormatProperties = *NewImageFormatPropertiesRef(unsafe.Pointer(&x.ref224187e7.imageFormatProperties)) +} + +// allocPhysicalDeviceImageFormatInfo2Memory allocates memory for type C.VkPhysicalDeviceImageFormatInfo2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceImageFormatInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageFormatInfo2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceImageFormatInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceImageFormatInfo2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceImageFormatInfo2) Ref() *C.VkPhysicalDeviceImageFormatInfo2 { + if x == nil { + return nil + } + return x.ref5934b445 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceImageFormatInfo2) Free() { + if x != nil && x.allocs5934b445 != nil { + x.allocs5934b445.(*cgoAllocMap).Free() + x.ref5934b445 = nil + } +} + +// NewPhysicalDeviceImageFormatInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceImageFormatInfo2Ref(ref unsafe.Pointer) *PhysicalDeviceImageFormatInfo2 { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceImageFormatInfo2) + obj.ref5934b445 = (*C.VkPhysicalDeviceImageFormatInfo2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceImageFormatInfo2) PassRef() (*C.VkPhysicalDeviceImageFormatInfo2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5934b445 != nil { + return x.ref5934b445, nil + } + mem5934b445 := allocPhysicalDeviceImageFormatInfo2Memory(1) + ref5934b445 := (*C.VkPhysicalDeviceImageFormatInfo2)(mem5934b445) + allocs5934b445 := new(cgoAllocMap) + allocs5934b445.Add(mem5934b445) + + var csType_allocs *cgoAllocMap + ref5934b445.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5934b445.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5934b445.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5934b445.Borrow(cpNext_allocs) + + var cformat_allocs *cgoAllocMap + ref5934b445.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocs5934b445.Borrow(cformat_allocs) + + var c_type_allocs *cgoAllocMap + ref5934b445._type, c_type_allocs = (C.VkImageType)(x.Type), cgoAllocsUnknown + allocs5934b445.Borrow(c_type_allocs) + + var ctiling_allocs *cgoAllocMap + ref5934b445.tiling, ctiling_allocs = (C.VkImageTiling)(x.Tiling), cgoAllocsUnknown + allocs5934b445.Borrow(ctiling_allocs) + + var cusage_allocs *cgoAllocMap + ref5934b445.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown + allocs5934b445.Borrow(cusage_allocs) + + var cflags_allocs *cgoAllocMap + ref5934b445.flags, cflags_allocs = (C.VkImageCreateFlags)(x.Flags), cgoAllocsUnknown + allocs5934b445.Borrow(cflags_allocs) + + x.ref5934b445 = ref5934b445 + x.allocs5934b445 = allocs5934b445 + return ref5934b445, allocs5934b445 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceImageFormatInfo2) PassValue() (C.VkPhysicalDeviceImageFormatInfo2, *cgoAllocMap) { + if x.ref5934b445 != nil { + return *x.ref5934b445, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceImageFormatInfo2) Deref() { + if x.ref5934b445 == nil { + return + } + x.SType = (StructureType)(x.ref5934b445.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5934b445.pNext)) + x.Format = (Format)(x.ref5934b445.format) + x.Type = (ImageType)(x.ref5934b445._type) + x.Tiling = (ImageTiling)(x.ref5934b445.tiling) + x.Usage = (ImageUsageFlags)(x.ref5934b445.usage) + x.Flags = (ImageCreateFlags)(x.ref5934b445.flags) +} + +// allocQueueFamilyProperties2Memory allocates memory for type C.VkQueueFamilyProperties2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocQueueFamilyProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyProperties2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfQueueFamilyProperties2Value = unsafe.Sizeof([1]C.VkQueueFamilyProperties2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *QueueFamilyProperties2) Ref() *C.VkQueueFamilyProperties2 { + if x == nil { + return nil + } + return x.ref85bf626c +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *QueueFamilyProperties2) Free() { + if x != nil && x.allocs85bf626c != nil { + x.allocs85bf626c.(*cgoAllocMap).Free() + x.ref85bf626c = nil + } +} + +// NewQueueFamilyProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewQueueFamilyProperties2Ref(ref unsafe.Pointer) *QueueFamilyProperties2 { + if ref == nil { + return nil + } + obj := new(QueueFamilyProperties2) + obj.ref85bf626c = (*C.VkQueueFamilyProperties2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *QueueFamilyProperties2) PassRef() (*C.VkQueueFamilyProperties2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref85bf626c != nil { + return x.ref85bf626c, nil + } + mem85bf626c := allocQueueFamilyProperties2Memory(1) + ref85bf626c := (*C.VkQueueFamilyProperties2)(mem85bf626c) + allocs85bf626c := new(cgoAllocMap) + allocs85bf626c.Add(mem85bf626c) + + var csType_allocs *cgoAllocMap + ref85bf626c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs85bf626c.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref85bf626c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs85bf626c.Borrow(cpNext_allocs) + + var cqueueFamilyProperties_allocs *cgoAllocMap + ref85bf626c.queueFamilyProperties, cqueueFamilyProperties_allocs = x.QueueFamilyProperties.PassValue() + allocs85bf626c.Borrow(cqueueFamilyProperties_allocs) + + x.ref85bf626c = ref85bf626c + x.allocs85bf626c = allocs85bf626c + return ref85bf626c, allocs85bf626c + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x QueueFamilyProperties2) PassValue() (C.VkQueueFamilyProperties2, *cgoAllocMap) { + if x.ref85bf626c != nil { + return *x.ref85bf626c, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *QueueFamilyProperties2) Deref() { + if x.ref85bf626c == nil { + return + } + x.SType = (StructureType)(x.ref85bf626c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref85bf626c.pNext)) + x.QueueFamilyProperties = *NewQueueFamilyPropertiesRef(unsafe.Pointer(&x.ref85bf626c.queueFamilyProperties)) +} + +// allocPhysicalDeviceMemoryProperties2Memory allocates memory for type C.VkPhysicalDeviceMemoryProperties2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceMemoryProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryProperties2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceMemoryProperties2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryProperties2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceMemoryProperties2) Ref() *C.VkPhysicalDeviceMemoryProperties2 { + if x == nil { + return nil + } + return x.refd9e39b19 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceMemoryProperties2) Free() { + if x != nil && x.allocsd9e39b19 != nil { + x.allocsd9e39b19.(*cgoAllocMap).Free() + x.refd9e39b19 = nil + } +} + +// NewPhysicalDeviceMemoryProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceMemoryProperties2Ref(ref unsafe.Pointer) *PhysicalDeviceMemoryProperties2 { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceMemoryProperties2) + obj.refd9e39b19 = (*C.VkPhysicalDeviceMemoryProperties2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceMemoryProperties2) PassRef() (*C.VkPhysicalDeviceMemoryProperties2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd9e39b19 != nil { + return x.refd9e39b19, nil + } + memd9e39b19 := allocPhysicalDeviceMemoryProperties2Memory(1) + refd9e39b19 := (*C.VkPhysicalDeviceMemoryProperties2)(memd9e39b19) + allocsd9e39b19 := new(cgoAllocMap) + allocsd9e39b19.Add(memd9e39b19) + + var csType_allocs *cgoAllocMap + refd9e39b19.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd9e39b19.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd9e39b19.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd9e39b19.Borrow(cpNext_allocs) + + var cmemoryProperties_allocs *cgoAllocMap + refd9e39b19.memoryProperties, cmemoryProperties_allocs = x.MemoryProperties.PassValue() + allocsd9e39b19.Borrow(cmemoryProperties_allocs) + + x.refd9e39b19 = refd9e39b19 + x.allocsd9e39b19 = allocsd9e39b19 + return refd9e39b19, allocsd9e39b19 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceMemoryProperties2) PassValue() (C.VkPhysicalDeviceMemoryProperties2, *cgoAllocMap) { + if x.refd9e39b19 != nil { + return *x.refd9e39b19, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceMemoryProperties2) Deref() { + if x.refd9e39b19 == nil { + return + } + x.SType = (StructureType)(x.refd9e39b19.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd9e39b19.pNext)) + x.MemoryProperties = *NewPhysicalDeviceMemoryPropertiesRef(unsafe.Pointer(&x.refd9e39b19.memoryProperties)) +} + +// allocSparseImageFormatProperties2Memory allocates memory for type C.VkSparseImageFormatProperties2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSparseImageFormatProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageFormatProperties2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSparseImageFormatProperties2Value = unsafe.Sizeof([1]C.VkSparseImageFormatProperties2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SparseImageFormatProperties2) Ref() *C.VkSparseImageFormatProperties2 { + if x == nil { + return nil + } + return x.ref6b48294b +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SparseImageFormatProperties2) Free() { + if x != nil && x.allocs6b48294b != nil { + x.allocs6b48294b.(*cgoAllocMap).Free() + x.ref6b48294b = nil + } +} + +// NewSparseImageFormatProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSparseImageFormatProperties2Ref(ref unsafe.Pointer) *SparseImageFormatProperties2 { + if ref == nil { + return nil + } + obj := new(SparseImageFormatProperties2) + obj.ref6b48294b = (*C.VkSparseImageFormatProperties2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SparseImageFormatProperties2) PassRef() (*C.VkSparseImageFormatProperties2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref6b48294b != nil { + return x.ref6b48294b, nil + } + mem6b48294b := allocSparseImageFormatProperties2Memory(1) + ref6b48294b := (*C.VkSparseImageFormatProperties2)(mem6b48294b) + allocs6b48294b := new(cgoAllocMap) + allocs6b48294b.Add(mem6b48294b) + + var csType_allocs *cgoAllocMap + ref6b48294b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6b48294b.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref6b48294b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6b48294b.Borrow(cpNext_allocs) + + var cproperties_allocs *cgoAllocMap + ref6b48294b.properties, cproperties_allocs = x.Properties.PassValue() + allocs6b48294b.Borrow(cproperties_allocs) + + x.ref6b48294b = ref6b48294b + x.allocs6b48294b = allocs6b48294b + return ref6b48294b, allocs6b48294b + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SparseImageFormatProperties2) PassValue() (C.VkSparseImageFormatProperties2, *cgoAllocMap) { + if x.ref6b48294b != nil { + return *x.ref6b48294b, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SparseImageFormatProperties2) Deref() { + if x.ref6b48294b == nil { + return + } + x.SType = (StructureType)(x.ref6b48294b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6b48294b.pNext)) + x.Properties = *NewSparseImageFormatPropertiesRef(unsafe.Pointer(&x.ref6b48294b.properties)) +} + +// allocPhysicalDeviceSparseImageFormatInfo2Memory allocates memory for type C.VkPhysicalDeviceSparseImageFormatInfo2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceSparseImageFormatInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSparseImageFormatInfo2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceSparseImageFormatInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceSparseImageFormatInfo2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceSparseImageFormatInfo2) Ref() *C.VkPhysicalDeviceSparseImageFormatInfo2 { + if x == nil { + return nil + } + return x.ref566d5513 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceSparseImageFormatInfo2) Free() { + if x != nil && x.allocs566d5513 != nil { + x.allocs566d5513.(*cgoAllocMap).Free() + x.ref566d5513 = nil + } +} + +// NewPhysicalDeviceSparseImageFormatInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceSparseImageFormatInfo2Ref(ref unsafe.Pointer) *PhysicalDeviceSparseImageFormatInfo2 { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceSparseImageFormatInfo2) + obj.ref566d5513 = (*C.VkPhysicalDeviceSparseImageFormatInfo2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceSparseImageFormatInfo2) PassRef() (*C.VkPhysicalDeviceSparseImageFormatInfo2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref566d5513 != nil { + return x.ref566d5513, nil + } + mem566d5513 := allocPhysicalDeviceSparseImageFormatInfo2Memory(1) + ref566d5513 := (*C.VkPhysicalDeviceSparseImageFormatInfo2)(mem566d5513) + allocs566d5513 := new(cgoAllocMap) + allocs566d5513.Add(mem566d5513) + + var csType_allocs *cgoAllocMap + ref566d5513.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs566d5513.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref566d5513.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs566d5513.Borrow(cpNext_allocs) + + var cformat_allocs *cgoAllocMap + ref566d5513.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocs566d5513.Borrow(cformat_allocs) + + var c_type_allocs *cgoAllocMap + ref566d5513._type, c_type_allocs = (C.VkImageType)(x.Type), cgoAllocsUnknown + allocs566d5513.Borrow(c_type_allocs) + + var csamples_allocs *cgoAllocMap + ref566d5513.samples, csamples_allocs = (C.VkSampleCountFlagBits)(x.Samples), cgoAllocsUnknown + allocs566d5513.Borrow(csamples_allocs) + + var cusage_allocs *cgoAllocMap + ref566d5513.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown + allocs566d5513.Borrow(cusage_allocs) + + var ctiling_allocs *cgoAllocMap + ref566d5513.tiling, ctiling_allocs = (C.VkImageTiling)(x.Tiling), cgoAllocsUnknown + allocs566d5513.Borrow(ctiling_allocs) + + x.ref566d5513 = ref566d5513 + x.allocs566d5513 = allocs566d5513 + return ref566d5513, allocs566d5513 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceSparseImageFormatInfo2) PassValue() (C.VkPhysicalDeviceSparseImageFormatInfo2, *cgoAllocMap) { + if x.ref566d5513 != nil { + return *x.ref566d5513, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceSparseImageFormatInfo2) Deref() { + if x.ref566d5513 == nil { + return + } + x.SType = (StructureType)(x.ref566d5513.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref566d5513.pNext)) + x.Format = (Format)(x.ref566d5513.format) + x.Type = (ImageType)(x.ref566d5513._type) + x.Samples = (SampleCountFlagBits)(x.ref566d5513.samples) + x.Usage = (ImageUsageFlags)(x.ref566d5513.usage) + x.Tiling = (ImageTiling)(x.ref566d5513.tiling) +} + +// allocPhysicalDevicePointClippingPropertiesMemory allocates memory for type C.VkPhysicalDevicePointClippingProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDevicePointClippingPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePointClippingPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDevicePointClippingPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePointClippingProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDevicePointClippingProperties) Ref() *C.VkPhysicalDevicePointClippingProperties { + if x == nil { + return nil + } + return x.ref5afbd22f +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDevicePointClippingProperties) Free() { + if x != nil && x.allocs5afbd22f != nil { + x.allocs5afbd22f.(*cgoAllocMap).Free() + x.ref5afbd22f = nil + } +} + +// NewPhysicalDevicePointClippingPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDevicePointClippingPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePointClippingProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDevicePointClippingProperties) + obj.ref5afbd22f = (*C.VkPhysicalDevicePointClippingProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDevicePointClippingProperties) PassRef() (*C.VkPhysicalDevicePointClippingProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5afbd22f != nil { + return x.ref5afbd22f, nil + } + mem5afbd22f := allocPhysicalDevicePointClippingPropertiesMemory(1) + ref5afbd22f := (*C.VkPhysicalDevicePointClippingProperties)(mem5afbd22f) + allocs5afbd22f := new(cgoAllocMap) + allocs5afbd22f.Add(mem5afbd22f) + + var csType_allocs *cgoAllocMap + ref5afbd22f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5afbd22f.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5afbd22f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5afbd22f.Borrow(cpNext_allocs) + + var cpointClippingBehavior_allocs *cgoAllocMap + ref5afbd22f.pointClippingBehavior, cpointClippingBehavior_allocs = (C.VkPointClippingBehavior)(x.PointClippingBehavior), cgoAllocsUnknown + allocs5afbd22f.Borrow(cpointClippingBehavior_allocs) + + x.ref5afbd22f = ref5afbd22f + x.allocs5afbd22f = allocs5afbd22f + return ref5afbd22f, allocs5afbd22f + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDevicePointClippingProperties) PassValue() (C.VkPhysicalDevicePointClippingProperties, *cgoAllocMap) { + if x.ref5afbd22f != nil { + return *x.ref5afbd22f, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDevicePointClippingProperties) Deref() { + if x.ref5afbd22f == nil { + return + } + x.SType = (StructureType)(x.ref5afbd22f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5afbd22f.pNext)) + x.PointClippingBehavior = (PointClippingBehavior)(x.ref5afbd22f.pointClippingBehavior) +} + +// allocInputAttachmentAspectReferenceMemory allocates memory for type C.VkInputAttachmentAspectReference in C. +// The caller is responsible for freeing the this memory via C.free. +func allocInputAttachmentAspectReferenceMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfInputAttachmentAspectReferenceValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfInputAttachmentAspectReferenceValue = unsafe.Sizeof([1]C.VkInputAttachmentAspectReference{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *InputAttachmentAspectReference) Ref() *C.VkInputAttachmentAspectReference { + if x == nil { + return nil + } + return x.ref4f7194e6 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *InputAttachmentAspectReference) Free() { + if x != nil && x.allocs4f7194e6 != nil { + x.allocs4f7194e6.(*cgoAllocMap).Free() + x.ref4f7194e6 = nil + } +} + +// NewInputAttachmentAspectReferenceRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewInputAttachmentAspectReferenceRef(ref unsafe.Pointer) *InputAttachmentAspectReference { + if ref == nil { + return nil + } + obj := new(InputAttachmentAspectReference) + obj.ref4f7194e6 = (*C.VkInputAttachmentAspectReference)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *InputAttachmentAspectReference) PassRef() (*C.VkInputAttachmentAspectReference, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4f7194e6 != nil { + return x.ref4f7194e6, nil + } + mem4f7194e6 := allocInputAttachmentAspectReferenceMemory(1) + ref4f7194e6 := (*C.VkInputAttachmentAspectReference)(mem4f7194e6) + allocs4f7194e6 := new(cgoAllocMap) + allocs4f7194e6.Add(mem4f7194e6) + + var csubpass_allocs *cgoAllocMap + ref4f7194e6.subpass, csubpass_allocs = (C.uint32_t)(x.Subpass), cgoAllocsUnknown + allocs4f7194e6.Borrow(csubpass_allocs) + + var cinputAttachmentIndex_allocs *cgoAllocMap + ref4f7194e6.inputAttachmentIndex, cinputAttachmentIndex_allocs = (C.uint32_t)(x.InputAttachmentIndex), cgoAllocsUnknown + allocs4f7194e6.Borrow(cinputAttachmentIndex_allocs) + + var caspectMask_allocs *cgoAllocMap + ref4f7194e6.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown + allocs4f7194e6.Borrow(caspectMask_allocs) + + x.ref4f7194e6 = ref4f7194e6 + x.allocs4f7194e6 = allocs4f7194e6 + return ref4f7194e6, allocs4f7194e6 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x InputAttachmentAspectReference) PassValue() (C.VkInputAttachmentAspectReference, *cgoAllocMap) { + if x.ref4f7194e6 != nil { + return *x.ref4f7194e6, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *InputAttachmentAspectReference) Deref() { + if x.ref4f7194e6 == nil { + return + } + x.Subpass = (uint32)(x.ref4f7194e6.subpass) + x.InputAttachmentIndex = (uint32)(x.ref4f7194e6.inputAttachmentIndex) + x.AspectMask = (ImageAspectFlags)(x.ref4f7194e6.aspectMask) +} + +// allocRenderPassInputAttachmentAspectCreateInfoMemory allocates memory for type C.VkRenderPassInputAttachmentAspectCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocRenderPassInputAttachmentAspectCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassInputAttachmentAspectCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfRenderPassInputAttachmentAspectCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassInputAttachmentAspectCreateInfo{}) + +// unpackSInputAttachmentAspectReference transforms a sliced Go data structure into plain C format. +func unpackSInputAttachmentAspectReference(x []InputAttachmentAspectReference) (unpacked *C.VkInputAttachmentAspectReference, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkInputAttachmentAspectReference) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocInputAttachmentAspectReferenceMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkInputAttachmentAspectReference)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkInputAttachmentAspectReference)(h.Data) + return +} + +// packSInputAttachmentAspectReference reads sliced Go data structure out from plain C format. +func packSInputAttachmentAspectReference(v []InputAttachmentAspectReference, ptr0 *C.VkInputAttachmentAspectReference) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfInputAttachmentAspectReferenceValue]C.VkInputAttachmentAspectReference)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewInputAttachmentAspectReferenceRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *RenderPassInputAttachmentAspectCreateInfo) Ref() *C.VkRenderPassInputAttachmentAspectCreateInfo { + if x == nil { + return nil + } + return x.ref34eaa5c7 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *RenderPassInputAttachmentAspectCreateInfo) Free() { + if x != nil && x.allocs34eaa5c7 != nil { + x.allocs34eaa5c7.(*cgoAllocMap).Free() + x.ref34eaa5c7 = nil + } +} + +// NewRenderPassInputAttachmentAspectCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewRenderPassInputAttachmentAspectCreateInfoRef(ref unsafe.Pointer) *RenderPassInputAttachmentAspectCreateInfo { + if ref == nil { + return nil + } + obj := new(RenderPassInputAttachmentAspectCreateInfo) + obj.ref34eaa5c7 = (*C.VkRenderPassInputAttachmentAspectCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *RenderPassInputAttachmentAspectCreateInfo) PassRef() (*C.VkRenderPassInputAttachmentAspectCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref34eaa5c7 != nil { + return x.ref34eaa5c7, nil + } + mem34eaa5c7 := allocRenderPassInputAttachmentAspectCreateInfoMemory(1) + ref34eaa5c7 := (*C.VkRenderPassInputAttachmentAspectCreateInfo)(mem34eaa5c7) + allocs34eaa5c7 := new(cgoAllocMap) + allocs34eaa5c7.Add(mem34eaa5c7) + + var csType_allocs *cgoAllocMap + ref34eaa5c7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs34eaa5c7.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref34eaa5c7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs34eaa5c7.Borrow(cpNext_allocs) + + var caspectReferenceCount_allocs *cgoAllocMap + ref34eaa5c7.aspectReferenceCount, caspectReferenceCount_allocs = (C.uint32_t)(x.AspectReferenceCount), cgoAllocsUnknown + allocs34eaa5c7.Borrow(caspectReferenceCount_allocs) + + var cpAspectReferences_allocs *cgoAllocMap + ref34eaa5c7.pAspectReferences, cpAspectReferences_allocs = unpackSInputAttachmentAspectReference(x.PAspectReferences) + allocs34eaa5c7.Borrow(cpAspectReferences_allocs) + + x.ref34eaa5c7 = ref34eaa5c7 + x.allocs34eaa5c7 = allocs34eaa5c7 + return ref34eaa5c7, allocs34eaa5c7 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x RenderPassInputAttachmentAspectCreateInfo) PassValue() (C.VkRenderPassInputAttachmentAspectCreateInfo, *cgoAllocMap) { + if x.ref34eaa5c7 != nil { + return *x.ref34eaa5c7, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *RenderPassInputAttachmentAspectCreateInfo) Deref() { + if x.ref34eaa5c7 == nil { + return + } + x.SType = (StructureType)(x.ref34eaa5c7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref34eaa5c7.pNext)) + x.AspectReferenceCount = (uint32)(x.ref34eaa5c7.aspectReferenceCount) + packSInputAttachmentAspectReference(x.PAspectReferences, x.ref34eaa5c7.pAspectReferences) +} + +// allocImageViewUsageCreateInfoMemory allocates memory for type C.VkImageViewUsageCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageViewUsageCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewUsageCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageViewUsageCreateInfoValue = unsafe.Sizeof([1]C.VkImageViewUsageCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageViewUsageCreateInfo) Ref() *C.VkImageViewUsageCreateInfo { + if x == nil { + return nil + } + return x.ref3791cec9 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageViewUsageCreateInfo) Free() { + if x != nil && x.allocs3791cec9 != nil { + x.allocs3791cec9.(*cgoAllocMap).Free() + x.ref3791cec9 = nil + } +} + +// NewImageViewUsageCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageViewUsageCreateInfoRef(ref unsafe.Pointer) *ImageViewUsageCreateInfo { + if ref == nil { + return nil + } + obj := new(ImageViewUsageCreateInfo) + obj.ref3791cec9 = (*C.VkImageViewUsageCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageViewUsageCreateInfo) PassRef() (*C.VkImageViewUsageCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref3791cec9 != nil { + return x.ref3791cec9, nil + } + mem3791cec9 := allocImageViewUsageCreateInfoMemory(1) + ref3791cec9 := (*C.VkImageViewUsageCreateInfo)(mem3791cec9) + allocs3791cec9 := new(cgoAllocMap) + allocs3791cec9.Add(mem3791cec9) + + var csType_allocs *cgoAllocMap + ref3791cec9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3791cec9.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref3791cec9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3791cec9.Borrow(cpNext_allocs) + + var cusage_allocs *cgoAllocMap + ref3791cec9.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown + allocs3791cec9.Borrow(cusage_allocs) + + x.ref3791cec9 = ref3791cec9 + x.allocs3791cec9 = allocs3791cec9 + return ref3791cec9, allocs3791cec9 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageViewUsageCreateInfo) PassValue() (C.VkImageViewUsageCreateInfo, *cgoAllocMap) { + if x.ref3791cec9 != nil { + return *x.ref3791cec9, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageViewUsageCreateInfo) Deref() { + if x.ref3791cec9 == nil { + return + } + x.SType = (StructureType)(x.ref3791cec9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3791cec9.pNext)) + x.Usage = (ImageUsageFlags)(x.ref3791cec9.usage) +} + +// allocPipelineTessellationDomainOriginStateCreateInfoMemory allocates memory for type C.VkPipelineTessellationDomainOriginStateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineTessellationDomainOriginStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineTessellationDomainOriginStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineTessellationDomainOriginStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineTessellationDomainOriginStateCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineTessellationDomainOriginStateCreateInfo) Ref() *C.VkPipelineTessellationDomainOriginStateCreateInfo { + if x == nil { + return nil + } + return x.ref58ef29bf +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineTessellationDomainOriginStateCreateInfo) Free() { + if x != nil && x.allocs58ef29bf != nil { + x.allocs58ef29bf.(*cgoAllocMap).Free() + x.ref58ef29bf = nil + } +} + +// NewPipelineTessellationDomainOriginStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineTessellationDomainOriginStateCreateInfoRef(ref unsafe.Pointer) *PipelineTessellationDomainOriginStateCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineTessellationDomainOriginStateCreateInfo) + obj.ref58ef29bf = (*C.VkPipelineTessellationDomainOriginStateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineTessellationDomainOriginStateCreateInfo) PassRef() (*C.VkPipelineTessellationDomainOriginStateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref58ef29bf != nil { + return x.ref58ef29bf, nil + } + mem58ef29bf := allocPipelineTessellationDomainOriginStateCreateInfoMemory(1) + ref58ef29bf := (*C.VkPipelineTessellationDomainOriginStateCreateInfo)(mem58ef29bf) + allocs58ef29bf := new(cgoAllocMap) + allocs58ef29bf.Add(mem58ef29bf) + + var csType_allocs *cgoAllocMap + ref58ef29bf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs58ef29bf.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref58ef29bf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs58ef29bf.Borrow(cpNext_allocs) + + var cdomainOrigin_allocs *cgoAllocMap + ref58ef29bf.domainOrigin, cdomainOrigin_allocs = (C.VkTessellationDomainOrigin)(x.DomainOrigin), cgoAllocsUnknown + allocs58ef29bf.Borrow(cdomainOrigin_allocs) + + x.ref58ef29bf = ref58ef29bf + x.allocs58ef29bf = allocs58ef29bf + return ref58ef29bf, allocs58ef29bf + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineTessellationDomainOriginStateCreateInfo) PassValue() (C.VkPipelineTessellationDomainOriginStateCreateInfo, *cgoAllocMap) { + if x.ref58ef29bf != nil { + return *x.ref58ef29bf, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineTessellationDomainOriginStateCreateInfo) Deref() { + if x.ref58ef29bf == nil { + return + } + x.SType = (StructureType)(x.ref58ef29bf.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref58ef29bf.pNext)) + x.DomainOrigin = (TessellationDomainOrigin)(x.ref58ef29bf.domainOrigin) +} + +// allocRenderPassMultiviewCreateInfoMemory allocates memory for type C.VkRenderPassMultiviewCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocRenderPassMultiviewCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassMultiviewCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfRenderPassMultiviewCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassMultiviewCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *RenderPassMultiviewCreateInfo) Ref() *C.VkRenderPassMultiviewCreateInfo { + if x == nil { + return nil + } + return x.refee413e05 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *RenderPassMultiviewCreateInfo) Free() { + if x != nil && x.allocsee413e05 != nil { + x.allocsee413e05.(*cgoAllocMap).Free() + x.refee413e05 = nil + } +} + +// NewRenderPassMultiviewCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewRenderPassMultiviewCreateInfoRef(ref unsafe.Pointer) *RenderPassMultiviewCreateInfo { + if ref == nil { + return nil + } + obj := new(RenderPassMultiviewCreateInfo) + obj.refee413e05 = (*C.VkRenderPassMultiviewCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *RenderPassMultiviewCreateInfo) PassRef() (*C.VkRenderPassMultiviewCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refee413e05 != nil { + return x.refee413e05, nil + } + memee413e05 := allocRenderPassMultiviewCreateInfoMemory(1) + refee413e05 := (*C.VkRenderPassMultiviewCreateInfo)(memee413e05) + allocsee413e05 := new(cgoAllocMap) + allocsee413e05.Add(memee413e05) + + var csType_allocs *cgoAllocMap + refee413e05.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsee413e05.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refee413e05.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsee413e05.Borrow(cpNext_allocs) + + var csubpassCount_allocs *cgoAllocMap + refee413e05.subpassCount, csubpassCount_allocs = (C.uint32_t)(x.SubpassCount), cgoAllocsUnknown + allocsee413e05.Borrow(csubpassCount_allocs) + + var cpViewMasks_allocs *cgoAllocMap + refee413e05.pViewMasks, cpViewMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewMasks)).Data)), cgoAllocsUnknown + allocsee413e05.Borrow(cpViewMasks_allocs) + + var cdependencyCount_allocs *cgoAllocMap + refee413e05.dependencyCount, cdependencyCount_allocs = (C.uint32_t)(x.DependencyCount), cgoAllocsUnknown + allocsee413e05.Borrow(cdependencyCount_allocs) + + var cpViewOffsets_allocs *cgoAllocMap + refee413e05.pViewOffsets, cpViewOffsets_allocs = (*C.int32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewOffsets)).Data)), cgoAllocsUnknown + allocsee413e05.Borrow(cpViewOffsets_allocs) + + var ccorrelationMaskCount_allocs *cgoAllocMap + refee413e05.correlationMaskCount, ccorrelationMaskCount_allocs = (C.uint32_t)(x.CorrelationMaskCount), cgoAllocsUnknown + allocsee413e05.Borrow(ccorrelationMaskCount_allocs) + + var cpCorrelationMasks_allocs *cgoAllocMap + refee413e05.pCorrelationMasks, cpCorrelationMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCorrelationMasks)).Data)), cgoAllocsUnknown + allocsee413e05.Borrow(cpCorrelationMasks_allocs) + + x.refee413e05 = refee413e05 + x.allocsee413e05 = allocsee413e05 + return refee413e05, allocsee413e05 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x RenderPassMultiviewCreateInfo) PassValue() (C.VkRenderPassMultiviewCreateInfo, *cgoAllocMap) { + if x.refee413e05 != nil { + return *x.refee413e05, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *RenderPassMultiviewCreateInfo) Deref() { + if x.refee413e05 == nil { + return + } + x.SType = (StructureType)(x.refee413e05.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refee413e05.pNext)) + x.SubpassCount = (uint32)(x.refee413e05.subpassCount) + hxff20e84 := (*sliceHeader)(unsafe.Pointer(&x.PViewMasks)) + hxff20e84.Data = unsafe.Pointer(x.refee413e05.pViewMasks) + hxff20e84.Cap = 0x7fffffff + // hxff20e84.Len = ? + + x.DependencyCount = (uint32)(x.refee413e05.dependencyCount) + hxfa26a4d := (*sliceHeader)(unsafe.Pointer(&x.PViewOffsets)) + hxfa26a4d.Data = unsafe.Pointer(x.refee413e05.pViewOffsets) + hxfa26a4d.Cap = 0x7fffffff + // hxfa26a4d.Len = ? + + x.CorrelationMaskCount = (uint32)(x.refee413e05.correlationMaskCount) + hxfe48098 := (*sliceHeader)(unsafe.Pointer(&x.PCorrelationMasks)) + hxfe48098.Data = unsafe.Pointer(x.refee413e05.pCorrelationMasks) + hxfe48098.Cap = 0x7fffffff + // hxfe48098.Len = ? + +} + +// allocPhysicalDeviceMultiviewFeaturesMemory allocates memory for type C.VkPhysicalDeviceMultiviewFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceMultiviewFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiviewFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceMultiviewFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceMultiviewFeatures) Ref() *C.VkPhysicalDeviceMultiviewFeatures { + if x == nil { + return nil + } + return x.refd7a7434b +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceMultiviewFeatures) Free() { + if x != nil && x.allocsd7a7434b != nil { + x.allocsd7a7434b.(*cgoAllocMap).Free() + x.refd7a7434b = nil + } +} + +// NewPhysicalDeviceMultiviewFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceMultiviewFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceMultiviewFeatures) + obj.refd7a7434b = (*C.VkPhysicalDeviceMultiviewFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceMultiviewFeatures) PassRef() (*C.VkPhysicalDeviceMultiviewFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd7a7434b != nil { + return x.refd7a7434b, nil + } + memd7a7434b := allocPhysicalDeviceMultiviewFeaturesMemory(1) + refd7a7434b := (*C.VkPhysicalDeviceMultiviewFeatures)(memd7a7434b) + allocsd7a7434b := new(cgoAllocMap) + allocsd7a7434b.Add(memd7a7434b) + + var csType_allocs *cgoAllocMap + refd7a7434b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd7a7434b.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd7a7434b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd7a7434b.Borrow(cpNext_allocs) + + var cmultiview_allocs *cgoAllocMap + refd7a7434b.multiview, cmultiview_allocs = (C.VkBool32)(x.Multiview), cgoAllocsUnknown + allocsd7a7434b.Borrow(cmultiview_allocs) + + var cmultiviewGeometryShader_allocs *cgoAllocMap + refd7a7434b.multiviewGeometryShader, cmultiviewGeometryShader_allocs = (C.VkBool32)(x.MultiviewGeometryShader), cgoAllocsUnknown + allocsd7a7434b.Borrow(cmultiviewGeometryShader_allocs) + + var cmultiviewTessellationShader_allocs *cgoAllocMap + refd7a7434b.multiviewTessellationShader, cmultiviewTessellationShader_allocs = (C.VkBool32)(x.MultiviewTessellationShader), cgoAllocsUnknown + allocsd7a7434b.Borrow(cmultiviewTessellationShader_allocs) + + x.refd7a7434b = refd7a7434b + x.allocsd7a7434b = allocsd7a7434b + return refd7a7434b, allocsd7a7434b + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceMultiviewFeatures) PassValue() (C.VkPhysicalDeviceMultiviewFeatures, *cgoAllocMap) { + if x.refd7a7434b != nil { + return *x.refd7a7434b, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceMultiviewFeatures) Deref() { + if x.refd7a7434b == nil { + return + } + x.SType = (StructureType)(x.refd7a7434b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd7a7434b.pNext)) + x.Multiview = (Bool32)(x.refd7a7434b.multiview) + x.MultiviewGeometryShader = (Bool32)(x.refd7a7434b.multiviewGeometryShader) + x.MultiviewTessellationShader = (Bool32)(x.refd7a7434b.multiviewTessellationShader) +} + +// allocPhysicalDeviceMultiviewPropertiesMemory allocates memory for type C.VkPhysicalDeviceMultiviewProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceMultiviewPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiviewPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceMultiviewPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceMultiviewProperties) Ref() *C.VkPhysicalDeviceMultiviewProperties { + if x == nil { + return nil + } + return x.ref95110029 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceMultiviewProperties) Free() { + if x != nil && x.allocs95110029 != nil { + x.allocs95110029.(*cgoAllocMap).Free() + x.ref95110029 = nil + } +} + +// NewPhysicalDeviceMultiviewPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceMultiviewPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceMultiviewProperties) + obj.ref95110029 = (*C.VkPhysicalDeviceMultiviewProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceMultiviewProperties) PassRef() (*C.VkPhysicalDeviceMultiviewProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref95110029 != nil { + return x.ref95110029, nil + } + mem95110029 := allocPhysicalDeviceMultiviewPropertiesMemory(1) + ref95110029 := (*C.VkPhysicalDeviceMultiviewProperties)(mem95110029) + allocs95110029 := new(cgoAllocMap) + allocs95110029.Add(mem95110029) + + var csType_allocs *cgoAllocMap + ref95110029.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs95110029.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref95110029.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs95110029.Borrow(cpNext_allocs) + + var cmaxMultiviewViewCount_allocs *cgoAllocMap + ref95110029.maxMultiviewViewCount, cmaxMultiviewViewCount_allocs = (C.uint32_t)(x.MaxMultiviewViewCount), cgoAllocsUnknown + allocs95110029.Borrow(cmaxMultiviewViewCount_allocs) + + var cmaxMultiviewInstanceIndex_allocs *cgoAllocMap + ref95110029.maxMultiviewInstanceIndex, cmaxMultiviewInstanceIndex_allocs = (C.uint32_t)(x.MaxMultiviewInstanceIndex), cgoAllocsUnknown + allocs95110029.Borrow(cmaxMultiviewInstanceIndex_allocs) + + x.ref95110029 = ref95110029 + x.allocs95110029 = allocs95110029 + return ref95110029, allocs95110029 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceMultiviewProperties) PassValue() (C.VkPhysicalDeviceMultiviewProperties, *cgoAllocMap) { + if x.ref95110029 != nil { + return *x.ref95110029, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceMultiviewProperties) Deref() { + if x.ref95110029 == nil { + return + } + x.SType = (StructureType)(x.ref95110029.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref95110029.pNext)) + x.MaxMultiviewViewCount = (uint32)(x.ref95110029.maxMultiviewViewCount) + x.MaxMultiviewInstanceIndex = (uint32)(x.ref95110029.maxMultiviewInstanceIndex) +} + +// allocPhysicalDeviceVariablePointersFeaturesMemory allocates memory for type C.VkPhysicalDeviceVariablePointersFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceVariablePointersFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVariablePointersFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceVariablePointersFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVariablePointersFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceVariablePointersFeatures) Ref() *C.VkPhysicalDeviceVariablePointersFeatures { + if x == nil { + return nil + } + return x.refb49644a0 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceVariablePointersFeatures) Free() { + if x != nil && x.allocsb49644a0 != nil { + x.allocsb49644a0.(*cgoAllocMap).Free() + x.refb49644a0 = nil + } +} + +// NewPhysicalDeviceVariablePointersFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceVariablePointersFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVariablePointersFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceVariablePointersFeatures) + obj.refb49644a0 = (*C.VkPhysicalDeviceVariablePointersFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceVariablePointersFeatures) PassRef() (*C.VkPhysicalDeviceVariablePointersFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb49644a0 != nil { + return x.refb49644a0, nil + } + memb49644a0 := allocPhysicalDeviceVariablePointersFeaturesMemory(1) + refb49644a0 := (*C.VkPhysicalDeviceVariablePointersFeatures)(memb49644a0) + allocsb49644a0 := new(cgoAllocMap) + allocsb49644a0.Add(memb49644a0) + + var csType_allocs *cgoAllocMap + refb49644a0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb49644a0.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb49644a0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb49644a0.Borrow(cpNext_allocs) + + var cvariablePointersStorageBuffer_allocs *cgoAllocMap + refb49644a0.variablePointersStorageBuffer, cvariablePointersStorageBuffer_allocs = (C.VkBool32)(x.VariablePointersStorageBuffer), cgoAllocsUnknown + allocsb49644a0.Borrow(cvariablePointersStorageBuffer_allocs) + + var cvariablePointers_allocs *cgoAllocMap + refb49644a0.variablePointers, cvariablePointers_allocs = (C.VkBool32)(x.VariablePointers), cgoAllocsUnknown + allocsb49644a0.Borrow(cvariablePointers_allocs) + + x.refb49644a0 = refb49644a0 + x.allocsb49644a0 = allocsb49644a0 + return refb49644a0, allocsb49644a0 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceVariablePointersFeatures) PassValue() (C.VkPhysicalDeviceVariablePointersFeatures, *cgoAllocMap) { + if x.refb49644a0 != nil { + return *x.refb49644a0, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceVariablePointersFeatures) Deref() { + if x.refb49644a0 == nil { + return + } + x.SType = (StructureType)(x.refb49644a0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb49644a0.pNext)) + x.VariablePointersStorageBuffer = (Bool32)(x.refb49644a0.variablePointersStorageBuffer) + x.VariablePointers = (Bool32)(x.refb49644a0.variablePointers) +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceVariablePointerFeatures) Ref() *C.VkPhysicalDeviceVariablePointersFeatures { + if x == nil { + return nil + } + return x.refb49644a0 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceVariablePointerFeatures) Free() { + if x != nil && x.allocsb49644a0 != nil { + x.allocsb49644a0.(*cgoAllocMap).Free() + x.refb49644a0 = nil + } +} + +// NewPhysicalDeviceVariablePointerFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceVariablePointerFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVariablePointerFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceVariablePointerFeatures) + obj.refb49644a0 = (*C.VkPhysicalDeviceVariablePointersFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceVariablePointerFeatures) PassRef() (*C.VkPhysicalDeviceVariablePointersFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb49644a0 != nil { + return x.refb49644a0, nil + } + memb49644a0 := allocPhysicalDeviceVariablePointersFeaturesMemory(1) + refb49644a0 := (*C.VkPhysicalDeviceVariablePointersFeatures)(memb49644a0) + allocsb49644a0 := new(cgoAllocMap) + allocsb49644a0.Add(memb49644a0) + + var csType_allocs *cgoAllocMap + refb49644a0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb49644a0.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb49644a0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb49644a0.Borrow(cpNext_allocs) + + var cvariablePointersStorageBuffer_allocs *cgoAllocMap + refb49644a0.variablePointersStorageBuffer, cvariablePointersStorageBuffer_allocs = (C.VkBool32)(x.VariablePointersStorageBuffer), cgoAllocsUnknown + allocsb49644a0.Borrow(cvariablePointersStorageBuffer_allocs) + + var cvariablePointers_allocs *cgoAllocMap + refb49644a0.variablePointers, cvariablePointers_allocs = (C.VkBool32)(x.VariablePointers), cgoAllocsUnknown + allocsb49644a0.Borrow(cvariablePointers_allocs) + + x.refb49644a0 = refb49644a0 + x.allocsb49644a0 = allocsb49644a0 + return refb49644a0, allocsb49644a0 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceVariablePointerFeatures) PassValue() (C.VkPhysicalDeviceVariablePointersFeatures, *cgoAllocMap) { + if x.refb49644a0 != nil { + return *x.refb49644a0, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceVariablePointerFeatures) Deref() { + if x.refb49644a0 == nil { + return + } + x.SType = (StructureType)(x.refb49644a0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb49644a0.pNext)) + x.VariablePointersStorageBuffer = (Bool32)(x.refb49644a0.variablePointersStorageBuffer) + x.VariablePointers = (Bool32)(x.refb49644a0.variablePointers) +} + +// allocPhysicalDeviceProtectedMemoryFeaturesMemory allocates memory for type C.VkPhysicalDeviceProtectedMemoryFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceProtectedMemoryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProtectedMemoryFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceProtectedMemoryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProtectedMemoryFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceProtectedMemoryFeatures) Ref() *C.VkPhysicalDeviceProtectedMemoryFeatures { + if x == nil { + return nil + } + return x.refac441ed1 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceProtectedMemoryFeatures) Free() { + if x != nil && x.allocsac441ed1 != nil { + x.allocsac441ed1.(*cgoAllocMap).Free() + x.refac441ed1 = nil + } +} + +// NewPhysicalDeviceProtectedMemoryFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceProtectedMemoryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceProtectedMemoryFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceProtectedMemoryFeatures) + obj.refac441ed1 = (*C.VkPhysicalDeviceProtectedMemoryFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceProtectedMemoryFeatures) PassRef() (*C.VkPhysicalDeviceProtectedMemoryFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refac441ed1 != nil { + return x.refac441ed1, nil + } + memac441ed1 := allocPhysicalDeviceProtectedMemoryFeaturesMemory(1) + refac441ed1 := (*C.VkPhysicalDeviceProtectedMemoryFeatures)(memac441ed1) + allocsac441ed1 := new(cgoAllocMap) + allocsac441ed1.Add(memac441ed1) + + var csType_allocs *cgoAllocMap + refac441ed1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsac441ed1.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refac441ed1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsac441ed1.Borrow(cpNext_allocs) + + var cprotectedMemory_allocs *cgoAllocMap + refac441ed1.protectedMemory, cprotectedMemory_allocs = (C.VkBool32)(x.ProtectedMemory), cgoAllocsUnknown + allocsac441ed1.Borrow(cprotectedMemory_allocs) + + x.refac441ed1 = refac441ed1 + x.allocsac441ed1 = allocsac441ed1 + return refac441ed1, allocsac441ed1 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceProtectedMemoryFeatures) PassValue() (C.VkPhysicalDeviceProtectedMemoryFeatures, *cgoAllocMap) { + if x.refac441ed1 != nil { + return *x.refac441ed1, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceProtectedMemoryFeatures) Deref() { + if x.refac441ed1 == nil { + return + } + x.SType = (StructureType)(x.refac441ed1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refac441ed1.pNext)) + x.ProtectedMemory = (Bool32)(x.refac441ed1.protectedMemory) +} + +// allocPhysicalDeviceProtectedMemoryPropertiesMemory allocates memory for type C.VkPhysicalDeviceProtectedMemoryProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceProtectedMemoryPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProtectedMemoryPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceProtectedMemoryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProtectedMemoryProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceProtectedMemoryProperties) Ref() *C.VkPhysicalDeviceProtectedMemoryProperties { + if x == nil { + return nil + } + return x.refb653413 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceProtectedMemoryProperties) Free() { + if x != nil && x.allocsb653413 != nil { + x.allocsb653413.(*cgoAllocMap).Free() + x.refb653413 = nil + } +} + +// NewPhysicalDeviceProtectedMemoryPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceProtectedMemoryPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceProtectedMemoryProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceProtectedMemoryProperties) + obj.refb653413 = (*C.VkPhysicalDeviceProtectedMemoryProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceProtectedMemoryProperties) PassRef() (*C.VkPhysicalDeviceProtectedMemoryProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb653413 != nil { + return x.refb653413, nil + } + memb653413 := allocPhysicalDeviceProtectedMemoryPropertiesMemory(1) + refb653413 := (*C.VkPhysicalDeviceProtectedMemoryProperties)(memb653413) + allocsb653413 := new(cgoAllocMap) + allocsb653413.Add(memb653413) + + var csType_allocs *cgoAllocMap + refb653413.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb653413.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb653413.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb653413.Borrow(cpNext_allocs) + + var cprotectedNoFault_allocs *cgoAllocMap + refb653413.protectedNoFault, cprotectedNoFault_allocs = (C.VkBool32)(x.ProtectedNoFault), cgoAllocsUnknown + allocsb653413.Borrow(cprotectedNoFault_allocs) + + x.refb653413 = refb653413 + x.allocsb653413 = allocsb653413 + return refb653413, allocsb653413 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceProtectedMemoryProperties) PassValue() (C.VkPhysicalDeviceProtectedMemoryProperties, *cgoAllocMap) { + if x.refb653413 != nil { + return *x.refb653413, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceProtectedMemoryProperties) Deref() { + if x.refb653413 == nil { + return + } + x.SType = (StructureType)(x.refb653413.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb653413.pNext)) + x.ProtectedNoFault = (Bool32)(x.refb653413.protectedNoFault) +} + +// allocDeviceQueueInfo2Memory allocates memory for type C.VkDeviceQueueInfo2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceQueueInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceQueueInfo2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDeviceQueueInfo2Value = unsafe.Sizeof([1]C.VkDeviceQueueInfo2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DeviceQueueInfo2) Ref() *C.VkDeviceQueueInfo2 { + if x == nil { + return nil + } + return x.ref2f267e52 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DeviceQueueInfo2) Free() { + if x != nil && x.allocs2f267e52 != nil { + x.allocs2f267e52.(*cgoAllocMap).Free() + x.ref2f267e52 = nil + } +} + +// NewDeviceQueueInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDeviceQueueInfo2Ref(ref unsafe.Pointer) *DeviceQueueInfo2 { + if ref == nil { + return nil + } + obj := new(DeviceQueueInfo2) + obj.ref2f267e52 = (*C.VkDeviceQueueInfo2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DeviceQueueInfo2) PassRef() (*C.VkDeviceQueueInfo2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2f267e52 != nil { + return x.ref2f267e52, nil + } + mem2f267e52 := allocDeviceQueueInfo2Memory(1) + ref2f267e52 := (*C.VkDeviceQueueInfo2)(mem2f267e52) + allocs2f267e52 := new(cgoAllocMap) + allocs2f267e52.Add(mem2f267e52) + + var csType_allocs *cgoAllocMap + ref2f267e52.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2f267e52.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref2f267e52.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2f267e52.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref2f267e52.flags, cflags_allocs = (C.VkDeviceQueueCreateFlags)(x.Flags), cgoAllocsUnknown + allocs2f267e52.Borrow(cflags_allocs) + + var cqueueFamilyIndex_allocs *cgoAllocMap + ref2f267e52.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown + allocs2f267e52.Borrow(cqueueFamilyIndex_allocs) + + var cqueueIndex_allocs *cgoAllocMap + ref2f267e52.queueIndex, cqueueIndex_allocs = (C.uint32_t)(x.QueueIndex), cgoAllocsUnknown + allocs2f267e52.Borrow(cqueueIndex_allocs) + + x.ref2f267e52 = ref2f267e52 + x.allocs2f267e52 = allocs2f267e52 + return ref2f267e52, allocs2f267e52 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DeviceQueueInfo2) PassValue() (C.VkDeviceQueueInfo2, *cgoAllocMap) { + if x.ref2f267e52 != nil { + return *x.ref2f267e52, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DeviceQueueInfo2) Deref() { + if x.ref2f267e52 == nil { + return + } + x.SType = (StructureType)(x.ref2f267e52.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2f267e52.pNext)) + x.Flags = (DeviceQueueCreateFlags)(x.ref2f267e52.flags) + x.QueueFamilyIndex = (uint32)(x.ref2f267e52.queueFamilyIndex) + x.QueueIndex = (uint32)(x.ref2f267e52.queueIndex) +} + +// allocProtectedSubmitInfoMemory allocates memory for type C.VkProtectedSubmitInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocProtectedSubmitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfProtectedSubmitInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfProtectedSubmitInfoValue = unsafe.Sizeof([1]C.VkProtectedSubmitInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ProtectedSubmitInfo) Ref() *C.VkProtectedSubmitInfo { + if x == nil { + return nil + } + return x.ref6bd69669 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ProtectedSubmitInfo) Free() { + if x != nil && x.allocs6bd69669 != nil { + x.allocs6bd69669.(*cgoAllocMap).Free() + x.ref6bd69669 = nil + } +} + +// NewProtectedSubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewProtectedSubmitInfoRef(ref unsafe.Pointer) *ProtectedSubmitInfo { + if ref == nil { + return nil + } + obj := new(ProtectedSubmitInfo) + obj.ref6bd69669 = (*C.VkProtectedSubmitInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ProtectedSubmitInfo) PassRef() (*C.VkProtectedSubmitInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref6bd69669 != nil { + return x.ref6bd69669, nil + } + mem6bd69669 := allocProtectedSubmitInfoMemory(1) + ref6bd69669 := (*C.VkProtectedSubmitInfo)(mem6bd69669) + allocs6bd69669 := new(cgoAllocMap) + allocs6bd69669.Add(mem6bd69669) + + var csType_allocs *cgoAllocMap + ref6bd69669.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6bd69669.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref6bd69669.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6bd69669.Borrow(cpNext_allocs) + + var cprotectedSubmit_allocs *cgoAllocMap + ref6bd69669.protectedSubmit, cprotectedSubmit_allocs = (C.VkBool32)(x.ProtectedSubmit), cgoAllocsUnknown + allocs6bd69669.Borrow(cprotectedSubmit_allocs) + + x.ref6bd69669 = ref6bd69669 + x.allocs6bd69669 = allocs6bd69669 + return ref6bd69669, allocs6bd69669 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ProtectedSubmitInfo) PassValue() (C.VkProtectedSubmitInfo, *cgoAllocMap) { + if x.ref6bd69669 != nil { + return *x.ref6bd69669, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ProtectedSubmitInfo) Deref() { + if x.ref6bd69669 == nil { + return + } + x.SType = (StructureType)(x.ref6bd69669.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6bd69669.pNext)) + x.ProtectedSubmit = (Bool32)(x.ref6bd69669.protectedSubmit) +} + +// allocSamplerYcbcrConversionCreateInfoMemory allocates memory for type C.VkSamplerYcbcrConversionCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSamplerYcbcrConversionCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerYcbcrConversionCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSamplerYcbcrConversionCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerYcbcrConversionCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SamplerYcbcrConversionCreateInfo) Ref() *C.VkSamplerYcbcrConversionCreateInfo { + if x == nil { + return nil + } + return x.ref9875bff7 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SamplerYcbcrConversionCreateInfo) Free() { + if x != nil && x.allocs9875bff7 != nil { + x.allocs9875bff7.(*cgoAllocMap).Free() + x.ref9875bff7 = nil + } +} + +// NewSamplerYcbcrConversionCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSamplerYcbcrConversionCreateInfoRef(ref unsafe.Pointer) *SamplerYcbcrConversionCreateInfo { + if ref == nil { + return nil + } + obj := new(SamplerYcbcrConversionCreateInfo) + obj.ref9875bff7 = (*C.VkSamplerYcbcrConversionCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SamplerYcbcrConversionCreateInfo) PassRef() (*C.VkSamplerYcbcrConversionCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref9875bff7 != nil { + return x.ref9875bff7, nil + } + mem9875bff7 := allocSamplerYcbcrConversionCreateInfoMemory(1) + ref9875bff7 := (*C.VkSamplerYcbcrConversionCreateInfo)(mem9875bff7) + allocs9875bff7 := new(cgoAllocMap) + allocs9875bff7.Add(mem9875bff7) + + var csType_allocs *cgoAllocMap + ref9875bff7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9875bff7.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref9875bff7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9875bff7.Borrow(cpNext_allocs) + + var cformat_allocs *cgoAllocMap + ref9875bff7.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocs9875bff7.Borrow(cformat_allocs) + + var cycbcrModel_allocs *cgoAllocMap + ref9875bff7.ycbcrModel, cycbcrModel_allocs = (C.VkSamplerYcbcrModelConversion)(x.YcbcrModel), cgoAllocsUnknown + allocs9875bff7.Borrow(cycbcrModel_allocs) + + var cycbcrRange_allocs *cgoAllocMap + ref9875bff7.ycbcrRange, cycbcrRange_allocs = (C.VkSamplerYcbcrRange)(x.YcbcrRange), cgoAllocsUnknown + allocs9875bff7.Borrow(cycbcrRange_allocs) + + var ccomponents_allocs *cgoAllocMap + ref9875bff7.components, ccomponents_allocs = x.Components.PassValue() + allocs9875bff7.Borrow(ccomponents_allocs) + + var cxChromaOffset_allocs *cgoAllocMap + ref9875bff7.xChromaOffset, cxChromaOffset_allocs = (C.VkChromaLocation)(x.XChromaOffset), cgoAllocsUnknown + allocs9875bff7.Borrow(cxChromaOffset_allocs) + + var cyChromaOffset_allocs *cgoAllocMap + ref9875bff7.yChromaOffset, cyChromaOffset_allocs = (C.VkChromaLocation)(x.YChromaOffset), cgoAllocsUnknown + allocs9875bff7.Borrow(cyChromaOffset_allocs) + + var cchromaFilter_allocs *cgoAllocMap + ref9875bff7.chromaFilter, cchromaFilter_allocs = (C.VkFilter)(x.ChromaFilter), cgoAllocsUnknown + allocs9875bff7.Borrow(cchromaFilter_allocs) + + var cforceExplicitReconstruction_allocs *cgoAllocMap + ref9875bff7.forceExplicitReconstruction, cforceExplicitReconstruction_allocs = (C.VkBool32)(x.ForceExplicitReconstruction), cgoAllocsUnknown + allocs9875bff7.Borrow(cforceExplicitReconstruction_allocs) + + x.ref9875bff7 = ref9875bff7 + x.allocs9875bff7 = allocs9875bff7 + return ref9875bff7, allocs9875bff7 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SamplerYcbcrConversionCreateInfo) PassValue() (C.VkSamplerYcbcrConversionCreateInfo, *cgoAllocMap) { + if x.ref9875bff7 != nil { + return *x.ref9875bff7, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SamplerYcbcrConversionCreateInfo) Deref() { + if x.ref9875bff7 == nil { + return + } + x.SType = (StructureType)(x.ref9875bff7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9875bff7.pNext)) + x.Format = (Format)(x.ref9875bff7.format) + x.YcbcrModel = (SamplerYcbcrModelConversion)(x.ref9875bff7.ycbcrModel) + x.YcbcrRange = (SamplerYcbcrRange)(x.ref9875bff7.ycbcrRange) + x.Components = *NewComponentMappingRef(unsafe.Pointer(&x.ref9875bff7.components)) + x.XChromaOffset = (ChromaLocation)(x.ref9875bff7.xChromaOffset) + x.YChromaOffset = (ChromaLocation)(x.ref9875bff7.yChromaOffset) + x.ChromaFilter = (Filter)(x.ref9875bff7.chromaFilter) + x.ForceExplicitReconstruction = (Bool32)(x.ref9875bff7.forceExplicitReconstruction) +} + +// allocSamplerYcbcrConversionInfoMemory allocates memory for type C.VkSamplerYcbcrConversionInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSamplerYcbcrConversionInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerYcbcrConversionInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSamplerYcbcrConversionInfoValue = unsafe.Sizeof([1]C.VkSamplerYcbcrConversionInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SamplerYcbcrConversionInfo) Ref() *C.VkSamplerYcbcrConversionInfo { + if x == nil { + return nil + } + return x.ref11ff5547 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SamplerYcbcrConversionInfo) Free() { + if x != nil && x.allocs11ff5547 != nil { + x.allocs11ff5547.(*cgoAllocMap).Free() + x.ref11ff5547 = nil + } +} + +// NewSamplerYcbcrConversionInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSamplerYcbcrConversionInfoRef(ref unsafe.Pointer) *SamplerYcbcrConversionInfo { + if ref == nil { + return nil + } + obj := new(SamplerYcbcrConversionInfo) + obj.ref11ff5547 = (*C.VkSamplerYcbcrConversionInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SamplerYcbcrConversionInfo) PassRef() (*C.VkSamplerYcbcrConversionInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref11ff5547 != nil { + return x.ref11ff5547, nil + } + mem11ff5547 := allocSamplerYcbcrConversionInfoMemory(1) + ref11ff5547 := (*C.VkSamplerYcbcrConversionInfo)(mem11ff5547) + allocs11ff5547 := new(cgoAllocMap) + allocs11ff5547.Add(mem11ff5547) + + var csType_allocs *cgoAllocMap + ref11ff5547.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs11ff5547.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref11ff5547.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs11ff5547.Borrow(cpNext_allocs) + + var cconversion_allocs *cgoAllocMap + ref11ff5547.conversion, cconversion_allocs = *(*C.VkSamplerYcbcrConversion)(unsafe.Pointer(&x.Conversion)), cgoAllocsUnknown + allocs11ff5547.Borrow(cconversion_allocs) + + x.ref11ff5547 = ref11ff5547 + x.allocs11ff5547 = allocs11ff5547 + return ref11ff5547, allocs11ff5547 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SamplerYcbcrConversionInfo) PassValue() (C.VkSamplerYcbcrConversionInfo, *cgoAllocMap) { + if x.ref11ff5547 != nil { + return *x.ref11ff5547, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SamplerYcbcrConversionInfo) Deref() { + if x.ref11ff5547 == nil { + return + } + x.SType = (StructureType)(x.ref11ff5547.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref11ff5547.pNext)) + x.Conversion = *(*SamplerYcbcrConversion)(unsafe.Pointer(&x.ref11ff5547.conversion)) +} + +// allocBindImagePlaneMemoryInfoMemory allocates memory for type C.VkBindImagePlaneMemoryInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBindImagePlaneMemoryInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindImagePlaneMemoryInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBindImagePlaneMemoryInfoValue = unsafe.Sizeof([1]C.VkBindImagePlaneMemoryInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BindImagePlaneMemoryInfo) Ref() *C.VkBindImagePlaneMemoryInfo { + if x == nil { + return nil + } + return x.ref56b81476 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BindImagePlaneMemoryInfo) Free() { + if x != nil && x.allocs56b81476 != nil { + x.allocs56b81476.(*cgoAllocMap).Free() + x.ref56b81476 = nil + } +} + +// NewBindImagePlaneMemoryInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBindImagePlaneMemoryInfoRef(ref unsafe.Pointer) *BindImagePlaneMemoryInfo { + if ref == nil { + return nil + } + obj := new(BindImagePlaneMemoryInfo) + obj.ref56b81476 = (*C.VkBindImagePlaneMemoryInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BindImagePlaneMemoryInfo) PassRef() (*C.VkBindImagePlaneMemoryInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref56b81476 != nil { + return x.ref56b81476, nil + } + mem56b81476 := allocBindImagePlaneMemoryInfoMemory(1) + ref56b81476 := (*C.VkBindImagePlaneMemoryInfo)(mem56b81476) + allocs56b81476 := new(cgoAllocMap) + allocs56b81476.Add(mem56b81476) + + var csType_allocs *cgoAllocMap + ref56b81476.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs56b81476.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref56b81476.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs56b81476.Borrow(cpNext_allocs) + + var cplaneAspect_allocs *cgoAllocMap + ref56b81476.planeAspect, cplaneAspect_allocs = (C.VkImageAspectFlagBits)(x.PlaneAspect), cgoAllocsUnknown + allocs56b81476.Borrow(cplaneAspect_allocs) + + x.ref56b81476 = ref56b81476 + x.allocs56b81476 = allocs56b81476 + return ref56b81476, allocs56b81476 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BindImagePlaneMemoryInfo) PassValue() (C.VkBindImagePlaneMemoryInfo, *cgoAllocMap) { + if x.ref56b81476 != nil { + return *x.ref56b81476, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BindImagePlaneMemoryInfo) Deref() { + if x.ref56b81476 == nil { + return + } + x.SType = (StructureType)(x.ref56b81476.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref56b81476.pNext)) + x.PlaneAspect = (ImageAspectFlagBits)(x.ref56b81476.planeAspect) +} + +// allocImagePlaneMemoryRequirementsInfoMemory allocates memory for type C.VkImagePlaneMemoryRequirementsInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImagePlaneMemoryRequirementsInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImagePlaneMemoryRequirementsInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImagePlaneMemoryRequirementsInfoValue = unsafe.Sizeof([1]C.VkImagePlaneMemoryRequirementsInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImagePlaneMemoryRequirementsInfo) Ref() *C.VkImagePlaneMemoryRequirementsInfo { + if x == nil { + return nil + } + return x.refefec131f +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImagePlaneMemoryRequirementsInfo) Free() { + if x != nil && x.allocsefec131f != nil { + x.allocsefec131f.(*cgoAllocMap).Free() + x.refefec131f = nil + } +} + +// NewImagePlaneMemoryRequirementsInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImagePlaneMemoryRequirementsInfoRef(ref unsafe.Pointer) *ImagePlaneMemoryRequirementsInfo { + if ref == nil { + return nil + } + obj := new(ImagePlaneMemoryRequirementsInfo) + obj.refefec131f = (*C.VkImagePlaneMemoryRequirementsInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImagePlaneMemoryRequirementsInfo) PassRef() (*C.VkImagePlaneMemoryRequirementsInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refefec131f != nil { + return x.refefec131f, nil + } + memefec131f := allocImagePlaneMemoryRequirementsInfoMemory(1) + refefec131f := (*C.VkImagePlaneMemoryRequirementsInfo)(memefec131f) + allocsefec131f := new(cgoAllocMap) + allocsefec131f.Add(memefec131f) + + var csType_allocs *cgoAllocMap + refefec131f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsefec131f.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refefec131f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsefec131f.Borrow(cpNext_allocs) + + var cplaneAspect_allocs *cgoAllocMap + refefec131f.planeAspect, cplaneAspect_allocs = (C.VkImageAspectFlagBits)(x.PlaneAspect), cgoAllocsUnknown + allocsefec131f.Borrow(cplaneAspect_allocs) + + x.refefec131f = refefec131f + x.allocsefec131f = allocsefec131f + return refefec131f, allocsefec131f + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImagePlaneMemoryRequirementsInfo) PassValue() (C.VkImagePlaneMemoryRequirementsInfo, *cgoAllocMap) { + if x.refefec131f != nil { + return *x.refefec131f, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImagePlaneMemoryRequirementsInfo) Deref() { + if x.refefec131f == nil { + return + } + x.SType = (StructureType)(x.refefec131f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refefec131f.pNext)) + x.PlaneAspect = (ImageAspectFlagBits)(x.refefec131f.planeAspect) +} + +// allocPhysicalDeviceSamplerYcbcrConversionFeaturesMemory allocates memory for type C.VkPhysicalDeviceSamplerYcbcrConversionFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceSamplerYcbcrConversionFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSamplerYcbcrConversionFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceSamplerYcbcrConversionFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSamplerYcbcrConversionFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceSamplerYcbcrConversionFeatures) Ref() *C.VkPhysicalDeviceSamplerYcbcrConversionFeatures { + if x == nil { + return nil + } + return x.ref1d054d67 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceSamplerYcbcrConversionFeatures) Free() { + if x != nil && x.allocs1d054d67 != nil { + x.allocs1d054d67.(*cgoAllocMap).Free() + x.ref1d054d67 = nil + } +} + +// NewPhysicalDeviceSamplerYcbcrConversionFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceSamplerYcbcrConversionFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceSamplerYcbcrConversionFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceSamplerYcbcrConversionFeatures) + obj.ref1d054d67 = (*C.VkPhysicalDeviceSamplerYcbcrConversionFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceSamplerYcbcrConversionFeatures) PassRef() (*C.VkPhysicalDeviceSamplerYcbcrConversionFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref1d054d67 != nil { + return x.ref1d054d67, nil + } + mem1d054d67 := allocPhysicalDeviceSamplerYcbcrConversionFeaturesMemory(1) + ref1d054d67 := (*C.VkPhysicalDeviceSamplerYcbcrConversionFeatures)(mem1d054d67) + allocs1d054d67 := new(cgoAllocMap) + allocs1d054d67.Add(mem1d054d67) + + var csType_allocs *cgoAllocMap + ref1d054d67.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1d054d67.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref1d054d67.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1d054d67.Borrow(cpNext_allocs) + + var csamplerYcbcrConversion_allocs *cgoAllocMap + ref1d054d67.samplerYcbcrConversion, csamplerYcbcrConversion_allocs = (C.VkBool32)(x.SamplerYcbcrConversion), cgoAllocsUnknown + allocs1d054d67.Borrow(csamplerYcbcrConversion_allocs) + + x.ref1d054d67 = ref1d054d67 + x.allocs1d054d67 = allocs1d054d67 + return ref1d054d67, allocs1d054d67 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceSamplerYcbcrConversionFeatures) PassValue() (C.VkPhysicalDeviceSamplerYcbcrConversionFeatures, *cgoAllocMap) { + if x.ref1d054d67 != nil { + return *x.ref1d054d67, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceSamplerYcbcrConversionFeatures) Deref() { + if x.ref1d054d67 == nil { + return + } + x.SType = (StructureType)(x.ref1d054d67.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1d054d67.pNext)) + x.SamplerYcbcrConversion = (Bool32)(x.ref1d054d67.samplerYcbcrConversion) +} + +// allocSamplerYcbcrConversionImageFormatPropertiesMemory allocates memory for type C.VkSamplerYcbcrConversionImageFormatProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSamplerYcbcrConversionImageFormatPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerYcbcrConversionImageFormatPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSamplerYcbcrConversionImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkSamplerYcbcrConversionImageFormatProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SamplerYcbcrConversionImageFormatProperties) Ref() *C.VkSamplerYcbcrConversionImageFormatProperties { + if x == nil { + return nil + } + return x.ref6bc79530 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SamplerYcbcrConversionImageFormatProperties) Free() { + if x != nil && x.allocs6bc79530 != nil { + x.allocs6bc79530.(*cgoAllocMap).Free() + x.ref6bc79530 = nil + } +} + +// NewSamplerYcbcrConversionImageFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSamplerYcbcrConversionImageFormatPropertiesRef(ref unsafe.Pointer) *SamplerYcbcrConversionImageFormatProperties { + if ref == nil { + return nil + } + obj := new(SamplerYcbcrConversionImageFormatProperties) + obj.ref6bc79530 = (*C.VkSamplerYcbcrConversionImageFormatProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SamplerYcbcrConversionImageFormatProperties) PassRef() (*C.VkSamplerYcbcrConversionImageFormatProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref6bc79530 != nil { + return x.ref6bc79530, nil + } + mem6bc79530 := allocSamplerYcbcrConversionImageFormatPropertiesMemory(1) + ref6bc79530 := (*C.VkSamplerYcbcrConversionImageFormatProperties)(mem6bc79530) + allocs6bc79530 := new(cgoAllocMap) + allocs6bc79530.Add(mem6bc79530) + + var csType_allocs *cgoAllocMap + ref6bc79530.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6bc79530.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref6bc79530.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6bc79530.Borrow(cpNext_allocs) + + var ccombinedImageSamplerDescriptorCount_allocs *cgoAllocMap + ref6bc79530.combinedImageSamplerDescriptorCount, ccombinedImageSamplerDescriptorCount_allocs = (C.uint32_t)(x.CombinedImageSamplerDescriptorCount), cgoAllocsUnknown + allocs6bc79530.Borrow(ccombinedImageSamplerDescriptorCount_allocs) + + x.ref6bc79530 = ref6bc79530 + x.allocs6bc79530 = allocs6bc79530 + return ref6bc79530, allocs6bc79530 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SamplerYcbcrConversionImageFormatProperties) PassValue() (C.VkSamplerYcbcrConversionImageFormatProperties, *cgoAllocMap) { + if x.ref6bc79530 != nil { + return *x.ref6bc79530, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SamplerYcbcrConversionImageFormatProperties) Deref() { + if x.ref6bc79530 == nil { + return + } + x.SType = (StructureType)(x.ref6bc79530.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6bc79530.pNext)) + x.CombinedImageSamplerDescriptorCount = (uint32)(x.ref6bc79530.combinedImageSamplerDescriptorCount) +} + +// allocDescriptorUpdateTemplateEntryMemory allocates memory for type C.VkDescriptorUpdateTemplateEntry in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorUpdateTemplateEntryMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorUpdateTemplateEntryValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorUpdateTemplateEntryValue = unsafe.Sizeof([1]C.VkDescriptorUpdateTemplateEntry{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorUpdateTemplateEntry) Ref() *C.VkDescriptorUpdateTemplateEntry { + if x == nil { + return nil + } + return x.refabf78fb7 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorUpdateTemplateEntry) Free() { + if x != nil && x.allocsabf78fb7 != nil { + x.allocsabf78fb7.(*cgoAllocMap).Free() + x.refabf78fb7 = nil + } +} + +// NewDescriptorUpdateTemplateEntryRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorUpdateTemplateEntryRef(ref unsafe.Pointer) *DescriptorUpdateTemplateEntry { + if ref == nil { + return nil + } + obj := new(DescriptorUpdateTemplateEntry) + obj.refabf78fb7 = (*C.VkDescriptorUpdateTemplateEntry)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorUpdateTemplateEntry) PassRef() (*C.VkDescriptorUpdateTemplateEntry, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refabf78fb7 != nil { + return x.refabf78fb7, nil + } + memabf78fb7 := allocDescriptorUpdateTemplateEntryMemory(1) + refabf78fb7 := (*C.VkDescriptorUpdateTemplateEntry)(memabf78fb7) + allocsabf78fb7 := new(cgoAllocMap) + allocsabf78fb7.Add(memabf78fb7) + + var cdstBinding_allocs *cgoAllocMap + refabf78fb7.dstBinding, cdstBinding_allocs = (C.uint32_t)(x.DstBinding), cgoAllocsUnknown + allocsabf78fb7.Borrow(cdstBinding_allocs) + + var cdstArrayElement_allocs *cgoAllocMap + refabf78fb7.dstArrayElement, cdstArrayElement_allocs = (C.uint32_t)(x.DstArrayElement), cgoAllocsUnknown + allocsabf78fb7.Borrow(cdstArrayElement_allocs) + + var cdescriptorCount_allocs *cgoAllocMap + refabf78fb7.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown + allocsabf78fb7.Borrow(cdescriptorCount_allocs) + + var cdescriptorType_allocs *cgoAllocMap + refabf78fb7.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown + allocsabf78fb7.Borrow(cdescriptorType_allocs) + + var coffset_allocs *cgoAllocMap + refabf78fb7.offset, coffset_allocs = (C.size_t)(x.Offset), cgoAllocsUnknown + allocsabf78fb7.Borrow(coffset_allocs) + + var cstride_allocs *cgoAllocMap + refabf78fb7.stride, cstride_allocs = (C.size_t)(x.Stride), cgoAllocsUnknown + allocsabf78fb7.Borrow(cstride_allocs) + + x.refabf78fb7 = refabf78fb7 + x.allocsabf78fb7 = allocsabf78fb7 + return refabf78fb7, allocsabf78fb7 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorUpdateTemplateEntry) PassValue() (C.VkDescriptorUpdateTemplateEntry, *cgoAllocMap) { + if x.refabf78fb7 != nil { + return *x.refabf78fb7, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorUpdateTemplateEntry) Deref() { + if x.refabf78fb7 == nil { + return + } + x.DstBinding = (uint32)(x.refabf78fb7.dstBinding) + x.DstArrayElement = (uint32)(x.refabf78fb7.dstArrayElement) + x.DescriptorCount = (uint32)(x.refabf78fb7.descriptorCount) + x.DescriptorType = (DescriptorType)(x.refabf78fb7.descriptorType) + x.Offset = (uint64)(x.refabf78fb7.offset) + x.Stride = (uint64)(x.refabf78fb7.stride) +} + +// allocDescriptorUpdateTemplateCreateInfoMemory allocates memory for type C.VkDescriptorUpdateTemplateCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorUpdateTemplateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorUpdateTemplateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorUpdateTemplateCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorUpdateTemplateCreateInfo{}) + +// unpackSDescriptorUpdateTemplateEntry transforms a sliced Go data structure into plain C format. +func unpackSDescriptorUpdateTemplateEntry(x []DescriptorUpdateTemplateEntry) (unpacked *C.VkDescriptorUpdateTemplateEntry, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorUpdateTemplateEntry) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocDescriptorUpdateTemplateEntryMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkDescriptorUpdateTemplateEntry)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkDescriptorUpdateTemplateEntry)(h.Data) + return +} + +// packSDescriptorUpdateTemplateEntry reads sliced Go data structure out from plain C format. +func packSDescriptorUpdateTemplateEntry(v []DescriptorUpdateTemplateEntry, ptr0 *C.VkDescriptorUpdateTemplateEntry) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfDescriptorUpdateTemplateEntryValue]C.VkDescriptorUpdateTemplateEntry)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewDescriptorUpdateTemplateEntryRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorUpdateTemplateCreateInfo) Ref() *C.VkDescriptorUpdateTemplateCreateInfo { + if x == nil { + return nil + } + return x.ref2af95951 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorUpdateTemplateCreateInfo) Free() { + if x != nil && x.allocs2af95951 != nil { + x.allocs2af95951.(*cgoAllocMap).Free() + x.ref2af95951 = nil + } +} + +// NewDescriptorUpdateTemplateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorUpdateTemplateCreateInfoRef(ref unsafe.Pointer) *DescriptorUpdateTemplateCreateInfo { + if ref == nil { + return nil + } + obj := new(DescriptorUpdateTemplateCreateInfo) + obj.ref2af95951 = (*C.VkDescriptorUpdateTemplateCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorUpdateTemplateCreateInfo) PassRef() (*C.VkDescriptorUpdateTemplateCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref2af95951 != nil { + return x.ref2af95951, nil + } + mem2af95951 := allocDescriptorUpdateTemplateCreateInfoMemory(1) + ref2af95951 := (*C.VkDescriptorUpdateTemplateCreateInfo)(mem2af95951) + allocs2af95951 := new(cgoAllocMap) + allocs2af95951.Add(mem2af95951) + + var csType_allocs *cgoAllocMap + ref2af95951.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2af95951.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref2af95951.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2af95951.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref2af95951.flags, cflags_allocs = (C.VkDescriptorUpdateTemplateCreateFlags)(x.Flags), cgoAllocsUnknown + allocs2af95951.Borrow(cflags_allocs) + + var cdescriptorUpdateEntryCount_allocs *cgoAllocMap + ref2af95951.descriptorUpdateEntryCount, cdescriptorUpdateEntryCount_allocs = (C.uint32_t)(x.DescriptorUpdateEntryCount), cgoAllocsUnknown + allocs2af95951.Borrow(cdescriptorUpdateEntryCount_allocs) + + var cpDescriptorUpdateEntries_allocs *cgoAllocMap + ref2af95951.pDescriptorUpdateEntries, cpDescriptorUpdateEntries_allocs = unpackSDescriptorUpdateTemplateEntry(x.PDescriptorUpdateEntries) + allocs2af95951.Borrow(cpDescriptorUpdateEntries_allocs) + + var ctemplateType_allocs *cgoAllocMap + ref2af95951.templateType, ctemplateType_allocs = (C.VkDescriptorUpdateTemplateType)(x.TemplateType), cgoAllocsUnknown + allocs2af95951.Borrow(ctemplateType_allocs) + + var cdescriptorSetLayout_allocs *cgoAllocMap + ref2af95951.descriptorSetLayout, cdescriptorSetLayout_allocs = *(*C.VkDescriptorSetLayout)(unsafe.Pointer(&x.DescriptorSetLayout)), cgoAllocsUnknown + allocs2af95951.Borrow(cdescriptorSetLayout_allocs) + + var cpipelineBindPoint_allocs *cgoAllocMap + ref2af95951.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocs2af95951.Borrow(cpipelineBindPoint_allocs) + + var cpipelineLayout_allocs *cgoAllocMap + ref2af95951.pipelineLayout, cpipelineLayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.PipelineLayout)), cgoAllocsUnknown + allocs2af95951.Borrow(cpipelineLayout_allocs) + + var cset_allocs *cgoAllocMap + ref2af95951.set, cset_allocs = (C.uint32_t)(x.Set), cgoAllocsUnknown + allocs2af95951.Borrow(cset_allocs) + + x.ref2af95951 = ref2af95951 + x.allocs2af95951 = allocs2af95951 + return ref2af95951, allocs2af95951 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorUpdateTemplateCreateInfo) PassValue() (C.VkDescriptorUpdateTemplateCreateInfo, *cgoAllocMap) { + if x.ref2af95951 != nil { + return *x.ref2af95951, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorUpdateTemplateCreateInfo) Deref() { + if x.ref2af95951 == nil { + return + } + x.SType = (StructureType)(x.ref2af95951.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2af95951.pNext)) + x.Flags = (DescriptorUpdateTemplateCreateFlags)(x.ref2af95951.flags) + x.DescriptorUpdateEntryCount = (uint32)(x.ref2af95951.descriptorUpdateEntryCount) + packSDescriptorUpdateTemplateEntry(x.PDescriptorUpdateEntries, x.ref2af95951.pDescriptorUpdateEntries) + x.TemplateType = (DescriptorUpdateTemplateType)(x.ref2af95951.templateType) + x.DescriptorSetLayout = *(*DescriptorSetLayout)(unsafe.Pointer(&x.ref2af95951.descriptorSetLayout)) + x.PipelineBindPoint = (PipelineBindPoint)(x.ref2af95951.pipelineBindPoint) + x.PipelineLayout = *(*PipelineLayout)(unsafe.Pointer(&x.ref2af95951.pipelineLayout)) + x.Set = (uint32)(x.ref2af95951.set) +} + +// allocExternalMemoryPropertiesMemory allocates memory for type C.VkExternalMemoryProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExternalMemoryPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalMemoryPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExternalMemoryPropertiesValue = unsafe.Sizeof([1]C.VkExternalMemoryProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExternalMemoryProperties) Ref() *C.VkExternalMemoryProperties { + if x == nil { + return nil + } + return x.ref4b738f01 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExternalMemoryProperties) Free() { + if x != nil && x.allocs4b738f01 != nil { + x.allocs4b738f01.(*cgoAllocMap).Free() + x.ref4b738f01 = nil + } +} + +// NewExternalMemoryPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExternalMemoryPropertiesRef(ref unsafe.Pointer) *ExternalMemoryProperties { + if ref == nil { + return nil + } + obj := new(ExternalMemoryProperties) + obj.ref4b738f01 = (*C.VkExternalMemoryProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExternalMemoryProperties) PassRef() (*C.VkExternalMemoryProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4b738f01 != nil { + return x.ref4b738f01, nil + } + mem4b738f01 := allocExternalMemoryPropertiesMemory(1) + ref4b738f01 := (*C.VkExternalMemoryProperties)(mem4b738f01) + allocs4b738f01 := new(cgoAllocMap) + allocs4b738f01.Add(mem4b738f01) + + var cexternalMemoryFeatures_allocs *cgoAllocMap + ref4b738f01.externalMemoryFeatures, cexternalMemoryFeatures_allocs = (C.VkExternalMemoryFeatureFlags)(x.ExternalMemoryFeatures), cgoAllocsUnknown + allocs4b738f01.Borrow(cexternalMemoryFeatures_allocs) + + var cexportFromImportedHandleTypes_allocs *cgoAllocMap + ref4b738f01.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown + allocs4b738f01.Borrow(cexportFromImportedHandleTypes_allocs) + + var ccompatibleHandleTypes_allocs *cgoAllocMap + ref4b738f01.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.CompatibleHandleTypes), cgoAllocsUnknown + allocs4b738f01.Borrow(ccompatibleHandleTypes_allocs) + + x.ref4b738f01 = ref4b738f01 + x.allocs4b738f01 = allocs4b738f01 + return ref4b738f01, allocs4b738f01 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExternalMemoryProperties) PassValue() (C.VkExternalMemoryProperties, *cgoAllocMap) { + if x.ref4b738f01 != nil { + return *x.ref4b738f01, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExternalMemoryProperties) Deref() { + if x.ref4b738f01 == nil { + return + } + x.ExternalMemoryFeatures = (ExternalMemoryFeatureFlags)(x.ref4b738f01.externalMemoryFeatures) + x.ExportFromImportedHandleTypes = (ExternalMemoryHandleTypeFlags)(x.ref4b738f01.exportFromImportedHandleTypes) + x.CompatibleHandleTypes = (ExternalMemoryHandleTypeFlags)(x.ref4b738f01.compatibleHandleTypes) +} + +// allocPhysicalDeviceExternalImageFormatInfoMemory allocates memory for type C.VkPhysicalDeviceExternalImageFormatInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceExternalImageFormatInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalImageFormatInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceExternalImageFormatInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalImageFormatInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceExternalImageFormatInfo) Ref() *C.VkPhysicalDeviceExternalImageFormatInfo { + if x == nil { + return nil + } + return x.refc839c724 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceExternalImageFormatInfo) Free() { + if x != nil && x.allocsc839c724 != nil { + x.allocsc839c724.(*cgoAllocMap).Free() + x.refc839c724 = nil + } +} + +// NewPhysicalDeviceExternalImageFormatInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceExternalImageFormatInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalImageFormatInfo { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceExternalImageFormatInfo) + obj.refc839c724 = (*C.VkPhysicalDeviceExternalImageFormatInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceExternalImageFormatInfo) PassRef() (*C.VkPhysicalDeviceExternalImageFormatInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc839c724 != nil { + return x.refc839c724, nil + } + memc839c724 := allocPhysicalDeviceExternalImageFormatInfoMemory(1) + refc839c724 := (*C.VkPhysicalDeviceExternalImageFormatInfo)(memc839c724) + allocsc839c724 := new(cgoAllocMap) + allocsc839c724.Add(memc839c724) + + var csType_allocs *cgoAllocMap + refc839c724.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc839c724.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc839c724.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc839c724.Borrow(cpNext_allocs) + + var chandleType_allocs *cgoAllocMap + refc839c724.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsc839c724.Borrow(chandleType_allocs) + + x.refc839c724 = refc839c724 + x.allocsc839c724 = allocsc839c724 + return refc839c724, allocsc839c724 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceExternalImageFormatInfo) PassValue() (C.VkPhysicalDeviceExternalImageFormatInfo, *cgoAllocMap) { + if x.refc839c724 != nil { + return *x.refc839c724, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceExternalImageFormatInfo) Deref() { + if x.refc839c724 == nil { + return + } + x.SType = (StructureType)(x.refc839c724.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc839c724.pNext)) + x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.refc839c724.handleType) +} + +// allocExternalImageFormatPropertiesMemory allocates memory for type C.VkExternalImageFormatProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExternalImageFormatPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalImageFormatPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExternalImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkExternalImageFormatProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExternalImageFormatProperties) Ref() *C.VkExternalImageFormatProperties { + if x == nil { + return nil + } + return x.refd404c4b5 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExternalImageFormatProperties) Free() { + if x != nil && x.allocsd404c4b5 != nil { + x.allocsd404c4b5.(*cgoAllocMap).Free() + x.refd404c4b5 = nil + } +} + +// NewExternalImageFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExternalImageFormatPropertiesRef(ref unsafe.Pointer) *ExternalImageFormatProperties { + if ref == nil { + return nil + } + obj := new(ExternalImageFormatProperties) + obj.refd404c4b5 = (*C.VkExternalImageFormatProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExternalImageFormatProperties) PassRef() (*C.VkExternalImageFormatProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd404c4b5 != nil { + return x.refd404c4b5, nil + } + memd404c4b5 := allocExternalImageFormatPropertiesMemory(1) + refd404c4b5 := (*C.VkExternalImageFormatProperties)(memd404c4b5) + allocsd404c4b5 := new(cgoAllocMap) + allocsd404c4b5.Add(memd404c4b5) + + var csType_allocs *cgoAllocMap + refd404c4b5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd404c4b5.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd404c4b5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd404c4b5.Borrow(cpNext_allocs) + + var cexternalMemoryProperties_allocs *cgoAllocMap + refd404c4b5.externalMemoryProperties, cexternalMemoryProperties_allocs = x.ExternalMemoryProperties.PassValue() + allocsd404c4b5.Borrow(cexternalMemoryProperties_allocs) + + x.refd404c4b5 = refd404c4b5 + x.allocsd404c4b5 = allocsd404c4b5 + return refd404c4b5, allocsd404c4b5 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExternalImageFormatProperties) PassValue() (C.VkExternalImageFormatProperties, *cgoAllocMap) { + if x.refd404c4b5 != nil { + return *x.refd404c4b5, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExternalImageFormatProperties) Deref() { + if x.refd404c4b5 == nil { + return + } + x.SType = (StructureType)(x.refd404c4b5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd404c4b5.pNext)) + x.ExternalMemoryProperties = *NewExternalMemoryPropertiesRef(unsafe.Pointer(&x.refd404c4b5.externalMemoryProperties)) +} + +// allocPhysicalDeviceExternalBufferInfoMemory allocates memory for type C.VkPhysicalDeviceExternalBufferInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceExternalBufferInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalBufferInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceExternalBufferInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalBufferInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceExternalBufferInfo) Ref() *C.VkPhysicalDeviceExternalBufferInfo { + if x == nil { + return nil + } + return x.ref8d758947 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceExternalBufferInfo) Free() { + if x != nil && x.allocs8d758947 != nil { + x.allocs8d758947.(*cgoAllocMap).Free() + x.ref8d758947 = nil + } +} + +// NewPhysicalDeviceExternalBufferInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceExternalBufferInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalBufferInfo { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceExternalBufferInfo) + obj.ref8d758947 = (*C.VkPhysicalDeviceExternalBufferInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceExternalBufferInfo) PassRef() (*C.VkPhysicalDeviceExternalBufferInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref8d758947 != nil { + return x.ref8d758947, nil + } + mem8d758947 := allocPhysicalDeviceExternalBufferInfoMemory(1) + ref8d758947 := (*C.VkPhysicalDeviceExternalBufferInfo)(mem8d758947) + allocs8d758947 := new(cgoAllocMap) + allocs8d758947.Add(mem8d758947) + + var csType_allocs *cgoAllocMap + ref8d758947.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8d758947.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref8d758947.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8d758947.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref8d758947.flags, cflags_allocs = (C.VkBufferCreateFlags)(x.Flags), cgoAllocsUnknown + allocs8d758947.Borrow(cflags_allocs) + + var cusage_allocs *cgoAllocMap + ref8d758947.usage, cusage_allocs = (C.VkBufferUsageFlags)(x.Usage), cgoAllocsUnknown + allocs8d758947.Borrow(cusage_allocs) + + var chandleType_allocs *cgoAllocMap + ref8d758947.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs8d758947.Borrow(chandleType_allocs) + + x.ref8d758947 = ref8d758947 + x.allocs8d758947 = allocs8d758947 + return ref8d758947, allocs8d758947 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceExternalBufferInfo) PassValue() (C.VkPhysicalDeviceExternalBufferInfo, *cgoAllocMap) { + if x.ref8d758947 != nil { + return *x.ref8d758947, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceExternalBufferInfo) Deref() { + if x.ref8d758947 == nil { + return + } + x.SType = (StructureType)(x.ref8d758947.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8d758947.pNext)) + x.Flags = (BufferCreateFlags)(x.ref8d758947.flags) + x.Usage = (BufferUsageFlags)(x.ref8d758947.usage) + x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.ref8d758947.handleType) +} + +// allocExternalBufferPropertiesMemory allocates memory for type C.VkExternalBufferProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExternalBufferPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalBufferPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExternalBufferPropertiesValue = unsafe.Sizeof([1]C.VkExternalBufferProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExternalBufferProperties) Ref() *C.VkExternalBufferProperties { + if x == nil { + return nil + } + return x.ref12f7c546 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExternalBufferProperties) Free() { + if x != nil && x.allocs12f7c546 != nil { + x.allocs12f7c546.(*cgoAllocMap).Free() + x.ref12f7c546 = nil + } +} + +// NewExternalBufferPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExternalBufferPropertiesRef(ref unsafe.Pointer) *ExternalBufferProperties { + if ref == nil { + return nil + } + obj := new(ExternalBufferProperties) + obj.ref12f7c546 = (*C.VkExternalBufferProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExternalBufferProperties) PassRef() (*C.VkExternalBufferProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref12f7c546 != nil { + return x.ref12f7c546, nil + } + mem12f7c546 := allocExternalBufferPropertiesMemory(1) + ref12f7c546 := (*C.VkExternalBufferProperties)(mem12f7c546) + allocs12f7c546 := new(cgoAllocMap) + allocs12f7c546.Add(mem12f7c546) + + var csType_allocs *cgoAllocMap + ref12f7c546.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs12f7c546.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref12f7c546.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs12f7c546.Borrow(cpNext_allocs) + + var cexternalMemoryProperties_allocs *cgoAllocMap + ref12f7c546.externalMemoryProperties, cexternalMemoryProperties_allocs = x.ExternalMemoryProperties.PassValue() + allocs12f7c546.Borrow(cexternalMemoryProperties_allocs) + + x.ref12f7c546 = ref12f7c546 + x.allocs12f7c546 = allocs12f7c546 + return ref12f7c546, allocs12f7c546 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExternalBufferProperties) PassValue() (C.VkExternalBufferProperties, *cgoAllocMap) { + if x.ref12f7c546 != nil { + return *x.ref12f7c546, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExternalBufferProperties) Deref() { + if x.ref12f7c546 == nil { + return + } + x.SType = (StructureType)(x.ref12f7c546.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref12f7c546.pNext)) + x.ExternalMemoryProperties = *NewExternalMemoryPropertiesRef(unsafe.Pointer(&x.ref12f7c546.externalMemoryProperties)) +} + +// allocPhysicalDeviceIDPropertiesMemory allocates memory for type C.VkPhysicalDeviceIDProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceIDPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceIDPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceIDPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceIDProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceIDProperties) Ref() *C.VkPhysicalDeviceIDProperties { + if x == nil { + return nil + } + return x.refe990a9f3 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceIDProperties) Free() { + if x != nil && x.allocse990a9f3 != nil { + x.allocse990a9f3.(*cgoAllocMap).Free() + x.refe990a9f3 = nil + } +} + +// NewPhysicalDeviceIDPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceIDPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceIDProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceIDProperties) + obj.refe990a9f3 = (*C.VkPhysicalDeviceIDProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceIDProperties) PassRef() (*C.VkPhysicalDeviceIDProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refe990a9f3 != nil { + return x.refe990a9f3, nil + } + meme990a9f3 := allocPhysicalDeviceIDPropertiesMemory(1) + refe990a9f3 := (*C.VkPhysicalDeviceIDProperties)(meme990a9f3) + allocse990a9f3 := new(cgoAllocMap) + allocse990a9f3.Add(meme990a9f3) + + var csType_allocs *cgoAllocMap + refe990a9f3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse990a9f3.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refe990a9f3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse990a9f3.Borrow(cpNext_allocs) + + var cdeviceUUID_allocs *cgoAllocMap + refe990a9f3.deviceUUID, cdeviceUUID_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.DeviceUUID)), cgoAllocsUnknown + allocse990a9f3.Borrow(cdeviceUUID_allocs) + + var cdriverUUID_allocs *cgoAllocMap + refe990a9f3.driverUUID, cdriverUUID_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.DriverUUID)), cgoAllocsUnknown + allocse990a9f3.Borrow(cdriverUUID_allocs) + + var cdeviceLUID_allocs *cgoAllocMap + refe990a9f3.deviceLUID, cdeviceLUID_allocs = *(*[8]C.uint8_t)(unsafe.Pointer(&x.DeviceLUID)), cgoAllocsUnknown + allocse990a9f3.Borrow(cdeviceLUID_allocs) + + var cdeviceNodeMask_allocs *cgoAllocMap + refe990a9f3.deviceNodeMask, cdeviceNodeMask_allocs = (C.uint32_t)(x.DeviceNodeMask), cgoAllocsUnknown + allocse990a9f3.Borrow(cdeviceNodeMask_allocs) + + var cdeviceLUIDValid_allocs *cgoAllocMap + refe990a9f3.deviceLUIDValid, cdeviceLUIDValid_allocs = (C.VkBool32)(x.DeviceLUIDValid), cgoAllocsUnknown + allocse990a9f3.Borrow(cdeviceLUIDValid_allocs) + + x.refe990a9f3 = refe990a9f3 + x.allocse990a9f3 = allocse990a9f3 + return refe990a9f3, allocse990a9f3 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceIDProperties) PassValue() (C.VkPhysicalDeviceIDProperties, *cgoAllocMap) { + if x.refe990a9f3 != nil { + return *x.refe990a9f3, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceIDProperties) Deref() { + if x.refe990a9f3 == nil { + return + } + x.SType = (StructureType)(x.refe990a9f3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe990a9f3.pNext)) + x.DeviceUUID = *(*[16]byte)(unsafe.Pointer(&x.refe990a9f3.deviceUUID)) + x.DriverUUID = *(*[16]byte)(unsafe.Pointer(&x.refe990a9f3.driverUUID)) + x.DeviceLUID = *(*[8]byte)(unsafe.Pointer(&x.refe990a9f3.deviceLUID)) + x.DeviceNodeMask = (uint32)(x.refe990a9f3.deviceNodeMask) + x.DeviceLUIDValid = (Bool32)(x.refe990a9f3.deviceLUIDValid) +} + +// allocExternalMemoryImageCreateInfoMemory allocates memory for type C.VkExternalMemoryImageCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExternalMemoryImageCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalMemoryImageCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExternalMemoryImageCreateInfoValue = unsafe.Sizeof([1]C.VkExternalMemoryImageCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExternalMemoryImageCreateInfo) Ref() *C.VkExternalMemoryImageCreateInfo { + if x == nil { + return nil + } + return x.refdaf1185e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExternalMemoryImageCreateInfo) Free() { + if x != nil && x.allocsdaf1185e != nil { + x.allocsdaf1185e.(*cgoAllocMap).Free() + x.refdaf1185e = nil + } +} + +// NewExternalMemoryImageCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExternalMemoryImageCreateInfoRef(ref unsafe.Pointer) *ExternalMemoryImageCreateInfo { + if ref == nil { + return nil + } + obj := new(ExternalMemoryImageCreateInfo) + obj.refdaf1185e = (*C.VkExternalMemoryImageCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExternalMemoryImageCreateInfo) PassRef() (*C.VkExternalMemoryImageCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refdaf1185e != nil { + return x.refdaf1185e, nil + } + memdaf1185e := allocExternalMemoryImageCreateInfoMemory(1) + refdaf1185e := (*C.VkExternalMemoryImageCreateInfo)(memdaf1185e) + allocsdaf1185e := new(cgoAllocMap) + allocsdaf1185e.Add(memdaf1185e) + + var csType_allocs *cgoAllocMap + refdaf1185e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdaf1185e.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refdaf1185e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdaf1185e.Borrow(cpNext_allocs) + + var chandleTypes_allocs *cgoAllocMap + refdaf1185e.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown + allocsdaf1185e.Borrow(chandleTypes_allocs) + + x.refdaf1185e = refdaf1185e + x.allocsdaf1185e = allocsdaf1185e + return refdaf1185e, allocsdaf1185e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExternalMemoryImageCreateInfo) PassValue() (C.VkExternalMemoryImageCreateInfo, *cgoAllocMap) { + if x.refdaf1185e != nil { + return *x.refdaf1185e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExternalMemoryImageCreateInfo) Deref() { + if x.refdaf1185e == nil { + return + } + x.SType = (StructureType)(x.refdaf1185e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdaf1185e.pNext)) + x.HandleTypes = (ExternalMemoryHandleTypeFlags)(x.refdaf1185e.handleTypes) +} + +// allocExternalMemoryBufferCreateInfoMemory allocates memory for type C.VkExternalMemoryBufferCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExternalMemoryBufferCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalMemoryBufferCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExternalMemoryBufferCreateInfoValue = unsafe.Sizeof([1]C.VkExternalMemoryBufferCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExternalMemoryBufferCreateInfo) Ref() *C.VkExternalMemoryBufferCreateInfo { + if x == nil { + return nil + } + return x.refd33a9423 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExternalMemoryBufferCreateInfo) Free() { + if x != nil && x.allocsd33a9423 != nil { + x.allocsd33a9423.(*cgoAllocMap).Free() + x.refd33a9423 = nil + } +} + +// NewExternalMemoryBufferCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExternalMemoryBufferCreateInfoRef(ref unsafe.Pointer) *ExternalMemoryBufferCreateInfo { + if ref == nil { + return nil + } + obj := new(ExternalMemoryBufferCreateInfo) + obj.refd33a9423 = (*C.VkExternalMemoryBufferCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExternalMemoryBufferCreateInfo) PassRef() (*C.VkExternalMemoryBufferCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd33a9423 != nil { + return x.refd33a9423, nil + } + memd33a9423 := allocExternalMemoryBufferCreateInfoMemory(1) + refd33a9423 := (*C.VkExternalMemoryBufferCreateInfo)(memd33a9423) + allocsd33a9423 := new(cgoAllocMap) + allocsd33a9423.Add(memd33a9423) + + var csType_allocs *cgoAllocMap + refd33a9423.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd33a9423.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd33a9423.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd33a9423.Borrow(cpNext_allocs) + + var chandleTypes_allocs *cgoAllocMap + refd33a9423.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown + allocsd33a9423.Borrow(chandleTypes_allocs) + + x.refd33a9423 = refd33a9423 + x.allocsd33a9423 = allocsd33a9423 + return refd33a9423, allocsd33a9423 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExternalMemoryBufferCreateInfo) PassValue() (C.VkExternalMemoryBufferCreateInfo, *cgoAllocMap) { + if x.refd33a9423 != nil { + return *x.refd33a9423, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExternalMemoryBufferCreateInfo) Deref() { + if x.refd33a9423 == nil { + return + } + x.SType = (StructureType)(x.refd33a9423.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd33a9423.pNext)) + x.HandleTypes = (ExternalMemoryHandleTypeFlags)(x.refd33a9423.handleTypes) +} + +// allocExportMemoryAllocateInfoMemory allocates memory for type C.VkExportMemoryAllocateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExportMemoryAllocateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExportMemoryAllocateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExportMemoryAllocateInfoValue = unsafe.Sizeof([1]C.VkExportMemoryAllocateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExportMemoryAllocateInfo) Ref() *C.VkExportMemoryAllocateInfo { + if x == nil { + return nil + } + return x.refeb76ec64 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExportMemoryAllocateInfo) Free() { + if x != nil && x.allocseb76ec64 != nil { + x.allocseb76ec64.(*cgoAllocMap).Free() + x.refeb76ec64 = nil + } +} + +// NewExportMemoryAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExportMemoryAllocateInfoRef(ref unsafe.Pointer) *ExportMemoryAllocateInfo { + if ref == nil { + return nil + } + obj := new(ExportMemoryAllocateInfo) + obj.refeb76ec64 = (*C.VkExportMemoryAllocateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExportMemoryAllocateInfo) PassRef() (*C.VkExportMemoryAllocateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refeb76ec64 != nil { + return x.refeb76ec64, nil + } + memeb76ec64 := allocExportMemoryAllocateInfoMemory(1) + refeb76ec64 := (*C.VkExportMemoryAllocateInfo)(memeb76ec64) + allocseb76ec64 := new(cgoAllocMap) + allocseb76ec64.Add(memeb76ec64) + + var csType_allocs *cgoAllocMap + refeb76ec64.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseb76ec64.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refeb76ec64.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseb76ec64.Borrow(cpNext_allocs) + + var chandleTypes_allocs *cgoAllocMap + refeb76ec64.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown + allocseb76ec64.Borrow(chandleTypes_allocs) + + x.refeb76ec64 = refeb76ec64 + x.allocseb76ec64 = allocseb76ec64 + return refeb76ec64, allocseb76ec64 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExportMemoryAllocateInfo) PassValue() (C.VkExportMemoryAllocateInfo, *cgoAllocMap) { + if x.refeb76ec64 != nil { + return *x.refeb76ec64, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExportMemoryAllocateInfo) Deref() { + if x.refeb76ec64 == nil { + return + } + x.SType = (StructureType)(x.refeb76ec64.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeb76ec64.pNext)) + x.HandleTypes = (ExternalMemoryHandleTypeFlags)(x.refeb76ec64.handleTypes) +} + +// allocPhysicalDeviceExternalFenceInfoMemory allocates memory for type C.VkPhysicalDeviceExternalFenceInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceExternalFenceInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalFenceInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceExternalFenceInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalFenceInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceExternalFenceInfo) Ref() *C.VkPhysicalDeviceExternalFenceInfo { + if x == nil { + return nil + } + return x.ref9bb660cc +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceExternalFenceInfo) Free() { + if x != nil && x.allocs9bb660cc != nil { + x.allocs9bb660cc.(*cgoAllocMap).Free() + x.ref9bb660cc = nil + } +} + +// NewPhysicalDeviceExternalFenceInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceExternalFenceInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalFenceInfo { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceExternalFenceInfo) + obj.ref9bb660cc = (*C.VkPhysicalDeviceExternalFenceInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceExternalFenceInfo) PassRef() (*C.VkPhysicalDeviceExternalFenceInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref9bb660cc != nil { + return x.ref9bb660cc, nil + } + mem9bb660cc := allocPhysicalDeviceExternalFenceInfoMemory(1) + ref9bb660cc := (*C.VkPhysicalDeviceExternalFenceInfo)(mem9bb660cc) + allocs9bb660cc := new(cgoAllocMap) + allocs9bb660cc.Add(mem9bb660cc) + + var csType_allocs *cgoAllocMap + ref9bb660cc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9bb660cc.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref9bb660cc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9bb660cc.Borrow(cpNext_allocs) + + var chandleType_allocs *cgoAllocMap + ref9bb660cc.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs9bb660cc.Borrow(chandleType_allocs) + + x.ref9bb660cc = ref9bb660cc + x.allocs9bb660cc = allocs9bb660cc + return ref9bb660cc, allocs9bb660cc + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceExternalFenceInfo) PassValue() (C.VkPhysicalDeviceExternalFenceInfo, *cgoAllocMap) { + if x.ref9bb660cc != nil { + return *x.ref9bb660cc, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceExternalFenceInfo) Deref() { + if x.ref9bb660cc == nil { + return + } + x.SType = (StructureType)(x.ref9bb660cc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9bb660cc.pNext)) + x.HandleType = (ExternalFenceHandleTypeFlagBits)(x.ref9bb660cc.handleType) +} + +// allocExternalFencePropertiesMemory allocates memory for type C.VkExternalFenceProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExternalFencePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalFencePropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExternalFencePropertiesValue = unsafe.Sizeof([1]C.VkExternalFenceProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExternalFenceProperties) Ref() *C.VkExternalFenceProperties { + if x == nil { + return nil + } + return x.ref18806773 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExternalFenceProperties) Free() { + if x != nil && x.allocs18806773 != nil { + x.allocs18806773.(*cgoAllocMap).Free() + x.ref18806773 = nil + } +} + +// NewExternalFencePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExternalFencePropertiesRef(ref unsafe.Pointer) *ExternalFenceProperties { + if ref == nil { + return nil + } + obj := new(ExternalFenceProperties) + obj.ref18806773 = (*C.VkExternalFenceProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExternalFenceProperties) PassRef() (*C.VkExternalFenceProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref18806773 != nil { + return x.ref18806773, nil + } + mem18806773 := allocExternalFencePropertiesMemory(1) + ref18806773 := (*C.VkExternalFenceProperties)(mem18806773) + allocs18806773 := new(cgoAllocMap) + allocs18806773.Add(mem18806773) + + var csType_allocs *cgoAllocMap + ref18806773.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs18806773.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref18806773.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs18806773.Borrow(cpNext_allocs) + + var cexportFromImportedHandleTypes_allocs *cgoAllocMap + ref18806773.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalFenceHandleTypeFlags)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown + allocs18806773.Borrow(cexportFromImportedHandleTypes_allocs) + + var ccompatibleHandleTypes_allocs *cgoAllocMap + ref18806773.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalFenceHandleTypeFlags)(x.CompatibleHandleTypes), cgoAllocsUnknown + allocs18806773.Borrow(ccompatibleHandleTypes_allocs) + + var cexternalFenceFeatures_allocs *cgoAllocMap + ref18806773.externalFenceFeatures, cexternalFenceFeatures_allocs = (C.VkExternalFenceFeatureFlags)(x.ExternalFenceFeatures), cgoAllocsUnknown + allocs18806773.Borrow(cexternalFenceFeatures_allocs) + + x.ref18806773 = ref18806773 + x.allocs18806773 = allocs18806773 + return ref18806773, allocs18806773 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExternalFenceProperties) PassValue() (C.VkExternalFenceProperties, *cgoAllocMap) { + if x.ref18806773 != nil { + return *x.ref18806773, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExternalFenceProperties) Deref() { + if x.ref18806773 == nil { + return + } + x.SType = (StructureType)(x.ref18806773.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref18806773.pNext)) + x.ExportFromImportedHandleTypes = (ExternalFenceHandleTypeFlags)(x.ref18806773.exportFromImportedHandleTypes) + x.CompatibleHandleTypes = (ExternalFenceHandleTypeFlags)(x.ref18806773.compatibleHandleTypes) + x.ExternalFenceFeatures = (ExternalFenceFeatureFlags)(x.ref18806773.externalFenceFeatures) +} + +// allocExportFenceCreateInfoMemory allocates memory for type C.VkExportFenceCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExportFenceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExportFenceCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExportFenceCreateInfoValue = unsafe.Sizeof([1]C.VkExportFenceCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExportFenceCreateInfo) Ref() *C.VkExportFenceCreateInfo { + if x == nil { + return nil + } + return x.ref5fef8c3a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExportFenceCreateInfo) Free() { + if x != nil && x.allocs5fef8c3a != nil { + x.allocs5fef8c3a.(*cgoAllocMap).Free() + x.ref5fef8c3a = nil + } +} + +// NewExportFenceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExportFenceCreateInfoRef(ref unsafe.Pointer) *ExportFenceCreateInfo { + if ref == nil { + return nil + } + obj := new(ExportFenceCreateInfo) + obj.ref5fef8c3a = (*C.VkExportFenceCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExportFenceCreateInfo) PassRef() (*C.VkExportFenceCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5fef8c3a != nil { + return x.ref5fef8c3a, nil + } + mem5fef8c3a := allocExportFenceCreateInfoMemory(1) + ref5fef8c3a := (*C.VkExportFenceCreateInfo)(mem5fef8c3a) + allocs5fef8c3a := new(cgoAllocMap) + allocs5fef8c3a.Add(mem5fef8c3a) + + var csType_allocs *cgoAllocMap + ref5fef8c3a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5fef8c3a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5fef8c3a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5fef8c3a.Borrow(cpNext_allocs) + + var chandleTypes_allocs *cgoAllocMap + ref5fef8c3a.handleTypes, chandleTypes_allocs = (C.VkExternalFenceHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown + allocs5fef8c3a.Borrow(chandleTypes_allocs) + + x.ref5fef8c3a = ref5fef8c3a + x.allocs5fef8c3a = allocs5fef8c3a + return ref5fef8c3a, allocs5fef8c3a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExportFenceCreateInfo) PassValue() (C.VkExportFenceCreateInfo, *cgoAllocMap) { + if x.ref5fef8c3a != nil { + return *x.ref5fef8c3a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExportFenceCreateInfo) Deref() { + if x.ref5fef8c3a == nil { + return + } + x.SType = (StructureType)(x.ref5fef8c3a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5fef8c3a.pNext)) + x.HandleTypes = (ExternalFenceHandleTypeFlags)(x.ref5fef8c3a.handleTypes) +} + +// allocExportSemaphoreCreateInfoMemory allocates memory for type C.VkExportSemaphoreCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExportSemaphoreCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExportSemaphoreCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExportSemaphoreCreateInfoValue = unsafe.Sizeof([1]C.VkExportSemaphoreCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExportSemaphoreCreateInfo) Ref() *C.VkExportSemaphoreCreateInfo { + if x == nil { + return nil + } + return x.ref17b8d6c5 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExportSemaphoreCreateInfo) Free() { + if x != nil && x.allocs17b8d6c5 != nil { + x.allocs17b8d6c5.(*cgoAllocMap).Free() + x.ref17b8d6c5 = nil + } +} + +// NewExportSemaphoreCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExportSemaphoreCreateInfoRef(ref unsafe.Pointer) *ExportSemaphoreCreateInfo { + if ref == nil { + return nil + } + obj := new(ExportSemaphoreCreateInfo) + obj.ref17b8d6c5 = (*C.VkExportSemaphoreCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExportSemaphoreCreateInfo) PassRef() (*C.VkExportSemaphoreCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref17b8d6c5 != nil { + return x.ref17b8d6c5, nil + } + mem17b8d6c5 := allocExportSemaphoreCreateInfoMemory(1) + ref17b8d6c5 := (*C.VkExportSemaphoreCreateInfo)(mem17b8d6c5) + allocs17b8d6c5 := new(cgoAllocMap) + allocs17b8d6c5.Add(mem17b8d6c5) + + var csType_allocs *cgoAllocMap + ref17b8d6c5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs17b8d6c5.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref17b8d6c5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs17b8d6c5.Borrow(cpNext_allocs) + + var chandleTypes_allocs *cgoAllocMap + ref17b8d6c5.handleTypes, chandleTypes_allocs = (C.VkExternalSemaphoreHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown + allocs17b8d6c5.Borrow(chandleTypes_allocs) + + x.ref17b8d6c5 = ref17b8d6c5 + x.allocs17b8d6c5 = allocs17b8d6c5 + return ref17b8d6c5, allocs17b8d6c5 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExportSemaphoreCreateInfo) PassValue() (C.VkExportSemaphoreCreateInfo, *cgoAllocMap) { + if x.ref17b8d6c5 != nil { + return *x.ref17b8d6c5, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExportSemaphoreCreateInfo) Deref() { + if x.ref17b8d6c5 == nil { + return + } + x.SType = (StructureType)(x.ref17b8d6c5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref17b8d6c5.pNext)) + x.HandleTypes = (ExternalSemaphoreHandleTypeFlags)(x.ref17b8d6c5.handleTypes) +} + +// allocPhysicalDeviceExternalSemaphoreInfoMemory allocates memory for type C.VkPhysicalDeviceExternalSemaphoreInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceExternalSemaphoreInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalSemaphoreInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceExternalSemaphoreInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalSemaphoreInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceExternalSemaphoreInfo) Ref() *C.VkPhysicalDeviceExternalSemaphoreInfo { + if x == nil { + return nil + } + return x.ref5981d29e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceExternalSemaphoreInfo) Free() { + if x != nil && x.allocs5981d29e != nil { + x.allocs5981d29e.(*cgoAllocMap).Free() + x.ref5981d29e = nil + } +} + +// NewPhysicalDeviceExternalSemaphoreInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceExternalSemaphoreInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalSemaphoreInfo { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceExternalSemaphoreInfo) + obj.ref5981d29e = (*C.VkPhysicalDeviceExternalSemaphoreInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceExternalSemaphoreInfo) PassRef() (*C.VkPhysicalDeviceExternalSemaphoreInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5981d29e != nil { + return x.ref5981d29e, nil + } + mem5981d29e := allocPhysicalDeviceExternalSemaphoreInfoMemory(1) + ref5981d29e := (*C.VkPhysicalDeviceExternalSemaphoreInfo)(mem5981d29e) + allocs5981d29e := new(cgoAllocMap) + allocs5981d29e.Add(mem5981d29e) + + var csType_allocs *cgoAllocMap + ref5981d29e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5981d29e.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5981d29e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5981d29e.Borrow(cpNext_allocs) + + var chandleType_allocs *cgoAllocMap + ref5981d29e.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs5981d29e.Borrow(chandleType_allocs) + + x.ref5981d29e = ref5981d29e + x.allocs5981d29e = allocs5981d29e + return ref5981d29e, allocs5981d29e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceExternalSemaphoreInfo) PassValue() (C.VkPhysicalDeviceExternalSemaphoreInfo, *cgoAllocMap) { + if x.ref5981d29e != nil { + return *x.ref5981d29e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceExternalSemaphoreInfo) Deref() { + if x.ref5981d29e == nil { + return + } + x.SType = (StructureType)(x.ref5981d29e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5981d29e.pNext)) + x.HandleType = (ExternalSemaphoreHandleTypeFlagBits)(x.ref5981d29e.handleType) +} + +// allocExternalSemaphorePropertiesMemory allocates memory for type C.VkExternalSemaphoreProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocExternalSemaphorePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalSemaphorePropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfExternalSemaphorePropertiesValue = unsafe.Sizeof([1]C.VkExternalSemaphoreProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ExternalSemaphoreProperties) Ref() *C.VkExternalSemaphoreProperties { + if x == nil { + return nil + } + return x.ref87ec1054 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ExternalSemaphoreProperties) Free() { + if x != nil && x.allocs87ec1054 != nil { + x.allocs87ec1054.(*cgoAllocMap).Free() + x.ref87ec1054 = nil + } +} + +// NewExternalSemaphorePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewExternalSemaphorePropertiesRef(ref unsafe.Pointer) *ExternalSemaphoreProperties { + if ref == nil { + return nil + } + obj := new(ExternalSemaphoreProperties) + obj.ref87ec1054 = (*C.VkExternalSemaphoreProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ExternalSemaphoreProperties) PassRef() (*C.VkExternalSemaphoreProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref87ec1054 != nil { + return x.ref87ec1054, nil + } + mem87ec1054 := allocExternalSemaphorePropertiesMemory(1) + ref87ec1054 := (*C.VkExternalSemaphoreProperties)(mem87ec1054) + allocs87ec1054 := new(cgoAllocMap) + allocs87ec1054.Add(mem87ec1054) + + var csType_allocs *cgoAllocMap + ref87ec1054.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs87ec1054.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref87ec1054.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs87ec1054.Borrow(cpNext_allocs) + + var cexportFromImportedHandleTypes_allocs *cgoAllocMap + ref87ec1054.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalSemaphoreHandleTypeFlags)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown + allocs87ec1054.Borrow(cexportFromImportedHandleTypes_allocs) + + var ccompatibleHandleTypes_allocs *cgoAllocMap + ref87ec1054.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalSemaphoreHandleTypeFlags)(x.CompatibleHandleTypes), cgoAllocsUnknown + allocs87ec1054.Borrow(ccompatibleHandleTypes_allocs) + + var cexternalSemaphoreFeatures_allocs *cgoAllocMap + ref87ec1054.externalSemaphoreFeatures, cexternalSemaphoreFeatures_allocs = (C.VkExternalSemaphoreFeatureFlags)(x.ExternalSemaphoreFeatures), cgoAllocsUnknown + allocs87ec1054.Borrow(cexternalSemaphoreFeatures_allocs) + + x.ref87ec1054 = ref87ec1054 + x.allocs87ec1054 = allocs87ec1054 + return ref87ec1054, allocs87ec1054 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ExternalSemaphoreProperties) PassValue() (C.VkExternalSemaphoreProperties, *cgoAllocMap) { + if x.ref87ec1054 != nil { + return *x.ref87ec1054, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ExternalSemaphoreProperties) Deref() { + if x.ref87ec1054 == nil { + return + } + x.SType = (StructureType)(x.ref87ec1054.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref87ec1054.pNext)) + x.ExportFromImportedHandleTypes = (ExternalSemaphoreHandleTypeFlags)(x.ref87ec1054.exportFromImportedHandleTypes) + x.CompatibleHandleTypes = (ExternalSemaphoreHandleTypeFlags)(x.ref87ec1054.compatibleHandleTypes) + x.ExternalSemaphoreFeatures = (ExternalSemaphoreFeatureFlags)(x.ref87ec1054.externalSemaphoreFeatures) +} + +// allocPhysicalDeviceMaintenance3PropertiesMemory allocates memory for type C.VkPhysicalDeviceMaintenance3Properties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceMaintenance3PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMaintenance3PropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceMaintenance3PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMaintenance3Properties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceMaintenance3Properties) Ref() *C.VkPhysicalDeviceMaintenance3Properties { + if x == nil { + return nil + } + return x.ref12c07777 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceMaintenance3Properties) Free() { + if x != nil && x.allocs12c07777 != nil { + x.allocs12c07777.(*cgoAllocMap).Free() + x.ref12c07777 = nil + } +} + +// NewPhysicalDeviceMaintenance3PropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceMaintenance3PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMaintenance3Properties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceMaintenance3Properties) + obj.ref12c07777 = (*C.VkPhysicalDeviceMaintenance3Properties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceMaintenance3Properties) PassRef() (*C.VkPhysicalDeviceMaintenance3Properties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref12c07777 != nil { + return x.ref12c07777, nil + } + mem12c07777 := allocPhysicalDeviceMaintenance3PropertiesMemory(1) + ref12c07777 := (*C.VkPhysicalDeviceMaintenance3Properties)(mem12c07777) + allocs12c07777 := new(cgoAllocMap) + allocs12c07777.Add(mem12c07777) + + var csType_allocs *cgoAllocMap + ref12c07777.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs12c07777.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref12c07777.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs12c07777.Borrow(cpNext_allocs) + + var cmaxPerSetDescriptors_allocs *cgoAllocMap + ref12c07777.maxPerSetDescriptors, cmaxPerSetDescriptors_allocs = (C.uint32_t)(x.MaxPerSetDescriptors), cgoAllocsUnknown + allocs12c07777.Borrow(cmaxPerSetDescriptors_allocs) + + var cmaxMemoryAllocationSize_allocs *cgoAllocMap + ref12c07777.maxMemoryAllocationSize, cmaxMemoryAllocationSize_allocs = (C.VkDeviceSize)(x.MaxMemoryAllocationSize), cgoAllocsUnknown + allocs12c07777.Borrow(cmaxMemoryAllocationSize_allocs) + + x.ref12c07777 = ref12c07777 + x.allocs12c07777 = allocs12c07777 + return ref12c07777, allocs12c07777 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceMaintenance3Properties) PassValue() (C.VkPhysicalDeviceMaintenance3Properties, *cgoAllocMap) { + if x.ref12c07777 != nil { + return *x.ref12c07777, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceMaintenance3Properties) Deref() { + if x.ref12c07777 == nil { + return + } + x.SType = (StructureType)(x.ref12c07777.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref12c07777.pNext)) + x.MaxPerSetDescriptors = (uint32)(x.ref12c07777.maxPerSetDescriptors) + x.MaxMemoryAllocationSize = (DeviceSize)(x.ref12c07777.maxMemoryAllocationSize) +} + +// allocDescriptorSetLayoutSupportMemory allocates memory for type C.VkDescriptorSetLayoutSupport in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorSetLayoutSupportMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutSupportValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorSetLayoutSupportValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutSupport{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorSetLayoutSupport) Ref() *C.VkDescriptorSetLayoutSupport { + if x == nil { + return nil + } + return x.ref5802686c +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorSetLayoutSupport) Free() { + if x != nil && x.allocs5802686c != nil { + x.allocs5802686c.(*cgoAllocMap).Free() + x.ref5802686c = nil + } +} + +// NewDescriptorSetLayoutSupportRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorSetLayoutSupportRef(ref unsafe.Pointer) *DescriptorSetLayoutSupport { + if ref == nil { + return nil + } + obj := new(DescriptorSetLayoutSupport) + obj.ref5802686c = (*C.VkDescriptorSetLayoutSupport)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorSetLayoutSupport) PassRef() (*C.VkDescriptorSetLayoutSupport, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5802686c != nil { + return x.ref5802686c, nil + } + mem5802686c := allocDescriptorSetLayoutSupportMemory(1) + ref5802686c := (*C.VkDescriptorSetLayoutSupport)(mem5802686c) + allocs5802686c := new(cgoAllocMap) + allocs5802686c.Add(mem5802686c) + + var csType_allocs *cgoAllocMap + ref5802686c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5802686c.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5802686c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5802686c.Borrow(cpNext_allocs) + + var csupported_allocs *cgoAllocMap + ref5802686c.supported, csupported_allocs = (C.VkBool32)(x.Supported), cgoAllocsUnknown + allocs5802686c.Borrow(csupported_allocs) + + x.ref5802686c = ref5802686c + x.allocs5802686c = allocs5802686c + return ref5802686c, allocs5802686c + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorSetLayoutSupport) PassValue() (C.VkDescriptorSetLayoutSupport, *cgoAllocMap) { + if x.ref5802686c != nil { + return *x.ref5802686c, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorSetLayoutSupport) Deref() { + if x.ref5802686c == nil { + return + } + x.SType = (StructureType)(x.ref5802686c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5802686c.pNext)) + x.Supported = (Bool32)(x.ref5802686c.supported) +} + +// allocPhysicalDeviceShaderDrawParametersFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderDrawParametersFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceShaderDrawParametersFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderDrawParametersFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceShaderDrawParametersFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderDrawParametersFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderDrawParametersFeatures) Ref() *C.VkPhysicalDeviceShaderDrawParametersFeatures { + if x == nil { + return nil + } + return x.ref35d5aa70 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceShaderDrawParametersFeatures) Free() { + if x != nil && x.allocs35d5aa70 != nil { + x.allocs35d5aa70.(*cgoAllocMap).Free() + x.ref35d5aa70 = nil + } +} + +// NewPhysicalDeviceShaderDrawParametersFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceShaderDrawParametersFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderDrawParametersFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceShaderDrawParametersFeatures) + obj.ref35d5aa70 = (*C.VkPhysicalDeviceShaderDrawParametersFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceShaderDrawParametersFeatures) PassRef() (*C.VkPhysicalDeviceShaderDrawParametersFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref35d5aa70 != nil { + return x.ref35d5aa70, nil + } + mem35d5aa70 := allocPhysicalDeviceShaderDrawParametersFeaturesMemory(1) + ref35d5aa70 := (*C.VkPhysicalDeviceShaderDrawParametersFeatures)(mem35d5aa70) + allocs35d5aa70 := new(cgoAllocMap) + allocs35d5aa70.Add(mem35d5aa70) + + var csType_allocs *cgoAllocMap + ref35d5aa70.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs35d5aa70.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref35d5aa70.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs35d5aa70.Borrow(cpNext_allocs) + + var cshaderDrawParameters_allocs *cgoAllocMap + ref35d5aa70.shaderDrawParameters, cshaderDrawParameters_allocs = (C.VkBool32)(x.ShaderDrawParameters), cgoAllocsUnknown + allocs35d5aa70.Borrow(cshaderDrawParameters_allocs) + + x.ref35d5aa70 = ref35d5aa70 + x.allocs35d5aa70 = allocs35d5aa70 + return ref35d5aa70, allocs35d5aa70 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceShaderDrawParametersFeatures) PassValue() (C.VkPhysicalDeviceShaderDrawParametersFeatures, *cgoAllocMap) { + if x.ref35d5aa70 != nil { + return *x.ref35d5aa70, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceShaderDrawParametersFeatures) Deref() { + if x.ref35d5aa70 == nil { + return + } + x.SType = (StructureType)(x.ref35d5aa70.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref35d5aa70.pNext)) + x.ShaderDrawParameters = (Bool32)(x.ref35d5aa70.shaderDrawParameters) +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderDrawParameterFeatures) Ref() *C.VkPhysicalDeviceShaderDrawParametersFeatures { + if x == nil { + return nil + } + return x.ref35d5aa70 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceShaderDrawParameterFeatures) Free() { + if x != nil && x.allocs35d5aa70 != nil { + x.allocs35d5aa70.(*cgoAllocMap).Free() + x.ref35d5aa70 = nil + } +} + +// NewPhysicalDeviceShaderDrawParameterFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceShaderDrawParameterFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderDrawParameterFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceShaderDrawParameterFeatures) + obj.ref35d5aa70 = (*C.VkPhysicalDeviceShaderDrawParametersFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceShaderDrawParameterFeatures) PassRef() (*C.VkPhysicalDeviceShaderDrawParametersFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref35d5aa70 != nil { + return x.ref35d5aa70, nil + } + mem35d5aa70 := allocPhysicalDeviceShaderDrawParametersFeaturesMemory(1) + ref35d5aa70 := (*C.VkPhysicalDeviceShaderDrawParametersFeatures)(mem35d5aa70) + allocs35d5aa70 := new(cgoAllocMap) + allocs35d5aa70.Add(mem35d5aa70) + + var csType_allocs *cgoAllocMap + ref35d5aa70.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs35d5aa70.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref35d5aa70.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs35d5aa70.Borrow(cpNext_allocs) + + var cshaderDrawParameters_allocs *cgoAllocMap + ref35d5aa70.shaderDrawParameters, cshaderDrawParameters_allocs = (C.VkBool32)(x.ShaderDrawParameters), cgoAllocsUnknown + allocs35d5aa70.Borrow(cshaderDrawParameters_allocs) + + x.ref35d5aa70 = ref35d5aa70 + x.allocs35d5aa70 = allocs35d5aa70 + return ref35d5aa70, allocs35d5aa70 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceShaderDrawParameterFeatures) PassValue() (C.VkPhysicalDeviceShaderDrawParametersFeatures, *cgoAllocMap) { + if x.ref35d5aa70 != nil { + return *x.ref35d5aa70, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceShaderDrawParameterFeatures) Deref() { + if x.ref35d5aa70 == nil { + return + } + x.SType = (StructureType)(x.ref35d5aa70.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref35d5aa70.pNext)) + x.ShaderDrawParameters = (Bool32)(x.ref35d5aa70.shaderDrawParameters) +} + +// allocPhysicalDeviceVulkan11FeaturesMemory allocates memory for type C.VkPhysicalDeviceVulkan11Features in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceVulkan11FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVulkan11FeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceVulkan11FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkan11Features{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceVulkan11Features) Ref() *C.VkPhysicalDeviceVulkan11Features { + if x == nil { + return nil + } + return x.refd5335cef +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceVulkan11Features) Free() { + if x != nil && x.allocsd5335cef != nil { + x.allocsd5335cef.(*cgoAllocMap).Free() + x.refd5335cef = nil + } +} + +// NewPhysicalDeviceVulkan11FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceVulkan11FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVulkan11Features { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceVulkan11Features) + obj.refd5335cef = (*C.VkPhysicalDeviceVulkan11Features)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceVulkan11Features) PassRef() (*C.VkPhysicalDeviceVulkan11Features, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd5335cef != nil { + return x.refd5335cef, nil + } + memd5335cef := allocPhysicalDeviceVulkan11FeaturesMemory(1) + refd5335cef := (*C.VkPhysicalDeviceVulkan11Features)(memd5335cef) + allocsd5335cef := new(cgoAllocMap) + allocsd5335cef.Add(memd5335cef) + + var csType_allocs *cgoAllocMap + refd5335cef.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd5335cef.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd5335cef.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd5335cef.Borrow(cpNext_allocs) + + var cstorageBuffer16BitAccess_allocs *cgoAllocMap + refd5335cef.storageBuffer16BitAccess, cstorageBuffer16BitAccess_allocs = (C.VkBool32)(x.StorageBuffer16BitAccess), cgoAllocsUnknown + allocsd5335cef.Borrow(cstorageBuffer16BitAccess_allocs) + + var cuniformAndStorageBuffer16BitAccess_allocs *cgoAllocMap + refd5335cef.uniformAndStorageBuffer16BitAccess, cuniformAndStorageBuffer16BitAccess_allocs = (C.VkBool32)(x.UniformAndStorageBuffer16BitAccess), cgoAllocsUnknown + allocsd5335cef.Borrow(cuniformAndStorageBuffer16BitAccess_allocs) + + var cstoragePushConstant16_allocs *cgoAllocMap + refd5335cef.storagePushConstant16, cstoragePushConstant16_allocs = (C.VkBool32)(x.StoragePushConstant16), cgoAllocsUnknown + allocsd5335cef.Borrow(cstoragePushConstant16_allocs) + + var cstorageInputOutput16_allocs *cgoAllocMap + refd5335cef.storageInputOutput16, cstorageInputOutput16_allocs = (C.VkBool32)(x.StorageInputOutput16), cgoAllocsUnknown + allocsd5335cef.Borrow(cstorageInputOutput16_allocs) + + var cmultiview_allocs *cgoAllocMap + refd5335cef.multiview, cmultiview_allocs = (C.VkBool32)(x.Multiview), cgoAllocsUnknown + allocsd5335cef.Borrow(cmultiview_allocs) + + var cmultiviewGeometryShader_allocs *cgoAllocMap + refd5335cef.multiviewGeometryShader, cmultiviewGeometryShader_allocs = (C.VkBool32)(x.MultiviewGeometryShader), cgoAllocsUnknown + allocsd5335cef.Borrow(cmultiviewGeometryShader_allocs) + + var cmultiviewTessellationShader_allocs *cgoAllocMap + refd5335cef.multiviewTessellationShader, cmultiviewTessellationShader_allocs = (C.VkBool32)(x.MultiviewTessellationShader), cgoAllocsUnknown + allocsd5335cef.Borrow(cmultiviewTessellationShader_allocs) + + var cvariablePointersStorageBuffer_allocs *cgoAllocMap + refd5335cef.variablePointersStorageBuffer, cvariablePointersStorageBuffer_allocs = (C.VkBool32)(x.VariablePointersStorageBuffer), cgoAllocsUnknown + allocsd5335cef.Borrow(cvariablePointersStorageBuffer_allocs) + + var cvariablePointers_allocs *cgoAllocMap + refd5335cef.variablePointers, cvariablePointers_allocs = (C.VkBool32)(x.VariablePointers), cgoAllocsUnknown + allocsd5335cef.Borrow(cvariablePointers_allocs) + + var cprotectedMemory_allocs *cgoAllocMap + refd5335cef.protectedMemory, cprotectedMemory_allocs = (C.VkBool32)(x.ProtectedMemory), cgoAllocsUnknown + allocsd5335cef.Borrow(cprotectedMemory_allocs) + + var csamplerYcbcrConversion_allocs *cgoAllocMap + refd5335cef.samplerYcbcrConversion, csamplerYcbcrConversion_allocs = (C.VkBool32)(x.SamplerYcbcrConversion), cgoAllocsUnknown + allocsd5335cef.Borrow(csamplerYcbcrConversion_allocs) + + var cshaderDrawParameters_allocs *cgoAllocMap + refd5335cef.shaderDrawParameters, cshaderDrawParameters_allocs = (C.VkBool32)(x.ShaderDrawParameters), cgoAllocsUnknown + allocsd5335cef.Borrow(cshaderDrawParameters_allocs) + + x.refd5335cef = refd5335cef + x.allocsd5335cef = allocsd5335cef + return refd5335cef, allocsd5335cef + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceVulkan11Features) PassValue() (C.VkPhysicalDeviceVulkan11Features, *cgoAllocMap) { + if x.refd5335cef != nil { + return *x.refd5335cef, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceVulkan11Features) Deref() { + if x.refd5335cef == nil { + return + } + x.SType = (StructureType)(x.refd5335cef.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd5335cef.pNext)) + x.StorageBuffer16BitAccess = (Bool32)(x.refd5335cef.storageBuffer16BitAccess) + x.UniformAndStorageBuffer16BitAccess = (Bool32)(x.refd5335cef.uniformAndStorageBuffer16BitAccess) + x.StoragePushConstant16 = (Bool32)(x.refd5335cef.storagePushConstant16) + x.StorageInputOutput16 = (Bool32)(x.refd5335cef.storageInputOutput16) + x.Multiview = (Bool32)(x.refd5335cef.multiview) + x.MultiviewGeometryShader = (Bool32)(x.refd5335cef.multiviewGeometryShader) + x.MultiviewTessellationShader = (Bool32)(x.refd5335cef.multiviewTessellationShader) + x.VariablePointersStorageBuffer = (Bool32)(x.refd5335cef.variablePointersStorageBuffer) + x.VariablePointers = (Bool32)(x.refd5335cef.variablePointers) + x.ProtectedMemory = (Bool32)(x.refd5335cef.protectedMemory) + x.SamplerYcbcrConversion = (Bool32)(x.refd5335cef.samplerYcbcrConversion) + x.ShaderDrawParameters = (Bool32)(x.refd5335cef.shaderDrawParameters) +} + +// allocPhysicalDeviceVulkan11PropertiesMemory allocates memory for type C.VkPhysicalDeviceVulkan11Properties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceVulkan11PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVulkan11PropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceVulkan11PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkan11Properties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceVulkan11Properties) Ref() *C.VkPhysicalDeviceVulkan11Properties { + if x == nil { + return nil + } + return x.refd27276a5 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceVulkan11Properties) Free() { + if x != nil && x.allocsd27276a5 != nil { + x.allocsd27276a5.(*cgoAllocMap).Free() + x.refd27276a5 = nil + } +} + +// NewPhysicalDeviceVulkan11PropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceVulkan11PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceVulkan11Properties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceVulkan11Properties) + obj.refd27276a5 = (*C.VkPhysicalDeviceVulkan11Properties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceVulkan11Properties) PassRef() (*C.VkPhysicalDeviceVulkan11Properties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd27276a5 != nil { + return x.refd27276a5, nil + } + memd27276a5 := allocPhysicalDeviceVulkan11PropertiesMemory(1) + refd27276a5 := (*C.VkPhysicalDeviceVulkan11Properties)(memd27276a5) + allocsd27276a5 := new(cgoAllocMap) + allocsd27276a5.Add(memd27276a5) + + var csType_allocs *cgoAllocMap + refd27276a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd27276a5.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd27276a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd27276a5.Borrow(cpNext_allocs) + + var cdeviceUUID_allocs *cgoAllocMap + refd27276a5.deviceUUID, cdeviceUUID_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.DeviceUUID)), cgoAllocsUnknown + allocsd27276a5.Borrow(cdeviceUUID_allocs) + + var cdriverUUID_allocs *cgoAllocMap + refd27276a5.driverUUID, cdriverUUID_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.DriverUUID)), cgoAllocsUnknown + allocsd27276a5.Borrow(cdriverUUID_allocs) + + var cdeviceLUID_allocs *cgoAllocMap + refd27276a5.deviceLUID, cdeviceLUID_allocs = *(*[8]C.uint8_t)(unsafe.Pointer(&x.DeviceLUID)), cgoAllocsUnknown + allocsd27276a5.Borrow(cdeviceLUID_allocs) + + var cdeviceNodeMask_allocs *cgoAllocMap + refd27276a5.deviceNodeMask, cdeviceNodeMask_allocs = (C.uint32_t)(x.DeviceNodeMask), cgoAllocsUnknown + allocsd27276a5.Borrow(cdeviceNodeMask_allocs) + + var cdeviceLUIDValid_allocs *cgoAllocMap + refd27276a5.deviceLUIDValid, cdeviceLUIDValid_allocs = (C.VkBool32)(x.DeviceLUIDValid), cgoAllocsUnknown + allocsd27276a5.Borrow(cdeviceLUIDValid_allocs) + + var csubgroupSize_allocs *cgoAllocMap + refd27276a5.subgroupSize, csubgroupSize_allocs = (C.uint32_t)(x.SubgroupSize), cgoAllocsUnknown + allocsd27276a5.Borrow(csubgroupSize_allocs) + + var csubgroupSupportedStages_allocs *cgoAllocMap + refd27276a5.subgroupSupportedStages, csubgroupSupportedStages_allocs = (C.VkShaderStageFlags)(x.SubgroupSupportedStages), cgoAllocsUnknown + allocsd27276a5.Borrow(csubgroupSupportedStages_allocs) + + var csubgroupSupportedOperations_allocs *cgoAllocMap + refd27276a5.subgroupSupportedOperations, csubgroupSupportedOperations_allocs = (C.VkSubgroupFeatureFlags)(x.SubgroupSupportedOperations), cgoAllocsUnknown + allocsd27276a5.Borrow(csubgroupSupportedOperations_allocs) + + var csubgroupQuadOperationsInAllStages_allocs *cgoAllocMap + refd27276a5.subgroupQuadOperationsInAllStages, csubgroupQuadOperationsInAllStages_allocs = (C.VkBool32)(x.SubgroupQuadOperationsInAllStages), cgoAllocsUnknown + allocsd27276a5.Borrow(csubgroupQuadOperationsInAllStages_allocs) + + var cpointClippingBehavior_allocs *cgoAllocMap + refd27276a5.pointClippingBehavior, cpointClippingBehavior_allocs = (C.VkPointClippingBehavior)(x.PointClippingBehavior), cgoAllocsUnknown + allocsd27276a5.Borrow(cpointClippingBehavior_allocs) + + var cmaxMultiviewViewCount_allocs *cgoAllocMap + refd27276a5.maxMultiviewViewCount, cmaxMultiviewViewCount_allocs = (C.uint32_t)(x.MaxMultiviewViewCount), cgoAllocsUnknown + allocsd27276a5.Borrow(cmaxMultiviewViewCount_allocs) + + var cmaxMultiviewInstanceIndex_allocs *cgoAllocMap + refd27276a5.maxMultiviewInstanceIndex, cmaxMultiviewInstanceIndex_allocs = (C.uint32_t)(x.MaxMultiviewInstanceIndex), cgoAllocsUnknown + allocsd27276a5.Borrow(cmaxMultiviewInstanceIndex_allocs) + + var cprotectedNoFault_allocs *cgoAllocMap + refd27276a5.protectedNoFault, cprotectedNoFault_allocs = (C.VkBool32)(x.ProtectedNoFault), cgoAllocsUnknown + allocsd27276a5.Borrow(cprotectedNoFault_allocs) + + var cmaxPerSetDescriptors_allocs *cgoAllocMap + refd27276a5.maxPerSetDescriptors, cmaxPerSetDescriptors_allocs = (C.uint32_t)(x.MaxPerSetDescriptors), cgoAllocsUnknown + allocsd27276a5.Borrow(cmaxPerSetDescriptors_allocs) + + var cmaxMemoryAllocationSize_allocs *cgoAllocMap + refd27276a5.maxMemoryAllocationSize, cmaxMemoryAllocationSize_allocs = (C.VkDeviceSize)(x.MaxMemoryAllocationSize), cgoAllocsUnknown + allocsd27276a5.Borrow(cmaxMemoryAllocationSize_allocs) + + x.refd27276a5 = refd27276a5 + x.allocsd27276a5 = allocsd27276a5 + return refd27276a5, allocsd27276a5 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceVulkan11Properties) PassValue() (C.VkPhysicalDeviceVulkan11Properties, *cgoAllocMap) { + if x.refd27276a5 != nil { + return *x.refd27276a5, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceVulkan11Properties) Deref() { + if x.refd27276a5 == nil { + return + } + x.SType = (StructureType)(x.refd27276a5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd27276a5.pNext)) + x.DeviceUUID = *(*[16]byte)(unsafe.Pointer(&x.refd27276a5.deviceUUID)) + x.DriverUUID = *(*[16]byte)(unsafe.Pointer(&x.refd27276a5.driverUUID)) + x.DeviceLUID = *(*[8]byte)(unsafe.Pointer(&x.refd27276a5.deviceLUID)) + x.DeviceNodeMask = (uint32)(x.refd27276a5.deviceNodeMask) + x.DeviceLUIDValid = (Bool32)(x.refd27276a5.deviceLUIDValid) + x.SubgroupSize = (uint32)(x.refd27276a5.subgroupSize) + x.SubgroupSupportedStages = (ShaderStageFlags)(x.refd27276a5.subgroupSupportedStages) + x.SubgroupSupportedOperations = (SubgroupFeatureFlags)(x.refd27276a5.subgroupSupportedOperations) + x.SubgroupQuadOperationsInAllStages = (Bool32)(x.refd27276a5.subgroupQuadOperationsInAllStages) + x.PointClippingBehavior = (PointClippingBehavior)(x.refd27276a5.pointClippingBehavior) + x.MaxMultiviewViewCount = (uint32)(x.refd27276a5.maxMultiviewViewCount) + x.MaxMultiviewInstanceIndex = (uint32)(x.refd27276a5.maxMultiviewInstanceIndex) + x.ProtectedNoFault = (Bool32)(x.refd27276a5.protectedNoFault) + x.MaxPerSetDescriptors = (uint32)(x.refd27276a5.maxPerSetDescriptors) + x.MaxMemoryAllocationSize = (DeviceSize)(x.refd27276a5.maxMemoryAllocationSize) +} + +// allocPhysicalDeviceVulkan12FeaturesMemory allocates memory for type C.VkPhysicalDeviceVulkan12Features in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceVulkan12FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVulkan12FeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceVulkan12FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkan12Features{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceVulkan12Features) Ref() *C.VkPhysicalDeviceVulkan12Features { + if x == nil { + return nil + } + return x.refecbe602a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceVulkan12Features) Free() { + if x != nil && x.allocsecbe602a != nil { + x.allocsecbe602a.(*cgoAllocMap).Free() + x.refecbe602a = nil + } +} + +// NewPhysicalDeviceVulkan12FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceVulkan12FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVulkan12Features { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceVulkan12Features) + obj.refecbe602a = (*C.VkPhysicalDeviceVulkan12Features)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceVulkan12Features) PassRef() (*C.VkPhysicalDeviceVulkan12Features, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refecbe602a != nil { + return x.refecbe602a, nil + } + memecbe602a := allocPhysicalDeviceVulkan12FeaturesMemory(1) + refecbe602a := (*C.VkPhysicalDeviceVulkan12Features)(memecbe602a) + allocsecbe602a := new(cgoAllocMap) + allocsecbe602a.Add(memecbe602a) + + var csType_allocs *cgoAllocMap + refecbe602a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsecbe602a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refecbe602a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsecbe602a.Borrow(cpNext_allocs) + + var csamplerMirrorClampToEdge_allocs *cgoAllocMap + refecbe602a.samplerMirrorClampToEdge, csamplerMirrorClampToEdge_allocs = (C.VkBool32)(x.SamplerMirrorClampToEdge), cgoAllocsUnknown + allocsecbe602a.Borrow(csamplerMirrorClampToEdge_allocs) + + var cdrawIndirectCount_allocs *cgoAllocMap + refecbe602a.drawIndirectCount, cdrawIndirectCount_allocs = (C.VkBool32)(x.DrawIndirectCount), cgoAllocsUnknown + allocsecbe602a.Borrow(cdrawIndirectCount_allocs) + + var cstorageBuffer8BitAccess_allocs *cgoAllocMap + refecbe602a.storageBuffer8BitAccess, cstorageBuffer8BitAccess_allocs = (C.VkBool32)(x.StorageBuffer8BitAccess), cgoAllocsUnknown + allocsecbe602a.Borrow(cstorageBuffer8BitAccess_allocs) + + var cuniformAndStorageBuffer8BitAccess_allocs *cgoAllocMap + refecbe602a.uniformAndStorageBuffer8BitAccess, cuniformAndStorageBuffer8BitAccess_allocs = (C.VkBool32)(x.UniformAndStorageBuffer8BitAccess), cgoAllocsUnknown + allocsecbe602a.Borrow(cuniformAndStorageBuffer8BitAccess_allocs) + + var cstoragePushConstant8_allocs *cgoAllocMap + refecbe602a.storagePushConstant8, cstoragePushConstant8_allocs = (C.VkBool32)(x.StoragePushConstant8), cgoAllocsUnknown + allocsecbe602a.Borrow(cstoragePushConstant8_allocs) + + var cshaderBufferInt64Atomics_allocs *cgoAllocMap + refecbe602a.shaderBufferInt64Atomics, cshaderBufferInt64Atomics_allocs = (C.VkBool32)(x.ShaderBufferInt64Atomics), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderBufferInt64Atomics_allocs) + + var cshaderSharedInt64Atomics_allocs *cgoAllocMap + refecbe602a.shaderSharedInt64Atomics, cshaderSharedInt64Atomics_allocs = (C.VkBool32)(x.ShaderSharedInt64Atomics), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderSharedInt64Atomics_allocs) + + var cshaderFloat16_allocs *cgoAllocMap + refecbe602a.shaderFloat16, cshaderFloat16_allocs = (C.VkBool32)(x.ShaderFloat16), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderFloat16_allocs) + + var cshaderInt8_allocs *cgoAllocMap + refecbe602a.shaderInt8, cshaderInt8_allocs = (C.VkBool32)(x.ShaderInt8), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderInt8_allocs) + + var cdescriptorIndexing_allocs *cgoAllocMap + refecbe602a.descriptorIndexing, cdescriptorIndexing_allocs = (C.VkBool32)(x.DescriptorIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cdescriptorIndexing_allocs) + + var cshaderInputAttachmentArrayDynamicIndexing_allocs *cgoAllocMap + refecbe602a.shaderInputAttachmentArrayDynamicIndexing, cshaderInputAttachmentArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderInputAttachmentArrayDynamicIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderInputAttachmentArrayDynamicIndexing_allocs) + + var cshaderUniformTexelBufferArrayDynamicIndexing_allocs *cgoAllocMap + refecbe602a.shaderUniformTexelBufferArrayDynamicIndexing, cshaderUniformTexelBufferArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderUniformTexelBufferArrayDynamicIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderUniformTexelBufferArrayDynamicIndexing_allocs) + + var cshaderStorageTexelBufferArrayDynamicIndexing_allocs *cgoAllocMap + refecbe602a.shaderStorageTexelBufferArrayDynamicIndexing, cshaderStorageTexelBufferArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderStorageTexelBufferArrayDynamicIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderStorageTexelBufferArrayDynamicIndexing_allocs) + + var cshaderUniformBufferArrayNonUniformIndexing_allocs *cgoAllocMap + refecbe602a.shaderUniformBufferArrayNonUniformIndexing, cshaderUniformBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderUniformBufferArrayNonUniformIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderUniformBufferArrayNonUniformIndexing_allocs) + + var cshaderSampledImageArrayNonUniformIndexing_allocs *cgoAllocMap + refecbe602a.shaderSampledImageArrayNonUniformIndexing, cshaderSampledImageArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderSampledImageArrayNonUniformIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderSampledImageArrayNonUniformIndexing_allocs) + + var cshaderStorageBufferArrayNonUniformIndexing_allocs *cgoAllocMap + refecbe602a.shaderStorageBufferArrayNonUniformIndexing, cshaderStorageBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageBufferArrayNonUniformIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderStorageBufferArrayNonUniformIndexing_allocs) + + var cshaderStorageImageArrayNonUniformIndexing_allocs *cgoAllocMap + refecbe602a.shaderStorageImageArrayNonUniformIndexing, cshaderStorageImageArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageImageArrayNonUniformIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderStorageImageArrayNonUniformIndexing_allocs) + + var cshaderInputAttachmentArrayNonUniformIndexing_allocs *cgoAllocMap + refecbe602a.shaderInputAttachmentArrayNonUniformIndexing, cshaderInputAttachmentArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderInputAttachmentArrayNonUniformIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderInputAttachmentArrayNonUniformIndexing_allocs) + + var cshaderUniformTexelBufferArrayNonUniformIndexing_allocs *cgoAllocMap + refecbe602a.shaderUniformTexelBufferArrayNonUniformIndexing, cshaderUniformTexelBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderUniformTexelBufferArrayNonUniformIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderUniformTexelBufferArrayNonUniformIndexing_allocs) + + var cshaderStorageTexelBufferArrayNonUniformIndexing_allocs *cgoAllocMap + refecbe602a.shaderStorageTexelBufferArrayNonUniformIndexing, cshaderStorageTexelBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageTexelBufferArrayNonUniformIndexing), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderStorageTexelBufferArrayNonUniformIndexing_allocs) + + var cdescriptorBindingUniformBufferUpdateAfterBind_allocs *cgoAllocMap + refecbe602a.descriptorBindingUniformBufferUpdateAfterBind, cdescriptorBindingUniformBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingUniformBufferUpdateAfterBind), cgoAllocsUnknown + allocsecbe602a.Borrow(cdescriptorBindingUniformBufferUpdateAfterBind_allocs) + + var cdescriptorBindingSampledImageUpdateAfterBind_allocs *cgoAllocMap + refecbe602a.descriptorBindingSampledImageUpdateAfterBind, cdescriptorBindingSampledImageUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingSampledImageUpdateAfterBind), cgoAllocsUnknown + allocsecbe602a.Borrow(cdescriptorBindingSampledImageUpdateAfterBind_allocs) + + var cdescriptorBindingStorageImageUpdateAfterBind_allocs *cgoAllocMap + refecbe602a.descriptorBindingStorageImageUpdateAfterBind, cdescriptorBindingStorageImageUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageImageUpdateAfterBind), cgoAllocsUnknown + allocsecbe602a.Borrow(cdescriptorBindingStorageImageUpdateAfterBind_allocs) + + var cdescriptorBindingStorageBufferUpdateAfterBind_allocs *cgoAllocMap + refecbe602a.descriptorBindingStorageBufferUpdateAfterBind, cdescriptorBindingStorageBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageBufferUpdateAfterBind), cgoAllocsUnknown + allocsecbe602a.Borrow(cdescriptorBindingStorageBufferUpdateAfterBind_allocs) + + var cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs *cgoAllocMap + refecbe602a.descriptorBindingUniformTexelBufferUpdateAfterBind, cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingUniformTexelBufferUpdateAfterBind), cgoAllocsUnknown + allocsecbe602a.Borrow(cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs) + + var cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs *cgoAllocMap + refecbe602a.descriptorBindingStorageTexelBufferUpdateAfterBind, cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageTexelBufferUpdateAfterBind), cgoAllocsUnknown + allocsecbe602a.Borrow(cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs) + + var cdescriptorBindingUpdateUnusedWhilePending_allocs *cgoAllocMap + refecbe602a.descriptorBindingUpdateUnusedWhilePending, cdescriptorBindingUpdateUnusedWhilePending_allocs = (C.VkBool32)(x.DescriptorBindingUpdateUnusedWhilePending), cgoAllocsUnknown + allocsecbe602a.Borrow(cdescriptorBindingUpdateUnusedWhilePending_allocs) + + var cdescriptorBindingPartiallyBound_allocs *cgoAllocMap + refecbe602a.descriptorBindingPartiallyBound, cdescriptorBindingPartiallyBound_allocs = (C.VkBool32)(x.DescriptorBindingPartiallyBound), cgoAllocsUnknown + allocsecbe602a.Borrow(cdescriptorBindingPartiallyBound_allocs) + + var cdescriptorBindingVariableDescriptorCount_allocs *cgoAllocMap + refecbe602a.descriptorBindingVariableDescriptorCount, cdescriptorBindingVariableDescriptorCount_allocs = (C.VkBool32)(x.DescriptorBindingVariableDescriptorCount), cgoAllocsUnknown + allocsecbe602a.Borrow(cdescriptorBindingVariableDescriptorCount_allocs) + + var cruntimeDescriptorArray_allocs *cgoAllocMap + refecbe602a.runtimeDescriptorArray, cruntimeDescriptorArray_allocs = (C.VkBool32)(x.RuntimeDescriptorArray), cgoAllocsUnknown + allocsecbe602a.Borrow(cruntimeDescriptorArray_allocs) + + var csamplerFilterMinmax_allocs *cgoAllocMap + refecbe602a.samplerFilterMinmax, csamplerFilterMinmax_allocs = (C.VkBool32)(x.SamplerFilterMinmax), cgoAllocsUnknown + allocsecbe602a.Borrow(csamplerFilterMinmax_allocs) + + var cscalarBlockLayout_allocs *cgoAllocMap + refecbe602a.scalarBlockLayout, cscalarBlockLayout_allocs = (C.VkBool32)(x.ScalarBlockLayout), cgoAllocsUnknown + allocsecbe602a.Borrow(cscalarBlockLayout_allocs) + + var cimagelessFramebuffer_allocs *cgoAllocMap + refecbe602a.imagelessFramebuffer, cimagelessFramebuffer_allocs = (C.VkBool32)(x.ImagelessFramebuffer), cgoAllocsUnknown + allocsecbe602a.Borrow(cimagelessFramebuffer_allocs) + + var cuniformBufferStandardLayout_allocs *cgoAllocMap + refecbe602a.uniformBufferStandardLayout, cuniformBufferStandardLayout_allocs = (C.VkBool32)(x.UniformBufferStandardLayout), cgoAllocsUnknown + allocsecbe602a.Borrow(cuniformBufferStandardLayout_allocs) + + var cshaderSubgroupExtendedTypes_allocs *cgoAllocMap + refecbe602a.shaderSubgroupExtendedTypes, cshaderSubgroupExtendedTypes_allocs = (C.VkBool32)(x.ShaderSubgroupExtendedTypes), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderSubgroupExtendedTypes_allocs) + + var cseparateDepthStencilLayouts_allocs *cgoAllocMap + refecbe602a.separateDepthStencilLayouts, cseparateDepthStencilLayouts_allocs = (C.VkBool32)(x.SeparateDepthStencilLayouts), cgoAllocsUnknown + allocsecbe602a.Borrow(cseparateDepthStencilLayouts_allocs) + + var chostQueryReset_allocs *cgoAllocMap + refecbe602a.hostQueryReset, chostQueryReset_allocs = (C.VkBool32)(x.HostQueryReset), cgoAllocsUnknown + allocsecbe602a.Borrow(chostQueryReset_allocs) + + var ctimelineSemaphore_allocs *cgoAllocMap + refecbe602a.timelineSemaphore, ctimelineSemaphore_allocs = (C.VkBool32)(x.TimelineSemaphore), cgoAllocsUnknown + allocsecbe602a.Borrow(ctimelineSemaphore_allocs) + + var cbufferDeviceAddress_allocs *cgoAllocMap + refecbe602a.bufferDeviceAddress, cbufferDeviceAddress_allocs = (C.VkBool32)(x.BufferDeviceAddress), cgoAllocsUnknown + allocsecbe602a.Borrow(cbufferDeviceAddress_allocs) + + var cbufferDeviceAddressCaptureReplay_allocs *cgoAllocMap + refecbe602a.bufferDeviceAddressCaptureReplay, cbufferDeviceAddressCaptureReplay_allocs = (C.VkBool32)(x.BufferDeviceAddressCaptureReplay), cgoAllocsUnknown + allocsecbe602a.Borrow(cbufferDeviceAddressCaptureReplay_allocs) + + var cbufferDeviceAddressMultiDevice_allocs *cgoAllocMap + refecbe602a.bufferDeviceAddressMultiDevice, cbufferDeviceAddressMultiDevice_allocs = (C.VkBool32)(x.BufferDeviceAddressMultiDevice), cgoAllocsUnknown + allocsecbe602a.Borrow(cbufferDeviceAddressMultiDevice_allocs) + + var cvulkanMemoryModel_allocs *cgoAllocMap + refecbe602a.vulkanMemoryModel, cvulkanMemoryModel_allocs = (C.VkBool32)(x.VulkanMemoryModel), cgoAllocsUnknown + allocsecbe602a.Borrow(cvulkanMemoryModel_allocs) + + var cvulkanMemoryModelDeviceScope_allocs *cgoAllocMap + refecbe602a.vulkanMemoryModelDeviceScope, cvulkanMemoryModelDeviceScope_allocs = (C.VkBool32)(x.VulkanMemoryModelDeviceScope), cgoAllocsUnknown + allocsecbe602a.Borrow(cvulkanMemoryModelDeviceScope_allocs) + + var cvulkanMemoryModelAvailabilityVisibilityChains_allocs *cgoAllocMap + refecbe602a.vulkanMemoryModelAvailabilityVisibilityChains, cvulkanMemoryModelAvailabilityVisibilityChains_allocs = (C.VkBool32)(x.VulkanMemoryModelAvailabilityVisibilityChains), cgoAllocsUnknown + allocsecbe602a.Borrow(cvulkanMemoryModelAvailabilityVisibilityChains_allocs) + + var cshaderOutputViewportIndex_allocs *cgoAllocMap + refecbe602a.shaderOutputViewportIndex, cshaderOutputViewportIndex_allocs = (C.VkBool32)(x.ShaderOutputViewportIndex), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderOutputViewportIndex_allocs) + + var cshaderOutputLayer_allocs *cgoAllocMap + refecbe602a.shaderOutputLayer, cshaderOutputLayer_allocs = (C.VkBool32)(x.ShaderOutputLayer), cgoAllocsUnknown + allocsecbe602a.Borrow(cshaderOutputLayer_allocs) + + var csubgroupBroadcastDynamicId_allocs *cgoAllocMap + refecbe602a.subgroupBroadcastDynamicId, csubgroupBroadcastDynamicId_allocs = (C.VkBool32)(x.SubgroupBroadcastDynamicId), cgoAllocsUnknown + allocsecbe602a.Borrow(csubgroupBroadcastDynamicId_allocs) + + x.refecbe602a = refecbe602a + x.allocsecbe602a = allocsecbe602a + return refecbe602a, allocsecbe602a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceVulkan12Features) PassValue() (C.VkPhysicalDeviceVulkan12Features, *cgoAllocMap) { + if x.refecbe602a != nil { + return *x.refecbe602a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceVulkan12Features) Deref() { + if x.refecbe602a == nil { + return + } + x.SType = (StructureType)(x.refecbe602a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refecbe602a.pNext)) + x.SamplerMirrorClampToEdge = (Bool32)(x.refecbe602a.samplerMirrorClampToEdge) + x.DrawIndirectCount = (Bool32)(x.refecbe602a.drawIndirectCount) + x.StorageBuffer8BitAccess = (Bool32)(x.refecbe602a.storageBuffer8BitAccess) + x.UniformAndStorageBuffer8BitAccess = (Bool32)(x.refecbe602a.uniformAndStorageBuffer8BitAccess) + x.StoragePushConstant8 = (Bool32)(x.refecbe602a.storagePushConstant8) + x.ShaderBufferInt64Atomics = (Bool32)(x.refecbe602a.shaderBufferInt64Atomics) + x.ShaderSharedInt64Atomics = (Bool32)(x.refecbe602a.shaderSharedInt64Atomics) + x.ShaderFloat16 = (Bool32)(x.refecbe602a.shaderFloat16) + x.ShaderInt8 = (Bool32)(x.refecbe602a.shaderInt8) + x.DescriptorIndexing = (Bool32)(x.refecbe602a.descriptorIndexing) + x.ShaderInputAttachmentArrayDynamicIndexing = (Bool32)(x.refecbe602a.shaderInputAttachmentArrayDynamicIndexing) + x.ShaderUniformTexelBufferArrayDynamicIndexing = (Bool32)(x.refecbe602a.shaderUniformTexelBufferArrayDynamicIndexing) + x.ShaderStorageTexelBufferArrayDynamicIndexing = (Bool32)(x.refecbe602a.shaderStorageTexelBufferArrayDynamicIndexing) + x.ShaderUniformBufferArrayNonUniformIndexing = (Bool32)(x.refecbe602a.shaderUniformBufferArrayNonUniformIndexing) + x.ShaderSampledImageArrayNonUniformIndexing = (Bool32)(x.refecbe602a.shaderSampledImageArrayNonUniformIndexing) + x.ShaderStorageBufferArrayNonUniformIndexing = (Bool32)(x.refecbe602a.shaderStorageBufferArrayNonUniformIndexing) + x.ShaderStorageImageArrayNonUniformIndexing = (Bool32)(x.refecbe602a.shaderStorageImageArrayNonUniformIndexing) + x.ShaderInputAttachmentArrayNonUniformIndexing = (Bool32)(x.refecbe602a.shaderInputAttachmentArrayNonUniformIndexing) + x.ShaderUniformTexelBufferArrayNonUniformIndexing = (Bool32)(x.refecbe602a.shaderUniformTexelBufferArrayNonUniformIndexing) + x.ShaderStorageTexelBufferArrayNonUniformIndexing = (Bool32)(x.refecbe602a.shaderStorageTexelBufferArrayNonUniformIndexing) + x.DescriptorBindingUniformBufferUpdateAfterBind = (Bool32)(x.refecbe602a.descriptorBindingUniformBufferUpdateAfterBind) + x.DescriptorBindingSampledImageUpdateAfterBind = (Bool32)(x.refecbe602a.descriptorBindingSampledImageUpdateAfterBind) + x.DescriptorBindingStorageImageUpdateAfterBind = (Bool32)(x.refecbe602a.descriptorBindingStorageImageUpdateAfterBind) + x.DescriptorBindingStorageBufferUpdateAfterBind = (Bool32)(x.refecbe602a.descriptorBindingStorageBufferUpdateAfterBind) + x.DescriptorBindingUniformTexelBufferUpdateAfterBind = (Bool32)(x.refecbe602a.descriptorBindingUniformTexelBufferUpdateAfterBind) + x.DescriptorBindingStorageTexelBufferUpdateAfterBind = (Bool32)(x.refecbe602a.descriptorBindingStorageTexelBufferUpdateAfterBind) + x.DescriptorBindingUpdateUnusedWhilePending = (Bool32)(x.refecbe602a.descriptorBindingUpdateUnusedWhilePending) + x.DescriptorBindingPartiallyBound = (Bool32)(x.refecbe602a.descriptorBindingPartiallyBound) + x.DescriptorBindingVariableDescriptorCount = (Bool32)(x.refecbe602a.descriptorBindingVariableDescriptorCount) + x.RuntimeDescriptorArray = (Bool32)(x.refecbe602a.runtimeDescriptorArray) + x.SamplerFilterMinmax = (Bool32)(x.refecbe602a.samplerFilterMinmax) + x.ScalarBlockLayout = (Bool32)(x.refecbe602a.scalarBlockLayout) + x.ImagelessFramebuffer = (Bool32)(x.refecbe602a.imagelessFramebuffer) + x.UniformBufferStandardLayout = (Bool32)(x.refecbe602a.uniformBufferStandardLayout) + x.ShaderSubgroupExtendedTypes = (Bool32)(x.refecbe602a.shaderSubgroupExtendedTypes) + x.SeparateDepthStencilLayouts = (Bool32)(x.refecbe602a.separateDepthStencilLayouts) + x.HostQueryReset = (Bool32)(x.refecbe602a.hostQueryReset) + x.TimelineSemaphore = (Bool32)(x.refecbe602a.timelineSemaphore) + x.BufferDeviceAddress = (Bool32)(x.refecbe602a.bufferDeviceAddress) + x.BufferDeviceAddressCaptureReplay = (Bool32)(x.refecbe602a.bufferDeviceAddressCaptureReplay) + x.BufferDeviceAddressMultiDevice = (Bool32)(x.refecbe602a.bufferDeviceAddressMultiDevice) + x.VulkanMemoryModel = (Bool32)(x.refecbe602a.vulkanMemoryModel) + x.VulkanMemoryModelDeviceScope = (Bool32)(x.refecbe602a.vulkanMemoryModelDeviceScope) + x.VulkanMemoryModelAvailabilityVisibilityChains = (Bool32)(x.refecbe602a.vulkanMemoryModelAvailabilityVisibilityChains) + x.ShaderOutputViewportIndex = (Bool32)(x.refecbe602a.shaderOutputViewportIndex) + x.ShaderOutputLayer = (Bool32)(x.refecbe602a.shaderOutputLayer) + x.SubgroupBroadcastDynamicId = (Bool32)(x.refecbe602a.subgroupBroadcastDynamicId) +} + +// allocConformanceVersionMemory allocates memory for type C.VkConformanceVersion in C. +// The caller is responsible for freeing the this memory via C.free. +func allocConformanceVersionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfConformanceVersionValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfConformanceVersionValue = unsafe.Sizeof([1]C.VkConformanceVersion{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ConformanceVersion) Ref() *C.VkConformanceVersion { + if x == nil { + return nil + } + return x.reffb98ebcd +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ConformanceVersion) Free() { + if x != nil && x.allocsfb98ebcd != nil { + x.allocsfb98ebcd.(*cgoAllocMap).Free() + x.reffb98ebcd = nil + } +} + +// NewConformanceVersionRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewConformanceVersionRef(ref unsafe.Pointer) *ConformanceVersion { + if ref == nil { + return nil + } + obj := new(ConformanceVersion) + obj.reffb98ebcd = (*C.VkConformanceVersion)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ConformanceVersion) PassRef() (*C.VkConformanceVersion, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reffb98ebcd != nil { + return x.reffb98ebcd, nil + } + memfb98ebcd := allocConformanceVersionMemory(1) + reffb98ebcd := (*C.VkConformanceVersion)(memfb98ebcd) + allocsfb98ebcd := new(cgoAllocMap) + allocsfb98ebcd.Add(memfb98ebcd) + + var cmajor_allocs *cgoAllocMap + reffb98ebcd.major, cmajor_allocs = (C.uint8_t)(x.Major), cgoAllocsUnknown + allocsfb98ebcd.Borrow(cmajor_allocs) + + var cminor_allocs *cgoAllocMap + reffb98ebcd.minor, cminor_allocs = (C.uint8_t)(x.Minor), cgoAllocsUnknown + allocsfb98ebcd.Borrow(cminor_allocs) + + var csubminor_allocs *cgoAllocMap + reffb98ebcd.subminor, csubminor_allocs = (C.uint8_t)(x.Subminor), cgoAllocsUnknown + allocsfb98ebcd.Borrow(csubminor_allocs) + + var cpatch_allocs *cgoAllocMap + reffb98ebcd.patch, cpatch_allocs = (C.uint8_t)(x.Patch), cgoAllocsUnknown + allocsfb98ebcd.Borrow(cpatch_allocs) + + x.reffb98ebcd = reffb98ebcd + x.allocsfb98ebcd = allocsfb98ebcd + return reffb98ebcd, allocsfb98ebcd + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ConformanceVersion) PassValue() (C.VkConformanceVersion, *cgoAllocMap) { + if x.reffb98ebcd != nil { + return *x.reffb98ebcd, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ConformanceVersion) Deref() { + if x.reffb98ebcd == nil { + return + } + x.Major = (byte)(x.reffb98ebcd.major) + x.Minor = (byte)(x.reffb98ebcd.minor) + x.Subminor = (byte)(x.reffb98ebcd.subminor) + x.Patch = (byte)(x.reffb98ebcd.patch) +} + +// allocPhysicalDeviceVulkan12PropertiesMemory allocates memory for type C.VkPhysicalDeviceVulkan12Properties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceVulkan12PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVulkan12PropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceVulkan12PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkan12Properties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceVulkan12Properties) Ref() *C.VkPhysicalDeviceVulkan12Properties { + if x == nil { + return nil + } + return x.ref4b9010a4 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceVulkan12Properties) Free() { + if x != nil && x.allocs4b9010a4 != nil { + x.allocs4b9010a4.(*cgoAllocMap).Free() + x.ref4b9010a4 = nil + } +} + +// NewPhysicalDeviceVulkan12PropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceVulkan12PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceVulkan12Properties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceVulkan12Properties) + obj.ref4b9010a4 = (*C.VkPhysicalDeviceVulkan12Properties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceVulkan12Properties) PassRef() (*C.VkPhysicalDeviceVulkan12Properties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4b9010a4 != nil { + return x.ref4b9010a4, nil + } + mem4b9010a4 := allocPhysicalDeviceVulkan12PropertiesMemory(1) + ref4b9010a4 := (*C.VkPhysicalDeviceVulkan12Properties)(mem4b9010a4) + allocs4b9010a4 := new(cgoAllocMap) + allocs4b9010a4.Add(mem4b9010a4) + + var csType_allocs *cgoAllocMap + ref4b9010a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4b9010a4.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref4b9010a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4b9010a4.Borrow(cpNext_allocs) + + var cdriverID_allocs *cgoAllocMap + ref4b9010a4.driverID, cdriverID_allocs = (C.VkDriverId)(x.DriverID), cgoAllocsUnknown + allocs4b9010a4.Borrow(cdriverID_allocs) + + var cdriverName_allocs *cgoAllocMap + ref4b9010a4.driverName, cdriverName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.DriverName)), cgoAllocsUnknown + allocs4b9010a4.Borrow(cdriverName_allocs) + + var cdriverInfo_allocs *cgoAllocMap + ref4b9010a4.driverInfo, cdriverInfo_allocs = *(*[256]C.char)(unsafe.Pointer(&x.DriverInfo)), cgoAllocsUnknown + allocs4b9010a4.Borrow(cdriverInfo_allocs) + + var cconformanceVersion_allocs *cgoAllocMap + ref4b9010a4.conformanceVersion, cconformanceVersion_allocs = x.ConformanceVersion.PassValue() + allocs4b9010a4.Borrow(cconformanceVersion_allocs) + + var cdenormBehaviorIndependence_allocs *cgoAllocMap + ref4b9010a4.denormBehaviorIndependence, cdenormBehaviorIndependence_allocs = (C.VkShaderFloatControlsIndependence)(x.DenormBehaviorIndependence), cgoAllocsUnknown + allocs4b9010a4.Borrow(cdenormBehaviorIndependence_allocs) + + var croundingModeIndependence_allocs *cgoAllocMap + ref4b9010a4.roundingModeIndependence, croundingModeIndependence_allocs = (C.VkShaderFloatControlsIndependence)(x.RoundingModeIndependence), cgoAllocsUnknown + allocs4b9010a4.Borrow(croundingModeIndependence_allocs) + + var cshaderSignedZeroInfNanPreserveFloat16_allocs *cgoAllocMap + ref4b9010a4.shaderSignedZeroInfNanPreserveFloat16, cshaderSignedZeroInfNanPreserveFloat16_allocs = (C.VkBool32)(x.ShaderSignedZeroInfNanPreserveFloat16), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderSignedZeroInfNanPreserveFloat16_allocs) + + var cshaderSignedZeroInfNanPreserveFloat32_allocs *cgoAllocMap + ref4b9010a4.shaderSignedZeroInfNanPreserveFloat32, cshaderSignedZeroInfNanPreserveFloat32_allocs = (C.VkBool32)(x.ShaderSignedZeroInfNanPreserveFloat32), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderSignedZeroInfNanPreserveFloat32_allocs) + + var cshaderSignedZeroInfNanPreserveFloat64_allocs *cgoAllocMap + ref4b9010a4.shaderSignedZeroInfNanPreserveFloat64, cshaderSignedZeroInfNanPreserveFloat64_allocs = (C.VkBool32)(x.ShaderSignedZeroInfNanPreserveFloat64), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderSignedZeroInfNanPreserveFloat64_allocs) + + var cshaderDenormPreserveFloat16_allocs *cgoAllocMap + ref4b9010a4.shaderDenormPreserveFloat16, cshaderDenormPreserveFloat16_allocs = (C.VkBool32)(x.ShaderDenormPreserveFloat16), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderDenormPreserveFloat16_allocs) + + var cshaderDenormPreserveFloat32_allocs *cgoAllocMap + ref4b9010a4.shaderDenormPreserveFloat32, cshaderDenormPreserveFloat32_allocs = (C.VkBool32)(x.ShaderDenormPreserveFloat32), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderDenormPreserveFloat32_allocs) + + var cshaderDenormPreserveFloat64_allocs *cgoAllocMap + ref4b9010a4.shaderDenormPreserveFloat64, cshaderDenormPreserveFloat64_allocs = (C.VkBool32)(x.ShaderDenormPreserveFloat64), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderDenormPreserveFloat64_allocs) + + var cshaderDenormFlushToZeroFloat16_allocs *cgoAllocMap + ref4b9010a4.shaderDenormFlushToZeroFloat16, cshaderDenormFlushToZeroFloat16_allocs = (C.VkBool32)(x.ShaderDenormFlushToZeroFloat16), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderDenormFlushToZeroFloat16_allocs) + + var cshaderDenormFlushToZeroFloat32_allocs *cgoAllocMap + ref4b9010a4.shaderDenormFlushToZeroFloat32, cshaderDenormFlushToZeroFloat32_allocs = (C.VkBool32)(x.ShaderDenormFlushToZeroFloat32), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderDenormFlushToZeroFloat32_allocs) + + var cshaderDenormFlushToZeroFloat64_allocs *cgoAllocMap + ref4b9010a4.shaderDenormFlushToZeroFloat64, cshaderDenormFlushToZeroFloat64_allocs = (C.VkBool32)(x.ShaderDenormFlushToZeroFloat64), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderDenormFlushToZeroFloat64_allocs) + + var cshaderRoundingModeRTEFloat16_allocs *cgoAllocMap + ref4b9010a4.shaderRoundingModeRTEFloat16, cshaderRoundingModeRTEFloat16_allocs = (C.VkBool32)(x.ShaderRoundingModeRTEFloat16), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderRoundingModeRTEFloat16_allocs) + + var cshaderRoundingModeRTEFloat32_allocs *cgoAllocMap + ref4b9010a4.shaderRoundingModeRTEFloat32, cshaderRoundingModeRTEFloat32_allocs = (C.VkBool32)(x.ShaderRoundingModeRTEFloat32), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderRoundingModeRTEFloat32_allocs) + + var cshaderRoundingModeRTEFloat64_allocs *cgoAllocMap + ref4b9010a4.shaderRoundingModeRTEFloat64, cshaderRoundingModeRTEFloat64_allocs = (C.VkBool32)(x.ShaderRoundingModeRTEFloat64), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderRoundingModeRTEFloat64_allocs) + + var cshaderRoundingModeRTZFloat16_allocs *cgoAllocMap + ref4b9010a4.shaderRoundingModeRTZFloat16, cshaderRoundingModeRTZFloat16_allocs = (C.VkBool32)(x.ShaderRoundingModeRTZFloat16), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderRoundingModeRTZFloat16_allocs) + + var cshaderRoundingModeRTZFloat32_allocs *cgoAllocMap + ref4b9010a4.shaderRoundingModeRTZFloat32, cshaderRoundingModeRTZFloat32_allocs = (C.VkBool32)(x.ShaderRoundingModeRTZFloat32), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderRoundingModeRTZFloat32_allocs) + + var cshaderRoundingModeRTZFloat64_allocs *cgoAllocMap + ref4b9010a4.shaderRoundingModeRTZFloat64, cshaderRoundingModeRTZFloat64_allocs = (C.VkBool32)(x.ShaderRoundingModeRTZFloat64), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderRoundingModeRTZFloat64_allocs) + + var cmaxUpdateAfterBindDescriptorsInAllPools_allocs *cgoAllocMap + ref4b9010a4.maxUpdateAfterBindDescriptorsInAllPools, cmaxUpdateAfterBindDescriptorsInAllPools_allocs = (C.uint32_t)(x.MaxUpdateAfterBindDescriptorsInAllPools), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxUpdateAfterBindDescriptorsInAllPools_allocs) + + var cshaderUniformBufferArrayNonUniformIndexingNative_allocs *cgoAllocMap + ref4b9010a4.shaderUniformBufferArrayNonUniformIndexingNative, cshaderUniformBufferArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderUniformBufferArrayNonUniformIndexingNative), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderUniformBufferArrayNonUniformIndexingNative_allocs) + + var cshaderSampledImageArrayNonUniformIndexingNative_allocs *cgoAllocMap + ref4b9010a4.shaderSampledImageArrayNonUniformIndexingNative, cshaderSampledImageArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderSampledImageArrayNonUniformIndexingNative), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderSampledImageArrayNonUniformIndexingNative_allocs) + + var cshaderStorageBufferArrayNonUniformIndexingNative_allocs *cgoAllocMap + ref4b9010a4.shaderStorageBufferArrayNonUniformIndexingNative, cshaderStorageBufferArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderStorageBufferArrayNonUniformIndexingNative), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderStorageBufferArrayNonUniformIndexingNative_allocs) + + var cshaderStorageImageArrayNonUniformIndexingNative_allocs *cgoAllocMap + ref4b9010a4.shaderStorageImageArrayNonUniformIndexingNative, cshaderStorageImageArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderStorageImageArrayNonUniformIndexingNative), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderStorageImageArrayNonUniformIndexingNative_allocs) + + var cshaderInputAttachmentArrayNonUniformIndexingNative_allocs *cgoAllocMap + ref4b9010a4.shaderInputAttachmentArrayNonUniformIndexingNative, cshaderInputAttachmentArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderInputAttachmentArrayNonUniformIndexingNative), cgoAllocsUnknown + allocs4b9010a4.Borrow(cshaderInputAttachmentArrayNonUniformIndexingNative_allocs) + + var crobustBufferAccessUpdateAfterBind_allocs *cgoAllocMap + ref4b9010a4.robustBufferAccessUpdateAfterBind, crobustBufferAccessUpdateAfterBind_allocs = (C.VkBool32)(x.RobustBufferAccessUpdateAfterBind), cgoAllocsUnknown + allocs4b9010a4.Borrow(crobustBufferAccessUpdateAfterBind_allocs) + + var cquadDivergentImplicitLod_allocs *cgoAllocMap + ref4b9010a4.quadDivergentImplicitLod, cquadDivergentImplicitLod_allocs = (C.VkBool32)(x.QuadDivergentImplicitLod), cgoAllocsUnknown + allocs4b9010a4.Borrow(cquadDivergentImplicitLod_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs *cgoAllocMap + ref4b9010a4.maxPerStageDescriptorUpdateAfterBindSamplers, cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindSamplers), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs *cgoAllocMap + ref4b9010a4.maxPerStageDescriptorUpdateAfterBindUniformBuffers, cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindUniformBuffers), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs *cgoAllocMap + ref4b9010a4.maxPerStageDescriptorUpdateAfterBindStorageBuffers, cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindStorageBuffers), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindSampledImages_allocs *cgoAllocMap + ref4b9010a4.maxPerStageDescriptorUpdateAfterBindSampledImages, cmaxPerStageDescriptorUpdateAfterBindSampledImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindSampledImages), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxPerStageDescriptorUpdateAfterBindSampledImages_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindStorageImages_allocs *cgoAllocMap + ref4b9010a4.maxPerStageDescriptorUpdateAfterBindStorageImages, cmaxPerStageDescriptorUpdateAfterBindStorageImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindStorageImages), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxPerStageDescriptorUpdateAfterBindStorageImages_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs *cgoAllocMap + ref4b9010a4.maxPerStageDescriptorUpdateAfterBindInputAttachments, cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindInputAttachments), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs) + + var cmaxPerStageUpdateAfterBindResources_allocs *cgoAllocMap + ref4b9010a4.maxPerStageUpdateAfterBindResources, cmaxPerStageUpdateAfterBindResources_allocs = (C.uint32_t)(x.MaxPerStageUpdateAfterBindResources), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxPerStageUpdateAfterBindResources_allocs) + + var cmaxDescriptorSetUpdateAfterBindSamplers_allocs *cgoAllocMap + ref4b9010a4.maxDescriptorSetUpdateAfterBindSamplers, cmaxDescriptorSetUpdateAfterBindSamplers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindSamplers), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxDescriptorSetUpdateAfterBindSamplers_allocs) + + var cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs *cgoAllocMap + ref4b9010a4.maxDescriptorSetUpdateAfterBindUniformBuffers, cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindUniformBuffers), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs) + + var cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs *cgoAllocMap + ref4b9010a4.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs) + + var cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs *cgoAllocMap + ref4b9010a4.maxDescriptorSetUpdateAfterBindStorageBuffers, cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageBuffers), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs) + + var cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs *cgoAllocMap + ref4b9010a4.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs) + + var cmaxDescriptorSetUpdateAfterBindSampledImages_allocs *cgoAllocMap + ref4b9010a4.maxDescriptorSetUpdateAfterBindSampledImages, cmaxDescriptorSetUpdateAfterBindSampledImages_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindSampledImages), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxDescriptorSetUpdateAfterBindSampledImages_allocs) + + var cmaxDescriptorSetUpdateAfterBindStorageImages_allocs *cgoAllocMap + ref4b9010a4.maxDescriptorSetUpdateAfterBindStorageImages, cmaxDescriptorSetUpdateAfterBindStorageImages_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageImages), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxDescriptorSetUpdateAfterBindStorageImages_allocs) + + var cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs *cgoAllocMap + ref4b9010a4.maxDescriptorSetUpdateAfterBindInputAttachments, cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindInputAttachments), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs) + + var csupportedDepthResolveModes_allocs *cgoAllocMap + ref4b9010a4.supportedDepthResolveModes, csupportedDepthResolveModes_allocs = (C.VkResolveModeFlags)(x.SupportedDepthResolveModes), cgoAllocsUnknown + allocs4b9010a4.Borrow(csupportedDepthResolveModes_allocs) + + var csupportedStencilResolveModes_allocs *cgoAllocMap + ref4b9010a4.supportedStencilResolveModes, csupportedStencilResolveModes_allocs = (C.VkResolveModeFlags)(x.SupportedStencilResolveModes), cgoAllocsUnknown + allocs4b9010a4.Borrow(csupportedStencilResolveModes_allocs) + + var cindependentResolveNone_allocs *cgoAllocMap + ref4b9010a4.independentResolveNone, cindependentResolveNone_allocs = (C.VkBool32)(x.IndependentResolveNone), cgoAllocsUnknown + allocs4b9010a4.Borrow(cindependentResolveNone_allocs) + + var cindependentResolve_allocs *cgoAllocMap + ref4b9010a4.independentResolve, cindependentResolve_allocs = (C.VkBool32)(x.IndependentResolve), cgoAllocsUnknown + allocs4b9010a4.Borrow(cindependentResolve_allocs) + + var cfilterMinmaxSingleComponentFormats_allocs *cgoAllocMap + ref4b9010a4.filterMinmaxSingleComponentFormats, cfilterMinmaxSingleComponentFormats_allocs = (C.VkBool32)(x.FilterMinmaxSingleComponentFormats), cgoAllocsUnknown + allocs4b9010a4.Borrow(cfilterMinmaxSingleComponentFormats_allocs) + + var cfilterMinmaxImageComponentMapping_allocs *cgoAllocMap + ref4b9010a4.filterMinmaxImageComponentMapping, cfilterMinmaxImageComponentMapping_allocs = (C.VkBool32)(x.FilterMinmaxImageComponentMapping), cgoAllocsUnknown + allocs4b9010a4.Borrow(cfilterMinmaxImageComponentMapping_allocs) + + var cmaxTimelineSemaphoreValueDifference_allocs *cgoAllocMap + ref4b9010a4.maxTimelineSemaphoreValueDifference, cmaxTimelineSemaphoreValueDifference_allocs = (C.uint64_t)(x.MaxTimelineSemaphoreValueDifference), cgoAllocsUnknown + allocs4b9010a4.Borrow(cmaxTimelineSemaphoreValueDifference_allocs) + + var cframebufferIntegerColorSampleCounts_allocs *cgoAllocMap + ref4b9010a4.framebufferIntegerColorSampleCounts, cframebufferIntegerColorSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferIntegerColorSampleCounts), cgoAllocsUnknown + allocs4b9010a4.Borrow(cframebufferIntegerColorSampleCounts_allocs) + + x.ref4b9010a4 = ref4b9010a4 + x.allocs4b9010a4 = allocs4b9010a4 + return ref4b9010a4, allocs4b9010a4 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceVulkan12Properties) PassValue() (C.VkPhysicalDeviceVulkan12Properties, *cgoAllocMap) { + if x.ref4b9010a4 != nil { + return *x.ref4b9010a4, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceVulkan12Properties) Deref() { + if x.ref4b9010a4 == nil { + return + } + x.SType = (StructureType)(x.ref4b9010a4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4b9010a4.pNext)) + x.DriverID = (DriverId)(x.ref4b9010a4.driverID) + x.DriverName = *(*[256]byte)(unsafe.Pointer(&x.ref4b9010a4.driverName)) + x.DriverInfo = *(*[256]byte)(unsafe.Pointer(&x.ref4b9010a4.driverInfo)) + x.ConformanceVersion = *NewConformanceVersionRef(unsafe.Pointer(&x.ref4b9010a4.conformanceVersion)) + x.DenormBehaviorIndependence = (ShaderFloatControlsIndependence)(x.ref4b9010a4.denormBehaviorIndependence) + x.RoundingModeIndependence = (ShaderFloatControlsIndependence)(x.ref4b9010a4.roundingModeIndependence) + x.ShaderSignedZeroInfNanPreserveFloat16 = (Bool32)(x.ref4b9010a4.shaderSignedZeroInfNanPreserveFloat16) + x.ShaderSignedZeroInfNanPreserveFloat32 = (Bool32)(x.ref4b9010a4.shaderSignedZeroInfNanPreserveFloat32) + x.ShaderSignedZeroInfNanPreserveFloat64 = (Bool32)(x.ref4b9010a4.shaderSignedZeroInfNanPreserveFloat64) + x.ShaderDenormPreserveFloat16 = (Bool32)(x.ref4b9010a4.shaderDenormPreserveFloat16) + x.ShaderDenormPreserveFloat32 = (Bool32)(x.ref4b9010a4.shaderDenormPreserveFloat32) + x.ShaderDenormPreserveFloat64 = (Bool32)(x.ref4b9010a4.shaderDenormPreserveFloat64) + x.ShaderDenormFlushToZeroFloat16 = (Bool32)(x.ref4b9010a4.shaderDenormFlushToZeroFloat16) + x.ShaderDenormFlushToZeroFloat32 = (Bool32)(x.ref4b9010a4.shaderDenormFlushToZeroFloat32) + x.ShaderDenormFlushToZeroFloat64 = (Bool32)(x.ref4b9010a4.shaderDenormFlushToZeroFloat64) + x.ShaderRoundingModeRTEFloat16 = (Bool32)(x.ref4b9010a4.shaderRoundingModeRTEFloat16) + x.ShaderRoundingModeRTEFloat32 = (Bool32)(x.ref4b9010a4.shaderRoundingModeRTEFloat32) + x.ShaderRoundingModeRTEFloat64 = (Bool32)(x.ref4b9010a4.shaderRoundingModeRTEFloat64) + x.ShaderRoundingModeRTZFloat16 = (Bool32)(x.ref4b9010a4.shaderRoundingModeRTZFloat16) + x.ShaderRoundingModeRTZFloat32 = (Bool32)(x.ref4b9010a4.shaderRoundingModeRTZFloat32) + x.ShaderRoundingModeRTZFloat64 = (Bool32)(x.ref4b9010a4.shaderRoundingModeRTZFloat64) + x.MaxUpdateAfterBindDescriptorsInAllPools = (uint32)(x.ref4b9010a4.maxUpdateAfterBindDescriptorsInAllPools) + x.ShaderUniformBufferArrayNonUniformIndexingNative = (Bool32)(x.ref4b9010a4.shaderUniformBufferArrayNonUniformIndexingNative) + x.ShaderSampledImageArrayNonUniformIndexingNative = (Bool32)(x.ref4b9010a4.shaderSampledImageArrayNonUniformIndexingNative) + x.ShaderStorageBufferArrayNonUniformIndexingNative = (Bool32)(x.ref4b9010a4.shaderStorageBufferArrayNonUniformIndexingNative) + x.ShaderStorageImageArrayNonUniformIndexingNative = (Bool32)(x.ref4b9010a4.shaderStorageImageArrayNonUniformIndexingNative) + x.ShaderInputAttachmentArrayNonUniformIndexingNative = (Bool32)(x.ref4b9010a4.shaderInputAttachmentArrayNonUniformIndexingNative) + x.RobustBufferAccessUpdateAfterBind = (Bool32)(x.ref4b9010a4.robustBufferAccessUpdateAfterBind) + x.QuadDivergentImplicitLod = (Bool32)(x.ref4b9010a4.quadDivergentImplicitLod) + x.MaxPerStageDescriptorUpdateAfterBindSamplers = (uint32)(x.ref4b9010a4.maxPerStageDescriptorUpdateAfterBindSamplers) + x.MaxPerStageDescriptorUpdateAfterBindUniformBuffers = (uint32)(x.ref4b9010a4.maxPerStageDescriptorUpdateAfterBindUniformBuffers) + x.MaxPerStageDescriptorUpdateAfterBindStorageBuffers = (uint32)(x.ref4b9010a4.maxPerStageDescriptorUpdateAfterBindStorageBuffers) + x.MaxPerStageDescriptorUpdateAfterBindSampledImages = (uint32)(x.ref4b9010a4.maxPerStageDescriptorUpdateAfterBindSampledImages) + x.MaxPerStageDescriptorUpdateAfterBindStorageImages = (uint32)(x.ref4b9010a4.maxPerStageDescriptorUpdateAfterBindStorageImages) + x.MaxPerStageDescriptorUpdateAfterBindInputAttachments = (uint32)(x.ref4b9010a4.maxPerStageDescriptorUpdateAfterBindInputAttachments) + x.MaxPerStageUpdateAfterBindResources = (uint32)(x.ref4b9010a4.maxPerStageUpdateAfterBindResources) + x.MaxDescriptorSetUpdateAfterBindSamplers = (uint32)(x.ref4b9010a4.maxDescriptorSetUpdateAfterBindSamplers) + x.MaxDescriptorSetUpdateAfterBindUniformBuffers = (uint32)(x.ref4b9010a4.maxDescriptorSetUpdateAfterBindUniformBuffers) + x.MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = (uint32)(x.ref4b9010a4.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic) + x.MaxDescriptorSetUpdateAfterBindStorageBuffers = (uint32)(x.ref4b9010a4.maxDescriptorSetUpdateAfterBindStorageBuffers) + x.MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = (uint32)(x.ref4b9010a4.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic) + x.MaxDescriptorSetUpdateAfterBindSampledImages = (uint32)(x.ref4b9010a4.maxDescriptorSetUpdateAfterBindSampledImages) + x.MaxDescriptorSetUpdateAfterBindStorageImages = (uint32)(x.ref4b9010a4.maxDescriptorSetUpdateAfterBindStorageImages) + x.MaxDescriptorSetUpdateAfterBindInputAttachments = (uint32)(x.ref4b9010a4.maxDescriptorSetUpdateAfterBindInputAttachments) + x.SupportedDepthResolveModes = (ResolveModeFlags)(x.ref4b9010a4.supportedDepthResolveModes) + x.SupportedStencilResolveModes = (ResolveModeFlags)(x.ref4b9010a4.supportedStencilResolveModes) + x.IndependentResolveNone = (Bool32)(x.ref4b9010a4.independentResolveNone) + x.IndependentResolve = (Bool32)(x.ref4b9010a4.independentResolve) + x.FilterMinmaxSingleComponentFormats = (Bool32)(x.ref4b9010a4.filterMinmaxSingleComponentFormats) + x.FilterMinmaxImageComponentMapping = (Bool32)(x.ref4b9010a4.filterMinmaxImageComponentMapping) + x.MaxTimelineSemaphoreValueDifference = (uint64)(x.ref4b9010a4.maxTimelineSemaphoreValueDifference) + x.FramebufferIntegerColorSampleCounts = (SampleCountFlags)(x.ref4b9010a4.framebufferIntegerColorSampleCounts) +} + +// allocImageFormatListCreateInfoMemory allocates memory for type C.VkImageFormatListCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageFormatListCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageFormatListCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageFormatListCreateInfoValue = unsafe.Sizeof([1]C.VkImageFormatListCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageFormatListCreateInfo) Ref() *C.VkImageFormatListCreateInfo { + if x == nil { + return nil + } + return x.ref76fdc95e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageFormatListCreateInfo) Free() { + if x != nil && x.allocs76fdc95e != nil { + x.allocs76fdc95e.(*cgoAllocMap).Free() + x.ref76fdc95e = nil + } +} + +// NewImageFormatListCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageFormatListCreateInfoRef(ref unsafe.Pointer) *ImageFormatListCreateInfo { + if ref == nil { + return nil + } + obj := new(ImageFormatListCreateInfo) + obj.ref76fdc95e = (*C.VkImageFormatListCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageFormatListCreateInfo) PassRef() (*C.VkImageFormatListCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref76fdc95e != nil { + return x.ref76fdc95e, nil + } + mem76fdc95e := allocImageFormatListCreateInfoMemory(1) + ref76fdc95e := (*C.VkImageFormatListCreateInfo)(mem76fdc95e) + allocs76fdc95e := new(cgoAllocMap) + allocs76fdc95e.Add(mem76fdc95e) + + var csType_allocs *cgoAllocMap + ref76fdc95e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs76fdc95e.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref76fdc95e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs76fdc95e.Borrow(cpNext_allocs) + + var cviewFormatCount_allocs *cgoAllocMap + ref76fdc95e.viewFormatCount, cviewFormatCount_allocs = (C.uint32_t)(x.ViewFormatCount), cgoAllocsUnknown + allocs76fdc95e.Borrow(cviewFormatCount_allocs) + + var cpViewFormats_allocs *cgoAllocMap + ref76fdc95e.pViewFormats, cpViewFormats_allocs = (*C.VkFormat)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewFormats)).Data)), cgoAllocsUnknown + allocs76fdc95e.Borrow(cpViewFormats_allocs) + + x.ref76fdc95e = ref76fdc95e + x.allocs76fdc95e = allocs76fdc95e + return ref76fdc95e, allocs76fdc95e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageFormatListCreateInfo) PassValue() (C.VkImageFormatListCreateInfo, *cgoAllocMap) { + if x.ref76fdc95e != nil { + return *x.ref76fdc95e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageFormatListCreateInfo) Deref() { + if x.ref76fdc95e == nil { + return + } + x.SType = (StructureType)(x.ref76fdc95e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref76fdc95e.pNext)) + x.ViewFormatCount = (uint32)(x.ref76fdc95e.viewFormatCount) + hxffe3496 := (*sliceHeader)(unsafe.Pointer(&x.PViewFormats)) + hxffe3496.Data = unsafe.Pointer(x.ref76fdc95e.pViewFormats) + hxffe3496.Cap = 0x7fffffff + // hxffe3496.Len = ? + +} + +// allocAttachmentDescription2Memory allocates memory for type C.VkAttachmentDescription2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocAttachmentDescription2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentDescription2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfAttachmentDescription2Value = unsafe.Sizeof([1]C.VkAttachmentDescription2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *AttachmentDescription2) Ref() *C.VkAttachmentDescription2 { + if x == nil { + return nil + } + return x.refae7bd6bf +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *AttachmentDescription2) Free() { + if x != nil && x.allocsae7bd6bf != nil { + x.allocsae7bd6bf.(*cgoAllocMap).Free() + x.refae7bd6bf = nil + } +} + +// NewAttachmentDescription2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewAttachmentDescription2Ref(ref unsafe.Pointer) *AttachmentDescription2 { + if ref == nil { + return nil + } + obj := new(AttachmentDescription2) + obj.refae7bd6bf = (*C.VkAttachmentDescription2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *AttachmentDescription2) PassRef() (*C.VkAttachmentDescription2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refae7bd6bf != nil { + return x.refae7bd6bf, nil + } + memae7bd6bf := allocAttachmentDescription2Memory(1) + refae7bd6bf := (*C.VkAttachmentDescription2)(memae7bd6bf) + allocsae7bd6bf := new(cgoAllocMap) + allocsae7bd6bf.Add(memae7bd6bf) + + var csType_allocs *cgoAllocMap + refae7bd6bf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsae7bd6bf.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refae7bd6bf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsae7bd6bf.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refae7bd6bf.flags, cflags_allocs = (C.VkAttachmentDescriptionFlags)(x.Flags), cgoAllocsUnknown + allocsae7bd6bf.Borrow(cflags_allocs) + + var cformat_allocs *cgoAllocMap + refae7bd6bf.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocsae7bd6bf.Borrow(cformat_allocs) + + var csamples_allocs *cgoAllocMap + refae7bd6bf.samples, csamples_allocs = (C.VkSampleCountFlagBits)(x.Samples), cgoAllocsUnknown + allocsae7bd6bf.Borrow(csamples_allocs) + + var cloadOp_allocs *cgoAllocMap + refae7bd6bf.loadOp, cloadOp_allocs = (C.VkAttachmentLoadOp)(x.LoadOp), cgoAllocsUnknown + allocsae7bd6bf.Borrow(cloadOp_allocs) + + var cstoreOp_allocs *cgoAllocMap + refae7bd6bf.storeOp, cstoreOp_allocs = (C.VkAttachmentStoreOp)(x.StoreOp), cgoAllocsUnknown + allocsae7bd6bf.Borrow(cstoreOp_allocs) + + var cstencilLoadOp_allocs *cgoAllocMap + refae7bd6bf.stencilLoadOp, cstencilLoadOp_allocs = (C.VkAttachmentLoadOp)(x.StencilLoadOp), cgoAllocsUnknown + allocsae7bd6bf.Borrow(cstencilLoadOp_allocs) + + var cstencilStoreOp_allocs *cgoAllocMap + refae7bd6bf.stencilStoreOp, cstencilStoreOp_allocs = (C.VkAttachmentStoreOp)(x.StencilStoreOp), cgoAllocsUnknown + allocsae7bd6bf.Borrow(cstencilStoreOp_allocs) + + var cinitialLayout_allocs *cgoAllocMap + refae7bd6bf.initialLayout, cinitialLayout_allocs = (C.VkImageLayout)(x.InitialLayout), cgoAllocsUnknown + allocsae7bd6bf.Borrow(cinitialLayout_allocs) + + var cfinalLayout_allocs *cgoAllocMap + refae7bd6bf.finalLayout, cfinalLayout_allocs = (C.VkImageLayout)(x.FinalLayout), cgoAllocsUnknown + allocsae7bd6bf.Borrow(cfinalLayout_allocs) + + x.refae7bd6bf = refae7bd6bf + x.allocsae7bd6bf = allocsae7bd6bf + return refae7bd6bf, allocsae7bd6bf + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x AttachmentDescription2) PassValue() (C.VkAttachmentDescription2, *cgoAllocMap) { + if x.refae7bd6bf != nil { + return *x.refae7bd6bf, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *AttachmentDescription2) Deref() { + if x.refae7bd6bf == nil { + return + } + x.SType = (StructureType)(x.refae7bd6bf.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refae7bd6bf.pNext)) + x.Flags = (AttachmentDescriptionFlags)(x.refae7bd6bf.flags) + x.Format = (Format)(x.refae7bd6bf.format) + x.Samples = (SampleCountFlagBits)(x.refae7bd6bf.samples) + x.LoadOp = (AttachmentLoadOp)(x.refae7bd6bf.loadOp) + x.StoreOp = (AttachmentStoreOp)(x.refae7bd6bf.storeOp) + x.StencilLoadOp = (AttachmentLoadOp)(x.refae7bd6bf.stencilLoadOp) + x.StencilStoreOp = (AttachmentStoreOp)(x.refae7bd6bf.stencilStoreOp) + x.InitialLayout = (ImageLayout)(x.refae7bd6bf.initialLayout) + x.FinalLayout = (ImageLayout)(x.refae7bd6bf.finalLayout) +} + +// allocAttachmentReference2Memory allocates memory for type C.VkAttachmentReference2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocAttachmentReference2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentReference2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfAttachmentReference2Value = unsafe.Sizeof([1]C.VkAttachmentReference2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *AttachmentReference2) Ref() *C.VkAttachmentReference2 { + if x == nil { + return nil + } + return x.ref7b5106a8 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *AttachmentReference2) Free() { + if x != nil && x.allocs7b5106a8 != nil { + x.allocs7b5106a8.(*cgoAllocMap).Free() + x.ref7b5106a8 = nil + } +} + +// NewAttachmentReference2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewAttachmentReference2Ref(ref unsafe.Pointer) *AttachmentReference2 { + if ref == nil { + return nil + } + obj := new(AttachmentReference2) + obj.ref7b5106a8 = (*C.VkAttachmentReference2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *AttachmentReference2) PassRef() (*C.VkAttachmentReference2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref7b5106a8 != nil { + return x.ref7b5106a8, nil + } + mem7b5106a8 := allocAttachmentReference2Memory(1) + ref7b5106a8 := (*C.VkAttachmentReference2)(mem7b5106a8) + allocs7b5106a8 := new(cgoAllocMap) + allocs7b5106a8.Add(mem7b5106a8) + + var csType_allocs *cgoAllocMap + ref7b5106a8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7b5106a8.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref7b5106a8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7b5106a8.Borrow(cpNext_allocs) + + var cattachment_allocs *cgoAllocMap + ref7b5106a8.attachment, cattachment_allocs = (C.uint32_t)(x.Attachment), cgoAllocsUnknown + allocs7b5106a8.Borrow(cattachment_allocs) + + var clayout_allocs *cgoAllocMap + ref7b5106a8.layout, clayout_allocs = (C.VkImageLayout)(x.Layout), cgoAllocsUnknown + allocs7b5106a8.Borrow(clayout_allocs) + + var caspectMask_allocs *cgoAllocMap + ref7b5106a8.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown + allocs7b5106a8.Borrow(caspectMask_allocs) + + x.ref7b5106a8 = ref7b5106a8 + x.allocs7b5106a8 = allocs7b5106a8 + return ref7b5106a8, allocs7b5106a8 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x AttachmentReference2) PassValue() (C.VkAttachmentReference2, *cgoAllocMap) { + if x.ref7b5106a8 != nil { + return *x.ref7b5106a8, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *AttachmentReference2) Deref() { + if x.ref7b5106a8 == nil { + return + } + x.SType = (StructureType)(x.ref7b5106a8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7b5106a8.pNext)) + x.Attachment = (uint32)(x.ref7b5106a8.attachment) + x.Layout = (ImageLayout)(x.ref7b5106a8.layout) + x.AspectMask = (ImageAspectFlags)(x.ref7b5106a8.aspectMask) +} + +// allocSubpassDescription2Memory allocates memory for type C.VkSubpassDescription2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSubpassDescription2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassDescription2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSubpassDescription2Value = unsafe.Sizeof([1]C.VkSubpassDescription2{}) + +// unpackSAttachmentReference2 transforms a sliced Go data structure into plain C format. +func unpackSAttachmentReference2(x []AttachmentReference2) (unpacked *C.VkAttachmentReference2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentReference2) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocAttachmentReference2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkAttachmentReference2)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkAttachmentReference2)(h.Data) + return +} + +// packSAttachmentReference2 reads sliced Go data structure out from plain C format. +func packSAttachmentReference2(v []AttachmentReference2, ptr0 *C.VkAttachmentReference2) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfAttachmentReference2Value]C.VkAttachmentReference2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewAttachmentReference2Ref(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SubpassDescription2) Ref() *C.VkSubpassDescription2 { + if x == nil { + return nil + } + return x.ref7cdffe39 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SubpassDescription2) Free() { + if x != nil && x.allocs7cdffe39 != nil { + x.allocs7cdffe39.(*cgoAllocMap).Free() + x.ref7cdffe39 = nil + } +} + +// NewSubpassDescription2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSubpassDescription2Ref(ref unsafe.Pointer) *SubpassDescription2 { + if ref == nil { + return nil + } + obj := new(SubpassDescription2) + obj.ref7cdffe39 = (*C.VkSubpassDescription2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SubpassDescription2) PassRef() (*C.VkSubpassDescription2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref7cdffe39 != nil { + return x.ref7cdffe39, nil + } + mem7cdffe39 := allocSubpassDescription2Memory(1) + ref7cdffe39 := (*C.VkSubpassDescription2)(mem7cdffe39) + allocs7cdffe39 := new(cgoAllocMap) + allocs7cdffe39.Add(mem7cdffe39) + + var csType_allocs *cgoAllocMap + ref7cdffe39.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7cdffe39.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref7cdffe39.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7cdffe39.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref7cdffe39.flags, cflags_allocs = (C.VkSubpassDescriptionFlags)(x.Flags), cgoAllocsUnknown + allocs7cdffe39.Borrow(cflags_allocs) + + var cpipelineBindPoint_allocs *cgoAllocMap + ref7cdffe39.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocs7cdffe39.Borrow(cpipelineBindPoint_allocs) + + var cviewMask_allocs *cgoAllocMap + ref7cdffe39.viewMask, cviewMask_allocs = (C.uint32_t)(x.ViewMask), cgoAllocsUnknown + allocs7cdffe39.Borrow(cviewMask_allocs) + + var cinputAttachmentCount_allocs *cgoAllocMap + ref7cdffe39.inputAttachmentCount, cinputAttachmentCount_allocs = (C.uint32_t)(x.InputAttachmentCount), cgoAllocsUnknown + allocs7cdffe39.Borrow(cinputAttachmentCount_allocs) + + var cpInputAttachments_allocs *cgoAllocMap + ref7cdffe39.pInputAttachments, cpInputAttachments_allocs = unpackSAttachmentReference2(x.PInputAttachments) + allocs7cdffe39.Borrow(cpInputAttachments_allocs) + + var ccolorAttachmentCount_allocs *cgoAllocMap + ref7cdffe39.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocs7cdffe39.Borrow(ccolorAttachmentCount_allocs) + + var cpColorAttachments_allocs *cgoAllocMap + ref7cdffe39.pColorAttachments, cpColorAttachments_allocs = unpackSAttachmentReference2(x.PColorAttachments) + allocs7cdffe39.Borrow(cpColorAttachments_allocs) + + var cpResolveAttachments_allocs *cgoAllocMap + ref7cdffe39.pResolveAttachments, cpResolveAttachments_allocs = unpackSAttachmentReference2(x.PResolveAttachments) + allocs7cdffe39.Borrow(cpResolveAttachments_allocs) + + var cpDepthStencilAttachment_allocs *cgoAllocMap + ref7cdffe39.pDepthStencilAttachment, cpDepthStencilAttachment_allocs = unpackSAttachmentReference2(x.PDepthStencilAttachment) + allocs7cdffe39.Borrow(cpDepthStencilAttachment_allocs) + + var cpreserveAttachmentCount_allocs *cgoAllocMap + ref7cdffe39.preserveAttachmentCount, cpreserveAttachmentCount_allocs = (C.uint32_t)(x.PreserveAttachmentCount), cgoAllocsUnknown + allocs7cdffe39.Borrow(cpreserveAttachmentCount_allocs) + + var cpPreserveAttachments_allocs *cgoAllocMap + ref7cdffe39.pPreserveAttachments, cpPreserveAttachments_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments)).Data)), cgoAllocsUnknown + allocs7cdffe39.Borrow(cpPreserveAttachments_allocs) + + x.ref7cdffe39 = ref7cdffe39 + x.allocs7cdffe39 = allocs7cdffe39 + return ref7cdffe39, allocs7cdffe39 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SubpassDescription2) PassValue() (C.VkSubpassDescription2, *cgoAllocMap) { + if x.ref7cdffe39 != nil { + return *x.ref7cdffe39, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SubpassDescription2) Deref() { + if x.ref7cdffe39 == nil { + return + } + x.SType = (StructureType)(x.ref7cdffe39.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7cdffe39.pNext)) + x.Flags = (SubpassDescriptionFlags)(x.ref7cdffe39.flags) + x.PipelineBindPoint = (PipelineBindPoint)(x.ref7cdffe39.pipelineBindPoint) + x.ViewMask = (uint32)(x.ref7cdffe39.viewMask) + x.InputAttachmentCount = (uint32)(x.ref7cdffe39.inputAttachmentCount) + packSAttachmentReference2(x.PInputAttachments, x.ref7cdffe39.pInputAttachments) + x.ColorAttachmentCount = (uint32)(x.ref7cdffe39.colorAttachmentCount) + packSAttachmentReference2(x.PColorAttachments, x.ref7cdffe39.pColorAttachments) + packSAttachmentReference2(x.PResolveAttachments, x.ref7cdffe39.pResolveAttachments) + packSAttachmentReference2(x.PDepthStencilAttachment, x.ref7cdffe39.pDepthStencilAttachment) + x.PreserveAttachmentCount = (uint32)(x.ref7cdffe39.preserveAttachmentCount) + hxf5d48a6 := (*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments)) + hxf5d48a6.Data = unsafe.Pointer(x.ref7cdffe39.pPreserveAttachments) + hxf5d48a6.Cap = 0x7fffffff + // hxf5d48a6.Len = ? + +} + +// allocSubpassDependency2Memory allocates memory for type C.VkSubpassDependency2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSubpassDependency2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassDependency2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSubpassDependency2Value = unsafe.Sizeof([1]C.VkSubpassDependency2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SubpassDependency2) Ref() *C.VkSubpassDependency2 { + if x == nil { + return nil + } + return x.refb0fac2b +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SubpassDependency2) Free() { + if x != nil && x.allocsb0fac2b != nil { + x.allocsb0fac2b.(*cgoAllocMap).Free() + x.refb0fac2b = nil + } +} + +// NewSubpassDependency2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSubpassDependency2Ref(ref unsafe.Pointer) *SubpassDependency2 { + if ref == nil { + return nil + } + obj := new(SubpassDependency2) + obj.refb0fac2b = (*C.VkSubpassDependency2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SubpassDependency2) PassRef() (*C.VkSubpassDependency2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb0fac2b != nil { + return x.refb0fac2b, nil + } + memb0fac2b := allocSubpassDependency2Memory(1) + refb0fac2b := (*C.VkSubpassDependency2)(memb0fac2b) + allocsb0fac2b := new(cgoAllocMap) + allocsb0fac2b.Add(memb0fac2b) + + var csType_allocs *cgoAllocMap + refb0fac2b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb0fac2b.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb0fac2b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb0fac2b.Borrow(cpNext_allocs) + + var csrcSubpass_allocs *cgoAllocMap + refb0fac2b.srcSubpass, csrcSubpass_allocs = (C.uint32_t)(x.SrcSubpass), cgoAllocsUnknown + allocsb0fac2b.Borrow(csrcSubpass_allocs) + + var cdstSubpass_allocs *cgoAllocMap + refb0fac2b.dstSubpass, cdstSubpass_allocs = (C.uint32_t)(x.DstSubpass), cgoAllocsUnknown + allocsb0fac2b.Borrow(cdstSubpass_allocs) + + var csrcStageMask_allocs *cgoAllocMap + refb0fac2b.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags)(x.SrcStageMask), cgoAllocsUnknown + allocsb0fac2b.Borrow(csrcStageMask_allocs) + + var cdstStageMask_allocs *cgoAllocMap + refb0fac2b.dstStageMask, cdstStageMask_allocs = (C.VkPipelineStageFlags)(x.DstStageMask), cgoAllocsUnknown + allocsb0fac2b.Borrow(cdstStageMask_allocs) + + var csrcAccessMask_allocs *cgoAllocMap + refb0fac2b.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown + allocsb0fac2b.Borrow(csrcAccessMask_allocs) + + var cdstAccessMask_allocs *cgoAllocMap + refb0fac2b.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown + allocsb0fac2b.Borrow(cdstAccessMask_allocs) + + var cdependencyFlags_allocs *cgoAllocMap + refb0fac2b.dependencyFlags, cdependencyFlags_allocs = (C.VkDependencyFlags)(x.DependencyFlags), cgoAllocsUnknown + allocsb0fac2b.Borrow(cdependencyFlags_allocs) + + var cviewOffset_allocs *cgoAllocMap + refb0fac2b.viewOffset, cviewOffset_allocs = (C.int32_t)(x.ViewOffset), cgoAllocsUnknown + allocsb0fac2b.Borrow(cviewOffset_allocs) + + x.refb0fac2b = refb0fac2b + x.allocsb0fac2b = allocsb0fac2b + return refb0fac2b, allocsb0fac2b + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SubpassDependency2) PassValue() (C.VkSubpassDependency2, *cgoAllocMap) { + if x.refb0fac2b != nil { + return *x.refb0fac2b, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SubpassDependency2) Deref() { + if x.refb0fac2b == nil { + return + } + x.SType = (StructureType)(x.refb0fac2b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb0fac2b.pNext)) + x.SrcSubpass = (uint32)(x.refb0fac2b.srcSubpass) + x.DstSubpass = (uint32)(x.refb0fac2b.dstSubpass) + x.SrcStageMask = (PipelineStageFlags)(x.refb0fac2b.srcStageMask) + x.DstStageMask = (PipelineStageFlags)(x.refb0fac2b.dstStageMask) + x.SrcAccessMask = (AccessFlags)(x.refb0fac2b.srcAccessMask) + x.DstAccessMask = (AccessFlags)(x.refb0fac2b.dstAccessMask) + x.DependencyFlags = (DependencyFlags)(x.refb0fac2b.dependencyFlags) + x.ViewOffset = (int32)(x.refb0fac2b.viewOffset) +} + +// allocRenderPassCreateInfo2Memory allocates memory for type C.VkRenderPassCreateInfo2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocRenderPassCreateInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassCreateInfo2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfRenderPassCreateInfo2Value = unsafe.Sizeof([1]C.VkRenderPassCreateInfo2{}) + +// unpackSAttachmentDescription2 transforms a sliced Go data structure into plain C format. +func unpackSAttachmentDescription2(x []AttachmentDescription2) (unpacked *C.VkAttachmentDescription2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentDescription2) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocAttachmentDescription2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkAttachmentDescription2)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkAttachmentDescription2)(h.Data) + return +} + +// unpackSSubpassDescription2 transforms a sliced Go data structure into plain C format. +func unpackSSubpassDescription2(x []SubpassDescription2) (unpacked *C.VkSubpassDescription2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDescription2) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSubpassDescription2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSubpassDescription2)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSubpassDescription2)(h.Data) + return +} + +// unpackSSubpassDependency2 transforms a sliced Go data structure into plain C format. +func unpackSSubpassDependency2(x []SubpassDependency2) (unpacked *C.VkSubpassDependency2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDependency2) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSubpassDependency2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSubpassDependency2)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSubpassDependency2)(h.Data) + return +} + +// packSAttachmentDescription2 reads sliced Go data structure out from plain C format. +func packSAttachmentDescription2(v []AttachmentDescription2, ptr0 *C.VkAttachmentDescription2) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfAttachmentDescription2Value]C.VkAttachmentDescription2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewAttachmentDescription2Ref(unsafe.Pointer(&ptr1)) + } +} + +// packSSubpassDescription2 reads sliced Go data structure out from plain C format. +func packSSubpassDescription2(v []SubpassDescription2, ptr0 *C.VkSubpassDescription2) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSubpassDescription2Value]C.VkSubpassDescription2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSubpassDescription2Ref(unsafe.Pointer(&ptr1)) + } +} + +// packSSubpassDependency2 reads sliced Go data structure out from plain C format. +func packSSubpassDependency2(v []SubpassDependency2, ptr0 *C.VkSubpassDependency2) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSubpassDependency2Value]C.VkSubpassDependency2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSubpassDependency2Ref(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *RenderPassCreateInfo2) Ref() *C.VkRenderPassCreateInfo2 { + if x == nil { + return nil + } + return x.ref1e86f565 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *RenderPassCreateInfo2) Free() { + if x != nil && x.allocs1e86f565 != nil { + x.allocs1e86f565.(*cgoAllocMap).Free() + x.ref1e86f565 = nil + } +} + +// NewRenderPassCreateInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewRenderPassCreateInfo2Ref(ref unsafe.Pointer) *RenderPassCreateInfo2 { + if ref == nil { + return nil + } + obj := new(RenderPassCreateInfo2) + obj.ref1e86f565 = (*C.VkRenderPassCreateInfo2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *RenderPassCreateInfo2) PassRef() (*C.VkRenderPassCreateInfo2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref1e86f565 != nil { + return x.ref1e86f565, nil + } + mem1e86f565 := allocRenderPassCreateInfo2Memory(1) + ref1e86f565 := (*C.VkRenderPassCreateInfo2)(mem1e86f565) + allocs1e86f565 := new(cgoAllocMap) + allocs1e86f565.Add(mem1e86f565) + + var csType_allocs *cgoAllocMap + ref1e86f565.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1e86f565.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref1e86f565.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1e86f565.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref1e86f565.flags, cflags_allocs = (C.VkRenderPassCreateFlags)(x.Flags), cgoAllocsUnknown + allocs1e86f565.Borrow(cflags_allocs) + + var cattachmentCount_allocs *cgoAllocMap + ref1e86f565.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown + allocs1e86f565.Borrow(cattachmentCount_allocs) + + var cpAttachments_allocs *cgoAllocMap + ref1e86f565.pAttachments, cpAttachments_allocs = unpackSAttachmentDescription2(x.PAttachments) + allocs1e86f565.Borrow(cpAttachments_allocs) + + var csubpassCount_allocs *cgoAllocMap + ref1e86f565.subpassCount, csubpassCount_allocs = (C.uint32_t)(x.SubpassCount), cgoAllocsUnknown + allocs1e86f565.Borrow(csubpassCount_allocs) + + var cpSubpasses_allocs *cgoAllocMap + ref1e86f565.pSubpasses, cpSubpasses_allocs = unpackSSubpassDescription2(x.PSubpasses) + allocs1e86f565.Borrow(cpSubpasses_allocs) + + var cdependencyCount_allocs *cgoAllocMap + ref1e86f565.dependencyCount, cdependencyCount_allocs = (C.uint32_t)(x.DependencyCount), cgoAllocsUnknown + allocs1e86f565.Borrow(cdependencyCount_allocs) + + var cpDependencies_allocs *cgoAllocMap + ref1e86f565.pDependencies, cpDependencies_allocs = unpackSSubpassDependency2(x.PDependencies) + allocs1e86f565.Borrow(cpDependencies_allocs) + + var ccorrelatedViewMaskCount_allocs *cgoAllocMap + ref1e86f565.correlatedViewMaskCount, ccorrelatedViewMaskCount_allocs = (C.uint32_t)(x.CorrelatedViewMaskCount), cgoAllocsUnknown + allocs1e86f565.Borrow(ccorrelatedViewMaskCount_allocs) + + var cpCorrelatedViewMasks_allocs *cgoAllocMap + ref1e86f565.pCorrelatedViewMasks, cpCorrelatedViewMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCorrelatedViewMasks)).Data)), cgoAllocsUnknown + allocs1e86f565.Borrow(cpCorrelatedViewMasks_allocs) + + x.ref1e86f565 = ref1e86f565 + x.allocs1e86f565 = allocs1e86f565 + return ref1e86f565, allocs1e86f565 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x RenderPassCreateInfo2) PassValue() (C.VkRenderPassCreateInfo2, *cgoAllocMap) { + if x.ref1e86f565 != nil { + return *x.ref1e86f565, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *RenderPassCreateInfo2) Deref() { + if x.ref1e86f565 == nil { + return + } + x.SType = (StructureType)(x.ref1e86f565.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1e86f565.pNext)) + x.Flags = (RenderPassCreateFlags)(x.ref1e86f565.flags) + x.AttachmentCount = (uint32)(x.ref1e86f565.attachmentCount) + packSAttachmentDescription2(x.PAttachments, x.ref1e86f565.pAttachments) + x.SubpassCount = (uint32)(x.ref1e86f565.subpassCount) + packSSubpassDescription2(x.PSubpasses, x.ref1e86f565.pSubpasses) + x.DependencyCount = (uint32)(x.ref1e86f565.dependencyCount) + packSSubpassDependency2(x.PDependencies, x.ref1e86f565.pDependencies) + x.CorrelatedViewMaskCount = (uint32)(x.ref1e86f565.correlatedViewMaskCount) + hxf685469 := (*sliceHeader)(unsafe.Pointer(&x.PCorrelatedViewMasks)) + hxf685469.Data = unsafe.Pointer(x.ref1e86f565.pCorrelatedViewMasks) + hxf685469.Cap = 0x7fffffff + // hxf685469.Len = ? + +} + +// allocSubpassBeginInfoMemory allocates memory for type C.VkSubpassBeginInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSubpassBeginInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassBeginInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSubpassBeginInfoValue = unsafe.Sizeof([1]C.VkSubpassBeginInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SubpassBeginInfo) Ref() *C.VkSubpassBeginInfo { + if x == nil { + return nil + } + return x.ref941a38e5 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SubpassBeginInfo) Free() { + if x != nil && x.allocs941a38e5 != nil { + x.allocs941a38e5.(*cgoAllocMap).Free() + x.ref941a38e5 = nil + } +} + +// NewSubpassBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSubpassBeginInfoRef(ref unsafe.Pointer) *SubpassBeginInfo { + if ref == nil { + return nil + } + obj := new(SubpassBeginInfo) + obj.ref941a38e5 = (*C.VkSubpassBeginInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SubpassBeginInfo) PassRef() (*C.VkSubpassBeginInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref941a38e5 != nil { + return x.ref941a38e5, nil + } + mem941a38e5 := allocSubpassBeginInfoMemory(1) + ref941a38e5 := (*C.VkSubpassBeginInfo)(mem941a38e5) + allocs941a38e5 := new(cgoAllocMap) + allocs941a38e5.Add(mem941a38e5) + + var csType_allocs *cgoAllocMap + ref941a38e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs941a38e5.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref941a38e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs941a38e5.Borrow(cpNext_allocs) + + var ccontents_allocs *cgoAllocMap + ref941a38e5.contents, ccontents_allocs = (C.VkSubpassContents)(x.Contents), cgoAllocsUnknown + allocs941a38e5.Borrow(ccontents_allocs) + + x.ref941a38e5 = ref941a38e5 + x.allocs941a38e5 = allocs941a38e5 + return ref941a38e5, allocs941a38e5 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SubpassBeginInfo) PassValue() (C.VkSubpassBeginInfo, *cgoAllocMap) { + if x.ref941a38e5 != nil { + return *x.ref941a38e5, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SubpassBeginInfo) Deref() { + if x.ref941a38e5 == nil { + return + } + x.SType = (StructureType)(x.ref941a38e5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref941a38e5.pNext)) + x.Contents = (SubpassContents)(x.ref941a38e5.contents) +} + +// allocSubpassEndInfoMemory allocates memory for type C.VkSubpassEndInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSubpassEndInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassEndInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSubpassEndInfoValue = unsafe.Sizeof([1]C.VkSubpassEndInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SubpassEndInfo) Ref() *C.VkSubpassEndInfo { + if x == nil { + return nil + } + return x.reffa172a5c +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SubpassEndInfo) Free() { + if x != nil && x.allocsfa172a5c != nil { + x.allocsfa172a5c.(*cgoAllocMap).Free() + x.reffa172a5c = nil + } +} + +// NewSubpassEndInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSubpassEndInfoRef(ref unsafe.Pointer) *SubpassEndInfo { + if ref == nil { + return nil + } + obj := new(SubpassEndInfo) + obj.reffa172a5c = (*C.VkSubpassEndInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SubpassEndInfo) PassRef() (*C.VkSubpassEndInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reffa172a5c != nil { + return x.reffa172a5c, nil + } + memfa172a5c := allocSubpassEndInfoMemory(1) + reffa172a5c := (*C.VkSubpassEndInfo)(memfa172a5c) + allocsfa172a5c := new(cgoAllocMap) + allocsfa172a5c.Add(memfa172a5c) + + var csType_allocs *cgoAllocMap + reffa172a5c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfa172a5c.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reffa172a5c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfa172a5c.Borrow(cpNext_allocs) + + x.reffa172a5c = reffa172a5c + x.allocsfa172a5c = allocsfa172a5c + return reffa172a5c, allocsfa172a5c + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SubpassEndInfo) PassValue() (C.VkSubpassEndInfo, *cgoAllocMap) { + if x.reffa172a5c != nil { + return *x.reffa172a5c, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SubpassEndInfo) Deref() { + if x.reffa172a5c == nil { + return + } + x.SType = (StructureType)(x.reffa172a5c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffa172a5c.pNext)) +} + +// allocPhysicalDevice8BitStorageFeaturesMemory allocates memory for type C.VkPhysicalDevice8BitStorageFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDevice8BitStorageFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevice8BitStorageFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDevice8BitStorageFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevice8BitStorageFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDevice8BitStorageFeatures) Ref() *C.VkPhysicalDevice8BitStorageFeatures { + if x == nil { + return nil + } + return x.ref4c9f0386 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDevice8BitStorageFeatures) Free() { + if x != nil && x.allocs4c9f0386 != nil { + x.allocs4c9f0386.(*cgoAllocMap).Free() + x.ref4c9f0386 = nil + } +} + +// NewPhysicalDevice8BitStorageFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDevice8BitStorageFeaturesRef(ref unsafe.Pointer) *PhysicalDevice8BitStorageFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDevice8BitStorageFeatures) + obj.ref4c9f0386 = (*C.VkPhysicalDevice8BitStorageFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDevice8BitStorageFeatures) PassRef() (*C.VkPhysicalDevice8BitStorageFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4c9f0386 != nil { + return x.ref4c9f0386, nil + } + mem4c9f0386 := allocPhysicalDevice8BitStorageFeaturesMemory(1) + ref4c9f0386 := (*C.VkPhysicalDevice8BitStorageFeatures)(mem4c9f0386) + allocs4c9f0386 := new(cgoAllocMap) + allocs4c9f0386.Add(mem4c9f0386) + + var csType_allocs *cgoAllocMap + ref4c9f0386.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4c9f0386.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref4c9f0386.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4c9f0386.Borrow(cpNext_allocs) + + var cstorageBuffer8BitAccess_allocs *cgoAllocMap + ref4c9f0386.storageBuffer8BitAccess, cstorageBuffer8BitAccess_allocs = (C.VkBool32)(x.StorageBuffer8BitAccess), cgoAllocsUnknown + allocs4c9f0386.Borrow(cstorageBuffer8BitAccess_allocs) + + var cuniformAndStorageBuffer8BitAccess_allocs *cgoAllocMap + ref4c9f0386.uniformAndStorageBuffer8BitAccess, cuniformAndStorageBuffer8BitAccess_allocs = (C.VkBool32)(x.UniformAndStorageBuffer8BitAccess), cgoAllocsUnknown + allocs4c9f0386.Borrow(cuniformAndStorageBuffer8BitAccess_allocs) + + var cstoragePushConstant8_allocs *cgoAllocMap + ref4c9f0386.storagePushConstant8, cstoragePushConstant8_allocs = (C.VkBool32)(x.StoragePushConstant8), cgoAllocsUnknown + allocs4c9f0386.Borrow(cstoragePushConstant8_allocs) + + x.ref4c9f0386 = ref4c9f0386 + x.allocs4c9f0386 = allocs4c9f0386 + return ref4c9f0386, allocs4c9f0386 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDevice8BitStorageFeatures) PassValue() (C.VkPhysicalDevice8BitStorageFeatures, *cgoAllocMap) { + if x.ref4c9f0386 != nil { + return *x.ref4c9f0386, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDevice8BitStorageFeatures) Deref() { + if x.ref4c9f0386 == nil { + return + } + x.SType = (StructureType)(x.ref4c9f0386.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4c9f0386.pNext)) + x.StorageBuffer8BitAccess = (Bool32)(x.ref4c9f0386.storageBuffer8BitAccess) + x.UniformAndStorageBuffer8BitAccess = (Bool32)(x.ref4c9f0386.uniformAndStorageBuffer8BitAccess) + x.StoragePushConstant8 = (Bool32)(x.ref4c9f0386.storagePushConstant8) +} + +// allocPhysicalDeviceDriverPropertiesMemory allocates memory for type C.VkPhysicalDeviceDriverProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceDriverPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDriverPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceDriverPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDriverProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceDriverProperties) Ref() *C.VkPhysicalDeviceDriverProperties { + if x == nil { + return nil + } + return x.ref492c8b68 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceDriverProperties) Free() { + if x != nil && x.allocs492c8b68 != nil { + x.allocs492c8b68.(*cgoAllocMap).Free() + x.ref492c8b68 = nil + } +} + +// NewPhysicalDeviceDriverPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceDriverPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDriverProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceDriverProperties) + obj.ref492c8b68 = (*C.VkPhysicalDeviceDriverProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceDriverProperties) PassRef() (*C.VkPhysicalDeviceDriverProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref492c8b68 != nil { + return x.ref492c8b68, nil + } + mem492c8b68 := allocPhysicalDeviceDriverPropertiesMemory(1) + ref492c8b68 := (*C.VkPhysicalDeviceDriverProperties)(mem492c8b68) + allocs492c8b68 := new(cgoAllocMap) + allocs492c8b68.Add(mem492c8b68) + + var csType_allocs *cgoAllocMap + ref492c8b68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs492c8b68.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref492c8b68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs492c8b68.Borrow(cpNext_allocs) + + var cdriverID_allocs *cgoAllocMap + ref492c8b68.driverID, cdriverID_allocs = (C.VkDriverId)(x.DriverID), cgoAllocsUnknown + allocs492c8b68.Borrow(cdriverID_allocs) + + var cdriverName_allocs *cgoAllocMap + ref492c8b68.driverName, cdriverName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.DriverName)), cgoAllocsUnknown + allocs492c8b68.Borrow(cdriverName_allocs) + + var cdriverInfo_allocs *cgoAllocMap + ref492c8b68.driverInfo, cdriverInfo_allocs = *(*[256]C.char)(unsafe.Pointer(&x.DriverInfo)), cgoAllocsUnknown + allocs492c8b68.Borrow(cdriverInfo_allocs) + + var cconformanceVersion_allocs *cgoAllocMap + ref492c8b68.conformanceVersion, cconformanceVersion_allocs = x.ConformanceVersion.PassValue() + allocs492c8b68.Borrow(cconformanceVersion_allocs) + + x.ref492c8b68 = ref492c8b68 + x.allocs492c8b68 = allocs492c8b68 + return ref492c8b68, allocs492c8b68 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceDriverProperties) PassValue() (C.VkPhysicalDeviceDriverProperties, *cgoAllocMap) { + if x.ref492c8b68 != nil { + return *x.ref492c8b68, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceDriverProperties) Deref() { + if x.ref492c8b68 == nil { + return + } + x.SType = (StructureType)(x.ref492c8b68.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref492c8b68.pNext)) + x.DriverID = (DriverId)(x.ref492c8b68.driverID) + x.DriverName = *(*[256]byte)(unsafe.Pointer(&x.ref492c8b68.driverName)) + x.DriverInfo = *(*[256]byte)(unsafe.Pointer(&x.ref492c8b68.driverInfo)) + x.ConformanceVersion = *NewConformanceVersionRef(unsafe.Pointer(&x.ref492c8b68.conformanceVersion)) +} + +// allocPhysicalDeviceShaderAtomicInt64FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicInt64Features in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceShaderAtomicInt64FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderAtomicInt64FeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceShaderAtomicInt64FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicInt64Features{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderAtomicInt64Features) Ref() *C.VkPhysicalDeviceShaderAtomicInt64Features { + if x == nil { + return nil + } + return x.refa23b7e52 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceShaderAtomicInt64Features) Free() { + if x != nil && x.allocsa23b7e52 != nil { + x.allocsa23b7e52.(*cgoAllocMap).Free() + x.refa23b7e52 = nil + } +} + +// NewPhysicalDeviceShaderAtomicInt64FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceShaderAtomicInt64FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicInt64Features { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceShaderAtomicInt64Features) + obj.refa23b7e52 = (*C.VkPhysicalDeviceShaderAtomicInt64Features)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceShaderAtomicInt64Features) PassRef() (*C.VkPhysicalDeviceShaderAtomicInt64Features, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa23b7e52 != nil { + return x.refa23b7e52, nil + } + mema23b7e52 := allocPhysicalDeviceShaderAtomicInt64FeaturesMemory(1) + refa23b7e52 := (*C.VkPhysicalDeviceShaderAtomicInt64Features)(mema23b7e52) + allocsa23b7e52 := new(cgoAllocMap) + allocsa23b7e52.Add(mema23b7e52) + + var csType_allocs *cgoAllocMap + refa23b7e52.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa23b7e52.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refa23b7e52.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa23b7e52.Borrow(cpNext_allocs) + + var cshaderBufferInt64Atomics_allocs *cgoAllocMap + refa23b7e52.shaderBufferInt64Atomics, cshaderBufferInt64Atomics_allocs = (C.VkBool32)(x.ShaderBufferInt64Atomics), cgoAllocsUnknown + allocsa23b7e52.Borrow(cshaderBufferInt64Atomics_allocs) + + var cshaderSharedInt64Atomics_allocs *cgoAllocMap + refa23b7e52.shaderSharedInt64Atomics, cshaderSharedInt64Atomics_allocs = (C.VkBool32)(x.ShaderSharedInt64Atomics), cgoAllocsUnknown + allocsa23b7e52.Borrow(cshaderSharedInt64Atomics_allocs) + + x.refa23b7e52 = refa23b7e52 + x.allocsa23b7e52 = allocsa23b7e52 + return refa23b7e52, allocsa23b7e52 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceShaderAtomicInt64Features) PassValue() (C.VkPhysicalDeviceShaderAtomicInt64Features, *cgoAllocMap) { + if x.refa23b7e52 != nil { + return *x.refa23b7e52, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceShaderAtomicInt64Features) Deref() { + if x.refa23b7e52 == nil { + return + } + x.SType = (StructureType)(x.refa23b7e52.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa23b7e52.pNext)) + x.ShaderBufferInt64Atomics = (Bool32)(x.refa23b7e52.shaderBufferInt64Atomics) + x.ShaderSharedInt64Atomics = (Bool32)(x.refa23b7e52.shaderSharedInt64Atomics) +} + +// allocPhysicalDeviceShaderFloat16Int8FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderFloat16Int8Features in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceShaderFloat16Int8FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderFloat16Int8FeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceShaderFloat16Int8FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderFloat16Int8Features{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderFloat16Int8Features) Ref() *C.VkPhysicalDeviceShaderFloat16Int8Features { + if x == nil { + return nil + } + return x.refc9d315b6 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceShaderFloat16Int8Features) Free() { + if x != nil && x.allocsc9d315b6 != nil { + x.allocsc9d315b6.(*cgoAllocMap).Free() + x.refc9d315b6 = nil + } +} + +// NewPhysicalDeviceShaderFloat16Int8FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceShaderFloat16Int8FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderFloat16Int8Features { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceShaderFloat16Int8Features) + obj.refc9d315b6 = (*C.VkPhysicalDeviceShaderFloat16Int8Features)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceShaderFloat16Int8Features) PassRef() (*C.VkPhysicalDeviceShaderFloat16Int8Features, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc9d315b6 != nil { + return x.refc9d315b6, nil + } + memc9d315b6 := allocPhysicalDeviceShaderFloat16Int8FeaturesMemory(1) + refc9d315b6 := (*C.VkPhysicalDeviceShaderFloat16Int8Features)(memc9d315b6) + allocsc9d315b6 := new(cgoAllocMap) + allocsc9d315b6.Add(memc9d315b6) + + var csType_allocs *cgoAllocMap + refc9d315b6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc9d315b6.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc9d315b6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc9d315b6.Borrow(cpNext_allocs) + + var cshaderFloat16_allocs *cgoAllocMap + refc9d315b6.shaderFloat16, cshaderFloat16_allocs = (C.VkBool32)(x.ShaderFloat16), cgoAllocsUnknown + allocsc9d315b6.Borrow(cshaderFloat16_allocs) + + var cshaderInt8_allocs *cgoAllocMap + refc9d315b6.shaderInt8, cshaderInt8_allocs = (C.VkBool32)(x.ShaderInt8), cgoAllocsUnknown + allocsc9d315b6.Borrow(cshaderInt8_allocs) + + x.refc9d315b6 = refc9d315b6 + x.allocsc9d315b6 = allocsc9d315b6 + return refc9d315b6, allocsc9d315b6 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceShaderFloat16Int8Features) PassValue() (C.VkPhysicalDeviceShaderFloat16Int8Features, *cgoAllocMap) { + if x.refc9d315b6 != nil { + return *x.refc9d315b6, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceShaderFloat16Int8Features) Deref() { + if x.refc9d315b6 == nil { + return + } + x.SType = (StructureType)(x.refc9d315b6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc9d315b6.pNext)) + x.ShaderFloat16 = (Bool32)(x.refc9d315b6.shaderFloat16) + x.ShaderInt8 = (Bool32)(x.refc9d315b6.shaderInt8) +} + +// allocPhysicalDeviceFloatControlsPropertiesMemory allocates memory for type C.VkPhysicalDeviceFloatControlsProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceFloatControlsPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFloatControlsPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceFloatControlsPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFloatControlsProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceFloatControlsProperties) Ref() *C.VkPhysicalDeviceFloatControlsProperties { + if x == nil { + return nil + } + return x.ref92190a8a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceFloatControlsProperties) Free() { + if x != nil && x.allocs92190a8a != nil { + x.allocs92190a8a.(*cgoAllocMap).Free() + x.ref92190a8a = nil + } +} + +// NewPhysicalDeviceFloatControlsPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceFloatControlsPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFloatControlsProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceFloatControlsProperties) + obj.ref92190a8a = (*C.VkPhysicalDeviceFloatControlsProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceFloatControlsProperties) PassRef() (*C.VkPhysicalDeviceFloatControlsProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref92190a8a != nil { + return x.ref92190a8a, nil + } + mem92190a8a := allocPhysicalDeviceFloatControlsPropertiesMemory(1) + ref92190a8a := (*C.VkPhysicalDeviceFloatControlsProperties)(mem92190a8a) + allocs92190a8a := new(cgoAllocMap) + allocs92190a8a.Add(mem92190a8a) + + var csType_allocs *cgoAllocMap + ref92190a8a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs92190a8a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref92190a8a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs92190a8a.Borrow(cpNext_allocs) + + var cdenormBehaviorIndependence_allocs *cgoAllocMap + ref92190a8a.denormBehaviorIndependence, cdenormBehaviorIndependence_allocs = (C.VkShaderFloatControlsIndependence)(x.DenormBehaviorIndependence), cgoAllocsUnknown + allocs92190a8a.Borrow(cdenormBehaviorIndependence_allocs) + + var croundingModeIndependence_allocs *cgoAllocMap + ref92190a8a.roundingModeIndependence, croundingModeIndependence_allocs = (C.VkShaderFloatControlsIndependence)(x.RoundingModeIndependence), cgoAllocsUnknown + allocs92190a8a.Borrow(croundingModeIndependence_allocs) + + var cshaderSignedZeroInfNanPreserveFloat16_allocs *cgoAllocMap + ref92190a8a.shaderSignedZeroInfNanPreserveFloat16, cshaderSignedZeroInfNanPreserveFloat16_allocs = (C.VkBool32)(x.ShaderSignedZeroInfNanPreserveFloat16), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderSignedZeroInfNanPreserveFloat16_allocs) + + var cshaderSignedZeroInfNanPreserveFloat32_allocs *cgoAllocMap + ref92190a8a.shaderSignedZeroInfNanPreserveFloat32, cshaderSignedZeroInfNanPreserveFloat32_allocs = (C.VkBool32)(x.ShaderSignedZeroInfNanPreserveFloat32), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderSignedZeroInfNanPreserveFloat32_allocs) + + var cshaderSignedZeroInfNanPreserveFloat64_allocs *cgoAllocMap + ref92190a8a.shaderSignedZeroInfNanPreserveFloat64, cshaderSignedZeroInfNanPreserveFloat64_allocs = (C.VkBool32)(x.ShaderSignedZeroInfNanPreserveFloat64), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderSignedZeroInfNanPreserveFloat64_allocs) + + var cshaderDenormPreserveFloat16_allocs *cgoAllocMap + ref92190a8a.shaderDenormPreserveFloat16, cshaderDenormPreserveFloat16_allocs = (C.VkBool32)(x.ShaderDenormPreserveFloat16), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderDenormPreserveFloat16_allocs) + + var cshaderDenormPreserveFloat32_allocs *cgoAllocMap + ref92190a8a.shaderDenormPreserveFloat32, cshaderDenormPreserveFloat32_allocs = (C.VkBool32)(x.ShaderDenormPreserveFloat32), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderDenormPreserveFloat32_allocs) + + var cshaderDenormPreserveFloat64_allocs *cgoAllocMap + ref92190a8a.shaderDenormPreserveFloat64, cshaderDenormPreserveFloat64_allocs = (C.VkBool32)(x.ShaderDenormPreserveFloat64), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderDenormPreserveFloat64_allocs) + + var cshaderDenormFlushToZeroFloat16_allocs *cgoAllocMap + ref92190a8a.shaderDenormFlushToZeroFloat16, cshaderDenormFlushToZeroFloat16_allocs = (C.VkBool32)(x.ShaderDenormFlushToZeroFloat16), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderDenormFlushToZeroFloat16_allocs) + + var cshaderDenormFlushToZeroFloat32_allocs *cgoAllocMap + ref92190a8a.shaderDenormFlushToZeroFloat32, cshaderDenormFlushToZeroFloat32_allocs = (C.VkBool32)(x.ShaderDenormFlushToZeroFloat32), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderDenormFlushToZeroFloat32_allocs) + + var cshaderDenormFlushToZeroFloat64_allocs *cgoAllocMap + ref92190a8a.shaderDenormFlushToZeroFloat64, cshaderDenormFlushToZeroFloat64_allocs = (C.VkBool32)(x.ShaderDenormFlushToZeroFloat64), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderDenormFlushToZeroFloat64_allocs) + + var cshaderRoundingModeRTEFloat16_allocs *cgoAllocMap + ref92190a8a.shaderRoundingModeRTEFloat16, cshaderRoundingModeRTEFloat16_allocs = (C.VkBool32)(x.ShaderRoundingModeRTEFloat16), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderRoundingModeRTEFloat16_allocs) + + var cshaderRoundingModeRTEFloat32_allocs *cgoAllocMap + ref92190a8a.shaderRoundingModeRTEFloat32, cshaderRoundingModeRTEFloat32_allocs = (C.VkBool32)(x.ShaderRoundingModeRTEFloat32), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderRoundingModeRTEFloat32_allocs) + + var cshaderRoundingModeRTEFloat64_allocs *cgoAllocMap + ref92190a8a.shaderRoundingModeRTEFloat64, cshaderRoundingModeRTEFloat64_allocs = (C.VkBool32)(x.ShaderRoundingModeRTEFloat64), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderRoundingModeRTEFloat64_allocs) + + var cshaderRoundingModeRTZFloat16_allocs *cgoAllocMap + ref92190a8a.shaderRoundingModeRTZFloat16, cshaderRoundingModeRTZFloat16_allocs = (C.VkBool32)(x.ShaderRoundingModeRTZFloat16), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderRoundingModeRTZFloat16_allocs) + + var cshaderRoundingModeRTZFloat32_allocs *cgoAllocMap + ref92190a8a.shaderRoundingModeRTZFloat32, cshaderRoundingModeRTZFloat32_allocs = (C.VkBool32)(x.ShaderRoundingModeRTZFloat32), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderRoundingModeRTZFloat32_allocs) + + var cshaderRoundingModeRTZFloat64_allocs *cgoAllocMap + ref92190a8a.shaderRoundingModeRTZFloat64, cshaderRoundingModeRTZFloat64_allocs = (C.VkBool32)(x.ShaderRoundingModeRTZFloat64), cgoAllocsUnknown + allocs92190a8a.Borrow(cshaderRoundingModeRTZFloat64_allocs) + + x.ref92190a8a = ref92190a8a + x.allocs92190a8a = allocs92190a8a + return ref92190a8a, allocs92190a8a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceFloatControlsProperties) PassValue() (C.VkPhysicalDeviceFloatControlsProperties, *cgoAllocMap) { + if x.ref92190a8a != nil { + return *x.ref92190a8a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceFloatControlsProperties) Deref() { + if x.ref92190a8a == nil { + return + } + x.SType = (StructureType)(x.ref92190a8a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref92190a8a.pNext)) + x.DenormBehaviorIndependence = (ShaderFloatControlsIndependence)(x.ref92190a8a.denormBehaviorIndependence) + x.RoundingModeIndependence = (ShaderFloatControlsIndependence)(x.ref92190a8a.roundingModeIndependence) + x.ShaderSignedZeroInfNanPreserveFloat16 = (Bool32)(x.ref92190a8a.shaderSignedZeroInfNanPreserveFloat16) + x.ShaderSignedZeroInfNanPreserveFloat32 = (Bool32)(x.ref92190a8a.shaderSignedZeroInfNanPreserveFloat32) + x.ShaderSignedZeroInfNanPreserveFloat64 = (Bool32)(x.ref92190a8a.shaderSignedZeroInfNanPreserveFloat64) + x.ShaderDenormPreserveFloat16 = (Bool32)(x.ref92190a8a.shaderDenormPreserveFloat16) + x.ShaderDenormPreserveFloat32 = (Bool32)(x.ref92190a8a.shaderDenormPreserveFloat32) + x.ShaderDenormPreserveFloat64 = (Bool32)(x.ref92190a8a.shaderDenormPreserveFloat64) + x.ShaderDenormFlushToZeroFloat16 = (Bool32)(x.ref92190a8a.shaderDenormFlushToZeroFloat16) + x.ShaderDenormFlushToZeroFloat32 = (Bool32)(x.ref92190a8a.shaderDenormFlushToZeroFloat32) + x.ShaderDenormFlushToZeroFloat64 = (Bool32)(x.ref92190a8a.shaderDenormFlushToZeroFloat64) + x.ShaderRoundingModeRTEFloat16 = (Bool32)(x.ref92190a8a.shaderRoundingModeRTEFloat16) + x.ShaderRoundingModeRTEFloat32 = (Bool32)(x.ref92190a8a.shaderRoundingModeRTEFloat32) + x.ShaderRoundingModeRTEFloat64 = (Bool32)(x.ref92190a8a.shaderRoundingModeRTEFloat64) + x.ShaderRoundingModeRTZFloat16 = (Bool32)(x.ref92190a8a.shaderRoundingModeRTZFloat16) + x.ShaderRoundingModeRTZFloat32 = (Bool32)(x.ref92190a8a.shaderRoundingModeRTZFloat32) + x.ShaderRoundingModeRTZFloat64 = (Bool32)(x.ref92190a8a.shaderRoundingModeRTZFloat64) +} + +// allocDescriptorSetLayoutBindingFlagsCreateInfoMemory allocates memory for type C.VkDescriptorSetLayoutBindingFlagsCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorSetLayoutBindingFlagsCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutBindingFlagsCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorSetLayoutBindingFlagsCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutBindingFlagsCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorSetLayoutBindingFlagsCreateInfo) Ref() *C.VkDescriptorSetLayoutBindingFlagsCreateInfo { + if x == nil { + return nil + } + return x.ref84838c4d +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorSetLayoutBindingFlagsCreateInfo) Free() { + if x != nil && x.allocs84838c4d != nil { + x.allocs84838c4d.(*cgoAllocMap).Free() + x.ref84838c4d = nil + } +} + +// NewDescriptorSetLayoutBindingFlagsCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorSetLayoutBindingFlagsCreateInfoRef(ref unsafe.Pointer) *DescriptorSetLayoutBindingFlagsCreateInfo { + if ref == nil { + return nil + } + obj := new(DescriptorSetLayoutBindingFlagsCreateInfo) + obj.ref84838c4d = (*C.VkDescriptorSetLayoutBindingFlagsCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorSetLayoutBindingFlagsCreateInfo) PassRef() (*C.VkDescriptorSetLayoutBindingFlagsCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref84838c4d != nil { + return x.ref84838c4d, nil + } + mem84838c4d := allocDescriptorSetLayoutBindingFlagsCreateInfoMemory(1) + ref84838c4d := (*C.VkDescriptorSetLayoutBindingFlagsCreateInfo)(mem84838c4d) + allocs84838c4d := new(cgoAllocMap) + allocs84838c4d.Add(mem84838c4d) + + var csType_allocs *cgoAllocMap + ref84838c4d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs84838c4d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref84838c4d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs84838c4d.Borrow(cpNext_allocs) + + var cbindingCount_allocs *cgoAllocMap + ref84838c4d.bindingCount, cbindingCount_allocs = (C.uint32_t)(x.BindingCount), cgoAllocsUnknown + allocs84838c4d.Borrow(cbindingCount_allocs) + + var cpBindingFlags_allocs *cgoAllocMap + ref84838c4d.pBindingFlags, cpBindingFlags_allocs = (*C.VkDescriptorBindingFlags)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PBindingFlags)).Data)), cgoAllocsUnknown + allocs84838c4d.Borrow(cpBindingFlags_allocs) + + x.ref84838c4d = ref84838c4d + x.allocs84838c4d = allocs84838c4d + return ref84838c4d, allocs84838c4d + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorSetLayoutBindingFlagsCreateInfo) PassValue() (C.VkDescriptorSetLayoutBindingFlagsCreateInfo, *cgoAllocMap) { + if x.ref84838c4d != nil { + return *x.ref84838c4d, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorSetLayoutBindingFlagsCreateInfo) Deref() { + if x.ref84838c4d == nil { + return + } + x.SType = (StructureType)(x.ref84838c4d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref84838c4d.pNext)) + x.BindingCount = (uint32)(x.ref84838c4d.bindingCount) + hxf03a9a7 := (*sliceHeader)(unsafe.Pointer(&x.PBindingFlags)) + hxf03a9a7.Data = unsafe.Pointer(x.ref84838c4d.pBindingFlags) + hxf03a9a7.Cap = 0x7fffffff + // hxf03a9a7.Len = ? + +} + +// allocPhysicalDeviceDescriptorIndexingFeaturesMemory allocates memory for type C.VkPhysicalDeviceDescriptorIndexingFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceDescriptorIndexingFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDescriptorIndexingFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceDescriptorIndexingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorIndexingFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceDescriptorIndexingFeatures) Ref() *C.VkPhysicalDeviceDescriptorIndexingFeatures { + if x == nil { + return nil + } + return x.reff599863 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceDescriptorIndexingFeatures) Free() { + if x != nil && x.allocsf599863 != nil { + x.allocsf599863.(*cgoAllocMap).Free() + x.reff599863 = nil + } +} + +// NewPhysicalDeviceDescriptorIndexingFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceDescriptorIndexingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorIndexingFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceDescriptorIndexingFeatures) + obj.reff599863 = (*C.VkPhysicalDeviceDescriptorIndexingFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceDescriptorIndexingFeatures) PassRef() (*C.VkPhysicalDeviceDescriptorIndexingFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff599863 != nil { + return x.reff599863, nil + } + memf599863 := allocPhysicalDeviceDescriptorIndexingFeaturesMemory(1) + reff599863 := (*C.VkPhysicalDeviceDescriptorIndexingFeatures)(memf599863) + allocsf599863 := new(cgoAllocMap) + allocsf599863.Add(memf599863) + + var csType_allocs *cgoAllocMap + reff599863.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf599863.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff599863.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf599863.Borrow(cpNext_allocs) + + var cshaderInputAttachmentArrayDynamicIndexing_allocs *cgoAllocMap + reff599863.shaderInputAttachmentArrayDynamicIndexing, cshaderInputAttachmentArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderInputAttachmentArrayDynamicIndexing), cgoAllocsUnknown + allocsf599863.Borrow(cshaderInputAttachmentArrayDynamicIndexing_allocs) + + var cshaderUniformTexelBufferArrayDynamicIndexing_allocs *cgoAllocMap + reff599863.shaderUniformTexelBufferArrayDynamicIndexing, cshaderUniformTexelBufferArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderUniformTexelBufferArrayDynamicIndexing), cgoAllocsUnknown + allocsf599863.Borrow(cshaderUniformTexelBufferArrayDynamicIndexing_allocs) + + var cshaderStorageTexelBufferArrayDynamicIndexing_allocs *cgoAllocMap + reff599863.shaderStorageTexelBufferArrayDynamicIndexing, cshaderStorageTexelBufferArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderStorageTexelBufferArrayDynamicIndexing), cgoAllocsUnknown + allocsf599863.Borrow(cshaderStorageTexelBufferArrayDynamicIndexing_allocs) + + var cshaderUniformBufferArrayNonUniformIndexing_allocs *cgoAllocMap + reff599863.shaderUniformBufferArrayNonUniformIndexing, cshaderUniformBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderUniformBufferArrayNonUniformIndexing), cgoAllocsUnknown + allocsf599863.Borrow(cshaderUniformBufferArrayNonUniformIndexing_allocs) + + var cshaderSampledImageArrayNonUniformIndexing_allocs *cgoAllocMap + reff599863.shaderSampledImageArrayNonUniformIndexing, cshaderSampledImageArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderSampledImageArrayNonUniformIndexing), cgoAllocsUnknown + allocsf599863.Borrow(cshaderSampledImageArrayNonUniformIndexing_allocs) + + var cshaderStorageBufferArrayNonUniformIndexing_allocs *cgoAllocMap + reff599863.shaderStorageBufferArrayNonUniformIndexing, cshaderStorageBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageBufferArrayNonUniformIndexing), cgoAllocsUnknown + allocsf599863.Borrow(cshaderStorageBufferArrayNonUniformIndexing_allocs) + + var cshaderStorageImageArrayNonUniformIndexing_allocs *cgoAllocMap + reff599863.shaderStorageImageArrayNonUniformIndexing, cshaderStorageImageArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageImageArrayNonUniformIndexing), cgoAllocsUnknown + allocsf599863.Borrow(cshaderStorageImageArrayNonUniformIndexing_allocs) + + var cshaderInputAttachmentArrayNonUniformIndexing_allocs *cgoAllocMap + reff599863.shaderInputAttachmentArrayNonUniformIndexing, cshaderInputAttachmentArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderInputAttachmentArrayNonUniformIndexing), cgoAllocsUnknown + allocsf599863.Borrow(cshaderInputAttachmentArrayNonUniformIndexing_allocs) + + var cshaderUniformTexelBufferArrayNonUniformIndexing_allocs *cgoAllocMap + reff599863.shaderUniformTexelBufferArrayNonUniformIndexing, cshaderUniformTexelBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderUniformTexelBufferArrayNonUniformIndexing), cgoAllocsUnknown + allocsf599863.Borrow(cshaderUniformTexelBufferArrayNonUniformIndexing_allocs) + + var cshaderStorageTexelBufferArrayNonUniformIndexing_allocs *cgoAllocMap + reff599863.shaderStorageTexelBufferArrayNonUniformIndexing, cshaderStorageTexelBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageTexelBufferArrayNonUniformIndexing), cgoAllocsUnknown + allocsf599863.Borrow(cshaderStorageTexelBufferArrayNonUniformIndexing_allocs) + + var cdescriptorBindingUniformBufferUpdateAfterBind_allocs *cgoAllocMap + reff599863.descriptorBindingUniformBufferUpdateAfterBind, cdescriptorBindingUniformBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingUniformBufferUpdateAfterBind), cgoAllocsUnknown + allocsf599863.Borrow(cdescriptorBindingUniformBufferUpdateAfterBind_allocs) + + var cdescriptorBindingSampledImageUpdateAfterBind_allocs *cgoAllocMap + reff599863.descriptorBindingSampledImageUpdateAfterBind, cdescriptorBindingSampledImageUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingSampledImageUpdateAfterBind), cgoAllocsUnknown + allocsf599863.Borrow(cdescriptorBindingSampledImageUpdateAfterBind_allocs) + + var cdescriptorBindingStorageImageUpdateAfterBind_allocs *cgoAllocMap + reff599863.descriptorBindingStorageImageUpdateAfterBind, cdescriptorBindingStorageImageUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageImageUpdateAfterBind), cgoAllocsUnknown + allocsf599863.Borrow(cdescriptorBindingStorageImageUpdateAfterBind_allocs) + + var cdescriptorBindingStorageBufferUpdateAfterBind_allocs *cgoAllocMap + reff599863.descriptorBindingStorageBufferUpdateAfterBind, cdescriptorBindingStorageBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageBufferUpdateAfterBind), cgoAllocsUnknown + allocsf599863.Borrow(cdescriptorBindingStorageBufferUpdateAfterBind_allocs) + + var cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs *cgoAllocMap + reff599863.descriptorBindingUniformTexelBufferUpdateAfterBind, cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingUniformTexelBufferUpdateAfterBind), cgoAllocsUnknown + allocsf599863.Borrow(cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs) + + var cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs *cgoAllocMap + reff599863.descriptorBindingStorageTexelBufferUpdateAfterBind, cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageTexelBufferUpdateAfterBind), cgoAllocsUnknown + allocsf599863.Borrow(cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs) + + var cdescriptorBindingUpdateUnusedWhilePending_allocs *cgoAllocMap + reff599863.descriptorBindingUpdateUnusedWhilePending, cdescriptorBindingUpdateUnusedWhilePending_allocs = (C.VkBool32)(x.DescriptorBindingUpdateUnusedWhilePending), cgoAllocsUnknown + allocsf599863.Borrow(cdescriptorBindingUpdateUnusedWhilePending_allocs) + + var cdescriptorBindingPartiallyBound_allocs *cgoAllocMap + reff599863.descriptorBindingPartiallyBound, cdescriptorBindingPartiallyBound_allocs = (C.VkBool32)(x.DescriptorBindingPartiallyBound), cgoAllocsUnknown + allocsf599863.Borrow(cdescriptorBindingPartiallyBound_allocs) + + var cdescriptorBindingVariableDescriptorCount_allocs *cgoAllocMap + reff599863.descriptorBindingVariableDescriptorCount, cdescriptorBindingVariableDescriptorCount_allocs = (C.VkBool32)(x.DescriptorBindingVariableDescriptorCount), cgoAllocsUnknown + allocsf599863.Borrow(cdescriptorBindingVariableDescriptorCount_allocs) + + var cruntimeDescriptorArray_allocs *cgoAllocMap + reff599863.runtimeDescriptorArray, cruntimeDescriptorArray_allocs = (C.VkBool32)(x.RuntimeDescriptorArray), cgoAllocsUnknown + allocsf599863.Borrow(cruntimeDescriptorArray_allocs) + + x.reff599863 = reff599863 + x.allocsf599863 = allocsf599863 + return reff599863, allocsf599863 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceDescriptorIndexingFeatures) PassValue() (C.VkPhysicalDeviceDescriptorIndexingFeatures, *cgoAllocMap) { + if x.reff599863 != nil { + return *x.reff599863, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceDescriptorIndexingFeatures) Deref() { + if x.reff599863 == nil { + return + } + x.SType = (StructureType)(x.reff599863.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff599863.pNext)) + x.ShaderInputAttachmentArrayDynamicIndexing = (Bool32)(x.reff599863.shaderInputAttachmentArrayDynamicIndexing) + x.ShaderUniformTexelBufferArrayDynamicIndexing = (Bool32)(x.reff599863.shaderUniformTexelBufferArrayDynamicIndexing) + x.ShaderStorageTexelBufferArrayDynamicIndexing = (Bool32)(x.reff599863.shaderStorageTexelBufferArrayDynamicIndexing) + x.ShaderUniformBufferArrayNonUniformIndexing = (Bool32)(x.reff599863.shaderUniformBufferArrayNonUniformIndexing) + x.ShaderSampledImageArrayNonUniformIndexing = (Bool32)(x.reff599863.shaderSampledImageArrayNonUniformIndexing) + x.ShaderStorageBufferArrayNonUniformIndexing = (Bool32)(x.reff599863.shaderStorageBufferArrayNonUniformIndexing) + x.ShaderStorageImageArrayNonUniformIndexing = (Bool32)(x.reff599863.shaderStorageImageArrayNonUniformIndexing) + x.ShaderInputAttachmentArrayNonUniformIndexing = (Bool32)(x.reff599863.shaderInputAttachmentArrayNonUniformIndexing) + x.ShaderUniformTexelBufferArrayNonUniformIndexing = (Bool32)(x.reff599863.shaderUniformTexelBufferArrayNonUniformIndexing) + x.ShaderStorageTexelBufferArrayNonUniformIndexing = (Bool32)(x.reff599863.shaderStorageTexelBufferArrayNonUniformIndexing) + x.DescriptorBindingUniformBufferUpdateAfterBind = (Bool32)(x.reff599863.descriptorBindingUniformBufferUpdateAfterBind) + x.DescriptorBindingSampledImageUpdateAfterBind = (Bool32)(x.reff599863.descriptorBindingSampledImageUpdateAfterBind) + x.DescriptorBindingStorageImageUpdateAfterBind = (Bool32)(x.reff599863.descriptorBindingStorageImageUpdateAfterBind) + x.DescriptorBindingStorageBufferUpdateAfterBind = (Bool32)(x.reff599863.descriptorBindingStorageBufferUpdateAfterBind) + x.DescriptorBindingUniformTexelBufferUpdateAfterBind = (Bool32)(x.reff599863.descriptorBindingUniformTexelBufferUpdateAfterBind) + x.DescriptorBindingStorageTexelBufferUpdateAfterBind = (Bool32)(x.reff599863.descriptorBindingStorageTexelBufferUpdateAfterBind) + x.DescriptorBindingUpdateUnusedWhilePending = (Bool32)(x.reff599863.descriptorBindingUpdateUnusedWhilePending) + x.DescriptorBindingPartiallyBound = (Bool32)(x.reff599863.descriptorBindingPartiallyBound) + x.DescriptorBindingVariableDescriptorCount = (Bool32)(x.reff599863.descriptorBindingVariableDescriptorCount) + x.RuntimeDescriptorArray = (Bool32)(x.reff599863.runtimeDescriptorArray) +} + +// allocPhysicalDeviceDescriptorIndexingPropertiesMemory allocates memory for type C.VkPhysicalDeviceDescriptorIndexingProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceDescriptorIndexingPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDescriptorIndexingPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceDescriptorIndexingPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorIndexingProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceDescriptorIndexingProperties) Ref() *C.VkPhysicalDeviceDescriptorIndexingProperties { + if x == nil { + return nil + } + return x.refd94d7d21 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceDescriptorIndexingProperties) Free() { + if x != nil && x.allocsd94d7d21 != nil { + x.allocsd94d7d21.(*cgoAllocMap).Free() + x.refd94d7d21 = nil + } +} + +// NewPhysicalDeviceDescriptorIndexingPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceDescriptorIndexingPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorIndexingProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceDescriptorIndexingProperties) + obj.refd94d7d21 = (*C.VkPhysicalDeviceDescriptorIndexingProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceDescriptorIndexingProperties) PassRef() (*C.VkPhysicalDeviceDescriptorIndexingProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd94d7d21 != nil { + return x.refd94d7d21, nil + } + memd94d7d21 := allocPhysicalDeviceDescriptorIndexingPropertiesMemory(1) + refd94d7d21 := (*C.VkPhysicalDeviceDescriptorIndexingProperties)(memd94d7d21) + allocsd94d7d21 := new(cgoAllocMap) + allocsd94d7d21.Add(memd94d7d21) + + var csType_allocs *cgoAllocMap + refd94d7d21.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd94d7d21.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refd94d7d21.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd94d7d21.Borrow(cpNext_allocs) + + var cmaxUpdateAfterBindDescriptorsInAllPools_allocs *cgoAllocMap + refd94d7d21.maxUpdateAfterBindDescriptorsInAllPools, cmaxUpdateAfterBindDescriptorsInAllPools_allocs = (C.uint32_t)(x.MaxUpdateAfterBindDescriptorsInAllPools), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxUpdateAfterBindDescriptorsInAllPools_allocs) + + var cshaderUniformBufferArrayNonUniformIndexingNative_allocs *cgoAllocMap + refd94d7d21.shaderUniformBufferArrayNonUniformIndexingNative, cshaderUniformBufferArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderUniformBufferArrayNonUniformIndexingNative), cgoAllocsUnknown + allocsd94d7d21.Borrow(cshaderUniformBufferArrayNonUniformIndexingNative_allocs) + + var cshaderSampledImageArrayNonUniformIndexingNative_allocs *cgoAllocMap + refd94d7d21.shaderSampledImageArrayNonUniformIndexingNative, cshaderSampledImageArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderSampledImageArrayNonUniformIndexingNative), cgoAllocsUnknown + allocsd94d7d21.Borrow(cshaderSampledImageArrayNonUniformIndexingNative_allocs) + + var cshaderStorageBufferArrayNonUniformIndexingNative_allocs *cgoAllocMap + refd94d7d21.shaderStorageBufferArrayNonUniformIndexingNative, cshaderStorageBufferArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderStorageBufferArrayNonUniformIndexingNative), cgoAllocsUnknown + allocsd94d7d21.Borrow(cshaderStorageBufferArrayNonUniformIndexingNative_allocs) + + var cshaderStorageImageArrayNonUniformIndexingNative_allocs *cgoAllocMap + refd94d7d21.shaderStorageImageArrayNonUniformIndexingNative, cshaderStorageImageArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderStorageImageArrayNonUniformIndexingNative), cgoAllocsUnknown + allocsd94d7d21.Borrow(cshaderStorageImageArrayNonUniformIndexingNative_allocs) + + var cshaderInputAttachmentArrayNonUniformIndexingNative_allocs *cgoAllocMap + refd94d7d21.shaderInputAttachmentArrayNonUniformIndexingNative, cshaderInputAttachmentArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderInputAttachmentArrayNonUniformIndexingNative), cgoAllocsUnknown + allocsd94d7d21.Borrow(cshaderInputAttachmentArrayNonUniformIndexingNative_allocs) + + var crobustBufferAccessUpdateAfterBind_allocs *cgoAllocMap + refd94d7d21.robustBufferAccessUpdateAfterBind, crobustBufferAccessUpdateAfterBind_allocs = (C.VkBool32)(x.RobustBufferAccessUpdateAfterBind), cgoAllocsUnknown + allocsd94d7d21.Borrow(crobustBufferAccessUpdateAfterBind_allocs) + + var cquadDivergentImplicitLod_allocs *cgoAllocMap + refd94d7d21.quadDivergentImplicitLod, cquadDivergentImplicitLod_allocs = (C.VkBool32)(x.QuadDivergentImplicitLod), cgoAllocsUnknown + allocsd94d7d21.Borrow(cquadDivergentImplicitLod_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs *cgoAllocMap + refd94d7d21.maxPerStageDescriptorUpdateAfterBindSamplers, cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindSamplers), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs *cgoAllocMap + refd94d7d21.maxPerStageDescriptorUpdateAfterBindUniformBuffers, cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindUniformBuffers), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs *cgoAllocMap + refd94d7d21.maxPerStageDescriptorUpdateAfterBindStorageBuffers, cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindStorageBuffers), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindSampledImages_allocs *cgoAllocMap + refd94d7d21.maxPerStageDescriptorUpdateAfterBindSampledImages, cmaxPerStageDescriptorUpdateAfterBindSampledImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindSampledImages), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxPerStageDescriptorUpdateAfterBindSampledImages_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindStorageImages_allocs *cgoAllocMap + refd94d7d21.maxPerStageDescriptorUpdateAfterBindStorageImages, cmaxPerStageDescriptorUpdateAfterBindStorageImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindStorageImages), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxPerStageDescriptorUpdateAfterBindStorageImages_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs *cgoAllocMap + refd94d7d21.maxPerStageDescriptorUpdateAfterBindInputAttachments, cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindInputAttachments), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs) + + var cmaxPerStageUpdateAfterBindResources_allocs *cgoAllocMap + refd94d7d21.maxPerStageUpdateAfterBindResources, cmaxPerStageUpdateAfterBindResources_allocs = (C.uint32_t)(x.MaxPerStageUpdateAfterBindResources), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxPerStageUpdateAfterBindResources_allocs) + + var cmaxDescriptorSetUpdateAfterBindSamplers_allocs *cgoAllocMap + refd94d7d21.maxDescriptorSetUpdateAfterBindSamplers, cmaxDescriptorSetUpdateAfterBindSamplers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindSamplers), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxDescriptorSetUpdateAfterBindSamplers_allocs) + + var cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs *cgoAllocMap + refd94d7d21.maxDescriptorSetUpdateAfterBindUniformBuffers, cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindUniformBuffers), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs) + + var cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs *cgoAllocMap + refd94d7d21.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs) + + var cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs *cgoAllocMap + refd94d7d21.maxDescriptorSetUpdateAfterBindStorageBuffers, cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageBuffers), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs) + + var cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs *cgoAllocMap + refd94d7d21.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs) + + var cmaxDescriptorSetUpdateAfterBindSampledImages_allocs *cgoAllocMap + refd94d7d21.maxDescriptorSetUpdateAfterBindSampledImages, cmaxDescriptorSetUpdateAfterBindSampledImages_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindSampledImages), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxDescriptorSetUpdateAfterBindSampledImages_allocs) + + var cmaxDescriptorSetUpdateAfterBindStorageImages_allocs *cgoAllocMap + refd94d7d21.maxDescriptorSetUpdateAfterBindStorageImages, cmaxDescriptorSetUpdateAfterBindStorageImages_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageImages), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxDescriptorSetUpdateAfterBindStorageImages_allocs) + + var cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs *cgoAllocMap + refd94d7d21.maxDescriptorSetUpdateAfterBindInputAttachments, cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindInputAttachments), cgoAllocsUnknown + allocsd94d7d21.Borrow(cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs) + + x.refd94d7d21 = refd94d7d21 + x.allocsd94d7d21 = allocsd94d7d21 + return refd94d7d21, allocsd94d7d21 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceDescriptorIndexingProperties) PassValue() (C.VkPhysicalDeviceDescriptorIndexingProperties, *cgoAllocMap) { + if x.refd94d7d21 != nil { + return *x.refd94d7d21, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceDescriptorIndexingProperties) Deref() { + if x.refd94d7d21 == nil { + return + } + x.SType = (StructureType)(x.refd94d7d21.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd94d7d21.pNext)) + x.MaxUpdateAfterBindDescriptorsInAllPools = (uint32)(x.refd94d7d21.maxUpdateAfterBindDescriptorsInAllPools) + x.ShaderUniformBufferArrayNonUniformIndexingNative = (Bool32)(x.refd94d7d21.shaderUniformBufferArrayNonUniformIndexingNative) + x.ShaderSampledImageArrayNonUniformIndexingNative = (Bool32)(x.refd94d7d21.shaderSampledImageArrayNonUniformIndexingNative) + x.ShaderStorageBufferArrayNonUniformIndexingNative = (Bool32)(x.refd94d7d21.shaderStorageBufferArrayNonUniformIndexingNative) + x.ShaderStorageImageArrayNonUniformIndexingNative = (Bool32)(x.refd94d7d21.shaderStorageImageArrayNonUniformIndexingNative) + x.ShaderInputAttachmentArrayNonUniformIndexingNative = (Bool32)(x.refd94d7d21.shaderInputAttachmentArrayNonUniformIndexingNative) + x.RobustBufferAccessUpdateAfterBind = (Bool32)(x.refd94d7d21.robustBufferAccessUpdateAfterBind) + x.QuadDivergentImplicitLod = (Bool32)(x.refd94d7d21.quadDivergentImplicitLod) + x.MaxPerStageDescriptorUpdateAfterBindSamplers = (uint32)(x.refd94d7d21.maxPerStageDescriptorUpdateAfterBindSamplers) + x.MaxPerStageDescriptorUpdateAfterBindUniformBuffers = (uint32)(x.refd94d7d21.maxPerStageDescriptorUpdateAfterBindUniformBuffers) + x.MaxPerStageDescriptorUpdateAfterBindStorageBuffers = (uint32)(x.refd94d7d21.maxPerStageDescriptorUpdateAfterBindStorageBuffers) + x.MaxPerStageDescriptorUpdateAfterBindSampledImages = (uint32)(x.refd94d7d21.maxPerStageDescriptorUpdateAfterBindSampledImages) + x.MaxPerStageDescriptorUpdateAfterBindStorageImages = (uint32)(x.refd94d7d21.maxPerStageDescriptorUpdateAfterBindStorageImages) + x.MaxPerStageDescriptorUpdateAfterBindInputAttachments = (uint32)(x.refd94d7d21.maxPerStageDescriptorUpdateAfterBindInputAttachments) + x.MaxPerStageUpdateAfterBindResources = (uint32)(x.refd94d7d21.maxPerStageUpdateAfterBindResources) + x.MaxDescriptorSetUpdateAfterBindSamplers = (uint32)(x.refd94d7d21.maxDescriptorSetUpdateAfterBindSamplers) + x.MaxDescriptorSetUpdateAfterBindUniformBuffers = (uint32)(x.refd94d7d21.maxDescriptorSetUpdateAfterBindUniformBuffers) + x.MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = (uint32)(x.refd94d7d21.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic) + x.MaxDescriptorSetUpdateAfterBindStorageBuffers = (uint32)(x.refd94d7d21.maxDescriptorSetUpdateAfterBindStorageBuffers) + x.MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = (uint32)(x.refd94d7d21.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic) + x.MaxDescriptorSetUpdateAfterBindSampledImages = (uint32)(x.refd94d7d21.maxDescriptorSetUpdateAfterBindSampledImages) + x.MaxDescriptorSetUpdateAfterBindStorageImages = (uint32)(x.refd94d7d21.maxDescriptorSetUpdateAfterBindStorageImages) + x.MaxDescriptorSetUpdateAfterBindInputAttachments = (uint32)(x.refd94d7d21.maxDescriptorSetUpdateAfterBindInputAttachments) +} + +// allocDescriptorSetVariableDescriptorCountAllocateInfoMemory allocates memory for type C.VkDescriptorSetVariableDescriptorCountAllocateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorSetVariableDescriptorCountAllocateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetVariableDescriptorCountAllocateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorSetVariableDescriptorCountAllocateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetVariableDescriptorCountAllocateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorSetVariableDescriptorCountAllocateInfo) Ref() *C.VkDescriptorSetVariableDescriptorCountAllocateInfo { + if x == nil { + return nil + } + return x.ref7969c9a7 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorSetVariableDescriptorCountAllocateInfo) Free() { + if x != nil && x.allocs7969c9a7 != nil { + x.allocs7969c9a7.(*cgoAllocMap).Free() + x.ref7969c9a7 = nil + } +} + +// NewDescriptorSetVariableDescriptorCountAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorSetVariableDescriptorCountAllocateInfoRef(ref unsafe.Pointer) *DescriptorSetVariableDescriptorCountAllocateInfo { + if ref == nil { + return nil + } + obj := new(DescriptorSetVariableDescriptorCountAllocateInfo) + obj.ref7969c9a7 = (*C.VkDescriptorSetVariableDescriptorCountAllocateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorSetVariableDescriptorCountAllocateInfo) PassRef() (*C.VkDescriptorSetVariableDescriptorCountAllocateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref7969c9a7 != nil { + return x.ref7969c9a7, nil + } + mem7969c9a7 := allocDescriptorSetVariableDescriptorCountAllocateInfoMemory(1) + ref7969c9a7 := (*C.VkDescriptorSetVariableDescriptorCountAllocateInfo)(mem7969c9a7) + allocs7969c9a7 := new(cgoAllocMap) + allocs7969c9a7.Add(mem7969c9a7) + + var csType_allocs *cgoAllocMap + ref7969c9a7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7969c9a7.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref7969c9a7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7969c9a7.Borrow(cpNext_allocs) + + var cdescriptorSetCount_allocs *cgoAllocMap + ref7969c9a7.descriptorSetCount, cdescriptorSetCount_allocs = (C.uint32_t)(x.DescriptorSetCount), cgoAllocsUnknown + allocs7969c9a7.Borrow(cdescriptorSetCount_allocs) + + var cpDescriptorCounts_allocs *cgoAllocMap + ref7969c9a7.pDescriptorCounts, cpDescriptorCounts_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDescriptorCounts)).Data)), cgoAllocsUnknown + allocs7969c9a7.Borrow(cpDescriptorCounts_allocs) + + x.ref7969c9a7 = ref7969c9a7 + x.allocs7969c9a7 = allocs7969c9a7 + return ref7969c9a7, allocs7969c9a7 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorSetVariableDescriptorCountAllocateInfo) PassValue() (C.VkDescriptorSetVariableDescriptorCountAllocateInfo, *cgoAllocMap) { + if x.ref7969c9a7 != nil { + return *x.ref7969c9a7, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorSetVariableDescriptorCountAllocateInfo) Deref() { + if x.ref7969c9a7 == nil { + return + } + x.SType = (StructureType)(x.ref7969c9a7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7969c9a7.pNext)) + x.DescriptorSetCount = (uint32)(x.ref7969c9a7.descriptorSetCount) + hxff24242 := (*sliceHeader)(unsafe.Pointer(&x.PDescriptorCounts)) + hxff24242.Data = unsafe.Pointer(x.ref7969c9a7.pDescriptorCounts) + hxff24242.Cap = 0x7fffffff + // hxff24242.Len = ? + +} + +// allocDescriptorSetVariableDescriptorCountLayoutSupportMemory allocates memory for type C.VkDescriptorSetVariableDescriptorCountLayoutSupport in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorSetVariableDescriptorCountLayoutSupportMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetVariableDescriptorCountLayoutSupportValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorSetVariableDescriptorCountLayoutSupportValue = unsafe.Sizeof([1]C.VkDescriptorSetVariableDescriptorCountLayoutSupport{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorSetVariableDescriptorCountLayoutSupport) Ref() *C.VkDescriptorSetVariableDescriptorCountLayoutSupport { + if x == nil { + return nil + } + return x.refc584a0c6 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorSetVariableDescriptorCountLayoutSupport) Free() { + if x != nil && x.allocsc584a0c6 != nil { + x.allocsc584a0c6.(*cgoAllocMap).Free() + x.refc584a0c6 = nil + } +} + +// NewDescriptorSetVariableDescriptorCountLayoutSupportRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorSetVariableDescriptorCountLayoutSupportRef(ref unsafe.Pointer) *DescriptorSetVariableDescriptorCountLayoutSupport { + if ref == nil { + return nil + } + obj := new(DescriptorSetVariableDescriptorCountLayoutSupport) + obj.refc584a0c6 = (*C.VkDescriptorSetVariableDescriptorCountLayoutSupport)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorSetVariableDescriptorCountLayoutSupport) PassRef() (*C.VkDescriptorSetVariableDescriptorCountLayoutSupport, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc584a0c6 != nil { + return x.refc584a0c6, nil + } + memc584a0c6 := allocDescriptorSetVariableDescriptorCountLayoutSupportMemory(1) + refc584a0c6 := (*C.VkDescriptorSetVariableDescriptorCountLayoutSupport)(memc584a0c6) + allocsc584a0c6 := new(cgoAllocMap) + allocsc584a0c6.Add(memc584a0c6) + + var csType_allocs *cgoAllocMap + refc584a0c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc584a0c6.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc584a0c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc584a0c6.Borrow(cpNext_allocs) + + var cmaxVariableDescriptorCount_allocs *cgoAllocMap + refc584a0c6.maxVariableDescriptorCount, cmaxVariableDescriptorCount_allocs = (C.uint32_t)(x.MaxVariableDescriptorCount), cgoAllocsUnknown + allocsc584a0c6.Borrow(cmaxVariableDescriptorCount_allocs) + + x.refc584a0c6 = refc584a0c6 + x.allocsc584a0c6 = allocsc584a0c6 + return refc584a0c6, allocsc584a0c6 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorSetVariableDescriptorCountLayoutSupport) PassValue() (C.VkDescriptorSetVariableDescriptorCountLayoutSupport, *cgoAllocMap) { + if x.refc584a0c6 != nil { + return *x.refc584a0c6, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorSetVariableDescriptorCountLayoutSupport) Deref() { + if x.refc584a0c6 == nil { + return + } + x.SType = (StructureType)(x.refc584a0c6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc584a0c6.pNext)) + x.MaxVariableDescriptorCount = (uint32)(x.refc584a0c6.maxVariableDescriptorCount) +} + +// allocSubpassDescriptionDepthStencilResolveMemory allocates memory for type C.VkSubpassDescriptionDepthStencilResolve in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSubpassDescriptionDepthStencilResolveMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassDescriptionDepthStencilResolveValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSubpassDescriptionDepthStencilResolveValue = unsafe.Sizeof([1]C.VkSubpassDescriptionDepthStencilResolve{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SubpassDescriptionDepthStencilResolve) Ref() *C.VkSubpassDescriptionDepthStencilResolve { + if x == nil { + return nil + } + return x.refc46545a8 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SubpassDescriptionDepthStencilResolve) Free() { + if x != nil && x.allocsc46545a8 != nil { + x.allocsc46545a8.(*cgoAllocMap).Free() + x.refc46545a8 = nil + } +} + +// NewSubpassDescriptionDepthStencilResolveRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSubpassDescriptionDepthStencilResolveRef(ref unsafe.Pointer) *SubpassDescriptionDepthStencilResolve { + if ref == nil { + return nil + } + obj := new(SubpassDescriptionDepthStencilResolve) + obj.refc46545a8 = (*C.VkSubpassDescriptionDepthStencilResolve)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SubpassDescriptionDepthStencilResolve) PassRef() (*C.VkSubpassDescriptionDepthStencilResolve, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc46545a8 != nil { + return x.refc46545a8, nil + } + memc46545a8 := allocSubpassDescriptionDepthStencilResolveMemory(1) + refc46545a8 := (*C.VkSubpassDescriptionDepthStencilResolve)(memc46545a8) + allocsc46545a8 := new(cgoAllocMap) + allocsc46545a8.Add(memc46545a8) + + var csType_allocs *cgoAllocMap + refc46545a8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc46545a8.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc46545a8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc46545a8.Borrow(cpNext_allocs) + + var cdepthResolveMode_allocs *cgoAllocMap + refc46545a8.depthResolveMode, cdepthResolveMode_allocs = (C.VkResolveModeFlagBits)(x.DepthResolveMode), cgoAllocsUnknown + allocsc46545a8.Borrow(cdepthResolveMode_allocs) + + var cstencilResolveMode_allocs *cgoAllocMap + refc46545a8.stencilResolveMode, cstencilResolveMode_allocs = (C.VkResolveModeFlagBits)(x.StencilResolveMode), cgoAllocsUnknown + allocsc46545a8.Borrow(cstencilResolveMode_allocs) + + var cpDepthStencilResolveAttachment_allocs *cgoAllocMap + refc46545a8.pDepthStencilResolveAttachment, cpDepthStencilResolveAttachment_allocs = unpackSAttachmentReference2(x.PDepthStencilResolveAttachment) + allocsc46545a8.Borrow(cpDepthStencilResolveAttachment_allocs) + + x.refc46545a8 = refc46545a8 + x.allocsc46545a8 = allocsc46545a8 + return refc46545a8, allocsc46545a8 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SubpassDescriptionDepthStencilResolve) PassValue() (C.VkSubpassDescriptionDepthStencilResolve, *cgoAllocMap) { + if x.refc46545a8 != nil { + return *x.refc46545a8, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SubpassDescriptionDepthStencilResolve) Deref() { + if x.refc46545a8 == nil { + return + } + x.SType = (StructureType)(x.refc46545a8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc46545a8.pNext)) + x.DepthResolveMode = (ResolveModeFlagBits)(x.refc46545a8.depthResolveMode) + x.StencilResolveMode = (ResolveModeFlagBits)(x.refc46545a8.stencilResolveMode) + packSAttachmentReference2(x.PDepthStencilResolveAttachment, x.refc46545a8.pDepthStencilResolveAttachment) +} + +// allocPhysicalDeviceDepthStencilResolvePropertiesMemory allocates memory for type C.VkPhysicalDeviceDepthStencilResolveProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceDepthStencilResolvePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDepthStencilResolvePropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceDepthStencilResolvePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDepthStencilResolveProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceDepthStencilResolveProperties) Ref() *C.VkPhysicalDeviceDepthStencilResolveProperties { + if x == nil { + return nil + } + return x.refc9f61da9 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceDepthStencilResolveProperties) Free() { + if x != nil && x.allocsc9f61da9 != nil { + x.allocsc9f61da9.(*cgoAllocMap).Free() + x.refc9f61da9 = nil + } +} + +// NewPhysicalDeviceDepthStencilResolvePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceDepthStencilResolvePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDepthStencilResolveProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceDepthStencilResolveProperties) + obj.refc9f61da9 = (*C.VkPhysicalDeviceDepthStencilResolveProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceDepthStencilResolveProperties) PassRef() (*C.VkPhysicalDeviceDepthStencilResolveProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc9f61da9 != nil { + return x.refc9f61da9, nil + } + memc9f61da9 := allocPhysicalDeviceDepthStencilResolvePropertiesMemory(1) + refc9f61da9 := (*C.VkPhysicalDeviceDepthStencilResolveProperties)(memc9f61da9) + allocsc9f61da9 := new(cgoAllocMap) + allocsc9f61da9.Add(memc9f61da9) + + var csType_allocs *cgoAllocMap + refc9f61da9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc9f61da9.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc9f61da9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc9f61da9.Borrow(cpNext_allocs) + + var csupportedDepthResolveModes_allocs *cgoAllocMap + refc9f61da9.supportedDepthResolveModes, csupportedDepthResolveModes_allocs = (C.VkResolveModeFlags)(x.SupportedDepthResolveModes), cgoAllocsUnknown + allocsc9f61da9.Borrow(csupportedDepthResolveModes_allocs) + + var csupportedStencilResolveModes_allocs *cgoAllocMap + refc9f61da9.supportedStencilResolveModes, csupportedStencilResolveModes_allocs = (C.VkResolveModeFlags)(x.SupportedStencilResolveModes), cgoAllocsUnknown + allocsc9f61da9.Borrow(csupportedStencilResolveModes_allocs) + + var cindependentResolveNone_allocs *cgoAllocMap + refc9f61da9.independentResolveNone, cindependentResolveNone_allocs = (C.VkBool32)(x.IndependentResolveNone), cgoAllocsUnknown + allocsc9f61da9.Borrow(cindependentResolveNone_allocs) + + var cindependentResolve_allocs *cgoAllocMap + refc9f61da9.independentResolve, cindependentResolve_allocs = (C.VkBool32)(x.IndependentResolve), cgoAllocsUnknown + allocsc9f61da9.Borrow(cindependentResolve_allocs) + + x.refc9f61da9 = refc9f61da9 + x.allocsc9f61da9 = allocsc9f61da9 + return refc9f61da9, allocsc9f61da9 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceDepthStencilResolveProperties) PassValue() (C.VkPhysicalDeviceDepthStencilResolveProperties, *cgoAllocMap) { + if x.refc9f61da9 != nil { + return *x.refc9f61da9, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceDepthStencilResolveProperties) Deref() { + if x.refc9f61da9 == nil { + return + } + x.SType = (StructureType)(x.refc9f61da9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc9f61da9.pNext)) + x.SupportedDepthResolveModes = (ResolveModeFlags)(x.refc9f61da9.supportedDepthResolveModes) + x.SupportedStencilResolveModes = (ResolveModeFlags)(x.refc9f61da9.supportedStencilResolveModes) + x.IndependentResolveNone = (Bool32)(x.refc9f61da9.independentResolveNone) + x.IndependentResolve = (Bool32)(x.refc9f61da9.independentResolve) +} + +// allocPhysicalDeviceScalarBlockLayoutFeaturesMemory allocates memory for type C.VkPhysicalDeviceScalarBlockLayoutFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceScalarBlockLayoutFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceScalarBlockLayoutFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceScalarBlockLayoutFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceScalarBlockLayoutFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceScalarBlockLayoutFeatures) Ref() *C.VkPhysicalDeviceScalarBlockLayoutFeatures { + if x == nil { + return nil + } + return x.refbdf75616 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceScalarBlockLayoutFeatures) Free() { + if x != nil && x.allocsbdf75616 != nil { + x.allocsbdf75616.(*cgoAllocMap).Free() + x.refbdf75616 = nil + } +} + +// NewPhysicalDeviceScalarBlockLayoutFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceScalarBlockLayoutFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceScalarBlockLayoutFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceScalarBlockLayoutFeatures) + obj.refbdf75616 = (*C.VkPhysicalDeviceScalarBlockLayoutFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceScalarBlockLayoutFeatures) PassRef() (*C.VkPhysicalDeviceScalarBlockLayoutFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refbdf75616 != nil { + return x.refbdf75616, nil + } + membdf75616 := allocPhysicalDeviceScalarBlockLayoutFeaturesMemory(1) + refbdf75616 := (*C.VkPhysicalDeviceScalarBlockLayoutFeatures)(membdf75616) + allocsbdf75616 := new(cgoAllocMap) + allocsbdf75616.Add(membdf75616) + + var csType_allocs *cgoAllocMap + refbdf75616.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbdf75616.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refbdf75616.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbdf75616.Borrow(cpNext_allocs) + + var cscalarBlockLayout_allocs *cgoAllocMap + refbdf75616.scalarBlockLayout, cscalarBlockLayout_allocs = (C.VkBool32)(x.ScalarBlockLayout), cgoAllocsUnknown + allocsbdf75616.Borrow(cscalarBlockLayout_allocs) + + x.refbdf75616 = refbdf75616 + x.allocsbdf75616 = allocsbdf75616 + return refbdf75616, allocsbdf75616 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceScalarBlockLayoutFeatures) PassValue() (C.VkPhysicalDeviceScalarBlockLayoutFeatures, *cgoAllocMap) { + if x.refbdf75616 != nil { + return *x.refbdf75616, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceScalarBlockLayoutFeatures) Deref() { + if x.refbdf75616 == nil { + return + } + x.SType = (StructureType)(x.refbdf75616.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbdf75616.pNext)) + x.ScalarBlockLayout = (Bool32)(x.refbdf75616.scalarBlockLayout) +} + +// allocImageStencilUsageCreateInfoMemory allocates memory for type C.VkImageStencilUsageCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageStencilUsageCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageStencilUsageCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageStencilUsageCreateInfoValue = unsafe.Sizeof([1]C.VkImageStencilUsageCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageStencilUsageCreateInfo) Ref() *C.VkImageStencilUsageCreateInfo { + if x == nil { + return nil + } + return x.ref32229fd9 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageStencilUsageCreateInfo) Free() { + if x != nil && x.allocs32229fd9 != nil { + x.allocs32229fd9.(*cgoAllocMap).Free() + x.ref32229fd9 = nil + } +} + +// NewImageStencilUsageCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageStencilUsageCreateInfoRef(ref unsafe.Pointer) *ImageStencilUsageCreateInfo { + if ref == nil { + return nil + } + obj := new(ImageStencilUsageCreateInfo) + obj.ref32229fd9 = (*C.VkImageStencilUsageCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageStencilUsageCreateInfo) PassRef() (*C.VkImageStencilUsageCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref32229fd9 != nil { + return x.ref32229fd9, nil + } + mem32229fd9 := allocImageStencilUsageCreateInfoMemory(1) + ref32229fd9 := (*C.VkImageStencilUsageCreateInfo)(mem32229fd9) + allocs32229fd9 := new(cgoAllocMap) + allocs32229fd9.Add(mem32229fd9) + + var csType_allocs *cgoAllocMap + ref32229fd9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs32229fd9.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref32229fd9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs32229fd9.Borrow(cpNext_allocs) + + var cstencilUsage_allocs *cgoAllocMap + ref32229fd9.stencilUsage, cstencilUsage_allocs = (C.VkImageUsageFlags)(x.StencilUsage), cgoAllocsUnknown + allocs32229fd9.Borrow(cstencilUsage_allocs) + + x.ref32229fd9 = ref32229fd9 + x.allocs32229fd9 = allocs32229fd9 + return ref32229fd9, allocs32229fd9 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageStencilUsageCreateInfo) PassValue() (C.VkImageStencilUsageCreateInfo, *cgoAllocMap) { + if x.ref32229fd9 != nil { + return *x.ref32229fd9, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageStencilUsageCreateInfo) Deref() { + if x.ref32229fd9 == nil { + return + } + x.SType = (StructureType)(x.ref32229fd9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref32229fd9.pNext)) + x.StencilUsage = (ImageUsageFlags)(x.ref32229fd9.stencilUsage) +} + +// allocSamplerReductionModeCreateInfoMemory allocates memory for type C.VkSamplerReductionModeCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSamplerReductionModeCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerReductionModeCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSamplerReductionModeCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerReductionModeCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SamplerReductionModeCreateInfo) Ref() *C.VkSamplerReductionModeCreateInfo { + if x == nil { + return nil + } + return x.ref801424d0 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SamplerReductionModeCreateInfo) Free() { + if x != nil && x.allocs801424d0 != nil { + x.allocs801424d0.(*cgoAllocMap).Free() + x.ref801424d0 = nil + } +} + +// NewSamplerReductionModeCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSamplerReductionModeCreateInfoRef(ref unsafe.Pointer) *SamplerReductionModeCreateInfo { + if ref == nil { + return nil + } + obj := new(SamplerReductionModeCreateInfo) + obj.ref801424d0 = (*C.VkSamplerReductionModeCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SamplerReductionModeCreateInfo) PassRef() (*C.VkSamplerReductionModeCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref801424d0 != nil { + return x.ref801424d0, nil + } + mem801424d0 := allocSamplerReductionModeCreateInfoMemory(1) + ref801424d0 := (*C.VkSamplerReductionModeCreateInfo)(mem801424d0) + allocs801424d0 := new(cgoAllocMap) + allocs801424d0.Add(mem801424d0) + + var csType_allocs *cgoAllocMap + ref801424d0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs801424d0.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref801424d0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs801424d0.Borrow(cpNext_allocs) + + var creductionMode_allocs *cgoAllocMap + ref801424d0.reductionMode, creductionMode_allocs = (C.VkSamplerReductionMode)(x.ReductionMode), cgoAllocsUnknown + allocs801424d0.Borrow(creductionMode_allocs) + + x.ref801424d0 = ref801424d0 + x.allocs801424d0 = allocs801424d0 + return ref801424d0, allocs801424d0 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SamplerReductionModeCreateInfo) PassValue() (C.VkSamplerReductionModeCreateInfo, *cgoAllocMap) { + if x.ref801424d0 != nil { + return *x.ref801424d0, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SamplerReductionModeCreateInfo) Deref() { + if x.ref801424d0 == nil { + return + } + x.SType = (StructureType)(x.ref801424d0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref801424d0.pNext)) + x.ReductionMode = (SamplerReductionMode)(x.ref801424d0.reductionMode) +} + +// allocPhysicalDeviceSamplerFilterMinmaxPropertiesMemory allocates memory for type C.VkPhysicalDeviceSamplerFilterMinmaxProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceSamplerFilterMinmaxPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSamplerFilterMinmaxPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceSamplerFilterMinmaxPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSamplerFilterMinmaxProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceSamplerFilterMinmaxProperties) Ref() *C.VkPhysicalDeviceSamplerFilterMinmaxProperties { + if x == nil { + return nil + } + return x.ref69bbe609 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceSamplerFilterMinmaxProperties) Free() { + if x != nil && x.allocs69bbe609 != nil { + x.allocs69bbe609.(*cgoAllocMap).Free() + x.ref69bbe609 = nil + } +} + +// NewPhysicalDeviceSamplerFilterMinmaxPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceSamplerFilterMinmaxPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSamplerFilterMinmaxProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceSamplerFilterMinmaxProperties) + obj.ref69bbe609 = (*C.VkPhysicalDeviceSamplerFilterMinmaxProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceSamplerFilterMinmaxProperties) PassRef() (*C.VkPhysicalDeviceSamplerFilterMinmaxProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref69bbe609 != nil { + return x.ref69bbe609, nil + } + mem69bbe609 := allocPhysicalDeviceSamplerFilterMinmaxPropertiesMemory(1) + ref69bbe609 := (*C.VkPhysicalDeviceSamplerFilterMinmaxProperties)(mem69bbe609) + allocs69bbe609 := new(cgoAllocMap) + allocs69bbe609.Add(mem69bbe609) + + var csType_allocs *cgoAllocMap + ref69bbe609.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs69bbe609.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref69bbe609.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs69bbe609.Borrow(cpNext_allocs) + + var cfilterMinmaxSingleComponentFormats_allocs *cgoAllocMap + ref69bbe609.filterMinmaxSingleComponentFormats, cfilterMinmaxSingleComponentFormats_allocs = (C.VkBool32)(x.FilterMinmaxSingleComponentFormats), cgoAllocsUnknown + allocs69bbe609.Borrow(cfilterMinmaxSingleComponentFormats_allocs) + + var cfilterMinmaxImageComponentMapping_allocs *cgoAllocMap + ref69bbe609.filterMinmaxImageComponentMapping, cfilterMinmaxImageComponentMapping_allocs = (C.VkBool32)(x.FilterMinmaxImageComponentMapping), cgoAllocsUnknown + allocs69bbe609.Borrow(cfilterMinmaxImageComponentMapping_allocs) + + x.ref69bbe609 = ref69bbe609 + x.allocs69bbe609 = allocs69bbe609 + return ref69bbe609, allocs69bbe609 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceSamplerFilterMinmaxProperties) PassValue() (C.VkPhysicalDeviceSamplerFilterMinmaxProperties, *cgoAllocMap) { + if x.ref69bbe609 != nil { + return *x.ref69bbe609, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceSamplerFilterMinmaxProperties) Deref() { + if x.ref69bbe609 == nil { + return + } + x.SType = (StructureType)(x.ref69bbe609.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref69bbe609.pNext)) + x.FilterMinmaxSingleComponentFormats = (Bool32)(x.ref69bbe609.filterMinmaxSingleComponentFormats) + x.FilterMinmaxImageComponentMapping = (Bool32)(x.ref69bbe609.filterMinmaxImageComponentMapping) +} + +// allocPhysicalDeviceVulkanMemoryModelFeaturesMemory allocates memory for type C.VkPhysicalDeviceVulkanMemoryModelFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceVulkanMemoryModelFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVulkanMemoryModelFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceVulkanMemoryModelFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkanMemoryModelFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceVulkanMemoryModelFeatures) Ref() *C.VkPhysicalDeviceVulkanMemoryModelFeatures { + if x == nil { + return nil + } + return x.refedb93263 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceVulkanMemoryModelFeatures) Free() { + if x != nil && x.allocsedb93263 != nil { + x.allocsedb93263.(*cgoAllocMap).Free() + x.refedb93263 = nil + } +} + +// NewPhysicalDeviceVulkanMemoryModelFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceVulkanMemoryModelFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVulkanMemoryModelFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceVulkanMemoryModelFeatures) + obj.refedb93263 = (*C.VkPhysicalDeviceVulkanMemoryModelFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceVulkanMemoryModelFeatures) PassRef() (*C.VkPhysicalDeviceVulkanMemoryModelFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refedb93263 != nil { + return x.refedb93263, nil + } + memedb93263 := allocPhysicalDeviceVulkanMemoryModelFeaturesMemory(1) + refedb93263 := (*C.VkPhysicalDeviceVulkanMemoryModelFeatures)(memedb93263) + allocsedb93263 := new(cgoAllocMap) + allocsedb93263.Add(memedb93263) + + var csType_allocs *cgoAllocMap + refedb93263.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsedb93263.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refedb93263.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsedb93263.Borrow(cpNext_allocs) + + var cvulkanMemoryModel_allocs *cgoAllocMap + refedb93263.vulkanMemoryModel, cvulkanMemoryModel_allocs = (C.VkBool32)(x.VulkanMemoryModel), cgoAllocsUnknown + allocsedb93263.Borrow(cvulkanMemoryModel_allocs) + + var cvulkanMemoryModelDeviceScope_allocs *cgoAllocMap + refedb93263.vulkanMemoryModelDeviceScope, cvulkanMemoryModelDeviceScope_allocs = (C.VkBool32)(x.VulkanMemoryModelDeviceScope), cgoAllocsUnknown + allocsedb93263.Borrow(cvulkanMemoryModelDeviceScope_allocs) + + var cvulkanMemoryModelAvailabilityVisibilityChains_allocs *cgoAllocMap + refedb93263.vulkanMemoryModelAvailabilityVisibilityChains, cvulkanMemoryModelAvailabilityVisibilityChains_allocs = (C.VkBool32)(x.VulkanMemoryModelAvailabilityVisibilityChains), cgoAllocsUnknown + allocsedb93263.Borrow(cvulkanMemoryModelAvailabilityVisibilityChains_allocs) + + x.refedb93263 = refedb93263 + x.allocsedb93263 = allocsedb93263 + return refedb93263, allocsedb93263 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceVulkanMemoryModelFeatures) PassValue() (C.VkPhysicalDeviceVulkanMemoryModelFeatures, *cgoAllocMap) { + if x.refedb93263 != nil { + return *x.refedb93263, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceVulkanMemoryModelFeatures) Deref() { + if x.refedb93263 == nil { + return + } + x.SType = (StructureType)(x.refedb93263.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refedb93263.pNext)) + x.VulkanMemoryModel = (Bool32)(x.refedb93263.vulkanMemoryModel) + x.VulkanMemoryModelDeviceScope = (Bool32)(x.refedb93263.vulkanMemoryModelDeviceScope) + x.VulkanMemoryModelAvailabilityVisibilityChains = (Bool32)(x.refedb93263.vulkanMemoryModelAvailabilityVisibilityChains) +} + +// allocPhysicalDeviceImagelessFramebufferFeaturesMemory allocates memory for type C.VkPhysicalDeviceImagelessFramebufferFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceImagelessFramebufferFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImagelessFramebufferFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceImagelessFramebufferFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImagelessFramebufferFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceImagelessFramebufferFeatures) Ref() *C.VkPhysicalDeviceImagelessFramebufferFeatures { + if x == nil { + return nil + } + return x.refcd561baf +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceImagelessFramebufferFeatures) Free() { + if x != nil && x.allocscd561baf != nil { + x.allocscd561baf.(*cgoAllocMap).Free() + x.refcd561baf = nil + } +} + +// NewPhysicalDeviceImagelessFramebufferFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceImagelessFramebufferFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceImagelessFramebufferFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceImagelessFramebufferFeatures) + obj.refcd561baf = (*C.VkPhysicalDeviceImagelessFramebufferFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceImagelessFramebufferFeatures) PassRef() (*C.VkPhysicalDeviceImagelessFramebufferFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refcd561baf != nil { + return x.refcd561baf, nil + } + memcd561baf := allocPhysicalDeviceImagelessFramebufferFeaturesMemory(1) + refcd561baf := (*C.VkPhysicalDeviceImagelessFramebufferFeatures)(memcd561baf) + allocscd561baf := new(cgoAllocMap) + allocscd561baf.Add(memcd561baf) + + var csType_allocs *cgoAllocMap + refcd561baf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscd561baf.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refcd561baf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscd561baf.Borrow(cpNext_allocs) + + var cimagelessFramebuffer_allocs *cgoAllocMap + refcd561baf.imagelessFramebuffer, cimagelessFramebuffer_allocs = (C.VkBool32)(x.ImagelessFramebuffer), cgoAllocsUnknown + allocscd561baf.Borrow(cimagelessFramebuffer_allocs) + + x.refcd561baf = refcd561baf + x.allocscd561baf = allocscd561baf + return refcd561baf, allocscd561baf + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceImagelessFramebufferFeatures) PassValue() (C.VkPhysicalDeviceImagelessFramebufferFeatures, *cgoAllocMap) { + if x.refcd561baf != nil { + return *x.refcd561baf, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceImagelessFramebufferFeatures) Deref() { + if x.refcd561baf == nil { + return + } + x.SType = (StructureType)(x.refcd561baf.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd561baf.pNext)) + x.ImagelessFramebuffer = (Bool32)(x.refcd561baf.imagelessFramebuffer) +} + +// allocFramebufferAttachmentImageInfoMemory allocates memory for type C.VkFramebufferAttachmentImageInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocFramebufferAttachmentImageInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFramebufferAttachmentImageInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfFramebufferAttachmentImageInfoValue = unsafe.Sizeof([1]C.VkFramebufferAttachmentImageInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *FramebufferAttachmentImageInfo) Ref() *C.VkFramebufferAttachmentImageInfo { + if x == nil { + return nil + } + return x.refe569691c +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *FramebufferAttachmentImageInfo) Free() { + if x != nil && x.allocse569691c != nil { + x.allocse569691c.(*cgoAllocMap).Free() + x.refe569691c = nil + } +} + +// NewFramebufferAttachmentImageInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewFramebufferAttachmentImageInfoRef(ref unsafe.Pointer) *FramebufferAttachmentImageInfo { + if ref == nil { + return nil + } + obj := new(FramebufferAttachmentImageInfo) + obj.refe569691c = (*C.VkFramebufferAttachmentImageInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *FramebufferAttachmentImageInfo) PassRef() (*C.VkFramebufferAttachmentImageInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refe569691c != nil { + return x.refe569691c, nil + } + meme569691c := allocFramebufferAttachmentImageInfoMemory(1) + refe569691c := (*C.VkFramebufferAttachmentImageInfo)(meme569691c) + allocse569691c := new(cgoAllocMap) + allocse569691c.Add(meme569691c) + + var csType_allocs *cgoAllocMap + refe569691c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse569691c.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refe569691c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse569691c.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + refe569691c.flags, cflags_allocs = (C.VkImageCreateFlags)(x.Flags), cgoAllocsUnknown + allocse569691c.Borrow(cflags_allocs) + + var cusage_allocs *cgoAllocMap + refe569691c.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown + allocse569691c.Borrow(cusage_allocs) + + var cwidth_allocs *cgoAllocMap + refe569691c.width, cwidth_allocs = (C.uint32_t)(x.Width), cgoAllocsUnknown + allocse569691c.Borrow(cwidth_allocs) + + var cheight_allocs *cgoAllocMap + refe569691c.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown + allocse569691c.Borrow(cheight_allocs) + + var clayerCount_allocs *cgoAllocMap + refe569691c.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown + allocse569691c.Borrow(clayerCount_allocs) + + var cviewFormatCount_allocs *cgoAllocMap + refe569691c.viewFormatCount, cviewFormatCount_allocs = (C.uint32_t)(x.ViewFormatCount), cgoAllocsUnknown + allocse569691c.Borrow(cviewFormatCount_allocs) + + var cpViewFormats_allocs *cgoAllocMap + refe569691c.pViewFormats, cpViewFormats_allocs = (*C.VkFormat)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewFormats)).Data)), cgoAllocsUnknown + allocse569691c.Borrow(cpViewFormats_allocs) + + x.refe569691c = refe569691c + x.allocse569691c = allocse569691c + return refe569691c, allocse569691c + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x FramebufferAttachmentImageInfo) PassValue() (C.VkFramebufferAttachmentImageInfo, *cgoAllocMap) { + if x.refe569691c != nil { + return *x.refe569691c, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *FramebufferAttachmentImageInfo) Deref() { + if x.refe569691c == nil { + return + } + x.SType = (StructureType)(x.refe569691c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe569691c.pNext)) + x.Flags = (ImageCreateFlags)(x.refe569691c.flags) + x.Usage = (ImageUsageFlags)(x.refe569691c.usage) + x.Width = (uint32)(x.refe569691c.width) + x.Height = (uint32)(x.refe569691c.height) + x.LayerCount = (uint32)(x.refe569691c.layerCount) + x.ViewFormatCount = (uint32)(x.refe569691c.viewFormatCount) + hxfe93325 := (*sliceHeader)(unsafe.Pointer(&x.PViewFormats)) + hxfe93325.Data = unsafe.Pointer(x.refe569691c.pViewFormats) + hxfe93325.Cap = 0x7fffffff + // hxfe93325.Len = ? + +} + +// allocFramebufferAttachmentsCreateInfoMemory allocates memory for type C.VkFramebufferAttachmentsCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocFramebufferAttachmentsCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFramebufferAttachmentsCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfFramebufferAttachmentsCreateInfoValue = unsafe.Sizeof([1]C.VkFramebufferAttachmentsCreateInfo{}) + +// unpackSFramebufferAttachmentImageInfo transforms a sliced Go data structure into plain C format. +func unpackSFramebufferAttachmentImageInfo(x []FramebufferAttachmentImageInfo) (unpacked *C.VkFramebufferAttachmentImageInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkFramebufferAttachmentImageInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocFramebufferAttachmentImageInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkFramebufferAttachmentImageInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkFramebufferAttachmentImageInfo)(h.Data) + return +} + +// packSFramebufferAttachmentImageInfo reads sliced Go data structure out from plain C format. +func packSFramebufferAttachmentImageInfo(v []FramebufferAttachmentImageInfo, ptr0 *C.VkFramebufferAttachmentImageInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfFramebufferAttachmentImageInfoValue]C.VkFramebufferAttachmentImageInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewFramebufferAttachmentImageInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *FramebufferAttachmentsCreateInfo) Ref() *C.VkFramebufferAttachmentsCreateInfo { + if x == nil { + return nil + } + return x.reff3bb4ec3 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *FramebufferAttachmentsCreateInfo) Free() { + if x != nil && x.allocsf3bb4ec3 != nil { + x.allocsf3bb4ec3.(*cgoAllocMap).Free() + x.reff3bb4ec3 = nil + } +} + +// NewFramebufferAttachmentsCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewFramebufferAttachmentsCreateInfoRef(ref unsafe.Pointer) *FramebufferAttachmentsCreateInfo { + if ref == nil { + return nil + } + obj := new(FramebufferAttachmentsCreateInfo) + obj.reff3bb4ec3 = (*C.VkFramebufferAttachmentsCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *FramebufferAttachmentsCreateInfo) PassRef() (*C.VkFramebufferAttachmentsCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reff3bb4ec3 != nil { + return x.reff3bb4ec3, nil + } + memf3bb4ec3 := allocFramebufferAttachmentsCreateInfoMemory(1) + reff3bb4ec3 := (*C.VkFramebufferAttachmentsCreateInfo)(memf3bb4ec3) + allocsf3bb4ec3 := new(cgoAllocMap) + allocsf3bb4ec3.Add(memf3bb4ec3) + + var csType_allocs *cgoAllocMap + reff3bb4ec3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf3bb4ec3.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff3bb4ec3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf3bb4ec3.Borrow(cpNext_allocs) + + var cattachmentImageInfoCount_allocs *cgoAllocMap + reff3bb4ec3.attachmentImageInfoCount, cattachmentImageInfoCount_allocs = (C.uint32_t)(x.AttachmentImageInfoCount), cgoAllocsUnknown + allocsf3bb4ec3.Borrow(cattachmentImageInfoCount_allocs) + + var cpAttachmentImageInfos_allocs *cgoAllocMap + reff3bb4ec3.pAttachmentImageInfos, cpAttachmentImageInfos_allocs = unpackSFramebufferAttachmentImageInfo(x.PAttachmentImageInfos) + allocsf3bb4ec3.Borrow(cpAttachmentImageInfos_allocs) + + x.reff3bb4ec3 = reff3bb4ec3 + x.allocsf3bb4ec3 = allocsf3bb4ec3 + return reff3bb4ec3, allocsf3bb4ec3 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x FramebufferAttachmentsCreateInfo) PassValue() (C.VkFramebufferAttachmentsCreateInfo, *cgoAllocMap) { + if x.reff3bb4ec3 != nil { + return *x.reff3bb4ec3, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *FramebufferAttachmentsCreateInfo) Deref() { + if x.reff3bb4ec3 == nil { + return + } + x.SType = (StructureType)(x.reff3bb4ec3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff3bb4ec3.pNext)) + x.AttachmentImageInfoCount = (uint32)(x.reff3bb4ec3.attachmentImageInfoCount) + packSFramebufferAttachmentImageInfo(x.PAttachmentImageInfos, x.reff3bb4ec3.pAttachmentImageInfos) +} + +// allocRenderPassAttachmentBeginInfoMemory allocates memory for type C.VkRenderPassAttachmentBeginInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocRenderPassAttachmentBeginInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassAttachmentBeginInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfRenderPassAttachmentBeginInfoValue = unsafe.Sizeof([1]C.VkRenderPassAttachmentBeginInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *RenderPassAttachmentBeginInfo) Ref() *C.VkRenderPassAttachmentBeginInfo { + if x == nil { + return nil + } + return x.ref5c976537 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *RenderPassAttachmentBeginInfo) Free() { + if x != nil && x.allocs5c976537 != nil { + x.allocs5c976537.(*cgoAllocMap).Free() + x.ref5c976537 = nil + } +} + +// NewRenderPassAttachmentBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewRenderPassAttachmentBeginInfoRef(ref unsafe.Pointer) *RenderPassAttachmentBeginInfo { + if ref == nil { + return nil + } + obj := new(RenderPassAttachmentBeginInfo) + obj.ref5c976537 = (*C.VkRenderPassAttachmentBeginInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *RenderPassAttachmentBeginInfo) PassRef() (*C.VkRenderPassAttachmentBeginInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5c976537 != nil { + return x.ref5c976537, nil + } + mem5c976537 := allocRenderPassAttachmentBeginInfoMemory(1) + ref5c976537 := (*C.VkRenderPassAttachmentBeginInfo)(mem5c976537) + allocs5c976537 := new(cgoAllocMap) + allocs5c976537.Add(mem5c976537) + + var csType_allocs *cgoAllocMap + ref5c976537.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5c976537.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5c976537.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5c976537.Borrow(cpNext_allocs) + + var cattachmentCount_allocs *cgoAllocMap + ref5c976537.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown + allocs5c976537.Borrow(cattachmentCount_allocs) + + var cpAttachments_allocs *cgoAllocMap + ref5c976537.pAttachments, cpAttachments_allocs = (*C.VkImageView)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PAttachments)).Data)), cgoAllocsUnknown + allocs5c976537.Borrow(cpAttachments_allocs) + + x.ref5c976537 = ref5c976537 + x.allocs5c976537 = allocs5c976537 + return ref5c976537, allocs5c976537 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x RenderPassAttachmentBeginInfo) PassValue() (C.VkRenderPassAttachmentBeginInfo, *cgoAllocMap) { + if x.ref5c976537 != nil { + return *x.ref5c976537, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *RenderPassAttachmentBeginInfo) Deref() { + if x.ref5c976537 == nil { + return + } + x.SType = (StructureType)(x.ref5c976537.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5c976537.pNext)) + x.AttachmentCount = (uint32)(x.ref5c976537.attachmentCount) + hxf09ea94 := (*sliceHeader)(unsafe.Pointer(&x.PAttachments)) + hxf09ea94.Data = unsafe.Pointer(x.ref5c976537.pAttachments) + hxf09ea94.Cap = 0x7fffffff + // hxf09ea94.Len = ? + +} + +// allocPhysicalDeviceUniformBufferStandardLayoutFeaturesMemory allocates memory for type C.VkPhysicalDeviceUniformBufferStandardLayoutFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceUniformBufferStandardLayoutFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceUniformBufferStandardLayoutFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceUniformBufferStandardLayoutFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceUniformBufferStandardLayoutFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceUniformBufferStandardLayoutFeatures) Ref() *C.VkPhysicalDeviceUniformBufferStandardLayoutFeatures { + if x == nil { + return nil + } + return x.refda381ec5 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceUniformBufferStandardLayoutFeatures) Free() { + if x != nil && x.allocsda381ec5 != nil { + x.allocsda381ec5.(*cgoAllocMap).Free() + x.refda381ec5 = nil + } +} + +// NewPhysicalDeviceUniformBufferStandardLayoutFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceUniformBufferStandardLayoutFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceUniformBufferStandardLayoutFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceUniformBufferStandardLayoutFeatures) + obj.refda381ec5 = (*C.VkPhysicalDeviceUniformBufferStandardLayoutFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceUniformBufferStandardLayoutFeatures) PassRef() (*C.VkPhysicalDeviceUniformBufferStandardLayoutFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refda381ec5 != nil { + return x.refda381ec5, nil + } + memda381ec5 := allocPhysicalDeviceUniformBufferStandardLayoutFeaturesMemory(1) + refda381ec5 := (*C.VkPhysicalDeviceUniformBufferStandardLayoutFeatures)(memda381ec5) + allocsda381ec5 := new(cgoAllocMap) + allocsda381ec5.Add(memda381ec5) + + var csType_allocs *cgoAllocMap + refda381ec5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsda381ec5.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refda381ec5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsda381ec5.Borrow(cpNext_allocs) + + var cuniformBufferStandardLayout_allocs *cgoAllocMap + refda381ec5.uniformBufferStandardLayout, cuniformBufferStandardLayout_allocs = (C.VkBool32)(x.UniformBufferStandardLayout), cgoAllocsUnknown + allocsda381ec5.Borrow(cuniformBufferStandardLayout_allocs) + + x.refda381ec5 = refda381ec5 + x.allocsda381ec5 = allocsda381ec5 + return refda381ec5, allocsda381ec5 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceUniformBufferStandardLayoutFeatures) PassValue() (C.VkPhysicalDeviceUniformBufferStandardLayoutFeatures, *cgoAllocMap) { + if x.refda381ec5 != nil { + return *x.refda381ec5, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceUniformBufferStandardLayoutFeatures) Deref() { + if x.refda381ec5 == nil { + return + } + x.SType = (StructureType)(x.refda381ec5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refda381ec5.pNext)) + x.UniformBufferStandardLayout = (Bool32)(x.refda381ec5.uniformBufferStandardLayout) +} + +// allocPhysicalDeviceShaderSubgroupExtendedTypesFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceShaderSubgroupExtendedTypesFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSubgroupExtendedTypesFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceShaderSubgroupExtendedTypesFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderSubgroupExtendedTypesFeatures) Ref() *C.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures { + if x == nil { + return nil + } + return x.ref3bdcd2a2 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceShaderSubgroupExtendedTypesFeatures) Free() { + if x != nil && x.allocs3bdcd2a2 != nil { + x.allocs3bdcd2a2.(*cgoAllocMap).Free() + x.ref3bdcd2a2 = nil + } +} + +// NewPhysicalDeviceShaderSubgroupExtendedTypesFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceShaderSubgroupExtendedTypesFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderSubgroupExtendedTypesFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceShaderSubgroupExtendedTypesFeatures) + obj.ref3bdcd2a2 = (*C.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceShaderSubgroupExtendedTypesFeatures) PassRef() (*C.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref3bdcd2a2 != nil { + return x.ref3bdcd2a2, nil + } + mem3bdcd2a2 := allocPhysicalDeviceShaderSubgroupExtendedTypesFeaturesMemory(1) + ref3bdcd2a2 := (*C.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures)(mem3bdcd2a2) + allocs3bdcd2a2 := new(cgoAllocMap) + allocs3bdcd2a2.Add(mem3bdcd2a2) + + var csType_allocs *cgoAllocMap + ref3bdcd2a2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3bdcd2a2.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref3bdcd2a2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3bdcd2a2.Borrow(cpNext_allocs) + + var cshaderSubgroupExtendedTypes_allocs *cgoAllocMap + ref3bdcd2a2.shaderSubgroupExtendedTypes, cshaderSubgroupExtendedTypes_allocs = (C.VkBool32)(x.ShaderSubgroupExtendedTypes), cgoAllocsUnknown + allocs3bdcd2a2.Borrow(cshaderSubgroupExtendedTypes_allocs) + + x.ref3bdcd2a2 = ref3bdcd2a2 + x.allocs3bdcd2a2 = allocs3bdcd2a2 + return ref3bdcd2a2, allocs3bdcd2a2 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceShaderSubgroupExtendedTypesFeatures) PassValue() (C.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, *cgoAllocMap) { + if x.ref3bdcd2a2 != nil { + return *x.ref3bdcd2a2, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceShaderSubgroupExtendedTypesFeatures) Deref() { + if x.ref3bdcd2a2 == nil { + return + } + x.SType = (StructureType)(x.ref3bdcd2a2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3bdcd2a2.pNext)) + x.ShaderSubgroupExtendedTypes = (Bool32)(x.ref3bdcd2a2.shaderSubgroupExtendedTypes) +} + +// allocPhysicalDeviceSeparateDepthStencilLayoutsFeaturesMemory allocates memory for type C.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceSeparateDepthStencilLayoutsFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSeparateDepthStencilLayoutsFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceSeparateDepthStencilLayoutsFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceSeparateDepthStencilLayoutsFeatures) Ref() *C.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures { + if x == nil { + return nil + } + return x.ref7974377f +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceSeparateDepthStencilLayoutsFeatures) Free() { + if x != nil && x.allocs7974377f != nil { + x.allocs7974377f.(*cgoAllocMap).Free() + x.ref7974377f = nil + } +} + +// NewPhysicalDeviceSeparateDepthStencilLayoutsFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceSeparateDepthStencilLayoutsFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceSeparateDepthStencilLayoutsFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceSeparateDepthStencilLayoutsFeatures) + obj.ref7974377f = (*C.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceSeparateDepthStencilLayoutsFeatures) PassRef() (*C.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref7974377f != nil { + return x.ref7974377f, nil + } + mem7974377f := allocPhysicalDeviceSeparateDepthStencilLayoutsFeaturesMemory(1) + ref7974377f := (*C.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures)(mem7974377f) + allocs7974377f := new(cgoAllocMap) + allocs7974377f.Add(mem7974377f) + + var csType_allocs *cgoAllocMap + ref7974377f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7974377f.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref7974377f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7974377f.Borrow(cpNext_allocs) + + var cseparateDepthStencilLayouts_allocs *cgoAllocMap + ref7974377f.separateDepthStencilLayouts, cseparateDepthStencilLayouts_allocs = (C.VkBool32)(x.SeparateDepthStencilLayouts), cgoAllocsUnknown + allocs7974377f.Borrow(cseparateDepthStencilLayouts_allocs) + + x.ref7974377f = ref7974377f + x.allocs7974377f = allocs7974377f + return ref7974377f, allocs7974377f + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceSeparateDepthStencilLayoutsFeatures) PassValue() (C.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, *cgoAllocMap) { + if x.ref7974377f != nil { + return *x.ref7974377f, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceSeparateDepthStencilLayoutsFeatures) Deref() { + if x.ref7974377f == nil { + return + } + x.SType = (StructureType)(x.ref7974377f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7974377f.pNext)) + x.SeparateDepthStencilLayouts = (Bool32)(x.ref7974377f.separateDepthStencilLayouts) +} + +// allocAttachmentReferenceStencilLayoutMemory allocates memory for type C.VkAttachmentReferenceStencilLayout in C. +// The caller is responsible for freeing the this memory via C.free. +func allocAttachmentReferenceStencilLayoutMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentReferenceStencilLayoutValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfAttachmentReferenceStencilLayoutValue = unsafe.Sizeof([1]C.VkAttachmentReferenceStencilLayout{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *AttachmentReferenceStencilLayout) Ref() *C.VkAttachmentReferenceStencilLayout { + if x == nil { + return nil + } + return x.refb936264a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *AttachmentReferenceStencilLayout) Free() { + if x != nil && x.allocsb936264a != nil { + x.allocsb936264a.(*cgoAllocMap).Free() + x.refb936264a = nil + } +} + +// NewAttachmentReferenceStencilLayoutRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewAttachmentReferenceStencilLayoutRef(ref unsafe.Pointer) *AttachmentReferenceStencilLayout { + if ref == nil { + return nil + } + obj := new(AttachmentReferenceStencilLayout) + obj.refb936264a = (*C.VkAttachmentReferenceStencilLayout)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *AttachmentReferenceStencilLayout) PassRef() (*C.VkAttachmentReferenceStencilLayout, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb936264a != nil { + return x.refb936264a, nil + } + memb936264a := allocAttachmentReferenceStencilLayoutMemory(1) + refb936264a := (*C.VkAttachmentReferenceStencilLayout)(memb936264a) + allocsb936264a := new(cgoAllocMap) + allocsb936264a.Add(memb936264a) + + var csType_allocs *cgoAllocMap + refb936264a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb936264a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb936264a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb936264a.Borrow(cpNext_allocs) + + var cstencilLayout_allocs *cgoAllocMap + refb936264a.stencilLayout, cstencilLayout_allocs = (C.VkImageLayout)(x.StencilLayout), cgoAllocsUnknown + allocsb936264a.Borrow(cstencilLayout_allocs) + + x.refb936264a = refb936264a + x.allocsb936264a = allocsb936264a + return refb936264a, allocsb936264a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x AttachmentReferenceStencilLayout) PassValue() (C.VkAttachmentReferenceStencilLayout, *cgoAllocMap) { + if x.refb936264a != nil { + return *x.refb936264a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *AttachmentReferenceStencilLayout) Deref() { + if x.refb936264a == nil { + return + } + x.SType = (StructureType)(x.refb936264a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb936264a.pNext)) + x.StencilLayout = (ImageLayout)(x.refb936264a.stencilLayout) +} + +// allocAttachmentDescriptionStencilLayoutMemory allocates memory for type C.VkAttachmentDescriptionStencilLayout in C. +// The caller is responsible for freeing the this memory via C.free. +func allocAttachmentDescriptionStencilLayoutMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentDescriptionStencilLayoutValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfAttachmentDescriptionStencilLayoutValue = unsafe.Sizeof([1]C.VkAttachmentDescriptionStencilLayout{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *AttachmentDescriptionStencilLayout) Ref() *C.VkAttachmentDescriptionStencilLayout { + if x == nil { + return nil + } + return x.refc8065ded +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *AttachmentDescriptionStencilLayout) Free() { + if x != nil && x.allocsc8065ded != nil { + x.allocsc8065ded.(*cgoAllocMap).Free() + x.refc8065ded = nil + } +} + +// NewAttachmentDescriptionStencilLayoutRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewAttachmentDescriptionStencilLayoutRef(ref unsafe.Pointer) *AttachmentDescriptionStencilLayout { + if ref == nil { + return nil + } + obj := new(AttachmentDescriptionStencilLayout) + obj.refc8065ded = (*C.VkAttachmentDescriptionStencilLayout)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *AttachmentDescriptionStencilLayout) PassRef() (*C.VkAttachmentDescriptionStencilLayout, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc8065ded != nil { + return x.refc8065ded, nil + } + memc8065ded := allocAttachmentDescriptionStencilLayoutMemory(1) + refc8065ded := (*C.VkAttachmentDescriptionStencilLayout)(memc8065ded) + allocsc8065ded := new(cgoAllocMap) + allocsc8065ded.Add(memc8065ded) + + var csType_allocs *cgoAllocMap + refc8065ded.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc8065ded.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc8065ded.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc8065ded.Borrow(cpNext_allocs) + + var cstencilInitialLayout_allocs *cgoAllocMap + refc8065ded.stencilInitialLayout, cstencilInitialLayout_allocs = (C.VkImageLayout)(x.StencilInitialLayout), cgoAllocsUnknown + allocsc8065ded.Borrow(cstencilInitialLayout_allocs) + + var cstencilFinalLayout_allocs *cgoAllocMap + refc8065ded.stencilFinalLayout, cstencilFinalLayout_allocs = (C.VkImageLayout)(x.StencilFinalLayout), cgoAllocsUnknown + allocsc8065ded.Borrow(cstencilFinalLayout_allocs) + + x.refc8065ded = refc8065ded + x.allocsc8065ded = allocsc8065ded + return refc8065ded, allocsc8065ded + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x AttachmentDescriptionStencilLayout) PassValue() (C.VkAttachmentDescriptionStencilLayout, *cgoAllocMap) { + if x.refc8065ded != nil { + return *x.refc8065ded, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *AttachmentDescriptionStencilLayout) Deref() { + if x.refc8065ded == nil { + return + } + x.SType = (StructureType)(x.refc8065ded.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc8065ded.pNext)) + x.StencilInitialLayout = (ImageLayout)(x.refc8065ded.stencilInitialLayout) + x.StencilFinalLayout = (ImageLayout)(x.refc8065ded.stencilFinalLayout) +} + +// allocPhysicalDeviceHostQueryResetFeaturesMemory allocates memory for type C.VkPhysicalDeviceHostQueryResetFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceHostQueryResetFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceHostQueryResetFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceHostQueryResetFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceHostQueryResetFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceHostQueryResetFeatures) Ref() *C.VkPhysicalDeviceHostQueryResetFeatures { + if x == nil { + return nil + } + return x.ref6ff2e40a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceHostQueryResetFeatures) Free() { + if x != nil && x.allocs6ff2e40a != nil { + x.allocs6ff2e40a.(*cgoAllocMap).Free() + x.ref6ff2e40a = nil + } +} + +// NewPhysicalDeviceHostQueryResetFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceHostQueryResetFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceHostQueryResetFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceHostQueryResetFeatures) + obj.ref6ff2e40a = (*C.VkPhysicalDeviceHostQueryResetFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceHostQueryResetFeatures) PassRef() (*C.VkPhysicalDeviceHostQueryResetFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref6ff2e40a != nil { + return x.ref6ff2e40a, nil + } + mem6ff2e40a := allocPhysicalDeviceHostQueryResetFeaturesMemory(1) + ref6ff2e40a := (*C.VkPhysicalDeviceHostQueryResetFeatures)(mem6ff2e40a) + allocs6ff2e40a := new(cgoAllocMap) + allocs6ff2e40a.Add(mem6ff2e40a) + + var csType_allocs *cgoAllocMap + ref6ff2e40a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6ff2e40a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref6ff2e40a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6ff2e40a.Borrow(cpNext_allocs) + + var chostQueryReset_allocs *cgoAllocMap + ref6ff2e40a.hostQueryReset, chostQueryReset_allocs = (C.VkBool32)(x.HostQueryReset), cgoAllocsUnknown + allocs6ff2e40a.Borrow(chostQueryReset_allocs) + + x.ref6ff2e40a = ref6ff2e40a + x.allocs6ff2e40a = allocs6ff2e40a + return ref6ff2e40a, allocs6ff2e40a + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceHostQueryResetFeatures) PassValue() (C.VkPhysicalDeviceHostQueryResetFeatures, *cgoAllocMap) { + if x.ref6ff2e40a != nil { + return *x.ref6ff2e40a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceHostQueryResetFeatures) Deref() { + if x.ref6ff2e40a == nil { + return + } + x.SType = (StructureType)(x.ref6ff2e40a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6ff2e40a.pNext)) + x.HostQueryReset = (Bool32)(x.ref6ff2e40a.hostQueryReset) +} + +// allocPhysicalDeviceTimelineSemaphoreFeaturesMemory allocates memory for type C.VkPhysicalDeviceTimelineSemaphoreFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceTimelineSemaphoreFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTimelineSemaphoreFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceTimelineSemaphoreFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTimelineSemaphoreFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceTimelineSemaphoreFeatures) Ref() *C.VkPhysicalDeviceTimelineSemaphoreFeatures { + if x == nil { + return nil + } + return x.ref9260df2e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceTimelineSemaphoreFeatures) Free() { + if x != nil && x.allocs9260df2e != nil { + x.allocs9260df2e.(*cgoAllocMap).Free() + x.ref9260df2e = nil + } +} + +// NewPhysicalDeviceTimelineSemaphoreFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceTimelineSemaphoreFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTimelineSemaphoreFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceTimelineSemaphoreFeatures) + obj.ref9260df2e = (*C.VkPhysicalDeviceTimelineSemaphoreFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceTimelineSemaphoreFeatures) PassRef() (*C.VkPhysicalDeviceTimelineSemaphoreFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref9260df2e != nil { + return x.ref9260df2e, nil + } + mem9260df2e := allocPhysicalDeviceTimelineSemaphoreFeaturesMemory(1) + ref9260df2e := (*C.VkPhysicalDeviceTimelineSemaphoreFeatures)(mem9260df2e) + allocs9260df2e := new(cgoAllocMap) + allocs9260df2e.Add(mem9260df2e) + + var csType_allocs *cgoAllocMap + ref9260df2e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9260df2e.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref9260df2e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9260df2e.Borrow(cpNext_allocs) + + var ctimelineSemaphore_allocs *cgoAllocMap + ref9260df2e.timelineSemaphore, ctimelineSemaphore_allocs = (C.VkBool32)(x.TimelineSemaphore), cgoAllocsUnknown + allocs9260df2e.Borrow(ctimelineSemaphore_allocs) + + x.ref9260df2e = ref9260df2e + x.allocs9260df2e = allocs9260df2e + return ref9260df2e, allocs9260df2e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceTimelineSemaphoreFeatures) PassValue() (C.VkPhysicalDeviceTimelineSemaphoreFeatures, *cgoAllocMap) { + if x.ref9260df2e != nil { + return *x.ref9260df2e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceTimelineSemaphoreFeatures) Deref() { + if x.ref9260df2e == nil { + return + } + x.SType = (StructureType)(x.ref9260df2e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9260df2e.pNext)) + x.TimelineSemaphore = (Bool32)(x.ref9260df2e.timelineSemaphore) +} + +// allocPhysicalDeviceTimelineSemaphorePropertiesMemory allocates memory for type C.VkPhysicalDeviceTimelineSemaphoreProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceTimelineSemaphorePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTimelineSemaphorePropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceTimelineSemaphorePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTimelineSemaphoreProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceTimelineSemaphoreProperties) Ref() *C.VkPhysicalDeviceTimelineSemaphoreProperties { + if x == nil { + return nil + } + return x.ref74220563 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceTimelineSemaphoreProperties) Free() { + if x != nil && x.allocs74220563 != nil { + x.allocs74220563.(*cgoAllocMap).Free() + x.ref74220563 = nil + } +} + +// NewPhysicalDeviceTimelineSemaphorePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceTimelineSemaphorePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceTimelineSemaphoreProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceTimelineSemaphoreProperties) + obj.ref74220563 = (*C.VkPhysicalDeviceTimelineSemaphoreProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceTimelineSemaphoreProperties) PassRef() (*C.VkPhysicalDeviceTimelineSemaphoreProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref74220563 != nil { + return x.ref74220563, nil + } + mem74220563 := allocPhysicalDeviceTimelineSemaphorePropertiesMemory(1) + ref74220563 := (*C.VkPhysicalDeviceTimelineSemaphoreProperties)(mem74220563) + allocs74220563 := new(cgoAllocMap) + allocs74220563.Add(mem74220563) + + var csType_allocs *cgoAllocMap + ref74220563.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs74220563.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref74220563.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs74220563.Borrow(cpNext_allocs) + + var cmaxTimelineSemaphoreValueDifference_allocs *cgoAllocMap + ref74220563.maxTimelineSemaphoreValueDifference, cmaxTimelineSemaphoreValueDifference_allocs = (C.uint64_t)(x.MaxTimelineSemaphoreValueDifference), cgoAllocsUnknown + allocs74220563.Borrow(cmaxTimelineSemaphoreValueDifference_allocs) + + x.ref74220563 = ref74220563 + x.allocs74220563 = allocs74220563 + return ref74220563, allocs74220563 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceTimelineSemaphoreProperties) PassValue() (C.VkPhysicalDeviceTimelineSemaphoreProperties, *cgoAllocMap) { + if x.ref74220563 != nil { + return *x.ref74220563, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceTimelineSemaphoreProperties) Deref() { + if x.ref74220563 == nil { + return + } + x.SType = (StructureType)(x.ref74220563.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref74220563.pNext)) + x.MaxTimelineSemaphoreValueDifference = (uint64)(x.ref74220563.maxTimelineSemaphoreValueDifference) +} + +// allocSemaphoreTypeCreateInfoMemory allocates memory for type C.VkSemaphoreTypeCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSemaphoreTypeCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreTypeCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSemaphoreTypeCreateInfoValue = unsafe.Sizeof([1]C.VkSemaphoreTypeCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SemaphoreTypeCreateInfo) Ref() *C.VkSemaphoreTypeCreateInfo { + if x == nil { + return nil + } + return x.ref4e668d65 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SemaphoreTypeCreateInfo) Free() { + if x != nil && x.allocs4e668d65 != nil { + x.allocs4e668d65.(*cgoAllocMap).Free() + x.ref4e668d65 = nil + } +} + +// NewSemaphoreTypeCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSemaphoreTypeCreateInfoRef(ref unsafe.Pointer) *SemaphoreTypeCreateInfo { + if ref == nil { + return nil + } + obj := new(SemaphoreTypeCreateInfo) + obj.ref4e668d65 = (*C.VkSemaphoreTypeCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SemaphoreTypeCreateInfo) PassRef() (*C.VkSemaphoreTypeCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4e668d65 != nil { + return x.ref4e668d65, nil + } + mem4e668d65 := allocSemaphoreTypeCreateInfoMemory(1) + ref4e668d65 := (*C.VkSemaphoreTypeCreateInfo)(mem4e668d65) + allocs4e668d65 := new(cgoAllocMap) + allocs4e668d65.Add(mem4e668d65) + + var csType_allocs *cgoAllocMap + ref4e668d65.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4e668d65.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref4e668d65.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4e668d65.Borrow(cpNext_allocs) + + var csemaphoreType_allocs *cgoAllocMap + ref4e668d65.semaphoreType, csemaphoreType_allocs = (C.VkSemaphoreType)(x.SemaphoreType), cgoAllocsUnknown + allocs4e668d65.Borrow(csemaphoreType_allocs) + + var cinitialValue_allocs *cgoAllocMap + ref4e668d65.initialValue, cinitialValue_allocs = (C.uint64_t)(x.InitialValue), cgoAllocsUnknown + allocs4e668d65.Borrow(cinitialValue_allocs) + + x.ref4e668d65 = ref4e668d65 + x.allocs4e668d65 = allocs4e668d65 + return ref4e668d65, allocs4e668d65 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SemaphoreTypeCreateInfo) PassValue() (C.VkSemaphoreTypeCreateInfo, *cgoAllocMap) { + if x.ref4e668d65 != nil { + return *x.ref4e668d65, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SemaphoreTypeCreateInfo) Deref() { + if x.ref4e668d65 == nil { + return + } + x.SType = (StructureType)(x.ref4e668d65.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4e668d65.pNext)) + x.SemaphoreType = (SemaphoreType)(x.ref4e668d65.semaphoreType) + x.InitialValue = (uint64)(x.ref4e668d65.initialValue) +} + +// allocTimelineSemaphoreSubmitInfoMemory allocates memory for type C.VkTimelineSemaphoreSubmitInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocTimelineSemaphoreSubmitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfTimelineSemaphoreSubmitInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfTimelineSemaphoreSubmitInfoValue = unsafe.Sizeof([1]C.VkTimelineSemaphoreSubmitInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *TimelineSemaphoreSubmitInfo) Ref() *C.VkTimelineSemaphoreSubmitInfo { + if x == nil { + return nil + } + return x.refc447a049 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *TimelineSemaphoreSubmitInfo) Free() { + if x != nil && x.allocsc447a049 != nil { + x.allocsc447a049.(*cgoAllocMap).Free() + x.refc447a049 = nil + } +} + +// NewTimelineSemaphoreSubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewTimelineSemaphoreSubmitInfoRef(ref unsafe.Pointer) *TimelineSemaphoreSubmitInfo { + if ref == nil { + return nil + } + obj := new(TimelineSemaphoreSubmitInfo) + obj.refc447a049 = (*C.VkTimelineSemaphoreSubmitInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *TimelineSemaphoreSubmitInfo) PassRef() (*C.VkTimelineSemaphoreSubmitInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refc447a049 != nil { + return x.refc447a049, nil + } + memc447a049 := allocTimelineSemaphoreSubmitInfoMemory(1) + refc447a049 := (*C.VkTimelineSemaphoreSubmitInfo)(memc447a049) + allocsc447a049 := new(cgoAllocMap) + allocsc447a049.Add(memc447a049) + + var csType_allocs *cgoAllocMap + refc447a049.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc447a049.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc447a049.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc447a049.Borrow(cpNext_allocs) + + var cwaitSemaphoreValueCount_allocs *cgoAllocMap + refc447a049.waitSemaphoreValueCount, cwaitSemaphoreValueCount_allocs = (C.uint32_t)(x.WaitSemaphoreValueCount), cgoAllocsUnknown + allocsc447a049.Borrow(cwaitSemaphoreValueCount_allocs) + + var cpWaitSemaphoreValues_allocs *cgoAllocMap + refc447a049.pWaitSemaphoreValues, cpWaitSemaphoreValues_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreValues)).Data)), cgoAllocsUnknown + allocsc447a049.Borrow(cpWaitSemaphoreValues_allocs) + + var csignalSemaphoreValueCount_allocs *cgoAllocMap + refc447a049.signalSemaphoreValueCount, csignalSemaphoreValueCount_allocs = (C.uint32_t)(x.SignalSemaphoreValueCount), cgoAllocsUnknown + allocsc447a049.Borrow(csignalSemaphoreValueCount_allocs) + + var cpSignalSemaphoreValues_allocs *cgoAllocMap + refc447a049.pSignalSemaphoreValues, cpSignalSemaphoreValues_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreValues)).Data)), cgoAllocsUnknown + allocsc447a049.Borrow(cpSignalSemaphoreValues_allocs) + + x.refc447a049 = refc447a049 + x.allocsc447a049 = allocsc447a049 + return refc447a049, allocsc447a049 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x TimelineSemaphoreSubmitInfo) PassValue() (C.VkTimelineSemaphoreSubmitInfo, *cgoAllocMap) { + if x.refc447a049 != nil { + return *x.refc447a049, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *TimelineSemaphoreSubmitInfo) Deref() { + if x.refc447a049 == nil { + return + } + x.SType = (StructureType)(x.refc447a049.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc447a049.pNext)) + x.WaitSemaphoreValueCount = (uint32)(x.refc447a049.waitSemaphoreValueCount) + hxfd687ee := (*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreValues)) + hxfd687ee.Data = unsafe.Pointer(x.refc447a049.pWaitSemaphoreValues) + hxfd687ee.Cap = 0x7fffffff + // hxfd687ee.Len = ? + + x.SignalSemaphoreValueCount = (uint32)(x.refc447a049.signalSemaphoreValueCount) + hxf15a567 := (*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreValues)) + hxf15a567.Data = unsafe.Pointer(x.refc447a049.pSignalSemaphoreValues) + hxf15a567.Cap = 0x7fffffff + // hxf15a567.Len = ? + +} + +// allocSemaphoreWaitInfoMemory allocates memory for type C.VkSemaphoreWaitInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSemaphoreWaitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreWaitInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSemaphoreWaitInfoValue = unsafe.Sizeof([1]C.VkSemaphoreWaitInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SemaphoreWaitInfo) Ref() *C.VkSemaphoreWaitInfo { + if x == nil { + return nil + } + return x.ref5e4f71e8 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SemaphoreWaitInfo) Free() { + if x != nil && x.allocs5e4f71e8 != nil { + x.allocs5e4f71e8.(*cgoAllocMap).Free() + x.ref5e4f71e8 = nil + } +} + +// NewSemaphoreWaitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSemaphoreWaitInfoRef(ref unsafe.Pointer) *SemaphoreWaitInfo { + if ref == nil { + return nil + } + obj := new(SemaphoreWaitInfo) + obj.ref5e4f71e8 = (*C.VkSemaphoreWaitInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SemaphoreWaitInfo) PassRef() (*C.VkSemaphoreWaitInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5e4f71e8 != nil { + return x.ref5e4f71e8, nil + } + mem5e4f71e8 := allocSemaphoreWaitInfoMemory(1) + ref5e4f71e8 := (*C.VkSemaphoreWaitInfo)(mem5e4f71e8) + allocs5e4f71e8 := new(cgoAllocMap) + allocs5e4f71e8.Add(mem5e4f71e8) + + var csType_allocs *cgoAllocMap + ref5e4f71e8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e4f71e8.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5e4f71e8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e4f71e8.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref5e4f71e8.flags, cflags_allocs = (C.VkSemaphoreWaitFlags)(x.Flags), cgoAllocsUnknown + allocs5e4f71e8.Borrow(cflags_allocs) + + var csemaphoreCount_allocs *cgoAllocMap + ref5e4f71e8.semaphoreCount, csemaphoreCount_allocs = (C.uint32_t)(x.SemaphoreCount), cgoAllocsUnknown + allocs5e4f71e8.Borrow(csemaphoreCount_allocs) + + var cpSemaphores_allocs *cgoAllocMap + ref5e4f71e8.pSemaphores, cpSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSemaphores)).Data)), cgoAllocsUnknown + allocs5e4f71e8.Borrow(cpSemaphores_allocs) + + var cpValues_allocs *cgoAllocMap + ref5e4f71e8.pValues, cpValues_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PValues)).Data)), cgoAllocsUnknown + allocs5e4f71e8.Borrow(cpValues_allocs) + + x.ref5e4f71e8 = ref5e4f71e8 + x.allocs5e4f71e8 = allocs5e4f71e8 + return ref5e4f71e8, allocs5e4f71e8 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SemaphoreWaitInfo) PassValue() (C.VkSemaphoreWaitInfo, *cgoAllocMap) { + if x.ref5e4f71e8 != nil { + return *x.ref5e4f71e8, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SemaphoreWaitInfo) Deref() { + if x.ref5e4f71e8 == nil { + return + } + x.SType = (StructureType)(x.ref5e4f71e8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5e4f71e8.pNext)) + x.Flags = (SemaphoreWaitFlags)(x.ref5e4f71e8.flags) + x.SemaphoreCount = (uint32)(x.ref5e4f71e8.semaphoreCount) + hxf8aebb5 := (*sliceHeader)(unsafe.Pointer(&x.PSemaphores)) + hxf8aebb5.Data = unsafe.Pointer(x.ref5e4f71e8.pSemaphores) + hxf8aebb5.Cap = 0x7fffffff + // hxf8aebb5.Len = ? + + hxf5d30cf := (*sliceHeader)(unsafe.Pointer(&x.PValues)) + hxf5d30cf.Data = unsafe.Pointer(x.ref5e4f71e8.pValues) + hxf5d30cf.Cap = 0x7fffffff + // hxf5d30cf.Len = ? + +} + +// allocSemaphoreSignalInfoMemory allocates memory for type C.VkSemaphoreSignalInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSemaphoreSignalInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreSignalInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSemaphoreSignalInfoValue = unsafe.Sizeof([1]C.VkSemaphoreSignalInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SemaphoreSignalInfo) Ref() *C.VkSemaphoreSignalInfo { + if x == nil { + return nil + } + return x.ref126d16a2 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SemaphoreSignalInfo) Free() { + if x != nil && x.allocs126d16a2 != nil { + x.allocs126d16a2.(*cgoAllocMap).Free() + x.ref126d16a2 = nil + } +} + +// NewSemaphoreSignalInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSemaphoreSignalInfoRef(ref unsafe.Pointer) *SemaphoreSignalInfo { + if ref == nil { + return nil + } + obj := new(SemaphoreSignalInfo) + obj.ref126d16a2 = (*C.VkSemaphoreSignalInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SemaphoreSignalInfo) PassRef() (*C.VkSemaphoreSignalInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref126d16a2 != nil { + return x.ref126d16a2, nil + } + mem126d16a2 := allocSemaphoreSignalInfoMemory(1) + ref126d16a2 := (*C.VkSemaphoreSignalInfo)(mem126d16a2) + allocs126d16a2 := new(cgoAllocMap) + allocs126d16a2.Add(mem126d16a2) + + var csType_allocs *cgoAllocMap + ref126d16a2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs126d16a2.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref126d16a2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs126d16a2.Borrow(cpNext_allocs) + + var csemaphore_allocs *cgoAllocMap + ref126d16a2.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocs126d16a2.Borrow(csemaphore_allocs) + + var cvalue_allocs *cgoAllocMap + ref126d16a2.value, cvalue_allocs = (C.uint64_t)(x.Value), cgoAllocsUnknown + allocs126d16a2.Borrow(cvalue_allocs) + + x.ref126d16a2 = ref126d16a2 + x.allocs126d16a2 = allocs126d16a2 + return ref126d16a2, allocs126d16a2 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SemaphoreSignalInfo) PassValue() (C.VkSemaphoreSignalInfo, *cgoAllocMap) { + if x.ref126d16a2 != nil { + return *x.ref126d16a2, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SemaphoreSignalInfo) Deref() { + if x.ref126d16a2 == nil { + return + } + x.SType = (StructureType)(x.ref126d16a2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref126d16a2.pNext)) + x.Semaphore = *(*Semaphore)(unsafe.Pointer(&x.ref126d16a2.semaphore)) + x.Value = (uint64)(x.ref126d16a2.value) +} + +// allocPhysicalDeviceBufferDeviceAddressFeaturesMemory allocates memory for type C.VkPhysicalDeviceBufferDeviceAddressFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceBufferDeviceAddressFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceBufferDeviceAddressFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceBufferDeviceAddressFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBufferDeviceAddressFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceBufferDeviceAddressFeatures) Ref() *C.VkPhysicalDeviceBufferDeviceAddressFeatures { + if x == nil { + return nil + } + return x.ref13b242c3 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceBufferDeviceAddressFeatures) Free() { + if x != nil && x.allocs13b242c3 != nil { + x.allocs13b242c3.(*cgoAllocMap).Free() + x.ref13b242c3 = nil + } +} + +// NewPhysicalDeviceBufferDeviceAddressFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceBufferDeviceAddressFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBufferDeviceAddressFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceBufferDeviceAddressFeatures) + obj.ref13b242c3 = (*C.VkPhysicalDeviceBufferDeviceAddressFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceBufferDeviceAddressFeatures) PassRef() (*C.VkPhysicalDeviceBufferDeviceAddressFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref13b242c3 != nil { + return x.ref13b242c3, nil + } + mem13b242c3 := allocPhysicalDeviceBufferDeviceAddressFeaturesMemory(1) + ref13b242c3 := (*C.VkPhysicalDeviceBufferDeviceAddressFeatures)(mem13b242c3) + allocs13b242c3 := new(cgoAllocMap) + allocs13b242c3.Add(mem13b242c3) + + var csType_allocs *cgoAllocMap + ref13b242c3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs13b242c3.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref13b242c3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs13b242c3.Borrow(cpNext_allocs) + + var cbufferDeviceAddress_allocs *cgoAllocMap + ref13b242c3.bufferDeviceAddress, cbufferDeviceAddress_allocs = (C.VkBool32)(x.BufferDeviceAddress), cgoAllocsUnknown + allocs13b242c3.Borrow(cbufferDeviceAddress_allocs) + + var cbufferDeviceAddressCaptureReplay_allocs *cgoAllocMap + ref13b242c3.bufferDeviceAddressCaptureReplay, cbufferDeviceAddressCaptureReplay_allocs = (C.VkBool32)(x.BufferDeviceAddressCaptureReplay), cgoAllocsUnknown + allocs13b242c3.Borrow(cbufferDeviceAddressCaptureReplay_allocs) + + var cbufferDeviceAddressMultiDevice_allocs *cgoAllocMap + ref13b242c3.bufferDeviceAddressMultiDevice, cbufferDeviceAddressMultiDevice_allocs = (C.VkBool32)(x.BufferDeviceAddressMultiDevice), cgoAllocsUnknown + allocs13b242c3.Borrow(cbufferDeviceAddressMultiDevice_allocs) + + x.ref13b242c3 = ref13b242c3 + x.allocs13b242c3 = allocs13b242c3 + return ref13b242c3, allocs13b242c3 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceBufferDeviceAddressFeatures) PassValue() (C.VkPhysicalDeviceBufferDeviceAddressFeatures, *cgoAllocMap) { + if x.ref13b242c3 != nil { + return *x.ref13b242c3, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceBufferDeviceAddressFeatures) Deref() { + if x.ref13b242c3 == nil { + return + } + x.SType = (StructureType)(x.ref13b242c3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref13b242c3.pNext)) + x.BufferDeviceAddress = (Bool32)(x.ref13b242c3.bufferDeviceAddress) + x.BufferDeviceAddressCaptureReplay = (Bool32)(x.ref13b242c3.bufferDeviceAddressCaptureReplay) + x.BufferDeviceAddressMultiDevice = (Bool32)(x.ref13b242c3.bufferDeviceAddressMultiDevice) +} + +// allocBufferDeviceAddressInfoMemory allocates memory for type C.VkBufferDeviceAddressInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferDeviceAddressInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferDeviceAddressInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBufferDeviceAddressInfoValue = unsafe.Sizeof([1]C.VkBufferDeviceAddressInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BufferDeviceAddressInfo) Ref() *C.VkBufferDeviceAddressInfo { + if x == nil { + return nil + } + return x.ref347b43e3 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BufferDeviceAddressInfo) Free() { + if x != nil && x.allocs347b43e3 != nil { + x.allocs347b43e3.(*cgoAllocMap).Free() + x.ref347b43e3 = nil + } +} + +// NewBufferDeviceAddressInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBufferDeviceAddressInfoRef(ref unsafe.Pointer) *BufferDeviceAddressInfo { + if ref == nil { + return nil + } + obj := new(BufferDeviceAddressInfo) + obj.ref347b43e3 = (*C.VkBufferDeviceAddressInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BufferDeviceAddressInfo) PassRef() (*C.VkBufferDeviceAddressInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref347b43e3 != nil { + return x.ref347b43e3, nil + } + mem347b43e3 := allocBufferDeviceAddressInfoMemory(1) + ref347b43e3 := (*C.VkBufferDeviceAddressInfo)(mem347b43e3) + allocs347b43e3 := new(cgoAllocMap) + allocs347b43e3.Add(mem347b43e3) + + var csType_allocs *cgoAllocMap + ref347b43e3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs347b43e3.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref347b43e3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs347b43e3.Borrow(cpNext_allocs) + + var cbuffer_allocs *cgoAllocMap + ref347b43e3.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs347b43e3.Borrow(cbuffer_allocs) + + x.ref347b43e3 = ref347b43e3 + x.allocs347b43e3 = allocs347b43e3 + return ref347b43e3, allocs347b43e3 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BufferDeviceAddressInfo) PassValue() (C.VkBufferDeviceAddressInfo, *cgoAllocMap) { + if x.ref347b43e3 != nil { + return *x.ref347b43e3, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BufferDeviceAddressInfo) Deref() { + if x.ref347b43e3 == nil { + return + } + x.SType = (StructureType)(x.ref347b43e3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref347b43e3.pNext)) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref347b43e3.buffer)) +} + +// allocBufferOpaqueCaptureAddressCreateInfoMemory allocates memory for type C.VkBufferOpaqueCaptureAddressCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferOpaqueCaptureAddressCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferOpaqueCaptureAddressCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBufferOpaqueCaptureAddressCreateInfoValue = unsafe.Sizeof([1]C.VkBufferOpaqueCaptureAddressCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BufferOpaqueCaptureAddressCreateInfo) Ref() *C.VkBufferOpaqueCaptureAddressCreateInfo { + if x == nil { + return nil + } + return x.refb0364ded +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BufferOpaqueCaptureAddressCreateInfo) Free() { + if x != nil && x.allocsb0364ded != nil { + x.allocsb0364ded.(*cgoAllocMap).Free() + x.refb0364ded = nil + } +} + +// NewBufferOpaqueCaptureAddressCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBufferOpaqueCaptureAddressCreateInfoRef(ref unsafe.Pointer) *BufferOpaqueCaptureAddressCreateInfo { + if ref == nil { + return nil + } + obj := new(BufferOpaqueCaptureAddressCreateInfo) + obj.refb0364ded = (*C.VkBufferOpaqueCaptureAddressCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BufferOpaqueCaptureAddressCreateInfo) PassRef() (*C.VkBufferOpaqueCaptureAddressCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb0364ded != nil { + return x.refb0364ded, nil + } + memb0364ded := allocBufferOpaqueCaptureAddressCreateInfoMemory(1) + refb0364ded := (*C.VkBufferOpaqueCaptureAddressCreateInfo)(memb0364ded) + allocsb0364ded := new(cgoAllocMap) + allocsb0364ded.Add(memb0364ded) + + var csType_allocs *cgoAllocMap + refb0364ded.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb0364ded.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb0364ded.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb0364ded.Borrow(cpNext_allocs) + + var copaqueCaptureAddress_allocs *cgoAllocMap + refb0364ded.opaqueCaptureAddress, copaqueCaptureAddress_allocs = (C.uint64_t)(x.OpaqueCaptureAddress), cgoAllocsUnknown + allocsb0364ded.Borrow(copaqueCaptureAddress_allocs) + + x.refb0364ded = refb0364ded + x.allocsb0364ded = allocsb0364ded + return refb0364ded, allocsb0364ded + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BufferOpaqueCaptureAddressCreateInfo) PassValue() (C.VkBufferOpaqueCaptureAddressCreateInfo, *cgoAllocMap) { + if x.refb0364ded != nil { + return *x.refb0364ded, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BufferOpaqueCaptureAddressCreateInfo) Deref() { + if x.refb0364ded == nil { + return + } + x.SType = (StructureType)(x.refb0364ded.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb0364ded.pNext)) + x.OpaqueCaptureAddress = (uint64)(x.refb0364ded.opaqueCaptureAddress) +} + +// allocMemoryOpaqueCaptureAddressAllocateInfoMemory allocates memory for type C.VkMemoryOpaqueCaptureAddressAllocateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryOpaqueCaptureAddressAllocateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryOpaqueCaptureAddressAllocateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryOpaqueCaptureAddressAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryOpaqueCaptureAddressAllocateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryOpaqueCaptureAddressAllocateInfo) Ref() *C.VkMemoryOpaqueCaptureAddressAllocateInfo { + if x == nil { + return nil + } + return x.refe361764c +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryOpaqueCaptureAddressAllocateInfo) Free() { + if x != nil && x.allocse361764c != nil { + x.allocse361764c.(*cgoAllocMap).Free() + x.refe361764c = nil + } +} + +// NewMemoryOpaqueCaptureAddressAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryOpaqueCaptureAddressAllocateInfoRef(ref unsafe.Pointer) *MemoryOpaqueCaptureAddressAllocateInfo { + if ref == nil { + return nil + } + obj := new(MemoryOpaqueCaptureAddressAllocateInfo) + obj.refe361764c = (*C.VkMemoryOpaqueCaptureAddressAllocateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryOpaqueCaptureAddressAllocateInfo) PassRef() (*C.VkMemoryOpaqueCaptureAddressAllocateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refe361764c != nil { + return x.refe361764c, nil + } + meme361764c := allocMemoryOpaqueCaptureAddressAllocateInfoMemory(1) + refe361764c := (*C.VkMemoryOpaqueCaptureAddressAllocateInfo)(meme361764c) + allocse361764c := new(cgoAllocMap) + allocse361764c.Add(meme361764c) + + var csType_allocs *cgoAllocMap + refe361764c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse361764c.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refe361764c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse361764c.Borrow(cpNext_allocs) + + var copaqueCaptureAddress_allocs *cgoAllocMap + refe361764c.opaqueCaptureAddress, copaqueCaptureAddress_allocs = (C.uint64_t)(x.OpaqueCaptureAddress), cgoAllocsUnknown + allocse361764c.Borrow(copaqueCaptureAddress_allocs) + + x.refe361764c = refe361764c + x.allocse361764c = allocse361764c + return refe361764c, allocse361764c + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryOpaqueCaptureAddressAllocateInfo) PassValue() (C.VkMemoryOpaqueCaptureAddressAllocateInfo, *cgoAllocMap) { + if x.refe361764c != nil { + return *x.refe361764c, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryOpaqueCaptureAddressAllocateInfo) Deref() { + if x.refe361764c == nil { + return + } + x.SType = (StructureType)(x.refe361764c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe361764c.pNext)) + x.OpaqueCaptureAddress = (uint64)(x.refe361764c.opaqueCaptureAddress) +} + +// allocDeviceMemoryOpaqueCaptureAddressInfoMemory allocates memory for type C.VkDeviceMemoryOpaqueCaptureAddressInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDeviceMemoryOpaqueCaptureAddressInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceMemoryOpaqueCaptureAddressInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDeviceMemoryOpaqueCaptureAddressInfoValue = unsafe.Sizeof([1]C.VkDeviceMemoryOpaqueCaptureAddressInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DeviceMemoryOpaqueCaptureAddressInfo) Ref() *C.VkDeviceMemoryOpaqueCaptureAddressInfo { + if x == nil { + return nil + } + return x.refbbe30c6e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DeviceMemoryOpaqueCaptureAddressInfo) Free() { + if x != nil && x.allocsbbe30c6e != nil { + x.allocsbbe30c6e.(*cgoAllocMap).Free() + x.refbbe30c6e = nil + } +} + +// NewDeviceMemoryOpaqueCaptureAddressInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDeviceMemoryOpaqueCaptureAddressInfoRef(ref unsafe.Pointer) *DeviceMemoryOpaqueCaptureAddressInfo { + if ref == nil { + return nil + } + obj := new(DeviceMemoryOpaqueCaptureAddressInfo) + obj.refbbe30c6e = (*C.VkDeviceMemoryOpaqueCaptureAddressInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DeviceMemoryOpaqueCaptureAddressInfo) PassRef() (*C.VkDeviceMemoryOpaqueCaptureAddressInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refbbe30c6e != nil { + return x.refbbe30c6e, nil + } + membbe30c6e := allocDeviceMemoryOpaqueCaptureAddressInfoMemory(1) + refbbe30c6e := (*C.VkDeviceMemoryOpaqueCaptureAddressInfo)(membbe30c6e) + allocsbbe30c6e := new(cgoAllocMap) + allocsbbe30c6e.Add(membbe30c6e) + + var csType_allocs *cgoAllocMap + refbbe30c6e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbbe30c6e.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refbbe30c6e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbbe30c6e.Borrow(cpNext_allocs) + + var cmemory_allocs *cgoAllocMap + refbbe30c6e.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocsbbe30c6e.Borrow(cmemory_allocs) + + x.refbbe30c6e = refbbe30c6e + x.allocsbbe30c6e = allocsbbe30c6e + return refbbe30c6e, allocsbbe30c6e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DeviceMemoryOpaqueCaptureAddressInfo) PassValue() (C.VkDeviceMemoryOpaqueCaptureAddressInfo, *cgoAllocMap) { + if x.refbbe30c6e != nil { + return *x.refbbe30c6e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DeviceMemoryOpaqueCaptureAddressInfo) Deref() { + if x.refbbe30c6e == nil { + return + } + x.SType = (StructureType)(x.refbbe30c6e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbbe30c6e.pNext)) + x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.refbbe30c6e.memory)) +} + +// allocPhysicalDeviceVulkan13FeaturesMemory allocates memory for type C.VkPhysicalDeviceVulkan13Features in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceVulkan13FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVulkan13FeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceVulkan13FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkan13Features{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceVulkan13Features) Ref() *C.VkPhysicalDeviceVulkan13Features { + if x == nil { + return nil + } + return x.reffbc57469 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceVulkan13Features) Free() { + if x != nil && x.allocsfbc57469 != nil { + x.allocsfbc57469.(*cgoAllocMap).Free() + x.reffbc57469 = nil + } +} + +// NewPhysicalDeviceVulkan13FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceVulkan13FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVulkan13Features { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceVulkan13Features) + obj.reffbc57469 = (*C.VkPhysicalDeviceVulkan13Features)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceVulkan13Features) PassRef() (*C.VkPhysicalDeviceVulkan13Features, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reffbc57469 != nil { + return x.reffbc57469, nil + } + memfbc57469 := allocPhysicalDeviceVulkan13FeaturesMemory(1) + reffbc57469 := (*C.VkPhysicalDeviceVulkan13Features)(memfbc57469) + allocsfbc57469 := new(cgoAllocMap) + allocsfbc57469.Add(memfbc57469) + + var csType_allocs *cgoAllocMap + reffbc57469.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfbc57469.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reffbc57469.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfbc57469.Borrow(cpNext_allocs) + + var crobustImageAccess_allocs *cgoAllocMap + reffbc57469.robustImageAccess, crobustImageAccess_allocs = (C.VkBool32)(x.RobustImageAccess), cgoAllocsUnknown + allocsfbc57469.Borrow(crobustImageAccess_allocs) + + var cinlineUniformBlock_allocs *cgoAllocMap + reffbc57469.inlineUniformBlock, cinlineUniformBlock_allocs = (C.VkBool32)(x.InlineUniformBlock), cgoAllocsUnknown + allocsfbc57469.Borrow(cinlineUniformBlock_allocs) + + var cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs *cgoAllocMap + reffbc57469.descriptorBindingInlineUniformBlockUpdateAfterBind, cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingInlineUniformBlockUpdateAfterBind), cgoAllocsUnknown + allocsfbc57469.Borrow(cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs) + + var cpipelineCreationCacheControl_allocs *cgoAllocMap + reffbc57469.pipelineCreationCacheControl, cpipelineCreationCacheControl_allocs = (C.VkBool32)(x.PipelineCreationCacheControl), cgoAllocsUnknown + allocsfbc57469.Borrow(cpipelineCreationCacheControl_allocs) + + var cprivateData_allocs *cgoAllocMap + reffbc57469.privateData, cprivateData_allocs = (C.VkBool32)(x.PrivateData), cgoAllocsUnknown + allocsfbc57469.Borrow(cprivateData_allocs) + + var cshaderDemoteToHelperInvocation_allocs *cgoAllocMap + reffbc57469.shaderDemoteToHelperInvocation, cshaderDemoteToHelperInvocation_allocs = (C.VkBool32)(x.ShaderDemoteToHelperInvocation), cgoAllocsUnknown + allocsfbc57469.Borrow(cshaderDemoteToHelperInvocation_allocs) + + var cshaderTerminateInvocation_allocs *cgoAllocMap + reffbc57469.shaderTerminateInvocation, cshaderTerminateInvocation_allocs = (C.VkBool32)(x.ShaderTerminateInvocation), cgoAllocsUnknown + allocsfbc57469.Borrow(cshaderTerminateInvocation_allocs) + + var csubgroupSizeControl_allocs *cgoAllocMap + reffbc57469.subgroupSizeControl, csubgroupSizeControl_allocs = (C.VkBool32)(x.SubgroupSizeControl), cgoAllocsUnknown + allocsfbc57469.Borrow(csubgroupSizeControl_allocs) + + var ccomputeFullSubgroups_allocs *cgoAllocMap + reffbc57469.computeFullSubgroups, ccomputeFullSubgroups_allocs = (C.VkBool32)(x.ComputeFullSubgroups), cgoAllocsUnknown + allocsfbc57469.Borrow(ccomputeFullSubgroups_allocs) + + var csynchronization2_allocs *cgoAllocMap + reffbc57469.synchronization2, csynchronization2_allocs = (C.VkBool32)(x.Synchronization2), cgoAllocsUnknown + allocsfbc57469.Borrow(csynchronization2_allocs) + + var ctextureCompressionASTC_HDR_allocs *cgoAllocMap + reffbc57469.textureCompressionASTC_HDR, ctextureCompressionASTC_HDR_allocs = (C.VkBool32)(x.TextureCompressionASTC_HDR), cgoAllocsUnknown + allocsfbc57469.Borrow(ctextureCompressionASTC_HDR_allocs) + + var cshaderZeroInitializeWorkgroupMemory_allocs *cgoAllocMap + reffbc57469.shaderZeroInitializeWorkgroupMemory, cshaderZeroInitializeWorkgroupMemory_allocs = (C.VkBool32)(x.ShaderZeroInitializeWorkgroupMemory), cgoAllocsUnknown + allocsfbc57469.Borrow(cshaderZeroInitializeWorkgroupMemory_allocs) + + var cdynamicRendering_allocs *cgoAllocMap + reffbc57469.dynamicRendering, cdynamicRendering_allocs = (C.VkBool32)(x.DynamicRendering), cgoAllocsUnknown + allocsfbc57469.Borrow(cdynamicRendering_allocs) + + var cshaderIntegerDotProduct_allocs *cgoAllocMap + reffbc57469.shaderIntegerDotProduct, cshaderIntegerDotProduct_allocs = (C.VkBool32)(x.ShaderIntegerDotProduct), cgoAllocsUnknown + allocsfbc57469.Borrow(cshaderIntegerDotProduct_allocs) + + var cmaintenance4_allocs *cgoAllocMap + reffbc57469.maintenance4, cmaintenance4_allocs = (C.VkBool32)(x.Maintenance4), cgoAllocsUnknown + allocsfbc57469.Borrow(cmaintenance4_allocs) + + x.reffbc57469 = reffbc57469 + x.allocsfbc57469 = allocsfbc57469 + return reffbc57469, allocsfbc57469 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceVulkan13Features) PassValue() (C.VkPhysicalDeviceVulkan13Features, *cgoAllocMap) { + if x.reffbc57469 != nil { + return *x.reffbc57469, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceVulkan13Features) Deref() { + if x.reffbc57469 == nil { + return + } + x.SType = (StructureType)(x.reffbc57469.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffbc57469.pNext)) + x.RobustImageAccess = (Bool32)(x.reffbc57469.robustImageAccess) + x.InlineUniformBlock = (Bool32)(x.reffbc57469.inlineUniformBlock) + x.DescriptorBindingInlineUniformBlockUpdateAfterBind = (Bool32)(x.reffbc57469.descriptorBindingInlineUniformBlockUpdateAfterBind) + x.PipelineCreationCacheControl = (Bool32)(x.reffbc57469.pipelineCreationCacheControl) + x.PrivateData = (Bool32)(x.reffbc57469.privateData) + x.ShaderDemoteToHelperInvocation = (Bool32)(x.reffbc57469.shaderDemoteToHelperInvocation) + x.ShaderTerminateInvocation = (Bool32)(x.reffbc57469.shaderTerminateInvocation) + x.SubgroupSizeControl = (Bool32)(x.reffbc57469.subgroupSizeControl) + x.ComputeFullSubgroups = (Bool32)(x.reffbc57469.computeFullSubgroups) + x.Synchronization2 = (Bool32)(x.reffbc57469.synchronization2) + x.TextureCompressionASTC_HDR = (Bool32)(x.reffbc57469.textureCompressionASTC_HDR) + x.ShaderZeroInitializeWorkgroupMemory = (Bool32)(x.reffbc57469.shaderZeroInitializeWorkgroupMemory) + x.DynamicRendering = (Bool32)(x.reffbc57469.dynamicRendering) + x.ShaderIntegerDotProduct = (Bool32)(x.reffbc57469.shaderIntegerDotProduct) + x.Maintenance4 = (Bool32)(x.reffbc57469.maintenance4) +} + +// allocPhysicalDeviceVulkan13PropertiesMemory allocates memory for type C.VkPhysicalDeviceVulkan13Properties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceVulkan13PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVulkan13PropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceVulkan13PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkan13Properties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceVulkan13Properties) Ref() *C.VkPhysicalDeviceVulkan13Properties { + if x == nil { + return nil + } + return x.ref8a1ecf64 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceVulkan13Properties) Free() { + if x != nil && x.allocs8a1ecf64 != nil { + x.allocs8a1ecf64.(*cgoAllocMap).Free() + x.ref8a1ecf64 = nil + } +} + +// NewPhysicalDeviceVulkan13PropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceVulkan13PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceVulkan13Properties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceVulkan13Properties) + obj.ref8a1ecf64 = (*C.VkPhysicalDeviceVulkan13Properties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceVulkan13Properties) PassRef() (*C.VkPhysicalDeviceVulkan13Properties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref8a1ecf64 != nil { + return x.ref8a1ecf64, nil + } + mem8a1ecf64 := allocPhysicalDeviceVulkan13PropertiesMemory(1) + ref8a1ecf64 := (*C.VkPhysicalDeviceVulkan13Properties)(mem8a1ecf64) + allocs8a1ecf64 := new(cgoAllocMap) + allocs8a1ecf64.Add(mem8a1ecf64) + + var csType_allocs *cgoAllocMap + ref8a1ecf64.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8a1ecf64.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref8a1ecf64.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cpNext_allocs) + + var cminSubgroupSize_allocs *cgoAllocMap + ref8a1ecf64.minSubgroupSize, cminSubgroupSize_allocs = (C.uint32_t)(x.MinSubgroupSize), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cminSubgroupSize_allocs) + + var cmaxSubgroupSize_allocs *cgoAllocMap + ref8a1ecf64.maxSubgroupSize, cmaxSubgroupSize_allocs = (C.uint32_t)(x.MaxSubgroupSize), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cmaxSubgroupSize_allocs) + + var cmaxComputeWorkgroupSubgroups_allocs *cgoAllocMap + ref8a1ecf64.maxComputeWorkgroupSubgroups, cmaxComputeWorkgroupSubgroups_allocs = (C.uint32_t)(x.MaxComputeWorkgroupSubgroups), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cmaxComputeWorkgroupSubgroups_allocs) + + var crequiredSubgroupSizeStages_allocs *cgoAllocMap + ref8a1ecf64.requiredSubgroupSizeStages, crequiredSubgroupSizeStages_allocs = (C.VkShaderStageFlags)(x.RequiredSubgroupSizeStages), cgoAllocsUnknown + allocs8a1ecf64.Borrow(crequiredSubgroupSizeStages_allocs) + + var cmaxInlineUniformBlockSize_allocs *cgoAllocMap + ref8a1ecf64.maxInlineUniformBlockSize, cmaxInlineUniformBlockSize_allocs = (C.uint32_t)(x.MaxInlineUniformBlockSize), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cmaxInlineUniformBlockSize_allocs) + + var cmaxPerStageDescriptorInlineUniformBlocks_allocs *cgoAllocMap + ref8a1ecf64.maxPerStageDescriptorInlineUniformBlocks, cmaxPerStageDescriptorInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxPerStageDescriptorInlineUniformBlocks), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cmaxPerStageDescriptorInlineUniformBlocks_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs *cgoAllocMap + ref8a1ecf64.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks, cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs) + + var cmaxDescriptorSetInlineUniformBlocks_allocs *cgoAllocMap + ref8a1ecf64.maxDescriptorSetInlineUniformBlocks, cmaxDescriptorSetInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxDescriptorSetInlineUniformBlocks), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cmaxDescriptorSetInlineUniformBlocks_allocs) + + var cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs *cgoAllocMap + ref8a1ecf64.maxDescriptorSetUpdateAfterBindInlineUniformBlocks, cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindInlineUniformBlocks), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs) + + var cmaxInlineUniformTotalSize_allocs *cgoAllocMap + ref8a1ecf64.maxInlineUniformTotalSize, cmaxInlineUniformTotalSize_allocs = (C.uint32_t)(x.MaxInlineUniformTotalSize), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cmaxInlineUniformTotalSize_allocs) + + var cintegerDotProduct8BitUnsignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct8BitUnsignedAccelerated, cintegerDotProduct8BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct8BitUnsignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct8BitUnsignedAccelerated_allocs) + + var cintegerDotProduct8BitSignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct8BitSignedAccelerated, cintegerDotProduct8BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct8BitSignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct8BitSignedAccelerated_allocs) + + var cintegerDotProduct8BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct8BitMixedSignednessAccelerated, cintegerDotProduct8BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct8BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct8BitMixedSignednessAccelerated_allocs) + + var cintegerDotProduct4x8BitPackedUnsignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct4x8BitPackedUnsignedAccelerated, cintegerDotProduct4x8BitPackedUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct4x8BitPackedUnsignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct4x8BitPackedUnsignedAccelerated_allocs) + + var cintegerDotProduct4x8BitPackedSignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct4x8BitPackedSignedAccelerated, cintegerDotProduct4x8BitPackedSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct4x8BitPackedSignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct4x8BitPackedSignedAccelerated_allocs) + + var cintegerDotProduct4x8BitPackedMixedSignednessAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct4x8BitPackedMixedSignednessAccelerated, cintegerDotProduct4x8BitPackedMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct4x8BitPackedMixedSignednessAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct4x8BitPackedMixedSignednessAccelerated_allocs) + + var cintegerDotProduct16BitUnsignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct16BitUnsignedAccelerated, cintegerDotProduct16BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct16BitUnsignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct16BitUnsignedAccelerated_allocs) + + var cintegerDotProduct16BitSignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct16BitSignedAccelerated, cintegerDotProduct16BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct16BitSignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct16BitSignedAccelerated_allocs) + + var cintegerDotProduct16BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct16BitMixedSignednessAccelerated, cintegerDotProduct16BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct16BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct16BitMixedSignednessAccelerated_allocs) + + var cintegerDotProduct32BitUnsignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct32BitUnsignedAccelerated, cintegerDotProduct32BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct32BitUnsignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct32BitUnsignedAccelerated_allocs) + + var cintegerDotProduct32BitSignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct32BitSignedAccelerated, cintegerDotProduct32BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct32BitSignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct32BitSignedAccelerated_allocs) + + var cintegerDotProduct32BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct32BitMixedSignednessAccelerated, cintegerDotProduct32BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct32BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct32BitMixedSignednessAccelerated_allocs) + + var cintegerDotProduct64BitUnsignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct64BitUnsignedAccelerated, cintegerDotProduct64BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct64BitUnsignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct64BitUnsignedAccelerated_allocs) + + var cintegerDotProduct64BitSignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct64BitSignedAccelerated, cintegerDotProduct64BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct64BitSignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct64BitSignedAccelerated_allocs) + + var cintegerDotProduct64BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProduct64BitMixedSignednessAccelerated, cintegerDotProduct64BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct64BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProduct64BitMixedSignednessAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated, cintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating8BitUnsignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating8BitSignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating8BitSignedAccelerated, cintegerDotProductAccumulatingSaturating8BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating8BitSignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating8BitSignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated, cintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated, cintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated, cintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated, cintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated, cintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating16BitUnsignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating16BitSignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating16BitSignedAccelerated, cintegerDotProductAccumulatingSaturating16BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating16BitSignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating16BitSignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated, cintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated, cintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating32BitUnsignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating32BitSignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating32BitSignedAccelerated, cintegerDotProductAccumulatingSaturating32BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating32BitSignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating32BitSignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated, cintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated, cintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating64BitUnsignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating64BitSignedAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating64BitSignedAccelerated, cintegerDotProductAccumulatingSaturating64BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating64BitSignedAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating64BitSignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref8a1ecf64.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated, cintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_allocs) + + var cstorageTexelBufferOffsetAlignmentBytes_allocs *cgoAllocMap + ref8a1ecf64.storageTexelBufferOffsetAlignmentBytes, cstorageTexelBufferOffsetAlignmentBytes_allocs = (C.VkDeviceSize)(x.StorageTexelBufferOffsetAlignmentBytes), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cstorageTexelBufferOffsetAlignmentBytes_allocs) + + var cstorageTexelBufferOffsetSingleTexelAlignment_allocs *cgoAllocMap + ref8a1ecf64.storageTexelBufferOffsetSingleTexelAlignment, cstorageTexelBufferOffsetSingleTexelAlignment_allocs = (C.VkBool32)(x.StorageTexelBufferOffsetSingleTexelAlignment), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cstorageTexelBufferOffsetSingleTexelAlignment_allocs) + + var cuniformTexelBufferOffsetAlignmentBytes_allocs *cgoAllocMap + ref8a1ecf64.uniformTexelBufferOffsetAlignmentBytes, cuniformTexelBufferOffsetAlignmentBytes_allocs = (C.VkDeviceSize)(x.UniformTexelBufferOffsetAlignmentBytes), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cuniformTexelBufferOffsetAlignmentBytes_allocs) + + var cuniformTexelBufferOffsetSingleTexelAlignment_allocs *cgoAllocMap + ref8a1ecf64.uniformTexelBufferOffsetSingleTexelAlignment, cuniformTexelBufferOffsetSingleTexelAlignment_allocs = (C.VkBool32)(x.UniformTexelBufferOffsetSingleTexelAlignment), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cuniformTexelBufferOffsetSingleTexelAlignment_allocs) + + var cmaxBufferSize_allocs *cgoAllocMap + ref8a1ecf64.maxBufferSize, cmaxBufferSize_allocs = (C.VkDeviceSize)(x.MaxBufferSize), cgoAllocsUnknown + allocs8a1ecf64.Borrow(cmaxBufferSize_allocs) + + x.ref8a1ecf64 = ref8a1ecf64 + x.allocs8a1ecf64 = allocs8a1ecf64 + return ref8a1ecf64, allocs8a1ecf64 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceVulkan13Properties) PassValue() (C.VkPhysicalDeviceVulkan13Properties, *cgoAllocMap) { + if x.ref8a1ecf64 != nil { + return *x.ref8a1ecf64, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceVulkan13Properties) Deref() { + if x.ref8a1ecf64 == nil { + return + } + x.SType = (StructureType)(x.ref8a1ecf64.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8a1ecf64.pNext)) + x.MinSubgroupSize = (uint32)(x.ref8a1ecf64.minSubgroupSize) + x.MaxSubgroupSize = (uint32)(x.ref8a1ecf64.maxSubgroupSize) + x.MaxComputeWorkgroupSubgroups = (uint32)(x.ref8a1ecf64.maxComputeWorkgroupSubgroups) + x.RequiredSubgroupSizeStages = (ShaderStageFlags)(x.ref8a1ecf64.requiredSubgroupSizeStages) + x.MaxInlineUniformBlockSize = (uint32)(x.ref8a1ecf64.maxInlineUniformBlockSize) + x.MaxPerStageDescriptorInlineUniformBlocks = (uint32)(x.ref8a1ecf64.maxPerStageDescriptorInlineUniformBlocks) + x.MaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = (uint32)(x.ref8a1ecf64.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks) + x.MaxDescriptorSetInlineUniformBlocks = (uint32)(x.ref8a1ecf64.maxDescriptorSetInlineUniformBlocks) + x.MaxDescriptorSetUpdateAfterBindInlineUniformBlocks = (uint32)(x.ref8a1ecf64.maxDescriptorSetUpdateAfterBindInlineUniformBlocks) + x.MaxInlineUniformTotalSize = (uint32)(x.ref8a1ecf64.maxInlineUniformTotalSize) + x.IntegerDotProduct8BitUnsignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct8BitUnsignedAccelerated) + x.IntegerDotProduct8BitSignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct8BitSignedAccelerated) + x.IntegerDotProduct8BitMixedSignednessAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct8BitMixedSignednessAccelerated) + x.IntegerDotProduct4x8BitPackedUnsignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct4x8BitPackedUnsignedAccelerated) + x.IntegerDotProduct4x8BitPackedSignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct4x8BitPackedSignedAccelerated) + x.IntegerDotProduct4x8BitPackedMixedSignednessAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct4x8BitPackedMixedSignednessAccelerated) + x.IntegerDotProduct16BitUnsignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct16BitUnsignedAccelerated) + x.IntegerDotProduct16BitSignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct16BitSignedAccelerated) + x.IntegerDotProduct16BitMixedSignednessAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct16BitMixedSignednessAccelerated) + x.IntegerDotProduct32BitUnsignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct32BitUnsignedAccelerated) + x.IntegerDotProduct32BitSignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct32BitSignedAccelerated) + x.IntegerDotProduct32BitMixedSignednessAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct32BitMixedSignednessAccelerated) + x.IntegerDotProduct64BitUnsignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct64BitUnsignedAccelerated) + x.IntegerDotProduct64BitSignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct64BitSignedAccelerated) + x.IntegerDotProduct64BitMixedSignednessAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProduct64BitMixedSignednessAccelerated) + x.IntegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) + x.IntegerDotProductAccumulatingSaturating8BitSignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating8BitSignedAccelerated) + x.IntegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) + x.IntegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) + x.IntegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) + x.IntegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) + x.IntegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) + x.IntegerDotProductAccumulatingSaturating16BitSignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating16BitSignedAccelerated) + x.IntegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) + x.IntegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) + x.IntegerDotProductAccumulatingSaturating32BitSignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating32BitSignedAccelerated) + x.IntegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) + x.IntegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) + x.IntegerDotProductAccumulatingSaturating64BitSignedAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating64BitSignedAccelerated) + x.IntegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = (Bool32)(x.ref8a1ecf64.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated) + x.StorageTexelBufferOffsetAlignmentBytes = (DeviceSize)(x.ref8a1ecf64.storageTexelBufferOffsetAlignmentBytes) + x.StorageTexelBufferOffsetSingleTexelAlignment = (Bool32)(x.ref8a1ecf64.storageTexelBufferOffsetSingleTexelAlignment) + x.UniformTexelBufferOffsetAlignmentBytes = (DeviceSize)(x.ref8a1ecf64.uniformTexelBufferOffsetAlignmentBytes) + x.UniformTexelBufferOffsetSingleTexelAlignment = (Bool32)(x.ref8a1ecf64.uniformTexelBufferOffsetSingleTexelAlignment) + x.MaxBufferSize = (DeviceSize)(x.ref8a1ecf64.maxBufferSize) +} + +// allocPipelineCreationFeedbackMemory allocates memory for type C.VkPipelineCreationFeedback in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineCreationFeedbackMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCreationFeedbackValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineCreationFeedbackValue = unsafe.Sizeof([1]C.VkPipelineCreationFeedback{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineCreationFeedback) Ref() *C.VkPipelineCreationFeedback { + if x == nil { + return nil + } + return x.ref98e30cfe +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineCreationFeedback) Free() { + if x != nil && x.allocs98e30cfe != nil { + x.allocs98e30cfe.(*cgoAllocMap).Free() + x.ref98e30cfe = nil + } +} + +// NewPipelineCreationFeedbackRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineCreationFeedbackRef(ref unsafe.Pointer) *PipelineCreationFeedback { + if ref == nil { + return nil + } + obj := new(PipelineCreationFeedback) + obj.ref98e30cfe = (*C.VkPipelineCreationFeedback)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineCreationFeedback) PassRef() (*C.VkPipelineCreationFeedback, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref98e30cfe != nil { + return x.ref98e30cfe, nil + } + mem98e30cfe := allocPipelineCreationFeedbackMemory(1) + ref98e30cfe := (*C.VkPipelineCreationFeedback)(mem98e30cfe) + allocs98e30cfe := new(cgoAllocMap) + allocs98e30cfe.Add(mem98e30cfe) + + var cflags_allocs *cgoAllocMap + ref98e30cfe.flags, cflags_allocs = (C.VkPipelineCreationFeedbackFlags)(x.Flags), cgoAllocsUnknown + allocs98e30cfe.Borrow(cflags_allocs) + + var cduration_allocs *cgoAllocMap + ref98e30cfe.duration, cduration_allocs = (C.uint64_t)(x.Duration), cgoAllocsUnknown + allocs98e30cfe.Borrow(cduration_allocs) + + x.ref98e30cfe = ref98e30cfe + x.allocs98e30cfe = allocs98e30cfe + return ref98e30cfe, allocs98e30cfe + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineCreationFeedback) PassValue() (C.VkPipelineCreationFeedback, *cgoAllocMap) { + if x.ref98e30cfe != nil { + return *x.ref98e30cfe, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineCreationFeedback) Deref() { + if x.ref98e30cfe == nil { + return + } + x.Flags = (PipelineCreationFeedbackFlags)(x.ref98e30cfe.flags) + x.Duration = (uint64)(x.ref98e30cfe.duration) +} + +// allocPipelineCreationFeedbackCreateInfoMemory allocates memory for type C.VkPipelineCreationFeedbackCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineCreationFeedbackCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCreationFeedbackCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineCreationFeedbackCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineCreationFeedbackCreateInfo{}) + +// unpackSPipelineCreationFeedback transforms a sliced Go data structure into plain C format. +func unpackSPipelineCreationFeedback(x []PipelineCreationFeedback) (unpacked *C.VkPipelineCreationFeedback, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineCreationFeedback) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocPipelineCreationFeedbackMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkPipelineCreationFeedback)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkPipelineCreationFeedback)(h.Data) + return +} + +// packSPipelineCreationFeedback reads sliced Go data structure out from plain C format. +func packSPipelineCreationFeedback(v []PipelineCreationFeedback, ptr0 *C.VkPipelineCreationFeedback) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfPipelineCreationFeedbackValue]C.VkPipelineCreationFeedback)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewPipelineCreationFeedbackRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineCreationFeedbackCreateInfo) Ref() *C.VkPipelineCreationFeedbackCreateInfo { + if x == nil { + return nil + } + return x.ref4fcf7570 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineCreationFeedbackCreateInfo) Free() { + if x != nil && x.allocs4fcf7570 != nil { + x.allocs4fcf7570.(*cgoAllocMap).Free() + x.ref4fcf7570 = nil + } +} + +// NewPipelineCreationFeedbackCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineCreationFeedbackCreateInfoRef(ref unsafe.Pointer) *PipelineCreationFeedbackCreateInfo { + if ref == nil { + return nil + } + obj := new(PipelineCreationFeedbackCreateInfo) + obj.ref4fcf7570 = (*C.VkPipelineCreationFeedbackCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineCreationFeedbackCreateInfo) PassRef() (*C.VkPipelineCreationFeedbackCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref4fcf7570 != nil { + return x.ref4fcf7570, nil + } + mem4fcf7570 := allocPipelineCreationFeedbackCreateInfoMemory(1) + ref4fcf7570 := (*C.VkPipelineCreationFeedbackCreateInfo)(mem4fcf7570) + allocs4fcf7570 := new(cgoAllocMap) + allocs4fcf7570.Add(mem4fcf7570) + + var csType_allocs *cgoAllocMap + ref4fcf7570.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4fcf7570.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref4fcf7570.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4fcf7570.Borrow(cpNext_allocs) + + var cpPipelineCreationFeedback_allocs *cgoAllocMap + ref4fcf7570.pPipelineCreationFeedback, cpPipelineCreationFeedback_allocs = unpackSPipelineCreationFeedback(x.PPipelineCreationFeedback) + allocs4fcf7570.Borrow(cpPipelineCreationFeedback_allocs) + + var cpipelineStageCreationFeedbackCount_allocs *cgoAllocMap + ref4fcf7570.pipelineStageCreationFeedbackCount, cpipelineStageCreationFeedbackCount_allocs = (C.uint32_t)(x.PipelineStageCreationFeedbackCount), cgoAllocsUnknown + allocs4fcf7570.Borrow(cpipelineStageCreationFeedbackCount_allocs) + + var cpPipelineStageCreationFeedbacks_allocs *cgoAllocMap + ref4fcf7570.pPipelineStageCreationFeedbacks, cpPipelineStageCreationFeedbacks_allocs = unpackSPipelineCreationFeedback(x.PPipelineStageCreationFeedbacks) + allocs4fcf7570.Borrow(cpPipelineStageCreationFeedbacks_allocs) + + x.ref4fcf7570 = ref4fcf7570 + x.allocs4fcf7570 = allocs4fcf7570 + return ref4fcf7570, allocs4fcf7570 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineCreationFeedbackCreateInfo) PassValue() (C.VkPipelineCreationFeedbackCreateInfo, *cgoAllocMap) { + if x.ref4fcf7570 != nil { + return *x.ref4fcf7570, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineCreationFeedbackCreateInfo) Deref() { + if x.ref4fcf7570 == nil { + return + } + x.SType = (StructureType)(x.ref4fcf7570.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4fcf7570.pNext)) + packSPipelineCreationFeedback(x.PPipelineCreationFeedback, x.ref4fcf7570.pPipelineCreationFeedback) + x.PipelineStageCreationFeedbackCount = (uint32)(x.ref4fcf7570.pipelineStageCreationFeedbackCount) + packSPipelineCreationFeedback(x.PPipelineStageCreationFeedbacks, x.ref4fcf7570.pPipelineStageCreationFeedbacks) +} + +// allocPhysicalDeviceShaderTerminateInvocationFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderTerminateInvocationFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceShaderTerminateInvocationFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderTerminateInvocationFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceShaderTerminateInvocationFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderTerminateInvocationFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderTerminateInvocationFeatures) Ref() *C.VkPhysicalDeviceShaderTerminateInvocationFeatures { + if x == nil { + return nil + } + return x.ref49451fcb +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceShaderTerminateInvocationFeatures) Free() { + if x != nil && x.allocs49451fcb != nil { + x.allocs49451fcb.(*cgoAllocMap).Free() + x.ref49451fcb = nil + } +} + +// NewPhysicalDeviceShaderTerminateInvocationFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceShaderTerminateInvocationFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderTerminateInvocationFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceShaderTerminateInvocationFeatures) + obj.ref49451fcb = (*C.VkPhysicalDeviceShaderTerminateInvocationFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceShaderTerminateInvocationFeatures) PassRef() (*C.VkPhysicalDeviceShaderTerminateInvocationFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref49451fcb != nil { + return x.ref49451fcb, nil + } + mem49451fcb := allocPhysicalDeviceShaderTerminateInvocationFeaturesMemory(1) + ref49451fcb := (*C.VkPhysicalDeviceShaderTerminateInvocationFeatures)(mem49451fcb) + allocs49451fcb := new(cgoAllocMap) + allocs49451fcb.Add(mem49451fcb) + + var csType_allocs *cgoAllocMap + ref49451fcb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs49451fcb.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref49451fcb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs49451fcb.Borrow(cpNext_allocs) + + var cshaderTerminateInvocation_allocs *cgoAllocMap + ref49451fcb.shaderTerminateInvocation, cshaderTerminateInvocation_allocs = (C.VkBool32)(x.ShaderTerminateInvocation), cgoAllocsUnknown + allocs49451fcb.Borrow(cshaderTerminateInvocation_allocs) + + x.ref49451fcb = ref49451fcb + x.allocs49451fcb = allocs49451fcb + return ref49451fcb, allocs49451fcb + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceShaderTerminateInvocationFeatures) PassValue() (C.VkPhysicalDeviceShaderTerminateInvocationFeatures, *cgoAllocMap) { + if x.ref49451fcb != nil { + return *x.ref49451fcb, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceShaderTerminateInvocationFeatures) Deref() { + if x.ref49451fcb == nil { + return + } + x.SType = (StructureType)(x.ref49451fcb.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref49451fcb.pNext)) + x.ShaderTerminateInvocation = (Bool32)(x.ref49451fcb.shaderTerminateInvocation) +} + +// allocPhysicalDeviceToolPropertiesMemory allocates memory for type C.VkPhysicalDeviceToolProperties in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceToolPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceToolPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceToolPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceToolProperties{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceToolProperties) Ref() *C.VkPhysicalDeviceToolProperties { + if x == nil { + return nil + } + return x.ref88f98ec3 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceToolProperties) Free() { + if x != nil && x.allocs88f98ec3 != nil { + x.allocs88f98ec3.(*cgoAllocMap).Free() + x.ref88f98ec3 = nil + } +} + +// NewPhysicalDeviceToolPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceToolPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceToolProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceToolProperties) + obj.ref88f98ec3 = (*C.VkPhysicalDeviceToolProperties)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceToolProperties) PassRef() (*C.VkPhysicalDeviceToolProperties, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref88f98ec3 != nil { + return x.ref88f98ec3, nil + } + mem88f98ec3 := allocPhysicalDeviceToolPropertiesMemory(1) + ref88f98ec3 := (*C.VkPhysicalDeviceToolProperties)(mem88f98ec3) + allocs88f98ec3 := new(cgoAllocMap) + allocs88f98ec3.Add(mem88f98ec3) + + var csType_allocs *cgoAllocMap + ref88f98ec3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs88f98ec3.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref88f98ec3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs88f98ec3.Borrow(cpNext_allocs) + + var cname_allocs *cgoAllocMap + ref88f98ec3.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs88f98ec3.Borrow(cname_allocs) + + var cversion_allocs *cgoAllocMap + ref88f98ec3.version, cversion_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Version)), cgoAllocsUnknown + allocs88f98ec3.Borrow(cversion_allocs) + + var cpurposes_allocs *cgoAllocMap + ref88f98ec3.purposes, cpurposes_allocs = (C.VkToolPurposeFlags)(x.Purposes), cgoAllocsUnknown + allocs88f98ec3.Borrow(cpurposes_allocs) + + var cdescription_allocs *cgoAllocMap + ref88f98ec3.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown + allocs88f98ec3.Borrow(cdescription_allocs) + + var clayer_allocs *cgoAllocMap + ref88f98ec3.layer, clayer_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Layer)), cgoAllocsUnknown + allocs88f98ec3.Borrow(clayer_allocs) + + x.ref88f98ec3 = ref88f98ec3 + x.allocs88f98ec3 = allocs88f98ec3 + return ref88f98ec3, allocs88f98ec3 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceToolProperties) PassValue() (C.VkPhysicalDeviceToolProperties, *cgoAllocMap) { + if x.ref88f98ec3 != nil { + return *x.ref88f98ec3, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceToolProperties) Deref() { + if x.ref88f98ec3 == nil { + return + } + x.SType = (StructureType)(x.ref88f98ec3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref88f98ec3.pNext)) + x.Name = *(*[256]byte)(unsafe.Pointer(&x.ref88f98ec3.name)) + x.Version = *(*[256]byte)(unsafe.Pointer(&x.ref88f98ec3.version)) + x.Purposes = (ToolPurposeFlags)(x.ref88f98ec3.purposes) + x.Description = *(*[256]byte)(unsafe.Pointer(&x.ref88f98ec3.description)) + x.Layer = *(*[256]byte)(unsafe.Pointer(&x.ref88f98ec3.layer)) +} + +// allocPhysicalDeviceShaderDemoteToHelperInvocationFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceShaderDemoteToHelperInvocationFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderDemoteToHelperInvocationFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceShaderDemoteToHelperInvocationFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceShaderDemoteToHelperInvocationFeatures) Ref() *C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures { + if x == nil { + return nil + } + return x.ref5eeeae89 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceShaderDemoteToHelperInvocationFeatures) Free() { + if x != nil && x.allocs5eeeae89 != nil { + x.allocs5eeeae89.(*cgoAllocMap).Free() + x.ref5eeeae89 = nil + } +} + +// NewPhysicalDeviceShaderDemoteToHelperInvocationFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceShaderDemoteToHelperInvocationFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderDemoteToHelperInvocationFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceShaderDemoteToHelperInvocationFeatures) + obj.ref5eeeae89 = (*C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceShaderDemoteToHelperInvocationFeatures) PassRef() (*C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5eeeae89 != nil { + return x.ref5eeeae89, nil + } + mem5eeeae89 := allocPhysicalDeviceShaderDemoteToHelperInvocationFeaturesMemory(1) + ref5eeeae89 := (*C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures)(mem5eeeae89) + allocs5eeeae89 := new(cgoAllocMap) + allocs5eeeae89.Add(mem5eeeae89) + + var csType_allocs *cgoAllocMap + ref5eeeae89.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5eeeae89.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5eeeae89.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5eeeae89.Borrow(cpNext_allocs) + + var cshaderDemoteToHelperInvocation_allocs *cgoAllocMap + ref5eeeae89.shaderDemoteToHelperInvocation, cshaderDemoteToHelperInvocation_allocs = (C.VkBool32)(x.ShaderDemoteToHelperInvocation), cgoAllocsUnknown + allocs5eeeae89.Borrow(cshaderDemoteToHelperInvocation_allocs) + + x.ref5eeeae89 = ref5eeeae89 + x.allocs5eeeae89 = allocs5eeeae89 + return ref5eeeae89, allocs5eeeae89 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceShaderDemoteToHelperInvocationFeatures) PassValue() (C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, *cgoAllocMap) { + if x.ref5eeeae89 != nil { + return *x.ref5eeeae89, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceShaderDemoteToHelperInvocationFeatures) Deref() { + if x.ref5eeeae89 == nil { + return + } + x.SType = (StructureType)(x.ref5eeeae89.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5eeeae89.pNext)) + x.ShaderDemoteToHelperInvocation = (Bool32)(x.ref5eeeae89.shaderDemoteToHelperInvocation) +} + +// allocPhysicalDevicePrivateDataFeaturesMemory allocates memory for type C.VkPhysicalDevicePrivateDataFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDevicePrivateDataFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePrivateDataFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDevicePrivateDataFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePrivateDataFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDevicePrivateDataFeatures) Ref() *C.VkPhysicalDevicePrivateDataFeatures { + if x == nil { + return nil + } + return x.refeee8cb11 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDevicePrivateDataFeatures) Free() { + if x != nil && x.allocseee8cb11 != nil { + x.allocseee8cb11.(*cgoAllocMap).Free() + x.refeee8cb11 = nil + } +} + +// NewPhysicalDevicePrivateDataFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDevicePrivateDataFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePrivateDataFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDevicePrivateDataFeatures) + obj.refeee8cb11 = (*C.VkPhysicalDevicePrivateDataFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDevicePrivateDataFeatures) PassRef() (*C.VkPhysicalDevicePrivateDataFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refeee8cb11 != nil { + return x.refeee8cb11, nil + } + memeee8cb11 := allocPhysicalDevicePrivateDataFeaturesMemory(1) + refeee8cb11 := (*C.VkPhysicalDevicePrivateDataFeatures)(memeee8cb11) + allocseee8cb11 := new(cgoAllocMap) + allocseee8cb11.Add(memeee8cb11) + + var csType_allocs *cgoAllocMap + refeee8cb11.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseee8cb11.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refeee8cb11.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseee8cb11.Borrow(cpNext_allocs) + + var cprivateData_allocs *cgoAllocMap + refeee8cb11.privateData, cprivateData_allocs = (C.VkBool32)(x.PrivateData), cgoAllocsUnknown + allocseee8cb11.Borrow(cprivateData_allocs) + + x.refeee8cb11 = refeee8cb11 + x.allocseee8cb11 = allocseee8cb11 + return refeee8cb11, allocseee8cb11 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDevicePrivateDataFeatures) PassValue() (C.VkPhysicalDevicePrivateDataFeatures, *cgoAllocMap) { + if x.refeee8cb11 != nil { + return *x.refeee8cb11, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDevicePrivateDataFeatures) Deref() { + if x.refeee8cb11 == nil { + return + } + x.SType = (StructureType)(x.refeee8cb11.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeee8cb11.pNext)) + x.PrivateData = (Bool32)(x.refeee8cb11.privateData) +} + +// allocDevicePrivateDataCreateInfoMemory allocates memory for type C.VkDevicePrivateDataCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDevicePrivateDataCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDevicePrivateDataCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDevicePrivateDataCreateInfoValue = unsafe.Sizeof([1]C.VkDevicePrivateDataCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DevicePrivateDataCreateInfo) Ref() *C.VkDevicePrivateDataCreateInfo { + if x == nil { + return nil + } + return x.ref5e7326be +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DevicePrivateDataCreateInfo) Free() { + if x != nil && x.allocs5e7326be != nil { + x.allocs5e7326be.(*cgoAllocMap).Free() + x.ref5e7326be = nil + } +} + +// NewDevicePrivateDataCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDevicePrivateDataCreateInfoRef(ref unsafe.Pointer) *DevicePrivateDataCreateInfo { + if ref == nil { + return nil + } + obj := new(DevicePrivateDataCreateInfo) + obj.ref5e7326be = (*C.VkDevicePrivateDataCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DevicePrivateDataCreateInfo) PassRef() (*C.VkDevicePrivateDataCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5e7326be != nil { + return x.ref5e7326be, nil + } + mem5e7326be := allocDevicePrivateDataCreateInfoMemory(1) + ref5e7326be := (*C.VkDevicePrivateDataCreateInfo)(mem5e7326be) + allocs5e7326be := new(cgoAllocMap) + allocs5e7326be.Add(mem5e7326be) + + var csType_allocs *cgoAllocMap + ref5e7326be.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e7326be.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5e7326be.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e7326be.Borrow(cpNext_allocs) + + var cprivateDataSlotRequestCount_allocs *cgoAllocMap + ref5e7326be.privateDataSlotRequestCount, cprivateDataSlotRequestCount_allocs = (C.uint32_t)(x.PrivateDataSlotRequestCount), cgoAllocsUnknown + allocs5e7326be.Borrow(cprivateDataSlotRequestCount_allocs) + + x.ref5e7326be = ref5e7326be + x.allocs5e7326be = allocs5e7326be + return ref5e7326be, allocs5e7326be + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DevicePrivateDataCreateInfo) PassValue() (C.VkDevicePrivateDataCreateInfo, *cgoAllocMap) { + if x.ref5e7326be != nil { + return *x.ref5e7326be, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DevicePrivateDataCreateInfo) Deref() { + if x.ref5e7326be == nil { + return + } + x.SType = (StructureType)(x.ref5e7326be.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5e7326be.pNext)) + x.PrivateDataSlotRequestCount = (uint32)(x.ref5e7326be.privateDataSlotRequestCount) +} + +// allocPrivateDataSlotCreateInfoMemory allocates memory for type C.VkPrivateDataSlotCreateInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPrivateDataSlotCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPrivateDataSlotCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPrivateDataSlotCreateInfoValue = unsafe.Sizeof([1]C.VkPrivateDataSlotCreateInfo{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PrivateDataSlotCreateInfo) Ref() *C.VkPrivateDataSlotCreateInfo { + if x == nil { + return nil + } + return x.reffd6b0ff3 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PrivateDataSlotCreateInfo) Free() { + if x != nil && x.allocsfd6b0ff3 != nil { + x.allocsfd6b0ff3.(*cgoAllocMap).Free() + x.reffd6b0ff3 = nil + } +} + +// NewPrivateDataSlotCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPrivateDataSlotCreateInfoRef(ref unsafe.Pointer) *PrivateDataSlotCreateInfo { + if ref == nil { + return nil + } + obj := new(PrivateDataSlotCreateInfo) + obj.reffd6b0ff3 = (*C.VkPrivateDataSlotCreateInfo)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PrivateDataSlotCreateInfo) PassRef() (*C.VkPrivateDataSlotCreateInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.reffd6b0ff3 != nil { + return x.reffd6b0ff3, nil + } + memfd6b0ff3 := allocPrivateDataSlotCreateInfoMemory(1) + reffd6b0ff3 := (*C.VkPrivateDataSlotCreateInfo)(memfd6b0ff3) + allocsfd6b0ff3 := new(cgoAllocMap) + allocsfd6b0ff3.Add(memfd6b0ff3) + + var csType_allocs *cgoAllocMap + reffd6b0ff3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfd6b0ff3.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reffd6b0ff3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfd6b0ff3.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + reffd6b0ff3.flags, cflags_allocs = (C.VkPrivateDataSlotCreateFlags)(x.Flags), cgoAllocsUnknown + allocsfd6b0ff3.Borrow(cflags_allocs) + + x.reffd6b0ff3 = reffd6b0ff3 + x.allocsfd6b0ff3 = allocsfd6b0ff3 + return reffd6b0ff3, allocsfd6b0ff3 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PrivateDataSlotCreateInfo) PassValue() (C.VkPrivateDataSlotCreateInfo, *cgoAllocMap) { + if x.reffd6b0ff3 != nil { + return *x.reffd6b0ff3, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PrivateDataSlotCreateInfo) Deref() { + if x.reffd6b0ff3 == nil { + return + } + x.SType = (StructureType)(x.reffd6b0ff3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffd6b0ff3.pNext)) + x.Flags = (PrivateDataSlotCreateFlags)(x.reffd6b0ff3.flags) +} + +// allocPhysicalDevicePipelineCreationCacheControlFeaturesMemory allocates memory for type C.VkPhysicalDevicePipelineCreationCacheControlFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDevicePipelineCreationCacheControlFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePipelineCreationCacheControlFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDevicePipelineCreationCacheControlFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePipelineCreationCacheControlFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDevicePipelineCreationCacheControlFeatures) Ref() *C.VkPhysicalDevicePipelineCreationCacheControlFeatures { + if x == nil { + return nil + } + return x.ref5e373d52 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDevicePipelineCreationCacheControlFeatures) Free() { + if x != nil && x.allocs5e373d52 != nil { + x.allocs5e373d52.(*cgoAllocMap).Free() + x.ref5e373d52 = nil + } +} + +// NewPhysicalDevicePipelineCreationCacheControlFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDevicePipelineCreationCacheControlFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePipelineCreationCacheControlFeatures { + if ref == nil { + return nil + } + obj := new(PhysicalDevicePipelineCreationCacheControlFeatures) + obj.ref5e373d52 = (*C.VkPhysicalDevicePipelineCreationCacheControlFeatures)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDevicePipelineCreationCacheControlFeatures) PassRef() (*C.VkPhysicalDevicePipelineCreationCacheControlFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref5e373d52 != nil { + return x.ref5e373d52, nil + } + mem5e373d52 := allocPhysicalDevicePipelineCreationCacheControlFeaturesMemory(1) + ref5e373d52 := (*C.VkPhysicalDevicePipelineCreationCacheControlFeatures)(mem5e373d52) + allocs5e373d52 := new(cgoAllocMap) + allocs5e373d52.Add(mem5e373d52) + + var csType_allocs *cgoAllocMap + ref5e373d52.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e373d52.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref5e373d52.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e373d52.Borrow(cpNext_allocs) + + var cpipelineCreationCacheControl_allocs *cgoAllocMap + ref5e373d52.pipelineCreationCacheControl, cpipelineCreationCacheControl_allocs = (C.VkBool32)(x.PipelineCreationCacheControl), cgoAllocsUnknown + allocs5e373d52.Borrow(cpipelineCreationCacheControl_allocs) + + x.ref5e373d52 = ref5e373d52 + x.allocs5e373d52 = allocs5e373d52 + return ref5e373d52, allocs5e373d52 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDevicePipelineCreationCacheControlFeatures) PassValue() (C.VkPhysicalDevicePipelineCreationCacheControlFeatures, *cgoAllocMap) { + if x.ref5e373d52 != nil { + return *x.ref5e373d52, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDevicePipelineCreationCacheControlFeatures) Deref() { + if x.ref5e373d52 == nil { + return + } + x.SType = (StructureType)(x.ref5e373d52.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5e373d52.pNext)) + x.PipelineCreationCacheControl = (Bool32)(x.ref5e373d52.pipelineCreationCacheControl) +} + +// allocMemoryBarrier2Memory allocates memory for type C.VkMemoryBarrier2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocMemoryBarrier2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryBarrier2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfMemoryBarrier2Value = unsafe.Sizeof([1]C.VkMemoryBarrier2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *MemoryBarrier2) Ref() *C.VkMemoryBarrier2 { + if x == nil { + return nil + } + return x.ref8b26ae0e +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *MemoryBarrier2) Free() { + if x != nil && x.allocs8b26ae0e != nil { + x.allocs8b26ae0e.(*cgoAllocMap).Free() + x.ref8b26ae0e = nil + } +} + +// NewMemoryBarrier2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewMemoryBarrier2Ref(ref unsafe.Pointer) *MemoryBarrier2 { + if ref == nil { + return nil + } + obj := new(MemoryBarrier2) + obj.ref8b26ae0e = (*C.VkMemoryBarrier2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *MemoryBarrier2) PassRef() (*C.VkMemoryBarrier2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref8b26ae0e != nil { + return x.ref8b26ae0e, nil + } + mem8b26ae0e := allocMemoryBarrier2Memory(1) + ref8b26ae0e := (*C.VkMemoryBarrier2)(mem8b26ae0e) + allocs8b26ae0e := new(cgoAllocMap) + allocs8b26ae0e.Add(mem8b26ae0e) + + var csType_allocs *cgoAllocMap + ref8b26ae0e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8b26ae0e.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref8b26ae0e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8b26ae0e.Borrow(cpNext_allocs) + + var csrcStageMask_allocs *cgoAllocMap + ref8b26ae0e.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags2)(x.SrcStageMask), cgoAllocsUnknown + allocs8b26ae0e.Borrow(csrcStageMask_allocs) + + var csrcAccessMask_allocs *cgoAllocMap + ref8b26ae0e.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags2)(x.SrcAccessMask), cgoAllocsUnknown + allocs8b26ae0e.Borrow(csrcAccessMask_allocs) + + var cdstStageMask_allocs *cgoAllocMap + ref8b26ae0e.dstStageMask, cdstStageMask_allocs = (C.VkPipelineStageFlags2)(x.DstStageMask), cgoAllocsUnknown + allocs8b26ae0e.Borrow(cdstStageMask_allocs) + + var cdstAccessMask_allocs *cgoAllocMap + ref8b26ae0e.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags2)(x.DstAccessMask), cgoAllocsUnknown + allocs8b26ae0e.Borrow(cdstAccessMask_allocs) + + x.ref8b26ae0e = ref8b26ae0e + x.allocs8b26ae0e = allocs8b26ae0e + return ref8b26ae0e, allocs8b26ae0e + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x MemoryBarrier2) PassValue() (C.VkMemoryBarrier2, *cgoAllocMap) { + if x.ref8b26ae0e != nil { + return *x.ref8b26ae0e, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *MemoryBarrier2) Deref() { + if x.ref8b26ae0e == nil { + return + } + x.SType = (StructureType)(x.ref8b26ae0e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8b26ae0e.pNext)) + x.SrcStageMask = (PipelineStageFlags2)(x.ref8b26ae0e.srcStageMask) + x.SrcAccessMask = (AccessFlags2)(x.ref8b26ae0e.srcAccessMask) + x.DstStageMask = (PipelineStageFlags2)(x.ref8b26ae0e.dstStageMask) + x.DstAccessMask = (AccessFlags2)(x.ref8b26ae0e.dstAccessMask) +} + +// allocBufferMemoryBarrier2Memory allocates memory for type C.VkBufferMemoryBarrier2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocBufferMemoryBarrier2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferMemoryBarrier2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfBufferMemoryBarrier2Value = unsafe.Sizeof([1]C.VkBufferMemoryBarrier2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *BufferMemoryBarrier2) Ref() *C.VkBufferMemoryBarrier2 { + if x == nil { + return nil + } + return x.ref8ded93f5 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *BufferMemoryBarrier2) Free() { + if x != nil && x.allocs8ded93f5 != nil { + x.allocs8ded93f5.(*cgoAllocMap).Free() + x.ref8ded93f5 = nil + } +} + +// NewBufferMemoryBarrier2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewBufferMemoryBarrier2Ref(ref unsafe.Pointer) *BufferMemoryBarrier2 { + if ref == nil { + return nil + } + obj := new(BufferMemoryBarrier2) + obj.ref8ded93f5 = (*C.VkBufferMemoryBarrier2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *BufferMemoryBarrier2) PassRef() (*C.VkBufferMemoryBarrier2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref8ded93f5 != nil { + return x.ref8ded93f5, nil + } + mem8ded93f5 := allocBufferMemoryBarrier2Memory(1) + ref8ded93f5 := (*C.VkBufferMemoryBarrier2)(mem8ded93f5) + allocs8ded93f5 := new(cgoAllocMap) + allocs8ded93f5.Add(mem8ded93f5) + + var csType_allocs *cgoAllocMap + ref8ded93f5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8ded93f5.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref8ded93f5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8ded93f5.Borrow(cpNext_allocs) + + var csrcStageMask_allocs *cgoAllocMap + ref8ded93f5.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags2)(x.SrcStageMask), cgoAllocsUnknown + allocs8ded93f5.Borrow(csrcStageMask_allocs) + + var csrcAccessMask_allocs *cgoAllocMap + ref8ded93f5.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags2)(x.SrcAccessMask), cgoAllocsUnknown + allocs8ded93f5.Borrow(csrcAccessMask_allocs) + + var cdstStageMask_allocs *cgoAllocMap + ref8ded93f5.dstStageMask, cdstStageMask_allocs = (C.VkPipelineStageFlags2)(x.DstStageMask), cgoAllocsUnknown + allocs8ded93f5.Borrow(cdstStageMask_allocs) + + var cdstAccessMask_allocs *cgoAllocMap + ref8ded93f5.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags2)(x.DstAccessMask), cgoAllocsUnknown + allocs8ded93f5.Borrow(cdstAccessMask_allocs) + + var csrcQueueFamilyIndex_allocs *cgoAllocMap + ref8ded93f5.srcQueueFamilyIndex, csrcQueueFamilyIndex_allocs = (C.uint32_t)(x.SrcQueueFamilyIndex), cgoAllocsUnknown + allocs8ded93f5.Borrow(csrcQueueFamilyIndex_allocs) + + var cdstQueueFamilyIndex_allocs *cgoAllocMap + ref8ded93f5.dstQueueFamilyIndex, cdstQueueFamilyIndex_allocs = (C.uint32_t)(x.DstQueueFamilyIndex), cgoAllocsUnknown + allocs8ded93f5.Borrow(cdstQueueFamilyIndex_allocs) + + var cbuffer_allocs *cgoAllocMap + ref8ded93f5.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs8ded93f5.Borrow(cbuffer_allocs) + + var coffset_allocs *cgoAllocMap + ref8ded93f5.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocs8ded93f5.Borrow(coffset_allocs) + + var csize_allocs *cgoAllocMap + ref8ded93f5.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocs8ded93f5.Borrow(csize_allocs) + + x.ref8ded93f5 = ref8ded93f5 + x.allocs8ded93f5 = allocs8ded93f5 + return ref8ded93f5, allocs8ded93f5 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x BufferMemoryBarrier2) PassValue() (C.VkBufferMemoryBarrier2, *cgoAllocMap) { + if x.ref8ded93f5 != nil { + return *x.ref8ded93f5, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *BufferMemoryBarrier2) Deref() { + if x.ref8ded93f5 == nil { + return + } + x.SType = (StructureType)(x.ref8ded93f5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8ded93f5.pNext)) + x.SrcStageMask = (PipelineStageFlags2)(x.ref8ded93f5.srcStageMask) + x.SrcAccessMask = (AccessFlags2)(x.ref8ded93f5.srcAccessMask) + x.DstStageMask = (PipelineStageFlags2)(x.ref8ded93f5.dstStageMask) + x.DstAccessMask = (AccessFlags2)(x.ref8ded93f5.dstAccessMask) + x.SrcQueueFamilyIndex = (uint32)(x.ref8ded93f5.srcQueueFamilyIndex) + x.DstQueueFamilyIndex = (uint32)(x.ref8ded93f5.dstQueueFamilyIndex) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref8ded93f5.buffer)) + x.Offset = (DeviceSize)(x.ref8ded93f5.offset) + x.Size = (DeviceSize)(x.ref8ded93f5.size) +} + +// allocImageMemoryBarrier2Memory allocates memory for type C.VkImageMemoryBarrier2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageMemoryBarrier2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageMemoryBarrier2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfImageMemoryBarrier2Value = unsafe.Sizeof([1]C.VkImageMemoryBarrier2{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageMemoryBarrier2) Ref() *C.VkImageMemoryBarrier2 { + if x == nil { + return nil + } + return x.refb3bc376a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageMemoryBarrier2) Free() { + if x != nil && x.allocsb3bc376a != nil { + x.allocsb3bc376a.(*cgoAllocMap).Free() + x.refb3bc376a = nil + } +} + +// NewImageMemoryBarrier2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageMemoryBarrier2Ref(ref unsafe.Pointer) *ImageMemoryBarrier2 { + if ref == nil { + return nil + } + obj := new(ImageMemoryBarrier2) + obj.refb3bc376a = (*C.VkImageMemoryBarrier2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageMemoryBarrier2) PassRef() (*C.VkImageMemoryBarrier2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb3bc376a != nil { + return x.refb3bc376a, nil + } + memb3bc376a := allocImageMemoryBarrier2Memory(1) + refb3bc376a := (*C.VkImageMemoryBarrier2)(memb3bc376a) + allocsb3bc376a := new(cgoAllocMap) + allocsb3bc376a.Add(memb3bc376a) + + var csType_allocs *cgoAllocMap + refb3bc376a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb3bc376a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb3bc376a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb3bc376a.Borrow(cpNext_allocs) + + var csrcStageMask_allocs *cgoAllocMap + refb3bc376a.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags2)(x.SrcStageMask), cgoAllocsUnknown + allocsb3bc376a.Borrow(csrcStageMask_allocs) + + var csrcAccessMask_allocs *cgoAllocMap + refb3bc376a.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags2)(x.SrcAccessMask), cgoAllocsUnknown + allocsb3bc376a.Borrow(csrcAccessMask_allocs) + + var cdstStageMask_allocs *cgoAllocMap + refb3bc376a.dstStageMask, cdstStageMask_allocs = (C.VkPipelineStageFlags2)(x.DstStageMask), cgoAllocsUnknown + allocsb3bc376a.Borrow(cdstStageMask_allocs) - var cmaxTessellationControlTotalOutputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationControlTotalOutputComponents, cmaxTessellationControlTotalOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationControlTotalOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationControlTotalOutputComponents_allocs) + var cdstAccessMask_allocs *cgoAllocMap + refb3bc376a.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags2)(x.DstAccessMask), cgoAllocsUnknown + allocsb3bc376a.Borrow(cdstAccessMask_allocs) - var cmaxTessellationEvaluationInputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationEvaluationInputComponents, cmaxTessellationEvaluationInputComponents_allocs = (C.uint32_t)(x.MaxTessellationEvaluationInputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationEvaluationInputComponents_allocs) + var coldLayout_allocs *cgoAllocMap + refb3bc376a.oldLayout, coldLayout_allocs = (C.VkImageLayout)(x.OldLayout), cgoAllocsUnknown + allocsb3bc376a.Borrow(coldLayout_allocs) - var cmaxTessellationEvaluationOutputComponents_allocs *cgoAllocMap - ref7926795a.maxTessellationEvaluationOutputComponents, cmaxTessellationEvaluationOutputComponents_allocs = (C.uint32_t)(x.MaxTessellationEvaluationOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTessellationEvaluationOutputComponents_allocs) + var cnewLayout_allocs *cgoAllocMap + refb3bc376a.newLayout, cnewLayout_allocs = (C.VkImageLayout)(x.NewLayout), cgoAllocsUnknown + allocsb3bc376a.Borrow(cnewLayout_allocs) - var cmaxGeometryShaderInvocations_allocs *cgoAllocMap - ref7926795a.maxGeometryShaderInvocations, cmaxGeometryShaderInvocations_allocs = (C.uint32_t)(x.MaxGeometryShaderInvocations), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxGeometryShaderInvocations_allocs) + var csrcQueueFamilyIndex_allocs *cgoAllocMap + refb3bc376a.srcQueueFamilyIndex, csrcQueueFamilyIndex_allocs = (C.uint32_t)(x.SrcQueueFamilyIndex), cgoAllocsUnknown + allocsb3bc376a.Borrow(csrcQueueFamilyIndex_allocs) - var cmaxGeometryInputComponents_allocs *cgoAllocMap - ref7926795a.maxGeometryInputComponents, cmaxGeometryInputComponents_allocs = (C.uint32_t)(x.MaxGeometryInputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxGeometryInputComponents_allocs) + var cdstQueueFamilyIndex_allocs *cgoAllocMap + refb3bc376a.dstQueueFamilyIndex, cdstQueueFamilyIndex_allocs = (C.uint32_t)(x.DstQueueFamilyIndex), cgoAllocsUnknown + allocsb3bc376a.Borrow(cdstQueueFamilyIndex_allocs) - var cmaxGeometryOutputComponents_allocs *cgoAllocMap - ref7926795a.maxGeometryOutputComponents, cmaxGeometryOutputComponents_allocs = (C.uint32_t)(x.MaxGeometryOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxGeometryOutputComponents_allocs) + var cimage_allocs *cgoAllocMap + refb3bc376a.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocsb3bc376a.Borrow(cimage_allocs) - var cmaxGeometryOutputVertices_allocs *cgoAllocMap - ref7926795a.maxGeometryOutputVertices, cmaxGeometryOutputVertices_allocs = (C.uint32_t)(x.MaxGeometryOutputVertices), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxGeometryOutputVertices_allocs) + var csubresourceRange_allocs *cgoAllocMap + refb3bc376a.subresourceRange, csubresourceRange_allocs = x.SubresourceRange.PassValue() + allocsb3bc376a.Borrow(csubresourceRange_allocs) - var cmaxGeometryTotalOutputComponents_allocs *cgoAllocMap - ref7926795a.maxGeometryTotalOutputComponents, cmaxGeometryTotalOutputComponents_allocs = (C.uint32_t)(x.MaxGeometryTotalOutputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxGeometryTotalOutputComponents_allocs) + x.refb3bc376a = refb3bc376a + x.allocsb3bc376a = allocsb3bc376a + return refb3bc376a, allocsb3bc376a - var cmaxFragmentInputComponents_allocs *cgoAllocMap - ref7926795a.maxFragmentInputComponents, cmaxFragmentInputComponents_allocs = (C.uint32_t)(x.MaxFragmentInputComponents), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFragmentInputComponents_allocs) +} - var cmaxFragmentOutputAttachments_allocs *cgoAllocMap - ref7926795a.maxFragmentOutputAttachments, cmaxFragmentOutputAttachments_allocs = (C.uint32_t)(x.MaxFragmentOutputAttachments), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFragmentOutputAttachments_allocs) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageMemoryBarrier2) PassValue() (C.VkImageMemoryBarrier2, *cgoAllocMap) { + if x.refb3bc376a != nil { + return *x.refb3bc376a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var cmaxFragmentDualSrcAttachments_allocs *cgoAllocMap - ref7926795a.maxFragmentDualSrcAttachments, cmaxFragmentDualSrcAttachments_allocs = (C.uint32_t)(x.MaxFragmentDualSrcAttachments), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFragmentDualSrcAttachments_allocs) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageMemoryBarrier2) Deref() { + if x.refb3bc376a == nil { + return + } + x.SType = (StructureType)(x.refb3bc376a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb3bc376a.pNext)) + x.SrcStageMask = (PipelineStageFlags2)(x.refb3bc376a.srcStageMask) + x.SrcAccessMask = (AccessFlags2)(x.refb3bc376a.srcAccessMask) + x.DstStageMask = (PipelineStageFlags2)(x.refb3bc376a.dstStageMask) + x.DstAccessMask = (AccessFlags2)(x.refb3bc376a.dstAccessMask) + x.OldLayout = (ImageLayout)(x.refb3bc376a.oldLayout) + x.NewLayout = (ImageLayout)(x.refb3bc376a.newLayout) + x.SrcQueueFamilyIndex = (uint32)(x.refb3bc376a.srcQueueFamilyIndex) + x.DstQueueFamilyIndex = (uint32)(x.refb3bc376a.dstQueueFamilyIndex) + x.Image = *(*Image)(unsafe.Pointer(&x.refb3bc376a.image)) + x.SubresourceRange = *NewImageSubresourceRangeRef(unsafe.Pointer(&x.refb3bc376a.subresourceRange)) +} + +// allocDependencyInfoMemory allocates memory for type C.VkDependencyInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDependencyInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDependencyInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} - var cmaxFragmentCombinedOutputResources_allocs *cgoAllocMap - ref7926795a.maxFragmentCombinedOutputResources, cmaxFragmentCombinedOutputResources_allocs = (C.uint32_t)(x.MaxFragmentCombinedOutputResources), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFragmentCombinedOutputResources_allocs) +const sizeOfDependencyInfoValue = unsafe.Sizeof([1]C.VkDependencyInfo{}) - var cmaxComputeSharedMemorySize_allocs *cgoAllocMap - ref7926795a.maxComputeSharedMemorySize, cmaxComputeSharedMemorySize_allocs = (C.uint32_t)(x.MaxComputeSharedMemorySize), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxComputeSharedMemorySize_allocs) +// unpackSMemoryBarrier2 transforms a sliced Go data structure into plain C format. +func unpackSMemoryBarrier2(x []MemoryBarrier2) (unpacked *C.VkMemoryBarrier2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkMemoryBarrier2) { + go allocs.Free() + }) - var cmaxComputeWorkGroupCount_allocs *cgoAllocMap - ref7926795a.maxComputeWorkGroupCount, cmaxComputeWorkGroupCount_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.MaxComputeWorkGroupCount)), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxComputeWorkGroupCount_allocs) + len0 := len(x) + mem0 := allocMemoryBarrier2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkMemoryBarrier2)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkMemoryBarrier2)(h.Data) + return +} - var cmaxComputeWorkGroupInvocations_allocs *cgoAllocMap - ref7926795a.maxComputeWorkGroupInvocations, cmaxComputeWorkGroupInvocations_allocs = (C.uint32_t)(x.MaxComputeWorkGroupInvocations), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxComputeWorkGroupInvocations_allocs) +// unpackSBufferMemoryBarrier2 transforms a sliced Go data structure into plain C format. +func unpackSBufferMemoryBarrier2(x []BufferMemoryBarrier2) (unpacked *C.VkBufferMemoryBarrier2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferMemoryBarrier2) { + go allocs.Free() + }) - var cmaxComputeWorkGroupSize_allocs *cgoAllocMap - ref7926795a.maxComputeWorkGroupSize, cmaxComputeWorkGroupSize_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.MaxComputeWorkGroupSize)), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxComputeWorkGroupSize_allocs) + len0 := len(x) + mem0 := allocBufferMemoryBarrier2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkBufferMemoryBarrier2)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkBufferMemoryBarrier2)(h.Data) + return +} - var csubPixelPrecisionBits_allocs *cgoAllocMap - ref7926795a.subPixelPrecisionBits, csubPixelPrecisionBits_allocs = (C.uint32_t)(x.SubPixelPrecisionBits), cgoAllocsUnknown - allocs7926795a.Borrow(csubPixelPrecisionBits_allocs) +// unpackSImageMemoryBarrier2 transforms a sliced Go data structure into plain C format. +func unpackSImageMemoryBarrier2(x []ImageMemoryBarrier2) (unpacked *C.VkImageMemoryBarrier2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageMemoryBarrier2) { + go allocs.Free() + }) - var csubTexelPrecisionBits_allocs *cgoAllocMap - ref7926795a.subTexelPrecisionBits, csubTexelPrecisionBits_allocs = (C.uint32_t)(x.SubTexelPrecisionBits), cgoAllocsUnknown - allocs7926795a.Borrow(csubTexelPrecisionBits_allocs) + len0 := len(x) + mem0 := allocImageMemoryBarrier2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkImageMemoryBarrier2)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkImageMemoryBarrier2)(h.Data) + return +} - var cmipmapPrecisionBits_allocs *cgoAllocMap - ref7926795a.mipmapPrecisionBits, cmipmapPrecisionBits_allocs = (C.uint32_t)(x.MipmapPrecisionBits), cgoAllocsUnknown - allocs7926795a.Borrow(cmipmapPrecisionBits_allocs) +// packSMemoryBarrier2 reads sliced Go data structure out from plain C format. +func packSMemoryBarrier2(v []MemoryBarrier2, ptr0 *C.VkMemoryBarrier2) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfMemoryBarrier2Value]C.VkMemoryBarrier2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewMemoryBarrier2Ref(unsafe.Pointer(&ptr1)) + } +} - var cmaxDrawIndexedIndexValue_allocs *cgoAllocMap - ref7926795a.maxDrawIndexedIndexValue, cmaxDrawIndexedIndexValue_allocs = (C.uint32_t)(x.MaxDrawIndexedIndexValue), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDrawIndexedIndexValue_allocs) +// packSBufferMemoryBarrier2 reads sliced Go data structure out from plain C format. +func packSBufferMemoryBarrier2(v []BufferMemoryBarrier2, ptr0 *C.VkBufferMemoryBarrier2) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfBufferMemoryBarrier2Value]C.VkBufferMemoryBarrier2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewBufferMemoryBarrier2Ref(unsafe.Pointer(&ptr1)) + } +} - var cmaxDrawIndirectCount_allocs *cgoAllocMap - ref7926795a.maxDrawIndirectCount, cmaxDrawIndirectCount_allocs = (C.uint32_t)(x.MaxDrawIndirectCount), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxDrawIndirectCount_allocs) +// packSImageMemoryBarrier2 reads sliced Go data structure out from plain C format. +func packSImageMemoryBarrier2(v []ImageMemoryBarrier2, ptr0 *C.VkImageMemoryBarrier2) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfImageMemoryBarrier2Value]C.VkImageMemoryBarrier2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewImageMemoryBarrier2Ref(unsafe.Pointer(&ptr1)) + } +} - var cmaxSamplerLodBias_allocs *cgoAllocMap - ref7926795a.maxSamplerLodBias, cmaxSamplerLodBias_allocs = (C.float)(x.MaxSamplerLodBias), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxSamplerLodBias_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DependencyInfo) Ref() *C.VkDependencyInfo { + if x == nil { + return nil + } + return x.ref18c760d2 +} - var cmaxSamplerAnisotropy_allocs *cgoAllocMap - ref7926795a.maxSamplerAnisotropy, cmaxSamplerAnisotropy_allocs = (C.float)(x.MaxSamplerAnisotropy), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxSamplerAnisotropy_allocs) +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DependencyInfo) Free() { + if x != nil && x.allocs18c760d2 != nil { + x.allocs18c760d2.(*cgoAllocMap).Free() + x.ref18c760d2 = nil + } +} - var cmaxViewports_allocs *cgoAllocMap - ref7926795a.maxViewports, cmaxViewports_allocs = (C.uint32_t)(x.MaxViewports), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxViewports_allocs) +// NewDependencyInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDependencyInfoRef(ref unsafe.Pointer) *DependencyInfo { + if ref == nil { + return nil + } + obj := new(DependencyInfo) + obj.ref18c760d2 = (*C.VkDependencyInfo)(unsafe.Pointer(ref)) + return obj +} - var cmaxViewportDimensions_allocs *cgoAllocMap - ref7926795a.maxViewportDimensions, cmaxViewportDimensions_allocs = *(*[2]C.uint32_t)(unsafe.Pointer(&x.MaxViewportDimensions)), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxViewportDimensions_allocs) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DependencyInfo) PassRef() (*C.VkDependencyInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref18c760d2 != nil { + return x.ref18c760d2, nil + } + mem18c760d2 := allocDependencyInfoMemory(1) + ref18c760d2 := (*C.VkDependencyInfo)(mem18c760d2) + allocs18c760d2 := new(cgoAllocMap) + allocs18c760d2.Add(mem18c760d2) - var cviewportBoundsRange_allocs *cgoAllocMap - ref7926795a.viewportBoundsRange, cviewportBoundsRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.ViewportBoundsRange)), cgoAllocsUnknown - allocs7926795a.Borrow(cviewportBoundsRange_allocs) + var csType_allocs *cgoAllocMap + ref18c760d2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs18c760d2.Borrow(csType_allocs) - var cviewportSubPixelBits_allocs *cgoAllocMap - ref7926795a.viewportSubPixelBits, cviewportSubPixelBits_allocs = (C.uint32_t)(x.ViewportSubPixelBits), cgoAllocsUnknown - allocs7926795a.Borrow(cviewportSubPixelBits_allocs) + var cpNext_allocs *cgoAllocMap + ref18c760d2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs18c760d2.Borrow(cpNext_allocs) - var cminMemoryMapAlignment_allocs *cgoAllocMap - ref7926795a.minMemoryMapAlignment, cminMemoryMapAlignment_allocs = (C.size_t)(x.MinMemoryMapAlignment), cgoAllocsUnknown - allocs7926795a.Borrow(cminMemoryMapAlignment_allocs) + var cdependencyFlags_allocs *cgoAllocMap + ref18c760d2.dependencyFlags, cdependencyFlags_allocs = (C.VkDependencyFlags)(x.DependencyFlags), cgoAllocsUnknown + allocs18c760d2.Borrow(cdependencyFlags_allocs) - var cminTexelBufferOffsetAlignment_allocs *cgoAllocMap - ref7926795a.minTexelBufferOffsetAlignment, cminTexelBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.MinTexelBufferOffsetAlignment), cgoAllocsUnknown - allocs7926795a.Borrow(cminTexelBufferOffsetAlignment_allocs) + var cmemoryBarrierCount_allocs *cgoAllocMap + ref18c760d2.memoryBarrierCount, cmemoryBarrierCount_allocs = (C.uint32_t)(x.MemoryBarrierCount), cgoAllocsUnknown + allocs18c760d2.Borrow(cmemoryBarrierCount_allocs) - var cminUniformBufferOffsetAlignment_allocs *cgoAllocMap - ref7926795a.minUniformBufferOffsetAlignment, cminUniformBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.MinUniformBufferOffsetAlignment), cgoAllocsUnknown - allocs7926795a.Borrow(cminUniformBufferOffsetAlignment_allocs) + var cpMemoryBarriers_allocs *cgoAllocMap + ref18c760d2.pMemoryBarriers, cpMemoryBarriers_allocs = unpackSMemoryBarrier2(x.PMemoryBarriers) + allocs18c760d2.Borrow(cpMemoryBarriers_allocs) - var cminStorageBufferOffsetAlignment_allocs *cgoAllocMap - ref7926795a.minStorageBufferOffsetAlignment, cminStorageBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.MinStorageBufferOffsetAlignment), cgoAllocsUnknown - allocs7926795a.Borrow(cminStorageBufferOffsetAlignment_allocs) + var cbufferMemoryBarrierCount_allocs *cgoAllocMap + ref18c760d2.bufferMemoryBarrierCount, cbufferMemoryBarrierCount_allocs = (C.uint32_t)(x.BufferMemoryBarrierCount), cgoAllocsUnknown + allocs18c760d2.Borrow(cbufferMemoryBarrierCount_allocs) - var cminTexelOffset_allocs *cgoAllocMap - ref7926795a.minTexelOffset, cminTexelOffset_allocs = (C.int32_t)(x.MinTexelOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cminTexelOffset_allocs) + var cpBufferMemoryBarriers_allocs *cgoAllocMap + ref18c760d2.pBufferMemoryBarriers, cpBufferMemoryBarriers_allocs = unpackSBufferMemoryBarrier2(x.PBufferMemoryBarriers) + allocs18c760d2.Borrow(cpBufferMemoryBarriers_allocs) - var cmaxTexelOffset_allocs *cgoAllocMap - ref7926795a.maxTexelOffset, cmaxTexelOffset_allocs = (C.uint32_t)(x.MaxTexelOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTexelOffset_allocs) + var cimageMemoryBarrierCount_allocs *cgoAllocMap + ref18c760d2.imageMemoryBarrierCount, cimageMemoryBarrierCount_allocs = (C.uint32_t)(x.ImageMemoryBarrierCount), cgoAllocsUnknown + allocs18c760d2.Borrow(cimageMemoryBarrierCount_allocs) - var cminTexelGatherOffset_allocs *cgoAllocMap - ref7926795a.minTexelGatherOffset, cminTexelGatherOffset_allocs = (C.int32_t)(x.MinTexelGatherOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cminTexelGatherOffset_allocs) + var cpImageMemoryBarriers_allocs *cgoAllocMap + ref18c760d2.pImageMemoryBarriers, cpImageMemoryBarriers_allocs = unpackSImageMemoryBarrier2(x.PImageMemoryBarriers) + allocs18c760d2.Borrow(cpImageMemoryBarriers_allocs) - var cmaxTexelGatherOffset_allocs *cgoAllocMap - ref7926795a.maxTexelGatherOffset, cmaxTexelGatherOffset_allocs = (C.uint32_t)(x.MaxTexelGatherOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxTexelGatherOffset_allocs) + x.ref18c760d2 = ref18c760d2 + x.allocs18c760d2 = allocs18c760d2 + return ref18c760d2, allocs18c760d2 - var cminInterpolationOffset_allocs *cgoAllocMap - ref7926795a.minInterpolationOffset, cminInterpolationOffset_allocs = (C.float)(x.MinInterpolationOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cminInterpolationOffset_allocs) +} - var cmaxInterpolationOffset_allocs *cgoAllocMap - ref7926795a.maxInterpolationOffset, cmaxInterpolationOffset_allocs = (C.float)(x.MaxInterpolationOffset), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxInterpolationOffset_allocs) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DependencyInfo) PassValue() (C.VkDependencyInfo, *cgoAllocMap) { + if x.ref18c760d2 != nil { + return *x.ref18c760d2, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var csubPixelInterpolationOffsetBits_allocs *cgoAllocMap - ref7926795a.subPixelInterpolationOffsetBits, csubPixelInterpolationOffsetBits_allocs = (C.uint32_t)(x.SubPixelInterpolationOffsetBits), cgoAllocsUnknown - allocs7926795a.Borrow(csubPixelInterpolationOffsetBits_allocs) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DependencyInfo) Deref() { + if x.ref18c760d2 == nil { + return + } + x.SType = (StructureType)(x.ref18c760d2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref18c760d2.pNext)) + x.DependencyFlags = (DependencyFlags)(x.ref18c760d2.dependencyFlags) + x.MemoryBarrierCount = (uint32)(x.ref18c760d2.memoryBarrierCount) + packSMemoryBarrier2(x.PMemoryBarriers, x.ref18c760d2.pMemoryBarriers) + x.BufferMemoryBarrierCount = (uint32)(x.ref18c760d2.bufferMemoryBarrierCount) + packSBufferMemoryBarrier2(x.PBufferMemoryBarriers, x.ref18c760d2.pBufferMemoryBarriers) + x.ImageMemoryBarrierCount = (uint32)(x.ref18c760d2.imageMemoryBarrierCount) + packSImageMemoryBarrier2(x.PImageMemoryBarriers, x.ref18c760d2.pImageMemoryBarriers) +} - var cmaxFramebufferWidth_allocs *cgoAllocMap - ref7926795a.maxFramebufferWidth, cmaxFramebufferWidth_allocs = (C.uint32_t)(x.MaxFramebufferWidth), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFramebufferWidth_allocs) +// allocSemaphoreSubmitInfoMemory allocates memory for type C.VkSemaphoreSubmitInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSemaphoreSubmitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreSubmitInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} - var cmaxFramebufferHeight_allocs *cgoAllocMap - ref7926795a.maxFramebufferHeight, cmaxFramebufferHeight_allocs = (C.uint32_t)(x.MaxFramebufferHeight), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFramebufferHeight_allocs) +const sizeOfSemaphoreSubmitInfoValue = unsafe.Sizeof([1]C.VkSemaphoreSubmitInfo{}) - var cmaxFramebufferLayers_allocs *cgoAllocMap - ref7926795a.maxFramebufferLayers, cmaxFramebufferLayers_allocs = (C.uint32_t)(x.MaxFramebufferLayers), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxFramebufferLayers_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SemaphoreSubmitInfo) Ref() *C.VkSemaphoreSubmitInfo { + if x == nil { + return nil + } + return x.ref9d52ed10 +} - var cframebufferColorSampleCounts_allocs *cgoAllocMap - ref7926795a.framebufferColorSampleCounts, cframebufferColorSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferColorSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(cframebufferColorSampleCounts_allocs) +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SemaphoreSubmitInfo) Free() { + if x != nil && x.allocs9d52ed10 != nil { + x.allocs9d52ed10.(*cgoAllocMap).Free() + x.ref9d52ed10 = nil + } +} - var cframebufferDepthSampleCounts_allocs *cgoAllocMap - ref7926795a.framebufferDepthSampleCounts, cframebufferDepthSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferDepthSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(cframebufferDepthSampleCounts_allocs) +// NewSemaphoreSubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSemaphoreSubmitInfoRef(ref unsafe.Pointer) *SemaphoreSubmitInfo { + if ref == nil { + return nil + } + obj := new(SemaphoreSubmitInfo) + obj.ref9d52ed10 = (*C.VkSemaphoreSubmitInfo)(unsafe.Pointer(ref)) + return obj +} - var cframebufferStencilSampleCounts_allocs *cgoAllocMap - ref7926795a.framebufferStencilSampleCounts, cframebufferStencilSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferStencilSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(cframebufferStencilSampleCounts_allocs) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SemaphoreSubmitInfo) PassRef() (*C.VkSemaphoreSubmitInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref9d52ed10 != nil { + return x.ref9d52ed10, nil + } + mem9d52ed10 := allocSemaphoreSubmitInfoMemory(1) + ref9d52ed10 := (*C.VkSemaphoreSubmitInfo)(mem9d52ed10) + allocs9d52ed10 := new(cgoAllocMap) + allocs9d52ed10.Add(mem9d52ed10) - var cframebufferNoAttachmentsSampleCounts_allocs *cgoAllocMap - ref7926795a.framebufferNoAttachmentsSampleCounts, cframebufferNoAttachmentsSampleCounts_allocs = (C.VkSampleCountFlags)(x.FramebufferNoAttachmentsSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(cframebufferNoAttachmentsSampleCounts_allocs) + var csType_allocs *cgoAllocMap + ref9d52ed10.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9d52ed10.Borrow(csType_allocs) - var cmaxColorAttachments_allocs *cgoAllocMap - ref7926795a.maxColorAttachments, cmaxColorAttachments_allocs = (C.uint32_t)(x.MaxColorAttachments), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxColorAttachments_allocs) + var cpNext_allocs *cgoAllocMap + ref9d52ed10.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9d52ed10.Borrow(cpNext_allocs) - var csampledImageColorSampleCounts_allocs *cgoAllocMap - ref7926795a.sampledImageColorSampleCounts, csampledImageColorSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageColorSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(csampledImageColorSampleCounts_allocs) + var csemaphore_allocs *cgoAllocMap + ref9d52ed10.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocs9d52ed10.Borrow(csemaphore_allocs) - var csampledImageIntegerSampleCounts_allocs *cgoAllocMap - ref7926795a.sampledImageIntegerSampleCounts, csampledImageIntegerSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageIntegerSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(csampledImageIntegerSampleCounts_allocs) + var cvalue_allocs *cgoAllocMap + ref9d52ed10.value, cvalue_allocs = (C.uint64_t)(x.Value), cgoAllocsUnknown + allocs9d52ed10.Borrow(cvalue_allocs) - var csampledImageDepthSampleCounts_allocs *cgoAllocMap - ref7926795a.sampledImageDepthSampleCounts, csampledImageDepthSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageDepthSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(csampledImageDepthSampleCounts_allocs) + var cstageMask_allocs *cgoAllocMap + ref9d52ed10.stageMask, cstageMask_allocs = (C.VkPipelineStageFlags2)(x.StageMask), cgoAllocsUnknown + allocs9d52ed10.Borrow(cstageMask_allocs) - var csampledImageStencilSampleCounts_allocs *cgoAllocMap - ref7926795a.sampledImageStencilSampleCounts, csampledImageStencilSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampledImageStencilSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(csampledImageStencilSampleCounts_allocs) + var cdeviceIndex_allocs *cgoAllocMap + ref9d52ed10.deviceIndex, cdeviceIndex_allocs = (C.uint32_t)(x.DeviceIndex), cgoAllocsUnknown + allocs9d52ed10.Borrow(cdeviceIndex_allocs) - var cstorageImageSampleCounts_allocs *cgoAllocMap - ref7926795a.storageImageSampleCounts, cstorageImageSampleCounts_allocs = (C.VkSampleCountFlags)(x.StorageImageSampleCounts), cgoAllocsUnknown - allocs7926795a.Borrow(cstorageImageSampleCounts_allocs) + x.ref9d52ed10 = ref9d52ed10 + x.allocs9d52ed10 = allocs9d52ed10 + return ref9d52ed10, allocs9d52ed10 - var cmaxSampleMaskWords_allocs *cgoAllocMap - ref7926795a.maxSampleMaskWords, cmaxSampleMaskWords_allocs = (C.uint32_t)(x.MaxSampleMaskWords), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxSampleMaskWords_allocs) +} - var ctimestampComputeAndGraphics_allocs *cgoAllocMap - ref7926795a.timestampComputeAndGraphics, ctimestampComputeAndGraphics_allocs = (C.VkBool32)(x.TimestampComputeAndGraphics), cgoAllocsUnknown - allocs7926795a.Borrow(ctimestampComputeAndGraphics_allocs) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x SemaphoreSubmitInfo) PassValue() (C.VkSemaphoreSubmitInfo, *cgoAllocMap) { + if x.ref9d52ed10 != nil { + return *x.ref9d52ed10, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var ctimestampPeriod_allocs *cgoAllocMap - ref7926795a.timestampPeriod, ctimestampPeriod_allocs = (C.float)(x.TimestampPeriod), cgoAllocsUnknown - allocs7926795a.Borrow(ctimestampPeriod_allocs) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *SemaphoreSubmitInfo) Deref() { + if x.ref9d52ed10 == nil { + return + } + x.SType = (StructureType)(x.ref9d52ed10.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9d52ed10.pNext)) + x.Semaphore = *(*Semaphore)(unsafe.Pointer(&x.ref9d52ed10.semaphore)) + x.Value = (uint64)(x.ref9d52ed10.value) + x.StageMask = (PipelineStageFlags2)(x.ref9d52ed10.stageMask) + x.DeviceIndex = (uint32)(x.ref9d52ed10.deviceIndex) +} - var cmaxClipDistances_allocs *cgoAllocMap - ref7926795a.maxClipDistances, cmaxClipDistances_allocs = (C.uint32_t)(x.MaxClipDistances), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxClipDistances_allocs) +// allocCommandBufferSubmitInfoMemory allocates memory for type C.VkCommandBufferSubmitInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocCommandBufferSubmitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferSubmitInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} - var cmaxCullDistances_allocs *cgoAllocMap - ref7926795a.maxCullDistances, cmaxCullDistances_allocs = (C.uint32_t)(x.MaxCullDistances), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxCullDistances_allocs) +const sizeOfCommandBufferSubmitInfoValue = unsafe.Sizeof([1]C.VkCommandBufferSubmitInfo{}) - var cmaxCombinedClipAndCullDistances_allocs *cgoAllocMap - ref7926795a.maxCombinedClipAndCullDistances, cmaxCombinedClipAndCullDistances_allocs = (C.uint32_t)(x.MaxCombinedClipAndCullDistances), cgoAllocsUnknown - allocs7926795a.Borrow(cmaxCombinedClipAndCullDistances_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *CommandBufferSubmitInfo) Ref() *C.VkCommandBufferSubmitInfo { + if x == nil { + return nil + } + return x.ref67c6884a +} - var cdiscreteQueuePriorities_allocs *cgoAllocMap - ref7926795a.discreteQueuePriorities, cdiscreteQueuePriorities_allocs = (C.uint32_t)(x.DiscreteQueuePriorities), cgoAllocsUnknown - allocs7926795a.Borrow(cdiscreteQueuePriorities_allocs) +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *CommandBufferSubmitInfo) Free() { + if x != nil && x.allocs67c6884a != nil { + x.allocs67c6884a.(*cgoAllocMap).Free() + x.ref67c6884a = nil + } +} - var cpointSizeRange_allocs *cgoAllocMap - ref7926795a.pointSizeRange, cpointSizeRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.PointSizeRange)), cgoAllocsUnknown - allocs7926795a.Borrow(cpointSizeRange_allocs) +// NewCommandBufferSubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewCommandBufferSubmitInfoRef(ref unsafe.Pointer) *CommandBufferSubmitInfo { + if ref == nil { + return nil + } + obj := new(CommandBufferSubmitInfo) + obj.ref67c6884a = (*C.VkCommandBufferSubmitInfo)(unsafe.Pointer(ref)) + return obj +} - var clineWidthRange_allocs *cgoAllocMap - ref7926795a.lineWidthRange, clineWidthRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.LineWidthRange)), cgoAllocsUnknown - allocs7926795a.Borrow(clineWidthRange_allocs) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *CommandBufferSubmitInfo) PassRef() (*C.VkCommandBufferSubmitInfo, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref67c6884a != nil { + return x.ref67c6884a, nil + } + mem67c6884a := allocCommandBufferSubmitInfoMemory(1) + ref67c6884a := (*C.VkCommandBufferSubmitInfo)(mem67c6884a) + allocs67c6884a := new(cgoAllocMap) + allocs67c6884a.Add(mem67c6884a) - var cpointSizeGranularity_allocs *cgoAllocMap - ref7926795a.pointSizeGranularity, cpointSizeGranularity_allocs = (C.float)(x.PointSizeGranularity), cgoAllocsUnknown - allocs7926795a.Borrow(cpointSizeGranularity_allocs) + var csType_allocs *cgoAllocMap + ref67c6884a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs67c6884a.Borrow(csType_allocs) - var clineWidthGranularity_allocs *cgoAllocMap - ref7926795a.lineWidthGranularity, clineWidthGranularity_allocs = (C.float)(x.LineWidthGranularity), cgoAllocsUnknown - allocs7926795a.Borrow(clineWidthGranularity_allocs) + var cpNext_allocs *cgoAllocMap + ref67c6884a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs67c6884a.Borrow(cpNext_allocs) - var cstrictLines_allocs *cgoAllocMap - ref7926795a.strictLines, cstrictLines_allocs = (C.VkBool32)(x.StrictLines), cgoAllocsUnknown - allocs7926795a.Borrow(cstrictLines_allocs) + var ccommandBuffer_allocs *cgoAllocMap + ref67c6884a.commandBuffer, ccommandBuffer_allocs = *(*C.VkCommandBuffer)(unsafe.Pointer(&x.CommandBuffer)), cgoAllocsUnknown + allocs67c6884a.Borrow(ccommandBuffer_allocs) - var cstandardSampleLocations_allocs *cgoAllocMap - ref7926795a.standardSampleLocations, cstandardSampleLocations_allocs = (C.VkBool32)(x.StandardSampleLocations), cgoAllocsUnknown - allocs7926795a.Borrow(cstandardSampleLocations_allocs) + var cdeviceMask_allocs *cgoAllocMap + ref67c6884a.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown + allocs67c6884a.Borrow(cdeviceMask_allocs) - var coptimalBufferCopyOffsetAlignment_allocs *cgoAllocMap - ref7926795a.optimalBufferCopyOffsetAlignment, coptimalBufferCopyOffsetAlignment_allocs = (C.VkDeviceSize)(x.OptimalBufferCopyOffsetAlignment), cgoAllocsUnknown - allocs7926795a.Borrow(coptimalBufferCopyOffsetAlignment_allocs) + x.ref67c6884a = ref67c6884a + x.allocs67c6884a = allocs67c6884a + return ref67c6884a, allocs67c6884a - var coptimalBufferCopyRowPitchAlignment_allocs *cgoAllocMap - ref7926795a.optimalBufferCopyRowPitchAlignment, coptimalBufferCopyRowPitchAlignment_allocs = (C.VkDeviceSize)(x.OptimalBufferCopyRowPitchAlignment), cgoAllocsUnknown - allocs7926795a.Borrow(coptimalBufferCopyRowPitchAlignment_allocs) +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x CommandBufferSubmitInfo) PassValue() (C.VkCommandBufferSubmitInfo, *cgoAllocMap) { + if x.ref67c6884a != nil { + return *x.ref67c6884a, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *CommandBufferSubmitInfo) Deref() { + if x.ref67c6884a == nil { + return + } + x.SType = (StructureType)(x.ref67c6884a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref67c6884a.pNext)) + x.CommandBuffer = *(*CommandBuffer)(unsafe.Pointer(&x.ref67c6884a.commandBuffer)) + x.DeviceMask = (uint32)(x.ref67c6884a.deviceMask) +} + +// allocSubmitInfo2Memory allocates memory for type C.VkSubmitInfo2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSubmitInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubmitInfo2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfSubmitInfo2Value = unsafe.Sizeof([1]C.VkSubmitInfo2{}) + +// unpackSSemaphoreSubmitInfo transforms a sliced Go data structure into plain C format. +func unpackSSemaphoreSubmitInfo(x []SemaphoreSubmitInfo) (unpacked *C.VkSemaphoreSubmitInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSemaphoreSubmitInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSemaphoreSubmitInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSemaphoreSubmitInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSemaphoreSubmitInfo)(h.Data) + return +} + +// unpackSCommandBufferSubmitInfo transforms a sliced Go data structure into plain C format. +func unpackSCommandBufferSubmitInfo(x []CommandBufferSubmitInfo) (unpacked *C.VkCommandBufferSubmitInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkCommandBufferSubmitInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocCommandBufferSubmitInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkCommandBufferSubmitInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkCommandBufferSubmitInfo)(h.Data) + return +} + +// packSSemaphoreSubmitInfo reads sliced Go data structure out from plain C format. +func packSSemaphoreSubmitInfo(v []SemaphoreSubmitInfo, ptr0 *C.VkSemaphoreSubmitInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSemaphoreSubmitInfoValue]C.VkSemaphoreSubmitInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSemaphoreSubmitInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// packSCommandBufferSubmitInfo reads sliced Go data structure out from plain C format. +func packSCommandBufferSubmitInfo(v []CommandBufferSubmitInfo, ptr0 *C.VkCommandBufferSubmitInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfCommandBufferSubmitInfoValue]C.VkCommandBufferSubmitInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewCommandBufferSubmitInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *SubmitInfo2) Ref() *C.VkSubmitInfo2 { + if x == nil { + return nil + } + return x.ref51f3e20a +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *SubmitInfo2) Free() { + if x != nil && x.allocs51f3e20a != nil { + x.allocs51f3e20a.(*cgoAllocMap).Free() + x.ref51f3e20a = nil + } +} + +// NewSubmitInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewSubmitInfo2Ref(ref unsafe.Pointer) *SubmitInfo2 { + if ref == nil { + return nil + } + obj := new(SubmitInfo2) + obj.ref51f3e20a = (*C.VkSubmitInfo2)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *SubmitInfo2) PassRef() (*C.VkSubmitInfo2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref51f3e20a != nil { + return x.ref51f3e20a, nil + } + mem51f3e20a := allocSubmitInfo2Memory(1) + ref51f3e20a := (*C.VkSubmitInfo2)(mem51f3e20a) + allocs51f3e20a := new(cgoAllocMap) + allocs51f3e20a.Add(mem51f3e20a) + + var csType_allocs *cgoAllocMap + ref51f3e20a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs51f3e20a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref51f3e20a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs51f3e20a.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref51f3e20a.flags, cflags_allocs = (C.VkSubmitFlags)(x.Flags), cgoAllocsUnknown + allocs51f3e20a.Borrow(cflags_allocs) + + var cwaitSemaphoreInfoCount_allocs *cgoAllocMap + ref51f3e20a.waitSemaphoreInfoCount, cwaitSemaphoreInfoCount_allocs = (C.uint32_t)(x.WaitSemaphoreInfoCount), cgoAllocsUnknown + allocs51f3e20a.Borrow(cwaitSemaphoreInfoCount_allocs) + + var cpWaitSemaphoreInfos_allocs *cgoAllocMap + ref51f3e20a.pWaitSemaphoreInfos, cpWaitSemaphoreInfos_allocs = unpackSSemaphoreSubmitInfo(x.PWaitSemaphoreInfos) + allocs51f3e20a.Borrow(cpWaitSemaphoreInfos_allocs) + + var ccommandBufferInfoCount_allocs *cgoAllocMap + ref51f3e20a.commandBufferInfoCount, ccommandBufferInfoCount_allocs = (C.uint32_t)(x.CommandBufferInfoCount), cgoAllocsUnknown + allocs51f3e20a.Borrow(ccommandBufferInfoCount_allocs) + + var cpCommandBufferInfos_allocs *cgoAllocMap + ref51f3e20a.pCommandBufferInfos, cpCommandBufferInfos_allocs = unpackSCommandBufferSubmitInfo(x.PCommandBufferInfos) + allocs51f3e20a.Borrow(cpCommandBufferInfos_allocs) + + var csignalSemaphoreInfoCount_allocs *cgoAllocMap + ref51f3e20a.signalSemaphoreInfoCount, csignalSemaphoreInfoCount_allocs = (C.uint32_t)(x.SignalSemaphoreInfoCount), cgoAllocsUnknown + allocs51f3e20a.Borrow(csignalSemaphoreInfoCount_allocs) - var cnonCoherentAtomSize_allocs *cgoAllocMap - ref7926795a.nonCoherentAtomSize, cnonCoherentAtomSize_allocs = (C.VkDeviceSize)(x.NonCoherentAtomSize), cgoAllocsUnknown - allocs7926795a.Borrow(cnonCoherentAtomSize_allocs) + var cpSignalSemaphoreInfos_allocs *cgoAllocMap + ref51f3e20a.pSignalSemaphoreInfos, cpSignalSemaphoreInfos_allocs = unpackSSemaphoreSubmitInfo(x.PSignalSemaphoreInfos) + allocs51f3e20a.Borrow(cpSignalSemaphoreInfos_allocs) - x.ref7926795a = ref7926795a - x.allocs7926795a = allocs7926795a - return ref7926795a, allocs7926795a + x.ref51f3e20a = ref51f3e20a + x.allocs51f3e20a = allocs51f3e20a + return ref51f3e20a, allocs51f3e20a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceLimits) PassValue() (C.VkPhysicalDeviceLimits, *cgoAllocMap) { - if x.ref7926795a != nil { - return *x.ref7926795a, nil +func (x SubmitInfo2) PassValue() (C.VkSubmitInfo2, *cgoAllocMap) { + if x.ref51f3e20a != nil { + return *x.ref51f3e20a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -1563,201 +28663,96 @@ func (x PhysicalDeviceLimits) PassValue() (C.VkPhysicalDeviceLimits, *cgoAllocMa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceLimits) Deref() { - if x.ref7926795a == nil { +func (x *SubmitInfo2) Deref() { + if x.ref51f3e20a == nil { return } - x.MaxImageDimension1D = (uint32)(x.ref7926795a.maxImageDimension1D) - x.MaxImageDimension2D = (uint32)(x.ref7926795a.maxImageDimension2D) - x.MaxImageDimension3D = (uint32)(x.ref7926795a.maxImageDimension3D) - x.MaxImageDimensionCube = (uint32)(x.ref7926795a.maxImageDimensionCube) - x.MaxImageArrayLayers = (uint32)(x.ref7926795a.maxImageArrayLayers) - x.MaxTexelBufferElements = (uint32)(x.ref7926795a.maxTexelBufferElements) - x.MaxUniformBufferRange = (uint32)(x.ref7926795a.maxUniformBufferRange) - x.MaxStorageBufferRange = (uint32)(x.ref7926795a.maxStorageBufferRange) - x.MaxPushConstantsSize = (uint32)(x.ref7926795a.maxPushConstantsSize) - x.MaxMemoryAllocationCount = (uint32)(x.ref7926795a.maxMemoryAllocationCount) - x.MaxSamplerAllocationCount = (uint32)(x.ref7926795a.maxSamplerAllocationCount) - x.BufferImageGranularity = (DeviceSize)(x.ref7926795a.bufferImageGranularity) - x.SparseAddressSpaceSize = (DeviceSize)(x.ref7926795a.sparseAddressSpaceSize) - x.MaxBoundDescriptorSets = (uint32)(x.ref7926795a.maxBoundDescriptorSets) - x.MaxPerStageDescriptorSamplers = (uint32)(x.ref7926795a.maxPerStageDescriptorSamplers) - x.MaxPerStageDescriptorUniformBuffers = (uint32)(x.ref7926795a.maxPerStageDescriptorUniformBuffers) - x.MaxPerStageDescriptorStorageBuffers = (uint32)(x.ref7926795a.maxPerStageDescriptorStorageBuffers) - x.MaxPerStageDescriptorSampledImages = (uint32)(x.ref7926795a.maxPerStageDescriptorSampledImages) - x.MaxPerStageDescriptorStorageImages = (uint32)(x.ref7926795a.maxPerStageDescriptorStorageImages) - x.MaxPerStageDescriptorInputAttachments = (uint32)(x.ref7926795a.maxPerStageDescriptorInputAttachments) - x.MaxPerStageResources = (uint32)(x.ref7926795a.maxPerStageResources) - x.MaxDescriptorSetSamplers = (uint32)(x.ref7926795a.maxDescriptorSetSamplers) - x.MaxDescriptorSetUniformBuffers = (uint32)(x.ref7926795a.maxDescriptorSetUniformBuffers) - x.MaxDescriptorSetUniformBuffersDynamic = (uint32)(x.ref7926795a.maxDescriptorSetUniformBuffersDynamic) - x.MaxDescriptorSetStorageBuffers = (uint32)(x.ref7926795a.maxDescriptorSetStorageBuffers) - x.MaxDescriptorSetStorageBuffersDynamic = (uint32)(x.ref7926795a.maxDescriptorSetStorageBuffersDynamic) - x.MaxDescriptorSetSampledImages = (uint32)(x.ref7926795a.maxDescriptorSetSampledImages) - x.MaxDescriptorSetStorageImages = (uint32)(x.ref7926795a.maxDescriptorSetStorageImages) - x.MaxDescriptorSetInputAttachments = (uint32)(x.ref7926795a.maxDescriptorSetInputAttachments) - x.MaxVertexInputAttributes = (uint32)(x.ref7926795a.maxVertexInputAttributes) - x.MaxVertexInputBindings = (uint32)(x.ref7926795a.maxVertexInputBindings) - x.MaxVertexInputAttributeOffset = (uint32)(x.ref7926795a.maxVertexInputAttributeOffset) - x.MaxVertexInputBindingStride = (uint32)(x.ref7926795a.maxVertexInputBindingStride) - x.MaxVertexOutputComponents = (uint32)(x.ref7926795a.maxVertexOutputComponents) - x.MaxTessellationGenerationLevel = (uint32)(x.ref7926795a.maxTessellationGenerationLevel) - x.MaxTessellationPatchSize = (uint32)(x.ref7926795a.maxTessellationPatchSize) - x.MaxTessellationControlPerVertexInputComponents = (uint32)(x.ref7926795a.maxTessellationControlPerVertexInputComponents) - x.MaxTessellationControlPerVertexOutputComponents = (uint32)(x.ref7926795a.maxTessellationControlPerVertexOutputComponents) - x.MaxTessellationControlPerPatchOutputComponents = (uint32)(x.ref7926795a.maxTessellationControlPerPatchOutputComponents) - x.MaxTessellationControlTotalOutputComponents = (uint32)(x.ref7926795a.maxTessellationControlTotalOutputComponents) - x.MaxTessellationEvaluationInputComponents = (uint32)(x.ref7926795a.maxTessellationEvaluationInputComponents) - x.MaxTessellationEvaluationOutputComponents = (uint32)(x.ref7926795a.maxTessellationEvaluationOutputComponents) - x.MaxGeometryShaderInvocations = (uint32)(x.ref7926795a.maxGeometryShaderInvocations) - x.MaxGeometryInputComponents = (uint32)(x.ref7926795a.maxGeometryInputComponents) - x.MaxGeometryOutputComponents = (uint32)(x.ref7926795a.maxGeometryOutputComponents) - x.MaxGeometryOutputVertices = (uint32)(x.ref7926795a.maxGeometryOutputVertices) - x.MaxGeometryTotalOutputComponents = (uint32)(x.ref7926795a.maxGeometryTotalOutputComponents) - x.MaxFragmentInputComponents = (uint32)(x.ref7926795a.maxFragmentInputComponents) - x.MaxFragmentOutputAttachments = (uint32)(x.ref7926795a.maxFragmentOutputAttachments) - x.MaxFragmentDualSrcAttachments = (uint32)(x.ref7926795a.maxFragmentDualSrcAttachments) - x.MaxFragmentCombinedOutputResources = (uint32)(x.ref7926795a.maxFragmentCombinedOutputResources) - x.MaxComputeSharedMemorySize = (uint32)(x.ref7926795a.maxComputeSharedMemorySize) - x.MaxComputeWorkGroupCount = *(*[3]uint32)(unsafe.Pointer(&x.ref7926795a.maxComputeWorkGroupCount)) - x.MaxComputeWorkGroupInvocations = (uint32)(x.ref7926795a.maxComputeWorkGroupInvocations) - x.MaxComputeWorkGroupSize = *(*[3]uint32)(unsafe.Pointer(&x.ref7926795a.maxComputeWorkGroupSize)) - x.SubPixelPrecisionBits = (uint32)(x.ref7926795a.subPixelPrecisionBits) - x.SubTexelPrecisionBits = (uint32)(x.ref7926795a.subTexelPrecisionBits) - x.MipmapPrecisionBits = (uint32)(x.ref7926795a.mipmapPrecisionBits) - x.MaxDrawIndexedIndexValue = (uint32)(x.ref7926795a.maxDrawIndexedIndexValue) - x.MaxDrawIndirectCount = (uint32)(x.ref7926795a.maxDrawIndirectCount) - x.MaxSamplerLodBias = (float32)(x.ref7926795a.maxSamplerLodBias) - x.MaxSamplerAnisotropy = (float32)(x.ref7926795a.maxSamplerAnisotropy) - x.MaxViewports = (uint32)(x.ref7926795a.maxViewports) - x.MaxViewportDimensions = *(*[2]uint32)(unsafe.Pointer(&x.ref7926795a.maxViewportDimensions)) - x.ViewportBoundsRange = *(*[2]float32)(unsafe.Pointer(&x.ref7926795a.viewportBoundsRange)) - x.ViewportSubPixelBits = (uint32)(x.ref7926795a.viewportSubPixelBits) - x.MinMemoryMapAlignment = (uint)(x.ref7926795a.minMemoryMapAlignment) - x.MinTexelBufferOffsetAlignment = (DeviceSize)(x.ref7926795a.minTexelBufferOffsetAlignment) - x.MinUniformBufferOffsetAlignment = (DeviceSize)(x.ref7926795a.minUniformBufferOffsetAlignment) - x.MinStorageBufferOffsetAlignment = (DeviceSize)(x.ref7926795a.minStorageBufferOffsetAlignment) - x.MinTexelOffset = (int32)(x.ref7926795a.minTexelOffset) - x.MaxTexelOffset = (uint32)(x.ref7926795a.maxTexelOffset) - x.MinTexelGatherOffset = (int32)(x.ref7926795a.minTexelGatherOffset) - x.MaxTexelGatherOffset = (uint32)(x.ref7926795a.maxTexelGatherOffset) - x.MinInterpolationOffset = (float32)(x.ref7926795a.minInterpolationOffset) - x.MaxInterpolationOffset = (float32)(x.ref7926795a.maxInterpolationOffset) - x.SubPixelInterpolationOffsetBits = (uint32)(x.ref7926795a.subPixelInterpolationOffsetBits) - x.MaxFramebufferWidth = (uint32)(x.ref7926795a.maxFramebufferWidth) - x.MaxFramebufferHeight = (uint32)(x.ref7926795a.maxFramebufferHeight) - x.MaxFramebufferLayers = (uint32)(x.ref7926795a.maxFramebufferLayers) - x.FramebufferColorSampleCounts = (SampleCountFlags)(x.ref7926795a.framebufferColorSampleCounts) - x.FramebufferDepthSampleCounts = (SampleCountFlags)(x.ref7926795a.framebufferDepthSampleCounts) - x.FramebufferStencilSampleCounts = (SampleCountFlags)(x.ref7926795a.framebufferStencilSampleCounts) - x.FramebufferNoAttachmentsSampleCounts = (SampleCountFlags)(x.ref7926795a.framebufferNoAttachmentsSampleCounts) - x.MaxColorAttachments = (uint32)(x.ref7926795a.maxColorAttachments) - x.SampledImageColorSampleCounts = (SampleCountFlags)(x.ref7926795a.sampledImageColorSampleCounts) - x.SampledImageIntegerSampleCounts = (SampleCountFlags)(x.ref7926795a.sampledImageIntegerSampleCounts) - x.SampledImageDepthSampleCounts = (SampleCountFlags)(x.ref7926795a.sampledImageDepthSampleCounts) - x.SampledImageStencilSampleCounts = (SampleCountFlags)(x.ref7926795a.sampledImageStencilSampleCounts) - x.StorageImageSampleCounts = (SampleCountFlags)(x.ref7926795a.storageImageSampleCounts) - x.MaxSampleMaskWords = (uint32)(x.ref7926795a.maxSampleMaskWords) - x.TimestampComputeAndGraphics = (Bool32)(x.ref7926795a.timestampComputeAndGraphics) - x.TimestampPeriod = (float32)(x.ref7926795a.timestampPeriod) - x.MaxClipDistances = (uint32)(x.ref7926795a.maxClipDistances) - x.MaxCullDistances = (uint32)(x.ref7926795a.maxCullDistances) - x.MaxCombinedClipAndCullDistances = (uint32)(x.ref7926795a.maxCombinedClipAndCullDistances) - x.DiscreteQueuePriorities = (uint32)(x.ref7926795a.discreteQueuePriorities) - x.PointSizeRange = *(*[2]float32)(unsafe.Pointer(&x.ref7926795a.pointSizeRange)) - x.LineWidthRange = *(*[2]float32)(unsafe.Pointer(&x.ref7926795a.lineWidthRange)) - x.PointSizeGranularity = (float32)(x.ref7926795a.pointSizeGranularity) - x.LineWidthGranularity = (float32)(x.ref7926795a.lineWidthGranularity) - x.StrictLines = (Bool32)(x.ref7926795a.strictLines) - x.StandardSampleLocations = (Bool32)(x.ref7926795a.standardSampleLocations) - x.OptimalBufferCopyOffsetAlignment = (DeviceSize)(x.ref7926795a.optimalBufferCopyOffsetAlignment) - x.OptimalBufferCopyRowPitchAlignment = (DeviceSize)(x.ref7926795a.optimalBufferCopyRowPitchAlignment) - x.NonCoherentAtomSize = (DeviceSize)(x.ref7926795a.nonCoherentAtomSize) + x.SType = (StructureType)(x.ref51f3e20a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref51f3e20a.pNext)) + x.Flags = (SubmitFlags)(x.ref51f3e20a.flags) + x.WaitSemaphoreInfoCount = (uint32)(x.ref51f3e20a.waitSemaphoreInfoCount) + packSSemaphoreSubmitInfo(x.PWaitSemaphoreInfos, x.ref51f3e20a.pWaitSemaphoreInfos) + x.CommandBufferInfoCount = (uint32)(x.ref51f3e20a.commandBufferInfoCount) + packSCommandBufferSubmitInfo(x.PCommandBufferInfos, x.ref51f3e20a.pCommandBufferInfos) + x.SignalSemaphoreInfoCount = (uint32)(x.ref51f3e20a.signalSemaphoreInfoCount) + packSSemaphoreSubmitInfo(x.PSignalSemaphoreInfos, x.ref51f3e20a.pSignalSemaphoreInfos) } -// allocPhysicalDeviceSparsePropertiesMemory allocates memory for type C.VkPhysicalDeviceSparseProperties in C. +// allocPhysicalDeviceSynchronization2FeaturesMemory allocates memory for type C.VkPhysicalDeviceSynchronization2Features in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceSparsePropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSparsePropertiesValue)) +func allocPhysicalDeviceSynchronization2FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSynchronization2FeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceSparsePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSparseProperties{}) +const sizeOfPhysicalDeviceSynchronization2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSynchronization2Features{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSparseProperties) Ref() *C.VkPhysicalDeviceSparseProperties { +func (x *PhysicalDeviceSynchronization2Features) Ref() *C.VkPhysicalDeviceSynchronization2Features { if x == nil { return nil } - return x.ref6d7c11e6 + return x.ref64be4f9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceSparseProperties) Free() { - if x != nil && x.allocs6d7c11e6 != nil { - x.allocs6d7c11e6.(*cgoAllocMap).Free() - x.ref6d7c11e6 = nil +func (x *PhysicalDeviceSynchronization2Features) Free() { + if x != nil && x.allocs64be4f9 != nil { + x.allocs64be4f9.(*cgoAllocMap).Free() + x.ref64be4f9 = nil } } -// NewPhysicalDeviceSparsePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceSynchronization2FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceSparsePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSparseProperties { +func NewPhysicalDeviceSynchronization2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceSynchronization2Features { if ref == nil { return nil } - obj := new(PhysicalDeviceSparseProperties) - obj.ref6d7c11e6 = (*C.VkPhysicalDeviceSparseProperties)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceSynchronization2Features) + obj.ref64be4f9 = (*C.VkPhysicalDeviceSynchronization2Features)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceSparseProperties) PassRef() (*C.VkPhysicalDeviceSparseProperties, *cgoAllocMap) { +func (x *PhysicalDeviceSynchronization2Features) PassRef() (*C.VkPhysicalDeviceSynchronization2Features, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6d7c11e6 != nil { - return x.ref6d7c11e6, nil + } else if x.ref64be4f9 != nil { + return x.ref64be4f9, nil } - mem6d7c11e6 := allocPhysicalDeviceSparsePropertiesMemory(1) - ref6d7c11e6 := (*C.VkPhysicalDeviceSparseProperties)(mem6d7c11e6) - allocs6d7c11e6 := new(cgoAllocMap) - allocs6d7c11e6.Add(mem6d7c11e6) - - var cresidencyStandard2DBlockShape_allocs *cgoAllocMap - ref6d7c11e6.residencyStandard2DBlockShape, cresidencyStandard2DBlockShape_allocs = (C.VkBool32)(x.ResidencyStandard2DBlockShape), cgoAllocsUnknown - allocs6d7c11e6.Borrow(cresidencyStandard2DBlockShape_allocs) - - var cresidencyStandard2DMultisampleBlockShape_allocs *cgoAllocMap - ref6d7c11e6.residencyStandard2DMultisampleBlockShape, cresidencyStandard2DMultisampleBlockShape_allocs = (C.VkBool32)(x.ResidencyStandard2DMultisampleBlockShape), cgoAllocsUnknown - allocs6d7c11e6.Borrow(cresidencyStandard2DMultisampleBlockShape_allocs) + mem64be4f9 := allocPhysicalDeviceSynchronization2FeaturesMemory(1) + ref64be4f9 := (*C.VkPhysicalDeviceSynchronization2Features)(mem64be4f9) + allocs64be4f9 := new(cgoAllocMap) + allocs64be4f9.Add(mem64be4f9) - var cresidencyStandard3DBlockShape_allocs *cgoAllocMap - ref6d7c11e6.residencyStandard3DBlockShape, cresidencyStandard3DBlockShape_allocs = (C.VkBool32)(x.ResidencyStandard3DBlockShape), cgoAllocsUnknown - allocs6d7c11e6.Borrow(cresidencyStandard3DBlockShape_allocs) + var csType_allocs *cgoAllocMap + ref64be4f9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs64be4f9.Borrow(csType_allocs) - var cresidencyAlignedMipSize_allocs *cgoAllocMap - ref6d7c11e6.residencyAlignedMipSize, cresidencyAlignedMipSize_allocs = (C.VkBool32)(x.ResidencyAlignedMipSize), cgoAllocsUnknown - allocs6d7c11e6.Borrow(cresidencyAlignedMipSize_allocs) + var cpNext_allocs *cgoAllocMap + ref64be4f9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs64be4f9.Borrow(cpNext_allocs) - var cresidencyNonResidentStrict_allocs *cgoAllocMap - ref6d7c11e6.residencyNonResidentStrict, cresidencyNonResidentStrict_allocs = (C.VkBool32)(x.ResidencyNonResidentStrict), cgoAllocsUnknown - allocs6d7c11e6.Borrow(cresidencyNonResidentStrict_allocs) + var csynchronization2_allocs *cgoAllocMap + ref64be4f9.synchronization2, csynchronization2_allocs = (C.VkBool32)(x.Synchronization2), cgoAllocsUnknown + allocs64be4f9.Borrow(csynchronization2_allocs) - x.ref6d7c11e6 = ref6d7c11e6 - x.allocs6d7c11e6 = allocs6d7c11e6 - return ref6d7c11e6, allocs6d7c11e6 + x.ref64be4f9 = ref64be4f9 + x.allocs64be4f9 = allocs64be4f9 + return ref64be4f9, allocs64be4f9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceSparseProperties) PassValue() (C.VkPhysicalDeviceSparseProperties, *cgoAllocMap) { - if x.ref6d7c11e6 != nil { - return *x.ref6d7c11e6, nil +func (x PhysicalDeviceSynchronization2Features) PassValue() (C.VkPhysicalDeviceSynchronization2Features, *cgoAllocMap) { + if x.ref64be4f9 != nil { + return *x.ref64be4f9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -1765,116 +28760,90 @@ func (x PhysicalDeviceSparseProperties) PassValue() (C.VkPhysicalDeviceSparsePro // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceSparseProperties) Deref() { - if x.ref6d7c11e6 == nil { +func (x *PhysicalDeviceSynchronization2Features) Deref() { + if x.ref64be4f9 == nil { return } - x.ResidencyStandard2DBlockShape = (Bool32)(x.ref6d7c11e6.residencyStandard2DBlockShape) - x.ResidencyStandard2DMultisampleBlockShape = (Bool32)(x.ref6d7c11e6.residencyStandard2DMultisampleBlockShape) - x.ResidencyStandard3DBlockShape = (Bool32)(x.ref6d7c11e6.residencyStandard3DBlockShape) - x.ResidencyAlignedMipSize = (Bool32)(x.ref6d7c11e6.residencyAlignedMipSize) - x.ResidencyNonResidentStrict = (Bool32)(x.ref6d7c11e6.residencyNonResidentStrict) + x.SType = (StructureType)(x.ref64be4f9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref64be4f9.pNext)) + x.Synchronization2 = (Bool32)(x.ref64be4f9.synchronization2) } -// allocPhysicalDevicePropertiesMemory allocates memory for type C.VkPhysicalDeviceProperties in C. +// allocPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesMemory allocates memory for type C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePropertiesValue)) +func allocPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDevicePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProperties{}) +const sizeOfPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceProperties) Ref() *C.VkPhysicalDeviceProperties { +func (x *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) Ref() *C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures { if x == nil { return nil } - return x.ref1080ca9d + return x.ref971f8a0a } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceProperties) Free() { - if x != nil && x.allocs1080ca9d != nil { - x.allocs1080ca9d.(*cgoAllocMap).Free() - x.ref1080ca9d = nil +func (x *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) Free() { + if x != nil && x.allocs971f8a0a != nil { + x.allocs971f8a0a.(*cgoAllocMap).Free() + x.ref971f8a0a = nil } } -// NewPhysicalDevicePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDevicePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceProperties { +func NewPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceProperties) - obj.ref1080ca9d = (*C.VkPhysicalDeviceProperties)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) + obj.ref971f8a0a = (*C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceProperties) PassRef() (*C.VkPhysicalDeviceProperties, *cgoAllocMap) { +func (x *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) PassRef() (*C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1080ca9d != nil { - return x.ref1080ca9d, nil + } else if x.ref971f8a0a != nil { + return x.ref971f8a0a, nil } - mem1080ca9d := allocPhysicalDevicePropertiesMemory(1) - ref1080ca9d := (*C.VkPhysicalDeviceProperties)(mem1080ca9d) - allocs1080ca9d := new(cgoAllocMap) - allocs1080ca9d.Add(mem1080ca9d) - - var capiVersion_allocs *cgoAllocMap - ref1080ca9d.apiVersion, capiVersion_allocs = (C.uint32_t)(x.ApiVersion), cgoAllocsUnknown - allocs1080ca9d.Borrow(capiVersion_allocs) - - var cdriverVersion_allocs *cgoAllocMap - ref1080ca9d.driverVersion, cdriverVersion_allocs = (C.uint32_t)(x.DriverVersion), cgoAllocsUnknown - allocs1080ca9d.Borrow(cdriverVersion_allocs) - - var cvendorID_allocs *cgoAllocMap - ref1080ca9d.vendorID, cvendorID_allocs = (C.uint32_t)(x.VendorID), cgoAllocsUnknown - allocs1080ca9d.Borrow(cvendorID_allocs) - - var cdeviceID_allocs *cgoAllocMap - ref1080ca9d.deviceID, cdeviceID_allocs = (C.uint32_t)(x.DeviceID), cgoAllocsUnknown - allocs1080ca9d.Borrow(cdeviceID_allocs) - - var cdeviceType_allocs *cgoAllocMap - ref1080ca9d.deviceType, cdeviceType_allocs = (C.VkPhysicalDeviceType)(x.DeviceType), cgoAllocsUnknown - allocs1080ca9d.Borrow(cdeviceType_allocs) - - var cdeviceName_allocs *cgoAllocMap - ref1080ca9d.deviceName, cdeviceName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.DeviceName)), cgoAllocsUnknown - allocs1080ca9d.Borrow(cdeviceName_allocs) + mem971f8a0a := allocPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesMemory(1) + ref971f8a0a := (*C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)(mem971f8a0a) + allocs971f8a0a := new(cgoAllocMap) + allocs971f8a0a.Add(mem971f8a0a) - var cpipelineCacheUUID_allocs *cgoAllocMap - ref1080ca9d.pipelineCacheUUID, cpipelineCacheUUID_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.PipelineCacheUUID)), cgoAllocsUnknown - allocs1080ca9d.Borrow(cpipelineCacheUUID_allocs) + var csType_allocs *cgoAllocMap + ref971f8a0a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs971f8a0a.Borrow(csType_allocs) - var climits_allocs *cgoAllocMap - ref1080ca9d.limits, climits_allocs = x.Limits.PassValue() - allocs1080ca9d.Borrow(climits_allocs) + var cpNext_allocs *cgoAllocMap + ref971f8a0a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs971f8a0a.Borrow(cpNext_allocs) - var csparseProperties_allocs *cgoAllocMap - ref1080ca9d.sparseProperties, csparseProperties_allocs = x.SparseProperties.PassValue() - allocs1080ca9d.Borrow(csparseProperties_allocs) + var cshaderZeroInitializeWorkgroupMemory_allocs *cgoAllocMap + ref971f8a0a.shaderZeroInitializeWorkgroupMemory, cshaderZeroInitializeWorkgroupMemory_allocs = (C.VkBool32)(x.ShaderZeroInitializeWorkgroupMemory), cgoAllocsUnknown + allocs971f8a0a.Borrow(cshaderZeroInitializeWorkgroupMemory_allocs) - x.ref1080ca9d = ref1080ca9d - x.allocs1080ca9d = allocs1080ca9d - return ref1080ca9d, allocs1080ca9d + x.ref971f8a0a = ref971f8a0a + x.allocs971f8a0a = allocs971f8a0a + return ref971f8a0a, allocs971f8a0a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceProperties) PassValue() (C.VkPhysicalDeviceProperties, *cgoAllocMap) { - if x.ref1080ca9d != nil { - return *x.ref1080ca9d, nil +func (x PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) PassValue() (C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, *cgoAllocMap) { + if x.ref971f8a0a != nil { + return *x.ref971f8a0a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -1882,100 +28851,90 @@ func (x PhysicalDeviceProperties) PassValue() (C.VkPhysicalDeviceProperties, *cg // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceProperties) Deref() { - if x.ref1080ca9d == nil { +func (x *PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) Deref() { + if x.ref971f8a0a == nil { return } - x.ApiVersion = (uint32)(x.ref1080ca9d.apiVersion) - x.DriverVersion = (uint32)(x.ref1080ca9d.driverVersion) - x.VendorID = (uint32)(x.ref1080ca9d.vendorID) - x.DeviceID = (uint32)(x.ref1080ca9d.deviceID) - x.DeviceType = (PhysicalDeviceType)(x.ref1080ca9d.deviceType) - x.DeviceName = *(*[256]byte)(unsafe.Pointer(&x.ref1080ca9d.deviceName)) - x.PipelineCacheUUID = *(*[16]byte)(unsafe.Pointer(&x.ref1080ca9d.pipelineCacheUUID)) - x.Limits = *NewPhysicalDeviceLimitsRef(unsafe.Pointer(&x.ref1080ca9d.limits)) - x.SparseProperties = *NewPhysicalDeviceSparsePropertiesRef(unsafe.Pointer(&x.ref1080ca9d.sparseProperties)) + x.SType = (StructureType)(x.ref971f8a0a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref971f8a0a.pNext)) + x.ShaderZeroInitializeWorkgroupMemory = (Bool32)(x.ref971f8a0a.shaderZeroInitializeWorkgroupMemory) } -// allocQueueFamilyPropertiesMemory allocates memory for type C.VkQueueFamilyProperties in C. +// allocPhysicalDeviceImageRobustnessFeaturesMemory allocates memory for type C.VkPhysicalDeviceImageRobustnessFeatures in C. // The caller is responsible for freeing the this memory via C.free. -func allocQueueFamilyPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyPropertiesValue)) +func allocPhysicalDeviceImageRobustnessFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageRobustnessFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfQueueFamilyPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyProperties{}) +const sizeOfPhysicalDeviceImageRobustnessFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageRobustnessFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueueFamilyProperties) Ref() *C.VkQueueFamilyProperties { +func (x *PhysicalDeviceImageRobustnessFeatures) Ref() *C.VkPhysicalDeviceImageRobustnessFeatures { if x == nil { return nil } - return x.refd538c446 + return x.ref73ceff2 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *QueueFamilyProperties) Free() { - if x != nil && x.allocsd538c446 != nil { - x.allocsd538c446.(*cgoAllocMap).Free() - x.refd538c446 = nil +func (x *PhysicalDeviceImageRobustnessFeatures) Free() { + if x != nil && x.allocs73ceff2 != nil { + x.allocs73ceff2.(*cgoAllocMap).Free() + x.ref73ceff2 = nil } } -// NewQueueFamilyPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceImageRobustnessFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewQueueFamilyPropertiesRef(ref unsafe.Pointer) *QueueFamilyProperties { +func NewPhysicalDeviceImageRobustnessFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceImageRobustnessFeatures { if ref == nil { return nil } - obj := new(QueueFamilyProperties) - obj.refd538c446 = (*C.VkQueueFamilyProperties)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceImageRobustnessFeatures) + obj.ref73ceff2 = (*C.VkPhysicalDeviceImageRobustnessFeatures)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *QueueFamilyProperties) PassRef() (*C.VkQueueFamilyProperties, *cgoAllocMap) { +func (x *PhysicalDeviceImageRobustnessFeatures) PassRef() (*C.VkPhysicalDeviceImageRobustnessFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd538c446 != nil { - return x.refd538c446, nil + } else if x.ref73ceff2 != nil { + return x.ref73ceff2, nil } - memd538c446 := allocQueueFamilyPropertiesMemory(1) - refd538c446 := (*C.VkQueueFamilyProperties)(memd538c446) - allocsd538c446 := new(cgoAllocMap) - allocsd538c446.Add(memd538c446) - - var cqueueFlags_allocs *cgoAllocMap - refd538c446.queueFlags, cqueueFlags_allocs = (C.VkQueueFlags)(x.QueueFlags), cgoAllocsUnknown - allocsd538c446.Borrow(cqueueFlags_allocs) + mem73ceff2 := allocPhysicalDeviceImageRobustnessFeaturesMemory(1) + ref73ceff2 := (*C.VkPhysicalDeviceImageRobustnessFeatures)(mem73ceff2) + allocs73ceff2 := new(cgoAllocMap) + allocs73ceff2.Add(mem73ceff2) - var cqueueCount_allocs *cgoAllocMap - refd538c446.queueCount, cqueueCount_allocs = (C.uint32_t)(x.QueueCount), cgoAllocsUnknown - allocsd538c446.Borrow(cqueueCount_allocs) + var csType_allocs *cgoAllocMap + ref73ceff2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73ceff2.Borrow(csType_allocs) - var ctimestampValidBits_allocs *cgoAllocMap - refd538c446.timestampValidBits, ctimestampValidBits_allocs = (C.uint32_t)(x.TimestampValidBits), cgoAllocsUnknown - allocsd538c446.Borrow(ctimestampValidBits_allocs) + var cpNext_allocs *cgoAllocMap + ref73ceff2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73ceff2.Borrow(cpNext_allocs) - var cminImageTransferGranularity_allocs *cgoAllocMap - refd538c446.minImageTransferGranularity, cminImageTransferGranularity_allocs = x.MinImageTransferGranularity.PassValue() - allocsd538c446.Borrow(cminImageTransferGranularity_allocs) + var crobustImageAccess_allocs *cgoAllocMap + ref73ceff2.robustImageAccess, crobustImageAccess_allocs = (C.VkBool32)(x.RobustImageAccess), cgoAllocsUnknown + allocs73ceff2.Borrow(crobustImageAccess_allocs) - x.refd538c446 = refd538c446 - x.allocsd538c446 = allocsd538c446 - return refd538c446, allocsd538c446 + x.ref73ceff2 = ref73ceff2 + x.allocs73ceff2 = allocs73ceff2 + return ref73ceff2, allocs73ceff2 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x QueueFamilyProperties) PassValue() (C.VkQueueFamilyProperties, *cgoAllocMap) { - if x.refd538c446 != nil { - return *x.refd538c446, nil +func (x PhysicalDeviceImageRobustnessFeatures) PassValue() (C.VkPhysicalDeviceImageRobustnessFeatures, *cgoAllocMap) { + if x.ref73ceff2 != nil { + return *x.ref73ceff2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -1983,87 +28942,98 @@ func (x QueueFamilyProperties) PassValue() (C.VkQueueFamilyProperties, *cgoAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *QueueFamilyProperties) Deref() { - if x.refd538c446 == nil { +func (x *PhysicalDeviceImageRobustnessFeatures) Deref() { + if x.ref73ceff2 == nil { return } - x.QueueFlags = (QueueFlags)(x.refd538c446.queueFlags) - x.QueueCount = (uint32)(x.refd538c446.queueCount) - x.TimestampValidBits = (uint32)(x.refd538c446.timestampValidBits) - x.MinImageTransferGranularity = *NewExtent3DRef(unsafe.Pointer(&x.refd538c446.minImageTransferGranularity)) + x.SType = (StructureType)(x.ref73ceff2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73ceff2.pNext)) + x.RobustImageAccess = (Bool32)(x.ref73ceff2.robustImageAccess) } -// allocMemoryTypeMemory allocates memory for type C.VkMemoryType in C. +// allocBufferCopy2Memory allocates memory for type C.VkBufferCopy2 in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryTypeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryTypeValue)) +func allocBufferCopy2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferCopy2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryTypeValue = unsafe.Sizeof([1]C.VkMemoryType{}) +const sizeOfBufferCopy2Value = unsafe.Sizeof([1]C.VkBufferCopy2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryType) Ref() *C.VkMemoryType { +func (x *BufferCopy2) Ref() *C.VkBufferCopy2 { if x == nil { return nil } - return x.ref2f46e01d + return x.refd9cb28e3 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryType) Free() { - if x != nil && x.allocs2f46e01d != nil { - x.allocs2f46e01d.(*cgoAllocMap).Free() - x.ref2f46e01d = nil +func (x *BufferCopy2) Free() { + if x != nil && x.allocsd9cb28e3 != nil { + x.allocsd9cb28e3.(*cgoAllocMap).Free() + x.refd9cb28e3 = nil } } -// NewMemoryTypeRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBufferCopy2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryTypeRef(ref unsafe.Pointer) *MemoryType { +func NewBufferCopy2Ref(ref unsafe.Pointer) *BufferCopy2 { if ref == nil { return nil } - obj := new(MemoryType) - obj.ref2f46e01d = (*C.VkMemoryType)(unsafe.Pointer(ref)) + obj := new(BufferCopy2) + obj.refd9cb28e3 = (*C.VkBufferCopy2)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryType) PassRef() (*C.VkMemoryType, *cgoAllocMap) { +func (x *BufferCopy2) PassRef() (*C.VkBufferCopy2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2f46e01d != nil { - return x.ref2f46e01d, nil + } else if x.refd9cb28e3 != nil { + return x.refd9cb28e3, nil } - mem2f46e01d := allocMemoryTypeMemory(1) - ref2f46e01d := (*C.VkMemoryType)(mem2f46e01d) - allocs2f46e01d := new(cgoAllocMap) - allocs2f46e01d.Add(mem2f46e01d) + memd9cb28e3 := allocBufferCopy2Memory(1) + refd9cb28e3 := (*C.VkBufferCopy2)(memd9cb28e3) + allocsd9cb28e3 := new(cgoAllocMap) + allocsd9cb28e3.Add(memd9cb28e3) - var cpropertyFlags_allocs *cgoAllocMap - ref2f46e01d.propertyFlags, cpropertyFlags_allocs = (C.VkMemoryPropertyFlags)(x.PropertyFlags), cgoAllocsUnknown - allocs2f46e01d.Borrow(cpropertyFlags_allocs) + var csType_allocs *cgoAllocMap + refd9cb28e3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd9cb28e3.Borrow(csType_allocs) - var cheapIndex_allocs *cgoAllocMap - ref2f46e01d.heapIndex, cheapIndex_allocs = (C.uint32_t)(x.HeapIndex), cgoAllocsUnknown - allocs2f46e01d.Borrow(cheapIndex_allocs) + var cpNext_allocs *cgoAllocMap + refd9cb28e3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd9cb28e3.Borrow(cpNext_allocs) - x.ref2f46e01d = ref2f46e01d - x.allocs2f46e01d = allocs2f46e01d - return ref2f46e01d, allocs2f46e01d + var csrcOffset_allocs *cgoAllocMap + refd9cb28e3.srcOffset, csrcOffset_allocs = (C.VkDeviceSize)(x.SrcOffset), cgoAllocsUnknown + allocsd9cb28e3.Borrow(csrcOffset_allocs) + + var cdstOffset_allocs *cgoAllocMap + refd9cb28e3.dstOffset, cdstOffset_allocs = (C.VkDeviceSize)(x.DstOffset), cgoAllocsUnknown + allocsd9cb28e3.Borrow(cdstOffset_allocs) + + var csize_allocs *cgoAllocMap + refd9cb28e3.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocsd9cb28e3.Borrow(csize_allocs) + + x.refd9cb28e3 = refd9cb28e3 + x.allocsd9cb28e3 = allocsd9cb28e3 + return refd9cb28e3, allocsd9cb28e3 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryType) PassValue() (C.VkMemoryType, *cgoAllocMap) { - if x.ref2f46e01d != nil { - return *x.ref2f46e01d, nil +func (x BufferCopy2) PassValue() (C.VkBufferCopy2, *cgoAllocMap) { + if x.refd9cb28e3 != nil { + return *x.refd9cb28e3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2071,85 +29041,142 @@ func (x MemoryType) PassValue() (C.VkMemoryType, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryType) Deref() { - if x.ref2f46e01d == nil { +func (x *BufferCopy2) Deref() { + if x.refd9cb28e3 == nil { return } - x.PropertyFlags = (MemoryPropertyFlags)(x.ref2f46e01d.propertyFlags) - x.HeapIndex = (uint32)(x.ref2f46e01d.heapIndex) + x.SType = (StructureType)(x.refd9cb28e3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd9cb28e3.pNext)) + x.SrcOffset = (DeviceSize)(x.refd9cb28e3.srcOffset) + x.DstOffset = (DeviceSize)(x.refd9cb28e3.dstOffset) + x.Size = (DeviceSize)(x.refd9cb28e3.size) } -// allocMemoryHeapMemory allocates memory for type C.VkMemoryHeap in C. +// allocCopyBufferInfo2Memory allocates memory for type C.VkCopyBufferInfo2 in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryHeapMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryHeapValue)) +func allocCopyBufferInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyBufferInfo2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryHeapValue = unsafe.Sizeof([1]C.VkMemoryHeap{}) +const sizeOfCopyBufferInfo2Value = unsafe.Sizeof([1]C.VkCopyBufferInfo2{}) + +// unpackSBufferCopy2 transforms a sliced Go data structure into plain C format. +func unpackSBufferCopy2(x []BufferCopy2) (unpacked *C.VkBufferCopy2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferCopy2) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocBufferCopy2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkBufferCopy2)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkBufferCopy2)(h.Data) + return +} + +// packSBufferCopy2 reads sliced Go data structure out from plain C format. +func packSBufferCopy2(v []BufferCopy2, ptr0 *C.VkBufferCopy2) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfBufferCopy2Value]C.VkBufferCopy2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewBufferCopy2Ref(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryHeap) Ref() *C.VkMemoryHeap { +func (x *CopyBufferInfo2) Ref() *C.VkCopyBufferInfo2 { if x == nil { return nil } - return x.ref1eb195d5 + return x.ref95a1aa26 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryHeap) Free() { - if x != nil && x.allocs1eb195d5 != nil { - x.allocs1eb195d5.(*cgoAllocMap).Free() - x.ref1eb195d5 = nil +func (x *CopyBufferInfo2) Free() { + if x != nil && x.allocs95a1aa26 != nil { + x.allocs95a1aa26.(*cgoAllocMap).Free() + x.ref95a1aa26 = nil } } -// NewMemoryHeapRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCopyBufferInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryHeapRef(ref unsafe.Pointer) *MemoryHeap { +func NewCopyBufferInfo2Ref(ref unsafe.Pointer) *CopyBufferInfo2 { if ref == nil { return nil } - obj := new(MemoryHeap) - obj.ref1eb195d5 = (*C.VkMemoryHeap)(unsafe.Pointer(ref)) + obj := new(CopyBufferInfo2) + obj.ref95a1aa26 = (*C.VkCopyBufferInfo2)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryHeap) PassRef() (*C.VkMemoryHeap, *cgoAllocMap) { +func (x *CopyBufferInfo2) PassRef() (*C.VkCopyBufferInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1eb195d5 != nil { - return x.ref1eb195d5, nil + } else if x.ref95a1aa26 != nil { + return x.ref95a1aa26, nil } - mem1eb195d5 := allocMemoryHeapMemory(1) - ref1eb195d5 := (*C.VkMemoryHeap)(mem1eb195d5) - allocs1eb195d5 := new(cgoAllocMap) - allocs1eb195d5.Add(mem1eb195d5) + mem95a1aa26 := allocCopyBufferInfo2Memory(1) + ref95a1aa26 := (*C.VkCopyBufferInfo2)(mem95a1aa26) + allocs95a1aa26 := new(cgoAllocMap) + allocs95a1aa26.Add(mem95a1aa26) - var csize_allocs *cgoAllocMap - ref1eb195d5.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs1eb195d5.Borrow(csize_allocs) + var csType_allocs *cgoAllocMap + ref95a1aa26.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs95a1aa26.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - ref1eb195d5.flags, cflags_allocs = (C.VkMemoryHeapFlags)(x.Flags), cgoAllocsUnknown - allocs1eb195d5.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + ref95a1aa26.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs95a1aa26.Borrow(cpNext_allocs) - x.ref1eb195d5 = ref1eb195d5 - x.allocs1eb195d5 = allocs1eb195d5 - return ref1eb195d5, allocs1eb195d5 + var csrcBuffer_allocs *cgoAllocMap + ref95a1aa26.srcBuffer, csrcBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SrcBuffer)), cgoAllocsUnknown + allocs95a1aa26.Borrow(csrcBuffer_allocs) + + var cdstBuffer_allocs *cgoAllocMap + ref95a1aa26.dstBuffer, cdstBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.DstBuffer)), cgoAllocsUnknown + allocs95a1aa26.Borrow(cdstBuffer_allocs) + + var cregionCount_allocs *cgoAllocMap + ref95a1aa26.regionCount, cregionCount_allocs = (C.uint32_t)(x.RegionCount), cgoAllocsUnknown + allocs95a1aa26.Borrow(cregionCount_allocs) + + var cpRegions_allocs *cgoAllocMap + ref95a1aa26.pRegions, cpRegions_allocs = unpackSBufferCopy2(x.PRegions) + allocs95a1aa26.Borrow(cpRegions_allocs) + + x.ref95a1aa26 = ref95a1aa26 + x.allocs95a1aa26 = allocs95a1aa26 + return ref95a1aa26, allocs95a1aa26 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryHeap) PassValue() (C.VkMemoryHeap, *cgoAllocMap) { - if x.ref1eb195d5 != nil { - return *x.ref1eb195d5, nil +func (x CopyBufferInfo2) PassValue() (C.VkCopyBufferInfo2, *cgoAllocMap) { + if x.ref95a1aa26 != nil { + return *x.ref95a1aa26, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2157,171 +29184,262 @@ func (x MemoryHeap) PassValue() (C.VkMemoryHeap, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryHeap) Deref() { - if x.ref1eb195d5 == nil { +func (x *CopyBufferInfo2) Deref() { + if x.ref95a1aa26 == nil { return } - x.Size = (DeviceSize)(x.ref1eb195d5.size) - x.Flags = (MemoryHeapFlags)(x.ref1eb195d5.flags) + x.SType = (StructureType)(x.ref95a1aa26.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref95a1aa26.pNext)) + x.SrcBuffer = *(*Buffer)(unsafe.Pointer(&x.ref95a1aa26.srcBuffer)) + x.DstBuffer = *(*Buffer)(unsafe.Pointer(&x.ref95a1aa26.dstBuffer)) + x.RegionCount = (uint32)(x.ref95a1aa26.regionCount) + packSBufferCopy2(x.PRegions, x.ref95a1aa26.pRegions) } -// allocPhysicalDeviceMemoryPropertiesMemory allocates memory for type C.VkPhysicalDeviceMemoryProperties in C. +// allocImageCopy2Memory allocates memory for type C.VkImageCopy2 in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMemoryPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryPropertiesValue)) +func allocImageCopy2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageCopy2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceMemoryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryProperties{}) +const sizeOfImageCopy2Value = unsafe.Sizeof([1]C.VkImageCopy2{}) -// allocA32MemoryTypeMemory allocates memory for type [32]C.VkMemoryType in C. -// The caller is responsible for freeing the this memory via C.free. -func allocA32MemoryTypeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfA32MemoryTypeValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageCopy2) Ref() *C.VkImageCopy2 { + if x == nil { + return nil } - return mem + return x.ref411062 } -const sizeOfA32MemoryTypeValue = unsafe.Sizeof([1][32]C.VkMemoryType{}) +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageCopy2) Free() { + if x != nil && x.allocs411062 != nil { + x.allocs411062.(*cgoAllocMap).Free() + x.ref411062 = nil + } +} -// unpackA32MemoryType transforms a sliced Go data structure into plain C format. -func unpackA32MemoryType(x [32]MemoryType) (unpacked [32]C.VkMemoryType, allocs *cgoAllocMap) { - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(*[32]C.VkMemoryType) { - go allocs.Free() - }) +// NewImageCopy2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageCopy2Ref(ref unsafe.Pointer) *ImageCopy2 { + if ref == nil { + return nil + } + obj := new(ImageCopy2) + obj.ref411062 = (*C.VkImageCopy2)(unsafe.Pointer(ref)) + return obj +} - mem0 := allocA32MemoryTypeMemory(1) - allocs.Add(mem0) - v0 := (*[32]C.VkMemoryType)(mem0) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageCopy2) PassRef() (*C.VkImageCopy2, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref411062 != nil { + return x.ref411062, nil } - unpacked = *(*[32]C.VkMemoryType)(mem0) - return + mem411062 := allocImageCopy2Memory(1) + ref411062 := (*C.VkImageCopy2)(mem411062) + allocs411062 := new(cgoAllocMap) + allocs411062.Add(mem411062) + + var csType_allocs *cgoAllocMap + ref411062.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs411062.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref411062.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs411062.Borrow(cpNext_allocs) + + var csrcSubresource_allocs *cgoAllocMap + ref411062.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() + allocs411062.Borrow(csrcSubresource_allocs) + + var csrcOffset_allocs *cgoAllocMap + ref411062.srcOffset, csrcOffset_allocs = x.SrcOffset.PassValue() + allocs411062.Borrow(csrcOffset_allocs) + + var cdstSubresource_allocs *cgoAllocMap + ref411062.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() + allocs411062.Borrow(cdstSubresource_allocs) + + var cdstOffset_allocs *cgoAllocMap + ref411062.dstOffset, cdstOffset_allocs = x.DstOffset.PassValue() + allocs411062.Borrow(cdstOffset_allocs) + + var cextent_allocs *cgoAllocMap + ref411062.extent, cextent_allocs = x.Extent.PassValue() + allocs411062.Borrow(cextent_allocs) + + x.ref411062 = ref411062 + x.allocs411062 = allocs411062 + return ref411062, allocs411062 + } -// allocA16MemoryHeapMemory allocates memory for type [16]C.VkMemoryHeap in C. +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageCopy2) PassValue() (C.VkImageCopy2, *cgoAllocMap) { + if x.ref411062 != nil { + return *x.ref411062, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageCopy2) Deref() { + if x.ref411062 == nil { + return + } + x.SType = (StructureType)(x.ref411062.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref411062.pNext)) + x.SrcSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref411062.srcSubresource)) + x.SrcOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref411062.srcOffset)) + x.DstSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref411062.dstSubresource)) + x.DstOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref411062.dstOffset)) + x.Extent = *NewExtent3DRef(unsafe.Pointer(&x.ref411062.extent)) +} + +// allocCopyImageInfo2Memory allocates memory for type C.VkCopyImageInfo2 in C. // The caller is responsible for freeing the this memory via C.free. -func allocA16MemoryHeapMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfA16MemoryHeapValue)) +func allocCopyImageInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyImageInfo2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfA16MemoryHeapValue = unsafe.Sizeof([1][16]C.VkMemoryHeap{}) +const sizeOfCopyImageInfo2Value = unsafe.Sizeof([1]C.VkCopyImageInfo2{}) -// unpackA16MemoryHeap transforms a sliced Go data structure into plain C format. -func unpackA16MemoryHeap(x [16]MemoryHeap) (unpacked [16]C.VkMemoryHeap, allocs *cgoAllocMap) { +// unpackSImageCopy2 transforms a sliced Go data structure into plain C format. +func unpackSImageCopy2(x []ImageCopy2) (unpacked *C.VkImageCopy2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(*[16]C.VkMemoryHeap) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageCopy2) { go allocs.Free() }) - mem0 := allocA16MemoryHeapMemory(1) + len0 := len(x) + mem0 := allocImageCopy2Memory(len0) allocs.Add(mem0) - v0 := (*[16]C.VkMemoryHeap)(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkImageCopy2)(unsafe.Pointer(h0)) for i0 := range x { allocs0 := new(cgoAllocMap) v0[i0], allocs0 = x[i0].PassValue() allocs.Borrow(allocs0) } - unpacked = *(*[16]C.VkMemoryHeap)(mem0) + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkImageCopy2)(h.Data) return } -// packA32MemoryType reads sliced Go data structure out from plain C format. -func packA32MemoryType(v *[32]MemoryType, ptr0 *[32]C.VkMemoryType) { - for i0 := range v { - ptr1 := ptr0[i0] - v[i0] = *NewMemoryTypeRef(unsafe.Pointer(&ptr1)) - } -} - -// packA16MemoryHeap reads sliced Go data structure out from plain C format. -func packA16MemoryHeap(v *[16]MemoryHeap, ptr0 *[16]C.VkMemoryHeap) { +// packSImageCopy2 reads sliced Go data structure out from plain C format. +func packSImageCopy2(v []ImageCopy2, ptr0 *C.VkImageCopy2) { + const m = 0x7fffffff for i0 := range v { - ptr1 := ptr0[i0] - v[i0] = *NewMemoryHeapRef(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfImageCopy2Value]C.VkImageCopy2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewImageCopy2Ref(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMemoryProperties) Ref() *C.VkPhysicalDeviceMemoryProperties { +func (x *CopyImageInfo2) Ref() *C.VkCopyImageInfo2 { if x == nil { return nil } - return x.ref3aabb5fd + return x.ref73df1447 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceMemoryProperties) Free() { - if x != nil && x.allocs3aabb5fd != nil { - x.allocs3aabb5fd.(*cgoAllocMap).Free() - x.ref3aabb5fd = nil +func (x *CopyImageInfo2) Free() { + if x != nil && x.allocs73df1447 != nil { + x.allocs73df1447.(*cgoAllocMap).Free() + x.ref73df1447 = nil } } -// NewPhysicalDeviceMemoryPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCopyImageInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceMemoryPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryProperties { +func NewCopyImageInfo2Ref(ref unsafe.Pointer) *CopyImageInfo2 { if ref == nil { return nil } - obj := new(PhysicalDeviceMemoryProperties) - obj.ref3aabb5fd = (*C.VkPhysicalDeviceMemoryProperties)(unsafe.Pointer(ref)) + obj := new(CopyImageInfo2) + obj.ref73df1447 = (*C.VkCopyImageInfo2)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceMemoryProperties) PassRef() (*C.VkPhysicalDeviceMemoryProperties, *cgoAllocMap) { +func (x *CopyImageInfo2) PassRef() (*C.VkCopyImageInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3aabb5fd != nil { - return x.ref3aabb5fd, nil + } else if x.ref73df1447 != nil { + return x.ref73df1447, nil } - mem3aabb5fd := allocPhysicalDeviceMemoryPropertiesMemory(1) - ref3aabb5fd := (*C.VkPhysicalDeviceMemoryProperties)(mem3aabb5fd) - allocs3aabb5fd := new(cgoAllocMap) - allocs3aabb5fd.Add(mem3aabb5fd) + mem73df1447 := allocCopyImageInfo2Memory(1) + ref73df1447 := (*C.VkCopyImageInfo2)(mem73df1447) + allocs73df1447 := new(cgoAllocMap) + allocs73df1447.Add(mem73df1447) - var cmemoryTypeCount_allocs *cgoAllocMap - ref3aabb5fd.memoryTypeCount, cmemoryTypeCount_allocs = (C.uint32_t)(x.MemoryTypeCount), cgoAllocsUnknown - allocs3aabb5fd.Borrow(cmemoryTypeCount_allocs) + var csType_allocs *cgoAllocMap + ref73df1447.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73df1447.Borrow(csType_allocs) - var cmemoryTypes_allocs *cgoAllocMap - ref3aabb5fd.memoryTypes, cmemoryTypes_allocs = unpackA32MemoryType(x.MemoryTypes) - allocs3aabb5fd.Borrow(cmemoryTypes_allocs) + var cpNext_allocs *cgoAllocMap + ref73df1447.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73df1447.Borrow(cpNext_allocs) - var cmemoryHeapCount_allocs *cgoAllocMap - ref3aabb5fd.memoryHeapCount, cmemoryHeapCount_allocs = (C.uint32_t)(x.MemoryHeapCount), cgoAllocsUnknown - allocs3aabb5fd.Borrow(cmemoryHeapCount_allocs) + var csrcImage_allocs *cgoAllocMap + ref73df1447.srcImage, csrcImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.SrcImage)), cgoAllocsUnknown + allocs73df1447.Borrow(csrcImage_allocs) - var cmemoryHeaps_allocs *cgoAllocMap - ref3aabb5fd.memoryHeaps, cmemoryHeaps_allocs = unpackA16MemoryHeap(x.MemoryHeaps) - allocs3aabb5fd.Borrow(cmemoryHeaps_allocs) + var csrcImageLayout_allocs *cgoAllocMap + ref73df1447.srcImageLayout, csrcImageLayout_allocs = (C.VkImageLayout)(x.SrcImageLayout), cgoAllocsUnknown + allocs73df1447.Borrow(csrcImageLayout_allocs) - x.ref3aabb5fd = ref3aabb5fd - x.allocs3aabb5fd = allocs3aabb5fd - return ref3aabb5fd, allocs3aabb5fd + var cdstImage_allocs *cgoAllocMap + ref73df1447.dstImage, cdstImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.DstImage)), cgoAllocsUnknown + allocs73df1447.Borrow(cdstImage_allocs) + + var cdstImageLayout_allocs *cgoAllocMap + ref73df1447.dstImageLayout, cdstImageLayout_allocs = (C.VkImageLayout)(x.DstImageLayout), cgoAllocsUnknown + allocs73df1447.Borrow(cdstImageLayout_allocs) + + var cregionCount_allocs *cgoAllocMap + ref73df1447.regionCount, cregionCount_allocs = (C.uint32_t)(x.RegionCount), cgoAllocsUnknown + allocs73df1447.Borrow(cregionCount_allocs) + + var cpRegions_allocs *cgoAllocMap + ref73df1447.pRegions, cpRegions_allocs = unpackSImageCopy2(x.PRegions) + allocs73df1447.Borrow(cpRegions_allocs) + + x.ref73df1447 = ref73df1447 + x.allocs73df1447 = allocs73df1447 + return ref73df1447, allocs73df1447 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceMemoryProperties) PassValue() (C.VkPhysicalDeviceMemoryProperties, *cgoAllocMap) { - if x.ref3aabb5fd != nil { - return *x.ref3aabb5fd, nil +func (x CopyImageInfo2) PassValue() (C.VkCopyImageInfo2, *cgoAllocMap) { + if x.ref73df1447 != nil { + return *x.ref73df1447, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2329,103 +29447,115 @@ func (x PhysicalDeviceMemoryProperties) PassValue() (C.VkPhysicalDeviceMemoryPro // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMemoryProperties) Deref() { - if x.ref3aabb5fd == nil { +func (x *CopyImageInfo2) Deref() { + if x.ref73df1447 == nil { return } - x.MemoryTypeCount = (uint32)(x.ref3aabb5fd.memoryTypeCount) - packA32MemoryType(&x.MemoryTypes, (*[32]C.VkMemoryType)(unsafe.Pointer(&x.ref3aabb5fd.memoryTypes))) - x.MemoryHeapCount = (uint32)(x.ref3aabb5fd.memoryHeapCount) - packA16MemoryHeap(&x.MemoryHeaps, (*[16]C.VkMemoryHeap)(unsafe.Pointer(&x.ref3aabb5fd.memoryHeaps))) + x.SType = (StructureType)(x.ref73df1447.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73df1447.pNext)) + x.SrcImage = *(*Image)(unsafe.Pointer(&x.ref73df1447.srcImage)) + x.SrcImageLayout = (ImageLayout)(x.ref73df1447.srcImageLayout) + x.DstImage = *(*Image)(unsafe.Pointer(&x.ref73df1447.dstImage)) + x.DstImageLayout = (ImageLayout)(x.ref73df1447.dstImageLayout) + x.RegionCount = (uint32)(x.ref73df1447.regionCount) + packSImageCopy2(x.PRegions, x.ref73df1447.pRegions) } -// allocDeviceQueueCreateInfoMemory allocates memory for type C.VkDeviceQueueCreateInfo in C. +// allocBufferImageCopy2Memory allocates memory for type C.VkBufferImageCopy2 in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceQueueCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceQueueCreateInfoValue)) +func allocBufferImageCopy2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferImageCopy2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceQueueCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueCreateInfo{}) +const sizeOfBufferImageCopy2Value = unsafe.Sizeof([1]C.VkBufferImageCopy2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceQueueCreateInfo) Ref() *C.VkDeviceQueueCreateInfo { +func (x *BufferImageCopy2) Ref() *C.VkBufferImageCopy2 { if x == nil { return nil } - return x.ref6087b30d + return x.refb0b2a2b1 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceQueueCreateInfo) Free() { - if x != nil && x.allocs6087b30d != nil { - x.allocs6087b30d.(*cgoAllocMap).Free() - x.ref6087b30d = nil +func (x *BufferImageCopy2) Free() { + if x != nil && x.allocsb0b2a2b1 != nil { + x.allocsb0b2a2b1.(*cgoAllocMap).Free() + x.refb0b2a2b1 = nil } } -// NewDeviceQueueCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBufferImageCopy2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceQueueCreateInfoRef(ref unsafe.Pointer) *DeviceQueueCreateInfo { +func NewBufferImageCopy2Ref(ref unsafe.Pointer) *BufferImageCopy2 { if ref == nil { return nil } - obj := new(DeviceQueueCreateInfo) - obj.ref6087b30d = (*C.VkDeviceQueueCreateInfo)(unsafe.Pointer(ref)) + obj := new(BufferImageCopy2) + obj.refb0b2a2b1 = (*C.VkBufferImageCopy2)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceQueueCreateInfo) PassRef() (*C.VkDeviceQueueCreateInfo, *cgoAllocMap) { +func (x *BufferImageCopy2) PassRef() (*C.VkBufferImageCopy2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6087b30d != nil { - return x.ref6087b30d, nil + } else if x.refb0b2a2b1 != nil { + return x.refb0b2a2b1, nil } - mem6087b30d := allocDeviceQueueCreateInfoMemory(1) - ref6087b30d := (*C.VkDeviceQueueCreateInfo)(mem6087b30d) - allocs6087b30d := new(cgoAllocMap) - allocs6087b30d.Add(mem6087b30d) + memb0b2a2b1 := allocBufferImageCopy2Memory(1) + refb0b2a2b1 := (*C.VkBufferImageCopy2)(memb0b2a2b1) + allocsb0b2a2b1 := new(cgoAllocMap) + allocsb0b2a2b1.Add(memb0b2a2b1) var csType_allocs *cgoAllocMap - ref6087b30d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6087b30d.Borrow(csType_allocs) + refb0b2a2b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb0b2a2b1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6087b30d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6087b30d.Borrow(cpNext_allocs) + refb0b2a2b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb0b2a2b1.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref6087b30d.flags, cflags_allocs = (C.VkDeviceQueueCreateFlags)(x.Flags), cgoAllocsUnknown - allocs6087b30d.Borrow(cflags_allocs) + var cbufferOffset_allocs *cgoAllocMap + refb0b2a2b1.bufferOffset, cbufferOffset_allocs = (C.VkDeviceSize)(x.BufferOffset), cgoAllocsUnknown + allocsb0b2a2b1.Borrow(cbufferOffset_allocs) - var cqueueFamilyIndex_allocs *cgoAllocMap - ref6087b30d.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown - allocs6087b30d.Borrow(cqueueFamilyIndex_allocs) + var cbufferRowLength_allocs *cgoAllocMap + refb0b2a2b1.bufferRowLength, cbufferRowLength_allocs = (C.uint32_t)(x.BufferRowLength), cgoAllocsUnknown + allocsb0b2a2b1.Borrow(cbufferRowLength_allocs) - var cqueueCount_allocs *cgoAllocMap - ref6087b30d.queueCount, cqueueCount_allocs = (C.uint32_t)(x.QueueCount), cgoAllocsUnknown - allocs6087b30d.Borrow(cqueueCount_allocs) + var cbufferImageHeight_allocs *cgoAllocMap + refb0b2a2b1.bufferImageHeight, cbufferImageHeight_allocs = (C.uint32_t)(x.BufferImageHeight), cgoAllocsUnknown + allocsb0b2a2b1.Borrow(cbufferImageHeight_allocs) - var cpQueuePriorities_allocs *cgoAllocMap - ref6087b30d.pQueuePriorities, cpQueuePriorities_allocs = (*C.float)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueuePriorities)).Data)), cgoAllocsUnknown - allocs6087b30d.Borrow(cpQueuePriorities_allocs) + var cimageSubresource_allocs *cgoAllocMap + refb0b2a2b1.imageSubresource, cimageSubresource_allocs = x.ImageSubresource.PassValue() + allocsb0b2a2b1.Borrow(cimageSubresource_allocs) - x.ref6087b30d = ref6087b30d - x.allocs6087b30d = allocs6087b30d - return ref6087b30d, allocs6087b30d + var cimageOffset_allocs *cgoAllocMap + refb0b2a2b1.imageOffset, cimageOffset_allocs = x.ImageOffset.PassValue() + allocsb0b2a2b1.Borrow(cimageOffset_allocs) + + var cimageExtent_allocs *cgoAllocMap + refb0b2a2b1.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() + allocsb0b2a2b1.Borrow(cimageExtent_allocs) + + x.refb0b2a2b1 = refb0b2a2b1 + x.allocsb0b2a2b1 = allocsb0b2a2b1 + return refb0b2a2b1, allocsb0b2a2b1 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceQueueCreateInfo) PassValue() (C.VkDeviceQueueCreateInfo, *cgoAllocMap) { - if x.ref6087b30d != nil { - return *x.ref6087b30d, nil +func (x BufferImageCopy2) PassValue() (C.VkBufferImageCopy2, *cgoAllocMap) { + if x.refb0b2a2b1 != nil { + return *x.refb0b2a2b1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2433,201 +29563,149 @@ func (x DeviceQueueCreateInfo) PassValue() (C.VkDeviceQueueCreateInfo, *cgoAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceQueueCreateInfo) Deref() { - if x.ref6087b30d == nil { +func (x *BufferImageCopy2) Deref() { + if x.refb0b2a2b1 == nil { return } - x.SType = (StructureType)(x.ref6087b30d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6087b30d.pNext)) - x.Flags = (DeviceQueueCreateFlags)(x.ref6087b30d.flags) - x.QueueFamilyIndex = (uint32)(x.ref6087b30d.queueFamilyIndex) - x.QueueCount = (uint32)(x.ref6087b30d.queueCount) - hxfc4425b := (*sliceHeader)(unsafe.Pointer(&x.PQueuePriorities)) - hxfc4425b.Data = unsafe.Pointer(x.ref6087b30d.pQueuePriorities) - hxfc4425b.Cap = 0x7fffffff - // hxfc4425b.Len = ? - + x.SType = (StructureType)(x.refb0b2a2b1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb0b2a2b1.pNext)) + x.BufferOffset = (DeviceSize)(x.refb0b2a2b1.bufferOffset) + x.BufferRowLength = (uint32)(x.refb0b2a2b1.bufferRowLength) + x.BufferImageHeight = (uint32)(x.refb0b2a2b1.bufferImageHeight) + x.ImageSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.refb0b2a2b1.imageSubresource)) + x.ImageOffset = *NewOffset3DRef(unsafe.Pointer(&x.refb0b2a2b1.imageOffset)) + x.ImageExtent = *NewExtent3DRef(unsafe.Pointer(&x.refb0b2a2b1.imageExtent)) } -// allocDeviceCreateInfoMemory allocates memory for type C.VkDeviceCreateInfo in C. +// allocCopyBufferToImageInfo2Memory allocates memory for type C.VkCopyBufferToImageInfo2 in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceCreateInfoValue)) +func allocCopyBufferToImageInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyBufferToImageInfo2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceCreateInfo{}) - -// unpackSDeviceQueueCreateInfo transforms a sliced Go data structure into plain C format. -func unpackSDeviceQueueCreateInfo(x []DeviceQueueCreateInfo) (unpacked *C.VkDeviceQueueCreateInfo, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDeviceQueueCreateInfo) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocDeviceQueueCreateInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkDeviceQueueCreateInfo)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkDeviceQueueCreateInfo)(h.Data) - return -} +const sizeOfCopyBufferToImageInfo2Value = unsafe.Sizeof([1]C.VkCopyBufferToImageInfo2{}) -// unpackSPhysicalDeviceFeatures transforms a sliced Go data structure into plain C format. -func unpackSPhysicalDeviceFeatures(x []PhysicalDeviceFeatures) (unpacked *C.VkPhysicalDeviceFeatures, allocs *cgoAllocMap) { +// unpackSBufferImageCopy2 transforms a sliced Go data structure into plain C format. +func unpackSBufferImageCopy2(x []BufferImageCopy2) (unpacked *C.VkBufferImageCopy2, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkPhysicalDeviceFeatures) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferImageCopy2) { go allocs.Free() }) len0 := len(x) - mem0 := allocPhysicalDeviceFeaturesMemory(len0) + mem0 := allocBufferImageCopy2Memory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkPhysicalDeviceFeatures)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkBufferImageCopy2)(unsafe.Pointer(h0)) for i0 := range x { allocs0 := new(cgoAllocMap) v0[i0], allocs0 = x[i0].PassValue() allocs.Borrow(allocs0) } h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkPhysicalDeviceFeatures)(h.Data) + unpacked = (*C.VkBufferImageCopy2)(h.Data) return } -// packSDeviceQueueCreateInfo reads sliced Go data structure out from plain C format. -func packSDeviceQueueCreateInfo(v []DeviceQueueCreateInfo, ptr0 *C.VkDeviceQueueCreateInfo) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfDeviceQueueCreateInfoValue]C.VkDeviceQueueCreateInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewDeviceQueueCreateInfoRef(unsafe.Pointer(&ptr1)) - } -} - -// packSPhysicalDeviceFeatures reads sliced Go data structure out from plain C format. -func packSPhysicalDeviceFeatures(v []PhysicalDeviceFeatures, ptr0 *C.VkPhysicalDeviceFeatures) { +// packSBufferImageCopy2 reads sliced Go data structure out from plain C format. +func packSBufferImageCopy2(v []BufferImageCopy2, ptr0 *C.VkBufferImageCopy2) { const m = 0x7fffffff for i0 := range v { - ptr1 := (*(*[m / sizeOfPhysicalDeviceFeaturesValue]C.VkPhysicalDeviceFeatures)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewPhysicalDeviceFeaturesRef(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfBufferImageCopy2Value]C.VkBufferImageCopy2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewBufferImageCopy2Ref(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceCreateInfo) Ref() *C.VkDeviceCreateInfo { +func (x *CopyBufferToImageInfo2) Ref() *C.VkCopyBufferToImageInfo2 { if x == nil { return nil } - return x.refc0d8b997 + return x.refa8b5363c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceCreateInfo) Free() { - if x != nil && x.allocsc0d8b997 != nil { - x.allocsc0d8b997.(*cgoAllocMap).Free() - x.refc0d8b997 = nil +func (x *CopyBufferToImageInfo2) Free() { + if x != nil && x.allocsa8b5363c != nil { + x.allocsa8b5363c.(*cgoAllocMap).Free() + x.refa8b5363c = nil } } -// NewDeviceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCopyBufferToImageInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceCreateInfoRef(ref unsafe.Pointer) *DeviceCreateInfo { +func NewCopyBufferToImageInfo2Ref(ref unsafe.Pointer) *CopyBufferToImageInfo2 { if ref == nil { return nil } - obj := new(DeviceCreateInfo) - obj.refc0d8b997 = (*C.VkDeviceCreateInfo)(unsafe.Pointer(ref)) + obj := new(CopyBufferToImageInfo2) + obj.refa8b5363c = (*C.VkCopyBufferToImageInfo2)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceCreateInfo) PassRef() (*C.VkDeviceCreateInfo, *cgoAllocMap) { +func (x *CopyBufferToImageInfo2) PassRef() (*C.VkCopyBufferToImageInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc0d8b997 != nil { - return x.refc0d8b997, nil + } else if x.refa8b5363c != nil { + return x.refa8b5363c, nil } - memc0d8b997 := allocDeviceCreateInfoMemory(1) - refc0d8b997 := (*C.VkDeviceCreateInfo)(memc0d8b997) - allocsc0d8b997 := new(cgoAllocMap) - allocsc0d8b997.Add(memc0d8b997) + mema8b5363c := allocCopyBufferToImageInfo2Memory(1) + refa8b5363c := (*C.VkCopyBufferToImageInfo2)(mema8b5363c) + allocsa8b5363c := new(cgoAllocMap) + allocsa8b5363c.Add(mema8b5363c) var csType_allocs *cgoAllocMap - refc0d8b997.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc0d8b997.Borrow(csType_allocs) + refa8b5363c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa8b5363c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc0d8b997.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc0d8b997.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refc0d8b997.flags, cflags_allocs = (C.VkDeviceCreateFlags)(x.Flags), cgoAllocsUnknown - allocsc0d8b997.Borrow(cflags_allocs) - - var cqueueCreateInfoCount_allocs *cgoAllocMap - refc0d8b997.queueCreateInfoCount, cqueueCreateInfoCount_allocs = (C.uint32_t)(x.QueueCreateInfoCount), cgoAllocsUnknown - allocsc0d8b997.Borrow(cqueueCreateInfoCount_allocs) + refa8b5363c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa8b5363c.Borrow(cpNext_allocs) - var cpQueueCreateInfos_allocs *cgoAllocMap - refc0d8b997.pQueueCreateInfos, cpQueueCreateInfos_allocs = unpackSDeviceQueueCreateInfo(x.PQueueCreateInfos) - allocsc0d8b997.Borrow(cpQueueCreateInfos_allocs) - - var cenabledLayerCount_allocs *cgoAllocMap - refc0d8b997.enabledLayerCount, cenabledLayerCount_allocs = (C.uint32_t)(x.EnabledLayerCount), cgoAllocsUnknown - allocsc0d8b997.Borrow(cenabledLayerCount_allocs) + var csrcBuffer_allocs *cgoAllocMap + refa8b5363c.srcBuffer, csrcBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SrcBuffer)), cgoAllocsUnknown + allocsa8b5363c.Borrow(csrcBuffer_allocs) - var cppEnabledLayerNames_allocs *cgoAllocMap - refc0d8b997.ppEnabledLayerNames, cppEnabledLayerNames_allocs = unpackSString(x.PpEnabledLayerNames) - allocsc0d8b997.Borrow(cppEnabledLayerNames_allocs) + var cdstImage_allocs *cgoAllocMap + refa8b5363c.dstImage, cdstImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.DstImage)), cgoAllocsUnknown + allocsa8b5363c.Borrow(cdstImage_allocs) - var cenabledExtensionCount_allocs *cgoAllocMap - refc0d8b997.enabledExtensionCount, cenabledExtensionCount_allocs = (C.uint32_t)(x.EnabledExtensionCount), cgoAllocsUnknown - allocsc0d8b997.Borrow(cenabledExtensionCount_allocs) + var cdstImageLayout_allocs *cgoAllocMap + refa8b5363c.dstImageLayout, cdstImageLayout_allocs = (C.VkImageLayout)(x.DstImageLayout), cgoAllocsUnknown + allocsa8b5363c.Borrow(cdstImageLayout_allocs) - var cppEnabledExtensionNames_allocs *cgoAllocMap - refc0d8b997.ppEnabledExtensionNames, cppEnabledExtensionNames_allocs = unpackSString(x.PpEnabledExtensionNames) - allocsc0d8b997.Borrow(cppEnabledExtensionNames_allocs) + var cregionCount_allocs *cgoAllocMap + refa8b5363c.regionCount, cregionCount_allocs = (C.uint32_t)(x.RegionCount), cgoAllocsUnknown + allocsa8b5363c.Borrow(cregionCount_allocs) - var cpEnabledFeatures_allocs *cgoAllocMap - refc0d8b997.pEnabledFeatures, cpEnabledFeatures_allocs = unpackSPhysicalDeviceFeatures(x.PEnabledFeatures) - allocsc0d8b997.Borrow(cpEnabledFeatures_allocs) + var cpRegions_allocs *cgoAllocMap + refa8b5363c.pRegions, cpRegions_allocs = unpackSBufferImageCopy2(x.PRegions) + allocsa8b5363c.Borrow(cpRegions_allocs) - x.refc0d8b997 = refc0d8b997 - x.allocsc0d8b997 = allocsc0d8b997 - return refc0d8b997, allocsc0d8b997 + x.refa8b5363c = refa8b5363c + x.allocsa8b5363c = allocsa8b5363c + return refa8b5363c, allocsa8b5363c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceCreateInfo) PassValue() (C.VkDeviceCreateInfo, *cgoAllocMap) { - if x.refc0d8b997 != nil { - return *x.refc0d8b997, nil +func (x CopyBufferToImageInfo2) PassValue() (C.VkCopyBufferToImageInfo2, *cgoAllocMap) { + if x.refa8b5363c != nil { + return *x.refa8b5363c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2635,93 +29713,110 @@ func (x DeviceCreateInfo) PassValue() (C.VkDeviceCreateInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceCreateInfo) Deref() { - if x.refc0d8b997 == nil { +func (x *CopyBufferToImageInfo2) Deref() { + if x.refa8b5363c == nil { return } - x.SType = (StructureType)(x.refc0d8b997.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc0d8b997.pNext)) - x.Flags = (DeviceCreateFlags)(x.refc0d8b997.flags) - x.QueueCreateInfoCount = (uint32)(x.refc0d8b997.queueCreateInfoCount) - packSDeviceQueueCreateInfo(x.PQueueCreateInfos, x.refc0d8b997.pQueueCreateInfos) - x.EnabledLayerCount = (uint32)(x.refc0d8b997.enabledLayerCount) - packSString(x.PpEnabledLayerNames, x.refc0d8b997.ppEnabledLayerNames) - x.EnabledExtensionCount = (uint32)(x.refc0d8b997.enabledExtensionCount) - packSString(x.PpEnabledExtensionNames, x.refc0d8b997.ppEnabledExtensionNames) - packSPhysicalDeviceFeatures(x.PEnabledFeatures, x.refc0d8b997.pEnabledFeatures) + x.SType = (StructureType)(x.refa8b5363c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa8b5363c.pNext)) + x.SrcBuffer = *(*Buffer)(unsafe.Pointer(&x.refa8b5363c.srcBuffer)) + x.DstImage = *(*Image)(unsafe.Pointer(&x.refa8b5363c.dstImage)) + x.DstImageLayout = (ImageLayout)(x.refa8b5363c.dstImageLayout) + x.RegionCount = (uint32)(x.refa8b5363c.regionCount) + packSBufferImageCopy2(x.PRegions, x.refa8b5363c.pRegions) } -// allocExtensionPropertiesMemory allocates memory for type C.VkExtensionProperties in C. +// allocCopyImageToBufferInfo2Memory allocates memory for type C.VkCopyImageToBufferInfo2 in C. // The caller is responsible for freeing the this memory via C.free. -func allocExtensionPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExtensionPropertiesValue)) +func allocCopyImageToBufferInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyImageToBufferInfo2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExtensionPropertiesValue = unsafe.Sizeof([1]C.VkExtensionProperties{}) +const sizeOfCopyImageToBufferInfo2Value = unsafe.Sizeof([1]C.VkCopyImageToBufferInfo2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExtensionProperties) Ref() *C.VkExtensionProperties { +func (x *CopyImageToBufferInfo2) Ref() *C.VkCopyImageToBufferInfo2 { if x == nil { return nil } - return x.ref2f001956 + return x.refa81aa2a6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExtensionProperties) Free() { - if x != nil && x.allocs2f001956 != nil { - x.allocs2f001956.(*cgoAllocMap).Free() - x.ref2f001956 = nil +func (x *CopyImageToBufferInfo2) Free() { + if x != nil && x.allocsa81aa2a6 != nil { + x.allocsa81aa2a6.(*cgoAllocMap).Free() + x.refa81aa2a6 = nil } } -// NewExtensionPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCopyImageToBufferInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExtensionPropertiesRef(ref unsafe.Pointer) *ExtensionProperties { +func NewCopyImageToBufferInfo2Ref(ref unsafe.Pointer) *CopyImageToBufferInfo2 { if ref == nil { return nil } - obj := new(ExtensionProperties) - obj.ref2f001956 = (*C.VkExtensionProperties)(unsafe.Pointer(ref)) + obj := new(CopyImageToBufferInfo2) + obj.refa81aa2a6 = (*C.VkCopyImageToBufferInfo2)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExtensionProperties) PassRef() (*C.VkExtensionProperties, *cgoAllocMap) { +func (x *CopyImageToBufferInfo2) PassRef() (*C.VkCopyImageToBufferInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2f001956 != nil { - return x.ref2f001956, nil + } else if x.refa81aa2a6 != nil { + return x.refa81aa2a6, nil } - mem2f001956 := allocExtensionPropertiesMemory(1) - ref2f001956 := (*C.VkExtensionProperties)(mem2f001956) - allocs2f001956 := new(cgoAllocMap) - allocs2f001956.Add(mem2f001956) + mema81aa2a6 := allocCopyImageToBufferInfo2Memory(1) + refa81aa2a6 := (*C.VkCopyImageToBufferInfo2)(mema81aa2a6) + allocsa81aa2a6 := new(cgoAllocMap) + allocsa81aa2a6.Add(mema81aa2a6) - var cextensionName_allocs *cgoAllocMap - ref2f001956.extensionName, cextensionName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.ExtensionName)), cgoAllocsUnknown - allocs2f001956.Borrow(cextensionName_allocs) + var csType_allocs *cgoAllocMap + refa81aa2a6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa81aa2a6.Borrow(csType_allocs) - var cspecVersion_allocs *cgoAllocMap - ref2f001956.specVersion, cspecVersion_allocs = (C.uint32_t)(x.SpecVersion), cgoAllocsUnknown - allocs2f001956.Borrow(cspecVersion_allocs) + var cpNext_allocs *cgoAllocMap + refa81aa2a6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa81aa2a6.Borrow(cpNext_allocs) - x.ref2f001956 = ref2f001956 - x.allocs2f001956 = allocs2f001956 - return ref2f001956, allocs2f001956 + var csrcImage_allocs *cgoAllocMap + refa81aa2a6.srcImage, csrcImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.SrcImage)), cgoAllocsUnknown + allocsa81aa2a6.Borrow(csrcImage_allocs) + + var csrcImageLayout_allocs *cgoAllocMap + refa81aa2a6.srcImageLayout, csrcImageLayout_allocs = (C.VkImageLayout)(x.SrcImageLayout), cgoAllocsUnknown + allocsa81aa2a6.Borrow(csrcImageLayout_allocs) + + var cdstBuffer_allocs *cgoAllocMap + refa81aa2a6.dstBuffer, cdstBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.DstBuffer)), cgoAllocsUnknown + allocsa81aa2a6.Borrow(cdstBuffer_allocs) + + var cregionCount_allocs *cgoAllocMap + refa81aa2a6.regionCount, cregionCount_allocs = (C.uint32_t)(x.RegionCount), cgoAllocsUnknown + allocsa81aa2a6.Borrow(cregionCount_allocs) + + var cpRegions_allocs *cgoAllocMap + refa81aa2a6.pRegions, cpRegions_allocs = unpackSBufferImageCopy2(x.PRegions) + allocsa81aa2a6.Borrow(cpRegions_allocs) + + x.refa81aa2a6 = refa81aa2a6 + x.allocsa81aa2a6 = allocsa81aa2a6 + return refa81aa2a6, allocsa81aa2a6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExtensionProperties) PassValue() (C.VkExtensionProperties, *cgoAllocMap) { - if x.ref2f001956 != nil { - return *x.ref2f001956, nil +func (x CopyImageToBufferInfo2) PassValue() (C.VkCopyImageToBufferInfo2, *cgoAllocMap) { + if x.refa81aa2a6 != nil { + return *x.refa81aa2a6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2729,93 +29824,106 @@ func (x ExtensionProperties) PassValue() (C.VkExtensionProperties, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExtensionProperties) Deref() { - if x.ref2f001956 == nil { +func (x *CopyImageToBufferInfo2) Deref() { + if x.refa81aa2a6 == nil { return } - x.ExtensionName = *(*[256]byte)(unsafe.Pointer(&x.ref2f001956.extensionName)) - x.SpecVersion = (uint32)(x.ref2f001956.specVersion) + x.SType = (StructureType)(x.refa81aa2a6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa81aa2a6.pNext)) + x.SrcImage = *(*Image)(unsafe.Pointer(&x.refa81aa2a6.srcImage)) + x.SrcImageLayout = (ImageLayout)(x.refa81aa2a6.srcImageLayout) + x.DstBuffer = *(*Buffer)(unsafe.Pointer(&x.refa81aa2a6.dstBuffer)) + x.RegionCount = (uint32)(x.refa81aa2a6.regionCount) + packSBufferImageCopy2(x.PRegions, x.refa81aa2a6.pRegions) } -// allocLayerPropertiesMemory allocates memory for type C.VkLayerProperties in C. +// allocImageBlit2Memory allocates memory for type C.VkImageBlit2 in C. // The caller is responsible for freeing the this memory via C.free. -func allocLayerPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfLayerPropertiesValue)) +func allocImageBlit2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageBlit2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfLayerPropertiesValue = unsafe.Sizeof([1]C.VkLayerProperties{}) +const sizeOfImageBlit2Value = unsafe.Sizeof([1]C.VkImageBlit2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *LayerProperties) Ref() *C.VkLayerProperties { +func (x *ImageBlit2) Ref() *C.VkImageBlit2 { if x == nil { return nil } - return x.refd9407ce7 + return x.ref89cd708e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *LayerProperties) Free() { - if x != nil && x.allocsd9407ce7 != nil { - x.allocsd9407ce7.(*cgoAllocMap).Free() - x.refd9407ce7 = nil +func (x *ImageBlit2) Free() { + if x != nil && x.allocs89cd708e != nil { + x.allocs89cd708e.(*cgoAllocMap).Free() + x.ref89cd708e = nil } } -// NewLayerPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageBlit2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewLayerPropertiesRef(ref unsafe.Pointer) *LayerProperties { +func NewImageBlit2Ref(ref unsafe.Pointer) *ImageBlit2 { if ref == nil { return nil } - obj := new(LayerProperties) - obj.refd9407ce7 = (*C.VkLayerProperties)(unsafe.Pointer(ref)) + obj := new(ImageBlit2) + obj.ref89cd708e = (*C.VkImageBlit2)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *LayerProperties) PassRef() (*C.VkLayerProperties, *cgoAllocMap) { +func (x *ImageBlit2) PassRef() (*C.VkImageBlit2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd9407ce7 != nil { - return x.refd9407ce7, nil + } else if x.ref89cd708e != nil { + return x.ref89cd708e, nil } - memd9407ce7 := allocLayerPropertiesMemory(1) - refd9407ce7 := (*C.VkLayerProperties)(memd9407ce7) - allocsd9407ce7 := new(cgoAllocMap) - allocsd9407ce7.Add(memd9407ce7) + mem89cd708e := allocImageBlit2Memory(1) + ref89cd708e := (*C.VkImageBlit2)(mem89cd708e) + allocs89cd708e := new(cgoAllocMap) + allocs89cd708e.Add(mem89cd708e) - var clayerName_allocs *cgoAllocMap - refd9407ce7.layerName, clayerName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.LayerName)), cgoAllocsUnknown - allocsd9407ce7.Borrow(clayerName_allocs) + var csType_allocs *cgoAllocMap + ref89cd708e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs89cd708e.Borrow(csType_allocs) - var cspecVersion_allocs *cgoAllocMap - refd9407ce7.specVersion, cspecVersion_allocs = (C.uint32_t)(x.SpecVersion), cgoAllocsUnknown - allocsd9407ce7.Borrow(cspecVersion_allocs) + var cpNext_allocs *cgoAllocMap + ref89cd708e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs89cd708e.Borrow(cpNext_allocs) - var cimplementationVersion_allocs *cgoAllocMap - refd9407ce7.implementationVersion, cimplementationVersion_allocs = (C.uint32_t)(x.ImplementationVersion), cgoAllocsUnknown - allocsd9407ce7.Borrow(cimplementationVersion_allocs) + var csrcSubresource_allocs *cgoAllocMap + ref89cd708e.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() + allocs89cd708e.Borrow(csrcSubresource_allocs) - var cdescription_allocs *cgoAllocMap - refd9407ce7.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown - allocsd9407ce7.Borrow(cdescription_allocs) + var csrcOffsets_allocs *cgoAllocMap + ref89cd708e.srcOffsets, csrcOffsets_allocs = unpackA2Offset3D(x.SrcOffsets) + allocs89cd708e.Borrow(csrcOffsets_allocs) - x.refd9407ce7 = refd9407ce7 - x.allocsd9407ce7 = allocsd9407ce7 - return refd9407ce7, allocsd9407ce7 + var cdstSubresource_allocs *cgoAllocMap + ref89cd708e.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() + allocs89cd708e.Borrow(cdstSubresource_allocs) + + var cdstOffsets_allocs *cgoAllocMap + ref89cd708e.dstOffsets, cdstOffsets_allocs = unpackA2Offset3D(x.DstOffsets) + allocs89cd708e.Borrow(cdstOffsets_allocs) + + x.ref89cd708e = ref89cd708e + x.allocs89cd708e = allocs89cd708e + return ref89cd708e, allocs89cd708e } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x LayerProperties) PassValue() (C.VkLayerProperties, *cgoAllocMap) { - if x.refd9407ce7 != nil { - return *x.refd9407ce7, nil +func (x ImageBlit2) PassValue() (C.VkImageBlit2, *cgoAllocMap) { + if x.ref89cd708e != nil { + return *x.ref89cd708e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2823,115 +29931,155 @@ func (x LayerProperties) PassValue() (C.VkLayerProperties, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *LayerProperties) Deref() { - if x.refd9407ce7 == nil { +func (x *ImageBlit2) Deref() { + if x.ref89cd708e == nil { return } - x.LayerName = *(*[256]byte)(unsafe.Pointer(&x.refd9407ce7.layerName)) - x.SpecVersion = (uint32)(x.refd9407ce7.specVersion) - x.ImplementationVersion = (uint32)(x.refd9407ce7.implementationVersion) - x.Description = *(*[256]byte)(unsafe.Pointer(&x.refd9407ce7.description)) + x.SType = (StructureType)(x.ref89cd708e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref89cd708e.pNext)) + x.SrcSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref89cd708e.srcSubresource)) + packA2Offset3D(&x.SrcOffsets, (*[2]C.VkOffset3D)(unsafe.Pointer(&x.ref89cd708e.srcOffsets))) + x.DstSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref89cd708e.dstSubresource)) + packA2Offset3D(&x.DstOffsets, (*[2]C.VkOffset3D)(unsafe.Pointer(&x.ref89cd708e.dstOffsets))) } -// allocSubmitInfoMemory allocates memory for type C.VkSubmitInfo in C. +// allocBlitImageInfo2Memory allocates memory for type C.VkBlitImageInfo2 in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubmitInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubmitInfoValue)) +func allocBlitImageInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBlitImageInfo2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubmitInfoValue = unsafe.Sizeof([1]C.VkSubmitInfo{}) +const sizeOfBlitImageInfo2Value = unsafe.Sizeof([1]C.VkBlitImageInfo2{}) + +// unpackSImageBlit2 transforms a sliced Go data structure into plain C format. +func unpackSImageBlit2(x []ImageBlit2) (unpacked *C.VkImageBlit2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageBlit2) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocImageBlit2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkImageBlit2)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkImageBlit2)(h.Data) + return +} + +// packSImageBlit2 reads sliced Go data structure out from plain C format. +func packSImageBlit2(v []ImageBlit2, ptr0 *C.VkImageBlit2) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfImageBlit2Value]C.VkImageBlit2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewImageBlit2Ref(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubmitInfo) Ref() *C.VkSubmitInfo { +func (x *BlitImageInfo2) Ref() *C.VkBlitImageInfo2 { if x == nil { return nil } - return x.ref22884025 + return x.ref93f0395 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubmitInfo) Free() { - if x != nil && x.allocs22884025 != nil { - x.allocs22884025.(*cgoAllocMap).Free() - x.ref22884025 = nil +func (x *BlitImageInfo2) Free() { + if x != nil && x.allocs93f0395 != nil { + x.allocs93f0395.(*cgoAllocMap).Free() + x.ref93f0395 = nil } } -// NewSubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBlitImageInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubmitInfoRef(ref unsafe.Pointer) *SubmitInfo { +func NewBlitImageInfo2Ref(ref unsafe.Pointer) *BlitImageInfo2 { if ref == nil { return nil } - obj := new(SubmitInfo) - obj.ref22884025 = (*C.VkSubmitInfo)(unsafe.Pointer(ref)) + obj := new(BlitImageInfo2) + obj.ref93f0395 = (*C.VkBlitImageInfo2)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubmitInfo) PassRef() (*C.VkSubmitInfo, *cgoAllocMap) { +func (x *BlitImageInfo2) PassRef() (*C.VkBlitImageInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref22884025 != nil { - return x.ref22884025, nil + } else if x.ref93f0395 != nil { + return x.ref93f0395, nil } - mem22884025 := allocSubmitInfoMemory(1) - ref22884025 := (*C.VkSubmitInfo)(mem22884025) - allocs22884025 := new(cgoAllocMap) - allocs22884025.Add(mem22884025) + mem93f0395 := allocBlitImageInfo2Memory(1) + ref93f0395 := (*C.VkBlitImageInfo2)(mem93f0395) + allocs93f0395 := new(cgoAllocMap) + allocs93f0395.Add(mem93f0395) var csType_allocs *cgoAllocMap - ref22884025.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs22884025.Borrow(csType_allocs) + ref93f0395.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs93f0395.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref22884025.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs22884025.Borrow(cpNext_allocs) + ref93f0395.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs93f0395.Borrow(cpNext_allocs) - var cwaitSemaphoreCount_allocs *cgoAllocMap - ref22884025.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown - allocs22884025.Borrow(cwaitSemaphoreCount_allocs) + var csrcImage_allocs *cgoAllocMap + ref93f0395.srcImage, csrcImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.SrcImage)), cgoAllocsUnknown + allocs93f0395.Borrow(csrcImage_allocs) - var cpWaitSemaphores_allocs *cgoAllocMap - ref22884025.pWaitSemaphores, cpWaitSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)).Data)), cgoAllocsUnknown - allocs22884025.Borrow(cpWaitSemaphores_allocs) + var csrcImageLayout_allocs *cgoAllocMap + ref93f0395.srcImageLayout, csrcImageLayout_allocs = (C.VkImageLayout)(x.SrcImageLayout), cgoAllocsUnknown + allocs93f0395.Borrow(csrcImageLayout_allocs) - var cpWaitDstStageMask_allocs *cgoAllocMap - ref22884025.pWaitDstStageMask, cpWaitDstStageMask_allocs = (*C.VkPipelineStageFlags)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitDstStageMask)).Data)), cgoAllocsUnknown - allocs22884025.Borrow(cpWaitDstStageMask_allocs) + var cdstImage_allocs *cgoAllocMap + ref93f0395.dstImage, cdstImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.DstImage)), cgoAllocsUnknown + allocs93f0395.Borrow(cdstImage_allocs) - var ccommandBufferCount_allocs *cgoAllocMap - ref22884025.commandBufferCount, ccommandBufferCount_allocs = (C.uint32_t)(x.CommandBufferCount), cgoAllocsUnknown - allocs22884025.Borrow(ccommandBufferCount_allocs) + var cdstImageLayout_allocs *cgoAllocMap + ref93f0395.dstImageLayout, cdstImageLayout_allocs = (C.VkImageLayout)(x.DstImageLayout), cgoAllocsUnknown + allocs93f0395.Borrow(cdstImageLayout_allocs) - var cpCommandBuffers_allocs *cgoAllocMap - ref22884025.pCommandBuffers, cpCommandBuffers_allocs = (*C.VkCommandBuffer)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCommandBuffers)).Data)), cgoAllocsUnknown - allocs22884025.Borrow(cpCommandBuffers_allocs) + var cregionCount_allocs *cgoAllocMap + ref93f0395.regionCount, cregionCount_allocs = (C.uint32_t)(x.RegionCount), cgoAllocsUnknown + allocs93f0395.Borrow(cregionCount_allocs) - var csignalSemaphoreCount_allocs *cgoAllocMap - ref22884025.signalSemaphoreCount, csignalSemaphoreCount_allocs = (C.uint32_t)(x.SignalSemaphoreCount), cgoAllocsUnknown - allocs22884025.Borrow(csignalSemaphoreCount_allocs) + var cpRegions_allocs *cgoAllocMap + ref93f0395.pRegions, cpRegions_allocs = unpackSImageBlit2(x.PRegions) + allocs93f0395.Borrow(cpRegions_allocs) - var cpSignalSemaphores_allocs *cgoAllocMap - ref22884025.pSignalSemaphores, cpSignalSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores)).Data)), cgoAllocsUnknown - allocs22884025.Borrow(cpSignalSemaphores_allocs) + var cfilter_allocs *cgoAllocMap + ref93f0395.filter, cfilter_allocs = (C.VkFilter)(x.Filter), cgoAllocsUnknown + allocs93f0395.Borrow(cfilter_allocs) - x.ref22884025 = ref22884025 - x.allocs22884025 = allocs22884025 - return ref22884025, allocs22884025 + x.ref93f0395 = ref93f0395 + x.allocs93f0395 = allocs93f0395 + return ref93f0395, allocs93f0395 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubmitInfo) PassValue() (C.VkSubmitInfo, *cgoAllocMap) { - if x.ref22884025 != nil { - return *x.ref22884025, nil +func (x BlitImageInfo2) PassValue() (C.VkBlitImageInfo2, *cgoAllocMap) { + if x.ref93f0395 != nil { + return *x.ref93f0395, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -2939,116 +30087,112 @@ func (x SubmitInfo) PassValue() (C.VkSubmitInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubmitInfo) Deref() { - if x.ref22884025 == nil { +func (x *BlitImageInfo2) Deref() { + if x.ref93f0395 == nil { return } - x.SType = (StructureType)(x.ref22884025.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref22884025.pNext)) - x.WaitSemaphoreCount = (uint32)(x.ref22884025.waitSemaphoreCount) - hxf95e7c8 := (*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)) - hxf95e7c8.Data = unsafe.Pointer(x.ref22884025.pWaitSemaphores) - hxf95e7c8.Cap = 0x7fffffff - // hxf95e7c8.Len = ? - - hxff2234b := (*sliceHeader)(unsafe.Pointer(&x.PWaitDstStageMask)) - hxff2234b.Data = unsafe.Pointer(x.ref22884025.pWaitDstStageMask) - hxff2234b.Cap = 0x7fffffff - // hxff2234b.Len = ? - - x.CommandBufferCount = (uint32)(x.ref22884025.commandBufferCount) - hxff73280 := (*sliceHeader)(unsafe.Pointer(&x.PCommandBuffers)) - hxff73280.Data = unsafe.Pointer(x.ref22884025.pCommandBuffers) - hxff73280.Cap = 0x7fffffff - // hxff73280.Len = ? - - x.SignalSemaphoreCount = (uint32)(x.ref22884025.signalSemaphoreCount) - hxfa9955c := (*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores)) - hxfa9955c.Data = unsafe.Pointer(x.ref22884025.pSignalSemaphores) - hxfa9955c.Cap = 0x7fffffff - // hxfa9955c.Len = ? - + x.SType = (StructureType)(x.ref93f0395.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref93f0395.pNext)) + x.SrcImage = *(*Image)(unsafe.Pointer(&x.ref93f0395.srcImage)) + x.SrcImageLayout = (ImageLayout)(x.ref93f0395.srcImageLayout) + x.DstImage = *(*Image)(unsafe.Pointer(&x.ref93f0395.dstImage)) + x.DstImageLayout = (ImageLayout)(x.ref93f0395.dstImageLayout) + x.RegionCount = (uint32)(x.ref93f0395.regionCount) + packSImageBlit2(x.PRegions, x.ref93f0395.pRegions) + x.Filter = (Filter)(x.ref93f0395.filter) } -// allocMemoryAllocateInfoMemory allocates memory for type C.VkMemoryAllocateInfo in C. +// allocImageResolve2Memory allocates memory for type C.VkImageResolve2 in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryAllocateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryAllocateInfoValue)) +func allocImageResolve2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageResolve2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryAllocateInfo{}) +const sizeOfImageResolve2Value = unsafe.Sizeof([1]C.VkImageResolve2{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryAllocateInfo) Ref() *C.VkMemoryAllocateInfo { +func (x *ImageResolve2) Ref() *C.VkImageResolve2 { if x == nil { return nil } - return x.ref31032b + return x.ref29ad796d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryAllocateInfo) Free() { - if x != nil && x.allocs31032b != nil { - x.allocs31032b.(*cgoAllocMap).Free() - x.ref31032b = nil +func (x *ImageResolve2) Free() { + if x != nil && x.allocs29ad796d != nil { + x.allocs29ad796d.(*cgoAllocMap).Free() + x.ref29ad796d = nil } } -// NewMemoryAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageResolve2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryAllocateInfoRef(ref unsafe.Pointer) *MemoryAllocateInfo { +func NewImageResolve2Ref(ref unsafe.Pointer) *ImageResolve2 { if ref == nil { return nil } - obj := new(MemoryAllocateInfo) - obj.ref31032b = (*C.VkMemoryAllocateInfo)(unsafe.Pointer(ref)) + obj := new(ImageResolve2) + obj.ref29ad796d = (*C.VkImageResolve2)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryAllocateInfo) PassRef() (*C.VkMemoryAllocateInfo, *cgoAllocMap) { +func (x *ImageResolve2) PassRef() (*C.VkImageResolve2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref31032b != nil { - return x.ref31032b, nil + } else if x.ref29ad796d != nil { + return x.ref29ad796d, nil } - mem31032b := allocMemoryAllocateInfoMemory(1) - ref31032b := (*C.VkMemoryAllocateInfo)(mem31032b) - allocs31032b := new(cgoAllocMap) - allocs31032b.Add(mem31032b) + mem29ad796d := allocImageResolve2Memory(1) + ref29ad796d := (*C.VkImageResolve2)(mem29ad796d) + allocs29ad796d := new(cgoAllocMap) + allocs29ad796d.Add(mem29ad796d) var csType_allocs *cgoAllocMap - ref31032b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs31032b.Borrow(csType_allocs) + ref29ad796d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs29ad796d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref31032b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs31032b.Borrow(cpNext_allocs) + ref29ad796d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs29ad796d.Borrow(cpNext_allocs) - var callocationSize_allocs *cgoAllocMap - ref31032b.allocationSize, callocationSize_allocs = (C.VkDeviceSize)(x.AllocationSize), cgoAllocsUnknown - allocs31032b.Borrow(callocationSize_allocs) + var csrcSubresource_allocs *cgoAllocMap + ref29ad796d.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() + allocs29ad796d.Borrow(csrcSubresource_allocs) - var cmemoryTypeIndex_allocs *cgoAllocMap - ref31032b.memoryTypeIndex, cmemoryTypeIndex_allocs = (C.uint32_t)(x.MemoryTypeIndex), cgoAllocsUnknown - allocs31032b.Borrow(cmemoryTypeIndex_allocs) + var csrcOffset_allocs *cgoAllocMap + ref29ad796d.srcOffset, csrcOffset_allocs = x.SrcOffset.PassValue() + allocs29ad796d.Borrow(csrcOffset_allocs) - x.ref31032b = ref31032b - x.allocs31032b = allocs31032b - return ref31032b, allocs31032b + var cdstSubresource_allocs *cgoAllocMap + ref29ad796d.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() + allocs29ad796d.Borrow(cdstSubresource_allocs) + + var cdstOffset_allocs *cgoAllocMap + ref29ad796d.dstOffset, cdstOffset_allocs = x.DstOffset.PassValue() + allocs29ad796d.Borrow(cdstOffset_allocs) + + var cextent_allocs *cgoAllocMap + ref29ad796d.extent, cextent_allocs = x.Extent.PassValue() + allocs29ad796d.Borrow(cextent_allocs) + + x.ref29ad796d = ref29ad796d + x.allocs29ad796d = allocs29ad796d + return ref29ad796d, allocs29ad796d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryAllocateInfo) PassValue() (C.VkMemoryAllocateInfo, *cgoAllocMap) { - if x.ref31032b != nil { - return *x.ref31032b, nil +func (x ImageResolve2) PassValue() (C.VkImageResolve2, *cgoAllocMap) { + if x.ref29ad796d != nil { + return *x.ref29ad796d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3056,99 +30200,152 @@ func (x MemoryAllocateInfo) PassValue() (C.VkMemoryAllocateInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryAllocateInfo) Deref() { - if x.ref31032b == nil { +func (x *ImageResolve2) Deref() { + if x.ref29ad796d == nil { return } - x.SType = (StructureType)(x.ref31032b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref31032b.pNext)) - x.AllocationSize = (DeviceSize)(x.ref31032b.allocationSize) - x.MemoryTypeIndex = (uint32)(x.ref31032b.memoryTypeIndex) + x.SType = (StructureType)(x.ref29ad796d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref29ad796d.pNext)) + x.SrcSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref29ad796d.srcSubresource)) + x.SrcOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref29ad796d.srcOffset)) + x.DstSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref29ad796d.dstSubresource)) + x.DstOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref29ad796d.dstOffset)) + x.Extent = *NewExtent3DRef(unsafe.Pointer(&x.ref29ad796d.extent)) +} + +// allocResolveImageInfo2Memory allocates memory for type C.VkResolveImageInfo2 in C. +// The caller is responsible for freeing the this memory via C.free. +func allocResolveImageInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfResolveImageInfo2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfResolveImageInfo2Value = unsafe.Sizeof([1]C.VkResolveImageInfo2{}) + +// unpackSImageResolve2 transforms a sliced Go data structure into plain C format. +func unpackSImageResolve2(x []ImageResolve2) (unpacked *C.VkImageResolve2, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageResolve2) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocImageResolve2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkImageResolve2)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkImageResolve2)(h.Data) + return } -// allocMappedMemoryRangeMemory allocates memory for type C.VkMappedMemoryRange in C. -// The caller is responsible for freeing the this memory via C.free. -func allocMappedMemoryRangeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMappedMemoryRangeValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) +// packSImageResolve2 reads sliced Go data structure out from plain C format. +func packSImageResolve2(v []ImageResolve2, ptr0 *C.VkImageResolve2) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfImageResolve2Value]C.VkImageResolve2)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewImageResolve2Ref(unsafe.Pointer(&ptr1)) } - return mem } -const sizeOfMappedMemoryRangeValue = unsafe.Sizeof([1]C.VkMappedMemoryRange{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MappedMemoryRange) Ref() *C.VkMappedMemoryRange { +func (x *ResolveImageInfo2) Ref() *C.VkResolveImageInfo2 { if x == nil { return nil } - return x.ref42a37320 + return x.ref407c4932 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MappedMemoryRange) Free() { - if x != nil && x.allocs42a37320 != nil { - x.allocs42a37320.(*cgoAllocMap).Free() - x.ref42a37320 = nil +func (x *ResolveImageInfo2) Free() { + if x != nil && x.allocs407c4932 != nil { + x.allocs407c4932.(*cgoAllocMap).Free() + x.ref407c4932 = nil } } -// NewMappedMemoryRangeRef creates a new wrapper struct with underlying reference set to the original C object. +// NewResolveImageInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMappedMemoryRangeRef(ref unsafe.Pointer) *MappedMemoryRange { +func NewResolveImageInfo2Ref(ref unsafe.Pointer) *ResolveImageInfo2 { if ref == nil { return nil } - obj := new(MappedMemoryRange) - obj.ref42a37320 = (*C.VkMappedMemoryRange)(unsafe.Pointer(ref)) + obj := new(ResolveImageInfo2) + obj.ref407c4932 = (*C.VkResolveImageInfo2)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MappedMemoryRange) PassRef() (*C.VkMappedMemoryRange, *cgoAllocMap) { +func (x *ResolveImageInfo2) PassRef() (*C.VkResolveImageInfo2, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref42a37320 != nil { - return x.ref42a37320, nil + } else if x.ref407c4932 != nil { + return x.ref407c4932, nil } - mem42a37320 := allocMappedMemoryRangeMemory(1) - ref42a37320 := (*C.VkMappedMemoryRange)(mem42a37320) - allocs42a37320 := new(cgoAllocMap) - allocs42a37320.Add(mem42a37320) + mem407c4932 := allocResolveImageInfo2Memory(1) + ref407c4932 := (*C.VkResolveImageInfo2)(mem407c4932) + allocs407c4932 := new(cgoAllocMap) + allocs407c4932.Add(mem407c4932) var csType_allocs *cgoAllocMap - ref42a37320.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs42a37320.Borrow(csType_allocs) + ref407c4932.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs407c4932.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref42a37320.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs42a37320.Borrow(cpNext_allocs) + ref407c4932.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs407c4932.Borrow(cpNext_allocs) - var cmemory_allocs *cgoAllocMap - ref42a37320.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocs42a37320.Borrow(cmemory_allocs) + var csrcImage_allocs *cgoAllocMap + ref407c4932.srcImage, csrcImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.SrcImage)), cgoAllocsUnknown + allocs407c4932.Borrow(csrcImage_allocs) - var coffset_allocs *cgoAllocMap - ref42a37320.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocs42a37320.Borrow(coffset_allocs) + var csrcImageLayout_allocs *cgoAllocMap + ref407c4932.srcImageLayout, csrcImageLayout_allocs = (C.VkImageLayout)(x.SrcImageLayout), cgoAllocsUnknown + allocs407c4932.Borrow(csrcImageLayout_allocs) - var csize_allocs *cgoAllocMap - ref42a37320.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs42a37320.Borrow(csize_allocs) + var cdstImage_allocs *cgoAllocMap + ref407c4932.dstImage, cdstImage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.DstImage)), cgoAllocsUnknown + allocs407c4932.Borrow(cdstImage_allocs) - x.ref42a37320 = ref42a37320 - x.allocs42a37320 = allocs42a37320 - return ref42a37320, allocs42a37320 + var cdstImageLayout_allocs *cgoAllocMap + ref407c4932.dstImageLayout, cdstImageLayout_allocs = (C.VkImageLayout)(x.DstImageLayout), cgoAllocsUnknown + allocs407c4932.Borrow(cdstImageLayout_allocs) + + var cregionCount_allocs *cgoAllocMap + ref407c4932.regionCount, cregionCount_allocs = (C.uint32_t)(x.RegionCount), cgoAllocsUnknown + allocs407c4932.Borrow(cregionCount_allocs) + + var cpRegions_allocs *cgoAllocMap + ref407c4932.pRegions, cpRegions_allocs = unpackSImageResolve2(x.PRegions) + allocs407c4932.Borrow(cpRegions_allocs) + + x.ref407c4932 = ref407c4932 + x.allocs407c4932 = allocs407c4932 + return ref407c4932, allocs407c4932 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MappedMemoryRange) PassValue() (C.VkMappedMemoryRange, *cgoAllocMap) { - if x.ref42a37320 != nil { - return *x.ref42a37320, nil +func (x ResolveImageInfo2) PassValue() (C.VkResolveImageInfo2, *cgoAllocMap) { + if x.ref407c4932 != nil { + return *x.ref407c4932, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3156,92 +30353,99 @@ func (x MappedMemoryRange) PassValue() (C.VkMappedMemoryRange, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MappedMemoryRange) Deref() { - if x.ref42a37320 == nil { +func (x *ResolveImageInfo2) Deref() { + if x.ref407c4932 == nil { return } - x.SType = (StructureType)(x.ref42a37320.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref42a37320.pNext)) - x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref42a37320.memory)) - x.Offset = (DeviceSize)(x.ref42a37320.offset) - x.Size = (DeviceSize)(x.ref42a37320.size) + x.SType = (StructureType)(x.ref407c4932.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref407c4932.pNext)) + x.SrcImage = *(*Image)(unsafe.Pointer(&x.ref407c4932.srcImage)) + x.SrcImageLayout = (ImageLayout)(x.ref407c4932.srcImageLayout) + x.DstImage = *(*Image)(unsafe.Pointer(&x.ref407c4932.dstImage)) + x.DstImageLayout = (ImageLayout)(x.ref407c4932.dstImageLayout) + x.RegionCount = (uint32)(x.ref407c4932.regionCount) + packSImageResolve2(x.PRegions, x.ref407c4932.pRegions) } -// allocMemoryRequirementsMemory allocates memory for type C.VkMemoryRequirements in C. +// allocPhysicalDeviceSubgroupSizeControlFeaturesMemory allocates memory for type C.VkPhysicalDeviceSubgroupSizeControlFeatures in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryRequirementsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryRequirementsValue)) +func allocPhysicalDeviceSubgroupSizeControlFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubgroupSizeControlFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryRequirementsValue = unsafe.Sizeof([1]C.VkMemoryRequirements{}) +const sizeOfPhysicalDeviceSubgroupSizeControlFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubgroupSizeControlFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryRequirements) Ref() *C.VkMemoryRequirements { +func (x *PhysicalDeviceSubgroupSizeControlFeatures) Ref() *C.VkPhysicalDeviceSubgroupSizeControlFeatures { if x == nil { return nil } - return x.ref5259fc6b + return x.ref688d05c2 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryRequirements) Free() { - if x != nil && x.allocs5259fc6b != nil { - x.allocs5259fc6b.(*cgoAllocMap).Free() - x.ref5259fc6b = nil +func (x *PhysicalDeviceSubgroupSizeControlFeatures) Free() { + if x != nil && x.allocs688d05c2 != nil { + x.allocs688d05c2.(*cgoAllocMap).Free() + x.ref688d05c2 = nil } } -// NewMemoryRequirementsRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceSubgroupSizeControlFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryRequirementsRef(ref unsafe.Pointer) *MemoryRequirements { +func NewPhysicalDeviceSubgroupSizeControlFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceSubgroupSizeControlFeatures { if ref == nil { return nil } - obj := new(MemoryRequirements) - obj.ref5259fc6b = (*C.VkMemoryRequirements)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceSubgroupSizeControlFeatures) + obj.ref688d05c2 = (*C.VkPhysicalDeviceSubgroupSizeControlFeatures)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryRequirements) PassRef() (*C.VkMemoryRequirements, *cgoAllocMap) { +func (x *PhysicalDeviceSubgroupSizeControlFeatures) PassRef() (*C.VkPhysicalDeviceSubgroupSizeControlFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5259fc6b != nil { - return x.ref5259fc6b, nil + } else if x.ref688d05c2 != nil { + return x.ref688d05c2, nil } - mem5259fc6b := allocMemoryRequirementsMemory(1) - ref5259fc6b := (*C.VkMemoryRequirements)(mem5259fc6b) - allocs5259fc6b := new(cgoAllocMap) - allocs5259fc6b.Add(mem5259fc6b) + mem688d05c2 := allocPhysicalDeviceSubgroupSizeControlFeaturesMemory(1) + ref688d05c2 := (*C.VkPhysicalDeviceSubgroupSizeControlFeatures)(mem688d05c2) + allocs688d05c2 := new(cgoAllocMap) + allocs688d05c2.Add(mem688d05c2) - var csize_allocs *cgoAllocMap - ref5259fc6b.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs5259fc6b.Borrow(csize_allocs) + var csType_allocs *cgoAllocMap + ref688d05c2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs688d05c2.Borrow(csType_allocs) - var calignment_allocs *cgoAllocMap - ref5259fc6b.alignment, calignment_allocs = (C.VkDeviceSize)(x.Alignment), cgoAllocsUnknown - allocs5259fc6b.Borrow(calignment_allocs) + var cpNext_allocs *cgoAllocMap + ref688d05c2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs688d05c2.Borrow(cpNext_allocs) - var cmemoryTypeBits_allocs *cgoAllocMap - ref5259fc6b.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown - allocs5259fc6b.Borrow(cmemoryTypeBits_allocs) + var csubgroupSizeControl_allocs *cgoAllocMap + ref688d05c2.subgroupSizeControl, csubgroupSizeControl_allocs = (C.VkBool32)(x.SubgroupSizeControl), cgoAllocsUnknown + allocs688d05c2.Borrow(csubgroupSizeControl_allocs) - x.ref5259fc6b = ref5259fc6b - x.allocs5259fc6b = allocs5259fc6b - return ref5259fc6b, allocs5259fc6b + var ccomputeFullSubgroups_allocs *cgoAllocMap + ref688d05c2.computeFullSubgroups, ccomputeFullSubgroups_allocs = (C.VkBool32)(x.ComputeFullSubgroups), cgoAllocsUnknown + allocs688d05c2.Borrow(ccomputeFullSubgroups_allocs) + + x.ref688d05c2 = ref688d05c2 + x.allocs688d05c2 = allocs688d05c2 + return ref688d05c2, allocs688d05c2 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryRequirements) PassValue() (C.VkMemoryRequirements, *cgoAllocMap) { - if x.ref5259fc6b != nil { - return *x.ref5259fc6b, nil +func (x PhysicalDeviceSubgroupSizeControlFeatures) PassValue() (C.VkPhysicalDeviceSubgroupSizeControlFeatures, *cgoAllocMap) { + if x.ref688d05c2 != nil { + return *x.ref688d05c2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3249,90 +30453,103 @@ func (x MemoryRequirements) PassValue() (C.VkMemoryRequirements, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryRequirements) Deref() { - if x.ref5259fc6b == nil { +func (x *PhysicalDeviceSubgroupSizeControlFeatures) Deref() { + if x.ref688d05c2 == nil { return } - x.Size = (DeviceSize)(x.ref5259fc6b.size) - x.Alignment = (DeviceSize)(x.ref5259fc6b.alignment) - x.MemoryTypeBits = (uint32)(x.ref5259fc6b.memoryTypeBits) + x.SType = (StructureType)(x.ref688d05c2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref688d05c2.pNext)) + x.SubgroupSizeControl = (Bool32)(x.ref688d05c2.subgroupSizeControl) + x.ComputeFullSubgroups = (Bool32)(x.ref688d05c2.computeFullSubgroups) } -// allocSparseImageFormatPropertiesMemory allocates memory for type C.VkSparseImageFormatProperties in C. +// allocPhysicalDeviceSubgroupSizeControlPropertiesMemory allocates memory for type C.VkPhysicalDeviceSubgroupSizeControlProperties in C. // The caller is responsible for freeing the this memory via C.free. -func allocSparseImageFormatPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageFormatPropertiesValue)) +func allocPhysicalDeviceSubgroupSizeControlPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubgroupSizeControlPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSparseImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkSparseImageFormatProperties{}) +const sizeOfPhysicalDeviceSubgroupSizeControlPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubgroupSizeControlProperties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageFormatProperties) Ref() *C.VkSparseImageFormatProperties { +func (x *PhysicalDeviceSubgroupSizeControlProperties) Ref() *C.VkPhysicalDeviceSubgroupSizeControlProperties { if x == nil { return nil } - return x.ref2c12cf44 + return x.refe0ef78a4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SparseImageFormatProperties) Free() { - if x != nil && x.allocs2c12cf44 != nil { - x.allocs2c12cf44.(*cgoAllocMap).Free() - x.ref2c12cf44 = nil +func (x *PhysicalDeviceSubgroupSizeControlProperties) Free() { + if x != nil && x.allocse0ef78a4 != nil { + x.allocse0ef78a4.(*cgoAllocMap).Free() + x.refe0ef78a4 = nil } } -// NewSparseImageFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceSubgroupSizeControlPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSparseImageFormatPropertiesRef(ref unsafe.Pointer) *SparseImageFormatProperties { +func NewPhysicalDeviceSubgroupSizeControlPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSubgroupSizeControlProperties { if ref == nil { return nil } - obj := new(SparseImageFormatProperties) - obj.ref2c12cf44 = (*C.VkSparseImageFormatProperties)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceSubgroupSizeControlProperties) + obj.refe0ef78a4 = (*C.VkPhysicalDeviceSubgroupSizeControlProperties)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SparseImageFormatProperties) PassRef() (*C.VkSparseImageFormatProperties, *cgoAllocMap) { +func (x *PhysicalDeviceSubgroupSizeControlProperties) PassRef() (*C.VkPhysicalDeviceSubgroupSizeControlProperties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2c12cf44 != nil { - return x.ref2c12cf44, nil + } else if x.refe0ef78a4 != nil { + return x.refe0ef78a4, nil } - mem2c12cf44 := allocSparseImageFormatPropertiesMemory(1) - ref2c12cf44 := (*C.VkSparseImageFormatProperties)(mem2c12cf44) - allocs2c12cf44 := new(cgoAllocMap) - allocs2c12cf44.Add(mem2c12cf44) + meme0ef78a4 := allocPhysicalDeviceSubgroupSizeControlPropertiesMemory(1) + refe0ef78a4 := (*C.VkPhysicalDeviceSubgroupSizeControlProperties)(meme0ef78a4) + allocse0ef78a4 := new(cgoAllocMap) + allocse0ef78a4.Add(meme0ef78a4) - var caspectMask_allocs *cgoAllocMap - ref2c12cf44.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocs2c12cf44.Borrow(caspectMask_allocs) + var csType_allocs *cgoAllocMap + refe0ef78a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse0ef78a4.Borrow(csType_allocs) - var cimageGranularity_allocs *cgoAllocMap - ref2c12cf44.imageGranularity, cimageGranularity_allocs = x.ImageGranularity.PassValue() - allocs2c12cf44.Borrow(cimageGranularity_allocs) + var cpNext_allocs *cgoAllocMap + refe0ef78a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse0ef78a4.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref2c12cf44.flags, cflags_allocs = (C.VkSparseImageFormatFlags)(x.Flags), cgoAllocsUnknown - allocs2c12cf44.Borrow(cflags_allocs) + var cminSubgroupSize_allocs *cgoAllocMap + refe0ef78a4.minSubgroupSize, cminSubgroupSize_allocs = (C.uint32_t)(x.MinSubgroupSize), cgoAllocsUnknown + allocse0ef78a4.Borrow(cminSubgroupSize_allocs) - x.ref2c12cf44 = ref2c12cf44 - x.allocs2c12cf44 = allocs2c12cf44 - return ref2c12cf44, allocs2c12cf44 + var cmaxSubgroupSize_allocs *cgoAllocMap + refe0ef78a4.maxSubgroupSize, cmaxSubgroupSize_allocs = (C.uint32_t)(x.MaxSubgroupSize), cgoAllocsUnknown + allocse0ef78a4.Borrow(cmaxSubgroupSize_allocs) + + var cmaxComputeWorkgroupSubgroups_allocs *cgoAllocMap + refe0ef78a4.maxComputeWorkgroupSubgroups, cmaxComputeWorkgroupSubgroups_allocs = (C.uint32_t)(x.MaxComputeWorkgroupSubgroups), cgoAllocsUnknown + allocse0ef78a4.Borrow(cmaxComputeWorkgroupSubgroups_allocs) + + var crequiredSubgroupSizeStages_allocs *cgoAllocMap + refe0ef78a4.requiredSubgroupSizeStages, crequiredSubgroupSizeStages_allocs = (C.VkShaderStageFlags)(x.RequiredSubgroupSizeStages), cgoAllocsUnknown + allocse0ef78a4.Borrow(crequiredSubgroupSizeStages_allocs) + + x.refe0ef78a4 = refe0ef78a4 + x.allocse0ef78a4 = allocse0ef78a4 + return refe0ef78a4, allocse0ef78a4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SparseImageFormatProperties) PassValue() (C.VkSparseImageFormatProperties, *cgoAllocMap) { - if x.ref2c12cf44 != nil { - return *x.ref2c12cf44, nil +func (x PhysicalDeviceSubgroupSizeControlProperties) PassValue() (C.VkPhysicalDeviceSubgroupSizeControlProperties, *cgoAllocMap) { + if x.refe0ef78a4 != nil { + return *x.refe0ef78a4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3340,98 +30557,93 @@ func (x SparseImageFormatProperties) PassValue() (C.VkSparseImageFormatPropertie // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SparseImageFormatProperties) Deref() { - if x.ref2c12cf44 == nil { +func (x *PhysicalDeviceSubgroupSizeControlProperties) Deref() { + if x.refe0ef78a4 == nil { return } - x.AspectMask = (ImageAspectFlags)(x.ref2c12cf44.aspectMask) - x.ImageGranularity = *NewExtent3DRef(unsafe.Pointer(&x.ref2c12cf44.imageGranularity)) - x.Flags = (SparseImageFormatFlags)(x.ref2c12cf44.flags) + x.SType = (StructureType)(x.refe0ef78a4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe0ef78a4.pNext)) + x.MinSubgroupSize = (uint32)(x.refe0ef78a4.minSubgroupSize) + x.MaxSubgroupSize = (uint32)(x.refe0ef78a4.maxSubgroupSize) + x.MaxComputeWorkgroupSubgroups = (uint32)(x.refe0ef78a4.maxComputeWorkgroupSubgroups) + x.RequiredSubgroupSizeStages = (ShaderStageFlags)(x.refe0ef78a4.requiredSubgroupSizeStages) } -// allocSparseImageMemoryRequirementsMemory allocates memory for type C.VkSparseImageMemoryRequirements in C. +// allocPipelineShaderStageRequiredSubgroupSizeCreateInfoMemory allocates memory for type C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo in C. // The caller is responsible for freeing the this memory via C.free. -func allocSparseImageMemoryRequirementsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageMemoryRequirementsValue)) +func allocPipelineShaderStageRequiredSubgroupSizeCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineShaderStageRequiredSubgroupSizeCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSparseImageMemoryRequirementsValue = unsafe.Sizeof([1]C.VkSparseImageMemoryRequirements{}) +const sizeOfPipelineShaderStageRequiredSubgroupSizeCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageMemoryRequirements) Ref() *C.VkSparseImageMemoryRequirements { +func (x *PipelineShaderStageRequiredSubgroupSizeCreateInfo) Ref() *C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo { if x == nil { return nil } - return x.ref685a2323 + return x.refd57e5454 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SparseImageMemoryRequirements) Free() { - if x != nil && x.allocs685a2323 != nil { - x.allocs685a2323.(*cgoAllocMap).Free() - x.ref685a2323 = nil +func (x *PipelineShaderStageRequiredSubgroupSizeCreateInfo) Free() { + if x != nil && x.allocsd57e5454 != nil { + x.allocsd57e5454.(*cgoAllocMap).Free() + x.refd57e5454 = nil } } -// NewSparseImageMemoryRequirementsRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineShaderStageRequiredSubgroupSizeCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSparseImageMemoryRequirementsRef(ref unsafe.Pointer) *SparseImageMemoryRequirements { +func NewPipelineShaderStageRequiredSubgroupSizeCreateInfoRef(ref unsafe.Pointer) *PipelineShaderStageRequiredSubgroupSizeCreateInfo { if ref == nil { return nil } - obj := new(SparseImageMemoryRequirements) - obj.ref685a2323 = (*C.VkSparseImageMemoryRequirements)(unsafe.Pointer(ref)) + obj := new(PipelineShaderStageRequiredSubgroupSizeCreateInfo) + obj.refd57e5454 = (*C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SparseImageMemoryRequirements) PassRef() (*C.VkSparseImageMemoryRequirements, *cgoAllocMap) { +func (x *PipelineShaderStageRequiredSubgroupSizeCreateInfo) PassRef() (*C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref685a2323 != nil { - return x.ref685a2323, nil + } else if x.refd57e5454 != nil { + return x.refd57e5454, nil } - mem685a2323 := allocSparseImageMemoryRequirementsMemory(1) - ref685a2323 := (*C.VkSparseImageMemoryRequirements)(mem685a2323) - allocs685a2323 := new(cgoAllocMap) - allocs685a2323.Add(mem685a2323) - - var cformatProperties_allocs *cgoAllocMap - ref685a2323.formatProperties, cformatProperties_allocs = x.FormatProperties.PassValue() - allocs685a2323.Borrow(cformatProperties_allocs) - - var cimageMipTailFirstLod_allocs *cgoAllocMap - ref685a2323.imageMipTailFirstLod, cimageMipTailFirstLod_allocs = (C.uint32_t)(x.ImageMipTailFirstLod), cgoAllocsUnknown - allocs685a2323.Borrow(cimageMipTailFirstLod_allocs) + memd57e5454 := allocPipelineShaderStageRequiredSubgroupSizeCreateInfoMemory(1) + refd57e5454 := (*C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo)(memd57e5454) + allocsd57e5454 := new(cgoAllocMap) + allocsd57e5454.Add(memd57e5454) - var cimageMipTailSize_allocs *cgoAllocMap - ref685a2323.imageMipTailSize, cimageMipTailSize_allocs = (C.VkDeviceSize)(x.ImageMipTailSize), cgoAllocsUnknown - allocs685a2323.Borrow(cimageMipTailSize_allocs) + var csType_allocs *cgoAllocMap + refd57e5454.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd57e5454.Borrow(csType_allocs) - var cimageMipTailOffset_allocs *cgoAllocMap - ref685a2323.imageMipTailOffset, cimageMipTailOffset_allocs = (C.VkDeviceSize)(x.ImageMipTailOffset), cgoAllocsUnknown - allocs685a2323.Borrow(cimageMipTailOffset_allocs) + var cpNext_allocs *cgoAllocMap + refd57e5454.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd57e5454.Borrow(cpNext_allocs) - var cimageMipTailStride_allocs *cgoAllocMap - ref685a2323.imageMipTailStride, cimageMipTailStride_allocs = (C.VkDeviceSize)(x.ImageMipTailStride), cgoAllocsUnknown - allocs685a2323.Borrow(cimageMipTailStride_allocs) + var crequiredSubgroupSize_allocs *cgoAllocMap + refd57e5454.requiredSubgroupSize, crequiredSubgroupSize_allocs = (C.uint32_t)(x.RequiredSubgroupSize), cgoAllocsUnknown + allocsd57e5454.Borrow(crequiredSubgroupSize_allocs) - x.ref685a2323 = ref685a2323 - x.allocs685a2323 = allocs685a2323 - return ref685a2323, allocs685a2323 + x.refd57e5454 = refd57e5454 + x.allocsd57e5454 = allocsd57e5454 + return refd57e5454, allocsd57e5454 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SparseImageMemoryRequirements) PassValue() (C.VkSparseImageMemoryRequirements, *cgoAllocMap) { - if x.ref685a2323 != nil { - return *x.ref685a2323, nil +func (x PipelineShaderStageRequiredSubgroupSizeCreateInfo) PassValue() (C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, *cgoAllocMap) { + if x.refd57e5454 != nil { + return *x.refd57e5454, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3439,100 +30651,94 @@ func (x SparseImageMemoryRequirements) PassValue() (C.VkSparseImageMemoryRequire // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SparseImageMemoryRequirements) Deref() { - if x.ref685a2323 == nil { +func (x *PipelineShaderStageRequiredSubgroupSizeCreateInfo) Deref() { + if x.refd57e5454 == nil { return } - x.FormatProperties = *NewSparseImageFormatPropertiesRef(unsafe.Pointer(&x.ref685a2323.formatProperties)) - x.ImageMipTailFirstLod = (uint32)(x.ref685a2323.imageMipTailFirstLod) - x.ImageMipTailSize = (DeviceSize)(x.ref685a2323.imageMipTailSize) - x.ImageMipTailOffset = (DeviceSize)(x.ref685a2323.imageMipTailOffset) - x.ImageMipTailStride = (DeviceSize)(x.ref685a2323.imageMipTailStride) + x.SType = (StructureType)(x.refd57e5454.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd57e5454.pNext)) + x.RequiredSubgroupSize = (uint32)(x.refd57e5454.requiredSubgroupSize) } -// allocSparseMemoryBindMemory allocates memory for type C.VkSparseMemoryBind in C. +// allocPhysicalDeviceInlineUniformBlockFeaturesMemory allocates memory for type C.VkPhysicalDeviceInlineUniformBlockFeatures in C. // The caller is responsible for freeing the this memory via C.free. -func allocSparseMemoryBindMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseMemoryBindValue)) +func allocPhysicalDeviceInlineUniformBlockFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInlineUniformBlockFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSparseMemoryBindValue = unsafe.Sizeof([1]C.VkSparseMemoryBind{}) +const sizeOfPhysicalDeviceInlineUniformBlockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInlineUniformBlockFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseMemoryBind) Ref() *C.VkSparseMemoryBind { +func (x *PhysicalDeviceInlineUniformBlockFeatures) Ref() *C.VkPhysicalDeviceInlineUniformBlockFeatures { if x == nil { return nil } - return x.ref5bf418e8 + return x.ref6057e623 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SparseMemoryBind) Free() { - if x != nil && x.allocs5bf418e8 != nil { - x.allocs5bf418e8.(*cgoAllocMap).Free() - x.ref5bf418e8 = nil +func (x *PhysicalDeviceInlineUniformBlockFeatures) Free() { + if x != nil && x.allocs6057e623 != nil { + x.allocs6057e623.(*cgoAllocMap).Free() + x.ref6057e623 = nil } } -// NewSparseMemoryBindRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceInlineUniformBlockFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSparseMemoryBindRef(ref unsafe.Pointer) *SparseMemoryBind { +func NewPhysicalDeviceInlineUniformBlockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceInlineUniformBlockFeatures { if ref == nil { return nil } - obj := new(SparseMemoryBind) - obj.ref5bf418e8 = (*C.VkSparseMemoryBind)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceInlineUniformBlockFeatures) + obj.ref6057e623 = (*C.VkPhysicalDeviceInlineUniformBlockFeatures)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SparseMemoryBind) PassRef() (*C.VkSparseMemoryBind, *cgoAllocMap) { +func (x *PhysicalDeviceInlineUniformBlockFeatures) PassRef() (*C.VkPhysicalDeviceInlineUniformBlockFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5bf418e8 != nil { - return x.ref5bf418e8, nil + } else if x.ref6057e623 != nil { + return x.ref6057e623, nil } - mem5bf418e8 := allocSparseMemoryBindMemory(1) - ref5bf418e8 := (*C.VkSparseMemoryBind)(mem5bf418e8) - allocs5bf418e8 := new(cgoAllocMap) - allocs5bf418e8.Add(mem5bf418e8) - - var cresourceOffset_allocs *cgoAllocMap - ref5bf418e8.resourceOffset, cresourceOffset_allocs = (C.VkDeviceSize)(x.ResourceOffset), cgoAllocsUnknown - allocs5bf418e8.Borrow(cresourceOffset_allocs) + mem6057e623 := allocPhysicalDeviceInlineUniformBlockFeaturesMemory(1) + ref6057e623 := (*C.VkPhysicalDeviceInlineUniformBlockFeatures)(mem6057e623) + allocs6057e623 := new(cgoAllocMap) + allocs6057e623.Add(mem6057e623) - var csize_allocs *cgoAllocMap - ref5bf418e8.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs5bf418e8.Borrow(csize_allocs) + var csType_allocs *cgoAllocMap + ref6057e623.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6057e623.Borrow(csType_allocs) - var cmemory_allocs *cgoAllocMap - ref5bf418e8.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocs5bf418e8.Borrow(cmemory_allocs) + var cpNext_allocs *cgoAllocMap + ref6057e623.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6057e623.Borrow(cpNext_allocs) - var cmemoryOffset_allocs *cgoAllocMap - ref5bf418e8.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown - allocs5bf418e8.Borrow(cmemoryOffset_allocs) + var cinlineUniformBlock_allocs *cgoAllocMap + ref6057e623.inlineUniformBlock, cinlineUniformBlock_allocs = (C.VkBool32)(x.InlineUniformBlock), cgoAllocsUnknown + allocs6057e623.Borrow(cinlineUniformBlock_allocs) - var cflags_allocs *cgoAllocMap - ref5bf418e8.flags, cflags_allocs = (C.VkSparseMemoryBindFlags)(x.Flags), cgoAllocsUnknown - allocs5bf418e8.Borrow(cflags_allocs) + var cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs *cgoAllocMap + ref6057e623.descriptorBindingInlineUniformBlockUpdateAfterBind, cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingInlineUniformBlockUpdateAfterBind), cgoAllocsUnknown + allocs6057e623.Borrow(cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs) - x.ref5bf418e8 = ref5bf418e8 - x.allocs5bf418e8 = allocs5bf418e8 - return ref5bf418e8, allocs5bf418e8 + x.ref6057e623 = ref6057e623 + x.allocs6057e623 = allocs6057e623 + return ref6057e623, allocs6057e623 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SparseMemoryBind) PassValue() (C.VkSparseMemoryBind, *cgoAllocMap) { - if x.ref5bf418e8 != nil { - return *x.ref5bf418e8, nil +func (x PhysicalDeviceInlineUniformBlockFeatures) PassValue() (C.VkPhysicalDeviceInlineUniformBlockFeatures, *cgoAllocMap) { + if x.ref6057e623 != nil { + return *x.ref6057e623, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3540,130 +30746,107 @@ func (x SparseMemoryBind) PassValue() (C.VkSparseMemoryBind, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SparseMemoryBind) Deref() { - if x.ref5bf418e8 == nil { +func (x *PhysicalDeviceInlineUniformBlockFeatures) Deref() { + if x.ref6057e623 == nil { return } - x.ResourceOffset = (DeviceSize)(x.ref5bf418e8.resourceOffset) - x.Size = (DeviceSize)(x.ref5bf418e8.size) - x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref5bf418e8.memory)) - x.MemoryOffset = (DeviceSize)(x.ref5bf418e8.memoryOffset) - x.Flags = (SparseMemoryBindFlags)(x.ref5bf418e8.flags) + x.SType = (StructureType)(x.ref6057e623.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6057e623.pNext)) + x.InlineUniformBlock = (Bool32)(x.ref6057e623.inlineUniformBlock) + x.DescriptorBindingInlineUniformBlockUpdateAfterBind = (Bool32)(x.ref6057e623.descriptorBindingInlineUniformBlockUpdateAfterBind) } -// allocSparseBufferMemoryBindInfoMemory allocates memory for type C.VkSparseBufferMemoryBindInfo in C. +// allocPhysicalDeviceInlineUniformBlockPropertiesMemory allocates memory for type C.VkPhysicalDeviceInlineUniformBlockProperties in C. // The caller is responsible for freeing the this memory via C.free. -func allocSparseBufferMemoryBindInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseBufferMemoryBindInfoValue)) +func allocPhysicalDeviceInlineUniformBlockPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInlineUniformBlockPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSparseBufferMemoryBindInfoValue = unsafe.Sizeof([1]C.VkSparseBufferMemoryBindInfo{}) - -// unpackSSparseMemoryBind transforms a sliced Go data structure into plain C format. -func unpackSSparseMemoryBind(x []SparseMemoryBind) (unpacked *C.VkSparseMemoryBind, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseMemoryBind) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocSparseMemoryBindMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkSparseMemoryBind)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSparseMemoryBind)(h.Data) - return -} - -// packSSparseMemoryBind reads sliced Go data structure out from plain C format. -func packSSparseMemoryBind(v []SparseMemoryBind, ptr0 *C.VkSparseMemoryBind) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSparseMemoryBindValue]C.VkSparseMemoryBind)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSparseMemoryBindRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfPhysicalDeviceInlineUniformBlockPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInlineUniformBlockProperties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseBufferMemoryBindInfo) Ref() *C.VkSparseBufferMemoryBindInfo { +func (x *PhysicalDeviceInlineUniformBlockProperties) Ref() *C.VkPhysicalDeviceInlineUniformBlockProperties { if x == nil { return nil } - return x.refebcaf40c + return x.ref9e890111 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SparseBufferMemoryBindInfo) Free() { - if x != nil && x.allocsebcaf40c != nil { - x.allocsebcaf40c.(*cgoAllocMap).Free() - x.refebcaf40c = nil +func (x *PhysicalDeviceInlineUniformBlockProperties) Free() { + if x != nil && x.allocs9e890111 != nil { + x.allocs9e890111.(*cgoAllocMap).Free() + x.ref9e890111 = nil } } -// NewSparseBufferMemoryBindInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceInlineUniformBlockPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSparseBufferMemoryBindInfoRef(ref unsafe.Pointer) *SparseBufferMemoryBindInfo { +func NewPhysicalDeviceInlineUniformBlockPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceInlineUniformBlockProperties { if ref == nil { return nil } - obj := new(SparseBufferMemoryBindInfo) - obj.refebcaf40c = (*C.VkSparseBufferMemoryBindInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceInlineUniformBlockProperties) + obj.ref9e890111 = (*C.VkPhysicalDeviceInlineUniformBlockProperties)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SparseBufferMemoryBindInfo) PassRef() (*C.VkSparseBufferMemoryBindInfo, *cgoAllocMap) { +func (x *PhysicalDeviceInlineUniformBlockProperties) PassRef() (*C.VkPhysicalDeviceInlineUniformBlockProperties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refebcaf40c != nil { - return x.refebcaf40c, nil + } else if x.ref9e890111 != nil { + return x.ref9e890111, nil } - memebcaf40c := allocSparseBufferMemoryBindInfoMemory(1) - refebcaf40c := (*C.VkSparseBufferMemoryBindInfo)(memebcaf40c) - allocsebcaf40c := new(cgoAllocMap) - allocsebcaf40c.Add(memebcaf40c) + mem9e890111 := allocPhysicalDeviceInlineUniformBlockPropertiesMemory(1) + ref9e890111 := (*C.VkPhysicalDeviceInlineUniformBlockProperties)(mem9e890111) + allocs9e890111 := new(cgoAllocMap) + allocs9e890111.Add(mem9e890111) - var cbuffer_allocs *cgoAllocMap - refebcaf40c.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocsebcaf40c.Borrow(cbuffer_allocs) + var csType_allocs *cgoAllocMap + ref9e890111.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9e890111.Borrow(csType_allocs) - var cbindCount_allocs *cgoAllocMap - refebcaf40c.bindCount, cbindCount_allocs = (C.uint32_t)(x.BindCount), cgoAllocsUnknown - allocsebcaf40c.Borrow(cbindCount_allocs) + var cpNext_allocs *cgoAllocMap + ref9e890111.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9e890111.Borrow(cpNext_allocs) - var cpBinds_allocs *cgoAllocMap - refebcaf40c.pBinds, cpBinds_allocs = unpackSSparseMemoryBind(x.PBinds) - allocsebcaf40c.Borrow(cpBinds_allocs) + var cmaxInlineUniformBlockSize_allocs *cgoAllocMap + ref9e890111.maxInlineUniformBlockSize, cmaxInlineUniformBlockSize_allocs = (C.uint32_t)(x.MaxInlineUniformBlockSize), cgoAllocsUnknown + allocs9e890111.Borrow(cmaxInlineUniformBlockSize_allocs) - x.refebcaf40c = refebcaf40c - x.allocsebcaf40c = allocsebcaf40c - return refebcaf40c, allocsebcaf40c + var cmaxPerStageDescriptorInlineUniformBlocks_allocs *cgoAllocMap + ref9e890111.maxPerStageDescriptorInlineUniformBlocks, cmaxPerStageDescriptorInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxPerStageDescriptorInlineUniformBlocks), cgoAllocsUnknown + allocs9e890111.Borrow(cmaxPerStageDescriptorInlineUniformBlocks_allocs) + + var cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs *cgoAllocMap + ref9e890111.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks, cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks), cgoAllocsUnknown + allocs9e890111.Borrow(cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs) + + var cmaxDescriptorSetInlineUniformBlocks_allocs *cgoAllocMap + ref9e890111.maxDescriptorSetInlineUniformBlocks, cmaxDescriptorSetInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxDescriptorSetInlineUniformBlocks), cgoAllocsUnknown + allocs9e890111.Borrow(cmaxDescriptorSetInlineUniformBlocks_allocs) + + var cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs *cgoAllocMap + ref9e890111.maxDescriptorSetUpdateAfterBindInlineUniformBlocks, cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindInlineUniformBlocks), cgoAllocsUnknown + allocs9e890111.Borrow(cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs) + + x.ref9e890111 = ref9e890111 + x.allocs9e890111 = allocs9e890111 + return ref9e890111, allocs9e890111 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SparseBufferMemoryBindInfo) PassValue() (C.VkSparseBufferMemoryBindInfo, *cgoAllocMap) { - if x.refebcaf40c != nil { - return *x.refebcaf40c, nil +func (x PhysicalDeviceInlineUniformBlockProperties) PassValue() (C.VkPhysicalDeviceInlineUniformBlockProperties, *cgoAllocMap) { + if x.ref9e890111 != nil { + return *x.ref9e890111, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3671,90 +30854,98 @@ func (x SparseBufferMemoryBindInfo) PassValue() (C.VkSparseBufferMemoryBindInfo, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SparseBufferMemoryBindInfo) Deref() { - if x.refebcaf40c == nil { +func (x *PhysicalDeviceInlineUniformBlockProperties) Deref() { + if x.ref9e890111 == nil { return } - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refebcaf40c.buffer)) - x.BindCount = (uint32)(x.refebcaf40c.bindCount) - packSSparseMemoryBind(x.PBinds, x.refebcaf40c.pBinds) + x.SType = (StructureType)(x.ref9e890111.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9e890111.pNext)) + x.MaxInlineUniformBlockSize = (uint32)(x.ref9e890111.maxInlineUniformBlockSize) + x.MaxPerStageDescriptorInlineUniformBlocks = (uint32)(x.ref9e890111.maxPerStageDescriptorInlineUniformBlocks) + x.MaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = (uint32)(x.ref9e890111.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks) + x.MaxDescriptorSetInlineUniformBlocks = (uint32)(x.ref9e890111.maxDescriptorSetInlineUniformBlocks) + x.MaxDescriptorSetUpdateAfterBindInlineUniformBlocks = (uint32)(x.ref9e890111.maxDescriptorSetUpdateAfterBindInlineUniformBlocks) } -// allocSparseImageOpaqueMemoryBindInfoMemory allocates memory for type C.VkSparseImageOpaqueMemoryBindInfo in C. +// allocWriteDescriptorSetInlineUniformBlockMemory allocates memory for type C.VkWriteDescriptorSetInlineUniformBlock in C. // The caller is responsible for freeing the this memory via C.free. -func allocSparseImageOpaqueMemoryBindInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageOpaqueMemoryBindInfoValue)) +func allocWriteDescriptorSetInlineUniformBlockMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfWriteDescriptorSetInlineUniformBlockValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSparseImageOpaqueMemoryBindInfoValue = unsafe.Sizeof([1]C.VkSparseImageOpaqueMemoryBindInfo{}) +const sizeOfWriteDescriptorSetInlineUniformBlockValue = unsafe.Sizeof([1]C.VkWriteDescriptorSetInlineUniformBlock{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageOpaqueMemoryBindInfo) Ref() *C.VkSparseImageOpaqueMemoryBindInfo { +func (x *WriteDescriptorSetInlineUniformBlock) Ref() *C.VkWriteDescriptorSetInlineUniformBlock { if x == nil { return nil } - return x.reffb1b3d56 + return x.ref3e98b3ff } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SparseImageOpaqueMemoryBindInfo) Free() { - if x != nil && x.allocsfb1b3d56 != nil { - x.allocsfb1b3d56.(*cgoAllocMap).Free() - x.reffb1b3d56 = nil +func (x *WriteDescriptorSetInlineUniformBlock) Free() { + if x != nil && x.allocs3e98b3ff != nil { + x.allocs3e98b3ff.(*cgoAllocMap).Free() + x.ref3e98b3ff = nil } } -// NewSparseImageOpaqueMemoryBindInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewWriteDescriptorSetInlineUniformBlockRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSparseImageOpaqueMemoryBindInfoRef(ref unsafe.Pointer) *SparseImageOpaqueMemoryBindInfo { +func NewWriteDescriptorSetInlineUniformBlockRef(ref unsafe.Pointer) *WriteDescriptorSetInlineUniformBlock { if ref == nil { return nil } - obj := new(SparseImageOpaqueMemoryBindInfo) - obj.reffb1b3d56 = (*C.VkSparseImageOpaqueMemoryBindInfo)(unsafe.Pointer(ref)) + obj := new(WriteDescriptorSetInlineUniformBlock) + obj.ref3e98b3ff = (*C.VkWriteDescriptorSetInlineUniformBlock)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SparseImageOpaqueMemoryBindInfo) PassRef() (*C.VkSparseImageOpaqueMemoryBindInfo, *cgoAllocMap) { +func (x *WriteDescriptorSetInlineUniformBlock) PassRef() (*C.VkWriteDescriptorSetInlineUniformBlock, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffb1b3d56 != nil { - return x.reffb1b3d56, nil + } else if x.ref3e98b3ff != nil { + return x.ref3e98b3ff, nil } - memfb1b3d56 := allocSparseImageOpaqueMemoryBindInfoMemory(1) - reffb1b3d56 := (*C.VkSparseImageOpaqueMemoryBindInfo)(memfb1b3d56) - allocsfb1b3d56 := new(cgoAllocMap) - allocsfb1b3d56.Add(memfb1b3d56) + mem3e98b3ff := allocWriteDescriptorSetInlineUniformBlockMemory(1) + ref3e98b3ff := (*C.VkWriteDescriptorSetInlineUniformBlock)(mem3e98b3ff) + allocs3e98b3ff := new(cgoAllocMap) + allocs3e98b3ff.Add(mem3e98b3ff) - var cimage_allocs *cgoAllocMap - reffb1b3d56.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocsfb1b3d56.Borrow(cimage_allocs) + var csType_allocs *cgoAllocMap + ref3e98b3ff.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e98b3ff.Borrow(csType_allocs) - var cbindCount_allocs *cgoAllocMap - reffb1b3d56.bindCount, cbindCount_allocs = (C.uint32_t)(x.BindCount), cgoAllocsUnknown - allocsfb1b3d56.Borrow(cbindCount_allocs) + var cpNext_allocs *cgoAllocMap + ref3e98b3ff.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e98b3ff.Borrow(cpNext_allocs) - var cpBinds_allocs *cgoAllocMap - reffb1b3d56.pBinds, cpBinds_allocs = unpackSSparseMemoryBind(x.PBinds) - allocsfb1b3d56.Borrow(cpBinds_allocs) + var cdataSize_allocs *cgoAllocMap + ref3e98b3ff.dataSize, cdataSize_allocs = (C.uint32_t)(x.DataSize), cgoAllocsUnknown + allocs3e98b3ff.Borrow(cdataSize_allocs) - x.reffb1b3d56 = reffb1b3d56 - x.allocsfb1b3d56 = allocsfb1b3d56 - return reffb1b3d56, allocsfb1b3d56 + var cpData_allocs *cgoAllocMap + ref3e98b3ff.pData, cpData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PData)), cgoAllocsUnknown + allocs3e98b3ff.Borrow(cpData_allocs) + + x.ref3e98b3ff = ref3e98b3ff + x.allocs3e98b3ff = allocs3e98b3ff + return ref3e98b3ff, allocs3e98b3ff } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SparseImageOpaqueMemoryBindInfo) PassValue() (C.VkSparseImageOpaqueMemoryBindInfo, *cgoAllocMap) { - if x.reffb1b3d56 != nil { - return *x.reffb1b3d56, nil +func (x WriteDescriptorSetInlineUniformBlock) PassValue() (C.VkWriteDescriptorSetInlineUniformBlock, *cgoAllocMap) { + if x.ref3e98b3ff != nil { + return *x.ref3e98b3ff, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3762,90 +30953,91 @@ func (x SparseImageOpaqueMemoryBindInfo) PassValue() (C.VkSparseImageOpaqueMemor // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SparseImageOpaqueMemoryBindInfo) Deref() { - if x.reffb1b3d56 == nil { +func (x *WriteDescriptorSetInlineUniformBlock) Deref() { + if x.ref3e98b3ff == nil { return } - x.Image = *(*Image)(unsafe.Pointer(&x.reffb1b3d56.image)) - x.BindCount = (uint32)(x.reffb1b3d56.bindCount) - packSSparseMemoryBind(x.PBinds, x.reffb1b3d56.pBinds) + x.SType = (StructureType)(x.ref3e98b3ff.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3e98b3ff.pNext)) + x.DataSize = (uint32)(x.ref3e98b3ff.dataSize) + x.PData = (unsafe.Pointer)(unsafe.Pointer(x.ref3e98b3ff.pData)) } -// allocImageSubresourceMemory allocates memory for type C.VkImageSubresource in C. +// allocDescriptorPoolInlineUniformBlockCreateInfoMemory allocates memory for type C.VkDescriptorPoolInlineUniformBlockCreateInfo in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageSubresourceMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSubresourceValue)) +func allocDescriptorPoolInlineUniformBlockCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorPoolInlineUniformBlockCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageSubresourceValue = unsafe.Sizeof([1]C.VkImageSubresource{}) +const sizeOfDescriptorPoolInlineUniformBlockCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorPoolInlineUniformBlockCreateInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageSubresource) Ref() *C.VkImageSubresource { +func (x *DescriptorPoolInlineUniformBlockCreateInfo) Ref() *C.VkDescriptorPoolInlineUniformBlockCreateInfo { if x == nil { return nil } - return x.reffeaa0d8a + return x.refac227a39 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageSubresource) Free() { - if x != nil && x.allocsfeaa0d8a != nil { - x.allocsfeaa0d8a.(*cgoAllocMap).Free() - x.reffeaa0d8a = nil +func (x *DescriptorPoolInlineUniformBlockCreateInfo) Free() { + if x != nil && x.allocsac227a39 != nil { + x.allocsac227a39.(*cgoAllocMap).Free() + x.refac227a39 = nil } } -// NewImageSubresourceRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDescriptorPoolInlineUniformBlockCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageSubresourceRef(ref unsafe.Pointer) *ImageSubresource { +func NewDescriptorPoolInlineUniformBlockCreateInfoRef(ref unsafe.Pointer) *DescriptorPoolInlineUniformBlockCreateInfo { if ref == nil { return nil } - obj := new(ImageSubresource) - obj.reffeaa0d8a = (*C.VkImageSubresource)(unsafe.Pointer(ref)) + obj := new(DescriptorPoolInlineUniformBlockCreateInfo) + obj.refac227a39 = (*C.VkDescriptorPoolInlineUniformBlockCreateInfo)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageSubresource) PassRef() (*C.VkImageSubresource, *cgoAllocMap) { +func (x *DescriptorPoolInlineUniformBlockCreateInfo) PassRef() (*C.VkDescriptorPoolInlineUniformBlockCreateInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffeaa0d8a != nil { - return x.reffeaa0d8a, nil + } else if x.refac227a39 != nil { + return x.refac227a39, nil } - memfeaa0d8a := allocImageSubresourceMemory(1) - reffeaa0d8a := (*C.VkImageSubresource)(memfeaa0d8a) - allocsfeaa0d8a := new(cgoAllocMap) - allocsfeaa0d8a.Add(memfeaa0d8a) + memac227a39 := allocDescriptorPoolInlineUniformBlockCreateInfoMemory(1) + refac227a39 := (*C.VkDescriptorPoolInlineUniformBlockCreateInfo)(memac227a39) + allocsac227a39 := new(cgoAllocMap) + allocsac227a39.Add(memac227a39) - var caspectMask_allocs *cgoAllocMap - reffeaa0d8a.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocsfeaa0d8a.Borrow(caspectMask_allocs) + var csType_allocs *cgoAllocMap + refac227a39.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsac227a39.Borrow(csType_allocs) - var cmipLevel_allocs *cgoAllocMap - reffeaa0d8a.mipLevel, cmipLevel_allocs = (C.uint32_t)(x.MipLevel), cgoAllocsUnknown - allocsfeaa0d8a.Borrow(cmipLevel_allocs) + var cpNext_allocs *cgoAllocMap + refac227a39.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsac227a39.Borrow(cpNext_allocs) - var carrayLayer_allocs *cgoAllocMap - reffeaa0d8a.arrayLayer, carrayLayer_allocs = (C.uint32_t)(x.ArrayLayer), cgoAllocsUnknown - allocsfeaa0d8a.Borrow(carrayLayer_allocs) + var cmaxInlineUniformBlockBindings_allocs *cgoAllocMap + refac227a39.maxInlineUniformBlockBindings, cmaxInlineUniformBlockBindings_allocs = (C.uint32_t)(x.MaxInlineUniformBlockBindings), cgoAllocsUnknown + allocsac227a39.Borrow(cmaxInlineUniformBlockBindings_allocs) - x.reffeaa0d8a = reffeaa0d8a - x.allocsfeaa0d8a = allocsfeaa0d8a - return reffeaa0d8a, allocsfeaa0d8a + x.refac227a39 = refac227a39 + x.allocsac227a39 = allocsac227a39 + return refac227a39, allocsac227a39 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageSubresource) PassValue() (C.VkImageSubresource, *cgoAllocMap) { - if x.reffeaa0d8a != nil { - return *x.reffeaa0d8a, nil +func (x DescriptorPoolInlineUniformBlockCreateInfo) PassValue() (C.VkDescriptorPoolInlineUniformBlockCreateInfo, *cgoAllocMap) { + if x.refac227a39 != nil { + return *x.refac227a39, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3853,90 +31045,90 @@ func (x ImageSubresource) PassValue() (C.VkImageSubresource, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageSubresource) Deref() { - if x.reffeaa0d8a == nil { +func (x *DescriptorPoolInlineUniformBlockCreateInfo) Deref() { + if x.refac227a39 == nil { return } - x.AspectMask = (ImageAspectFlags)(x.reffeaa0d8a.aspectMask) - x.MipLevel = (uint32)(x.reffeaa0d8a.mipLevel) - x.ArrayLayer = (uint32)(x.reffeaa0d8a.arrayLayer) + x.SType = (StructureType)(x.refac227a39.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refac227a39.pNext)) + x.MaxInlineUniformBlockBindings = (uint32)(x.refac227a39.maxInlineUniformBlockBindings) } -// allocOffset3DMemory allocates memory for type C.VkOffset3D in C. +// allocPhysicalDeviceTextureCompressionASTCHDRFeaturesMemory allocates memory for type C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures in C. // The caller is responsible for freeing the this memory via C.free. -func allocOffset3DMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfOffset3DValue)) +func allocPhysicalDeviceTextureCompressionASTCHDRFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTextureCompressionASTCHDRFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfOffset3DValue = unsafe.Sizeof([1]C.VkOffset3D{}) +const sizeOfPhysicalDeviceTextureCompressionASTCHDRFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Offset3D) Ref() *C.VkOffset3D { +func (x *PhysicalDeviceTextureCompressionASTCHDRFeatures) Ref() *C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures { if x == nil { return nil } - return x.ref2b6879c2 + return x.refb5195968 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *Offset3D) Free() { - if x != nil && x.allocs2b6879c2 != nil { - x.allocs2b6879c2.(*cgoAllocMap).Free() - x.ref2b6879c2 = nil +func (x *PhysicalDeviceTextureCompressionASTCHDRFeatures) Free() { + if x != nil && x.allocsb5195968 != nil { + x.allocsb5195968.(*cgoAllocMap).Free() + x.refb5195968 = nil } } -// NewOffset3DRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceTextureCompressionASTCHDRFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewOffset3DRef(ref unsafe.Pointer) *Offset3D { +func NewPhysicalDeviceTextureCompressionASTCHDRFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTextureCompressionASTCHDRFeatures { if ref == nil { return nil } - obj := new(Offset3D) - obj.ref2b6879c2 = (*C.VkOffset3D)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceTextureCompressionASTCHDRFeatures) + obj.refb5195968 = (*C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *Offset3D) PassRef() (*C.VkOffset3D, *cgoAllocMap) { +func (x *PhysicalDeviceTextureCompressionASTCHDRFeatures) PassRef() (*C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2b6879c2 != nil { - return x.ref2b6879c2, nil + } else if x.refb5195968 != nil { + return x.refb5195968, nil } - mem2b6879c2 := allocOffset3DMemory(1) - ref2b6879c2 := (*C.VkOffset3D)(mem2b6879c2) - allocs2b6879c2 := new(cgoAllocMap) - allocs2b6879c2.Add(mem2b6879c2) + memb5195968 := allocPhysicalDeviceTextureCompressionASTCHDRFeaturesMemory(1) + refb5195968 := (*C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures)(memb5195968) + allocsb5195968 := new(cgoAllocMap) + allocsb5195968.Add(memb5195968) - var cx_allocs *cgoAllocMap - ref2b6879c2.x, cx_allocs = (C.int32_t)(x.X), cgoAllocsUnknown - allocs2b6879c2.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + refb5195968.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb5195968.Borrow(csType_allocs) - var cy_allocs *cgoAllocMap - ref2b6879c2.y, cy_allocs = (C.int32_t)(x.Y), cgoAllocsUnknown - allocs2b6879c2.Borrow(cy_allocs) + var cpNext_allocs *cgoAllocMap + refb5195968.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb5195968.Borrow(cpNext_allocs) - var cz_allocs *cgoAllocMap - ref2b6879c2.z, cz_allocs = (C.int32_t)(x.Z), cgoAllocsUnknown - allocs2b6879c2.Borrow(cz_allocs) + var ctextureCompressionASTC_HDR_allocs *cgoAllocMap + refb5195968.textureCompressionASTC_HDR, ctextureCompressionASTC_HDR_allocs = (C.VkBool32)(x.TextureCompressionASTC_HDR), cgoAllocsUnknown + allocsb5195968.Borrow(ctextureCompressionASTC_HDR_allocs) - x.ref2b6879c2 = ref2b6879c2 - x.allocs2b6879c2 = allocs2b6879c2 - return ref2b6879c2, allocs2b6879c2 + x.refb5195968 = refb5195968 + x.allocsb5195968 = allocsb5195968 + return refb5195968, allocsb5195968 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x Offset3D) PassValue() (C.VkOffset3D, *cgoAllocMap) { - if x.ref2b6879c2 != nil { - return *x.ref2b6879c2, nil +func (x PhysicalDeviceTextureCompressionASTCHDRFeatures) PassValue() (C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures, *cgoAllocMap) { + if x.refb5195968 != nil { + return *x.refb5195968, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -3944,102 +31136,118 @@ func (x Offset3D) PassValue() (C.VkOffset3D, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *Offset3D) Deref() { - if x.ref2b6879c2 == nil { +func (x *PhysicalDeviceTextureCompressionASTCHDRFeatures) Deref() { + if x.refb5195968 == nil { return } - x.X = (int32)(x.ref2b6879c2.x) - x.Y = (int32)(x.ref2b6879c2.y) - x.Z = (int32)(x.ref2b6879c2.z) + x.SType = (StructureType)(x.refb5195968.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb5195968.pNext)) + x.TextureCompressionASTC_HDR = (Bool32)(x.refb5195968.textureCompressionASTC_HDR) } -// allocSparseImageMemoryBindMemory allocates memory for type C.VkSparseImageMemoryBind in C. +// allocRenderingAttachmentInfoMemory allocates memory for type C.VkRenderingAttachmentInfo in C. // The caller is responsible for freeing the this memory via C.free. -func allocSparseImageMemoryBindMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageMemoryBindValue)) +func allocRenderingAttachmentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingAttachmentInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSparseImageMemoryBindValue = unsafe.Sizeof([1]C.VkSparseImageMemoryBind{}) +const sizeOfRenderingAttachmentInfoValue = unsafe.Sizeof([1]C.VkRenderingAttachmentInfo{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageMemoryBind) Ref() *C.VkSparseImageMemoryBind { +func (x *RenderingAttachmentInfo) Ref() *C.VkRenderingAttachmentInfo { if x == nil { return nil } - return x.ref41b516d7 + return x.ref62eee071 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SparseImageMemoryBind) Free() { - if x != nil && x.allocs41b516d7 != nil { - x.allocs41b516d7.(*cgoAllocMap).Free() - x.ref41b516d7 = nil +func (x *RenderingAttachmentInfo) Free() { + if x != nil && x.allocs62eee071 != nil { + x.allocs62eee071.(*cgoAllocMap).Free() + x.ref62eee071 = nil } } -// NewSparseImageMemoryBindRef creates a new wrapper struct with underlying reference set to the original C object. +// NewRenderingAttachmentInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSparseImageMemoryBindRef(ref unsafe.Pointer) *SparseImageMemoryBind { +func NewRenderingAttachmentInfoRef(ref unsafe.Pointer) *RenderingAttachmentInfo { if ref == nil { return nil } - obj := new(SparseImageMemoryBind) - obj.ref41b516d7 = (*C.VkSparseImageMemoryBind)(unsafe.Pointer(ref)) + obj := new(RenderingAttachmentInfo) + obj.ref62eee071 = (*C.VkRenderingAttachmentInfo)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SparseImageMemoryBind) PassRef() (*C.VkSparseImageMemoryBind, *cgoAllocMap) { +func (x *RenderingAttachmentInfo) PassRef() (*C.VkRenderingAttachmentInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref41b516d7 != nil { - return x.ref41b516d7, nil + } else if x.ref62eee071 != nil { + return x.ref62eee071, nil } - mem41b516d7 := allocSparseImageMemoryBindMemory(1) - ref41b516d7 := (*C.VkSparseImageMemoryBind)(mem41b516d7) - allocs41b516d7 := new(cgoAllocMap) - allocs41b516d7.Add(mem41b516d7) + mem62eee071 := allocRenderingAttachmentInfoMemory(1) + ref62eee071 := (*C.VkRenderingAttachmentInfo)(mem62eee071) + allocs62eee071 := new(cgoAllocMap) + allocs62eee071.Add(mem62eee071) - var csubresource_allocs *cgoAllocMap - ref41b516d7.subresource, csubresource_allocs = x.Subresource.PassValue() - allocs41b516d7.Borrow(csubresource_allocs) + var csType_allocs *cgoAllocMap + ref62eee071.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs62eee071.Borrow(csType_allocs) - var coffset_allocs *cgoAllocMap - ref41b516d7.offset, coffset_allocs = x.Offset.PassValue() - allocs41b516d7.Borrow(coffset_allocs) + var cpNext_allocs *cgoAllocMap + ref62eee071.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs62eee071.Borrow(cpNext_allocs) - var cextent_allocs *cgoAllocMap - ref41b516d7.extent, cextent_allocs = x.Extent.PassValue() - allocs41b516d7.Borrow(cextent_allocs) + var cimageView_allocs *cgoAllocMap + ref62eee071.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocs62eee071.Borrow(cimageView_allocs) - var cmemory_allocs *cgoAllocMap - ref41b516d7.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocs41b516d7.Borrow(cmemory_allocs) + var cimageLayout_allocs *cgoAllocMap + ref62eee071.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown + allocs62eee071.Borrow(cimageLayout_allocs) - var cmemoryOffset_allocs *cgoAllocMap - ref41b516d7.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown - allocs41b516d7.Borrow(cmemoryOffset_allocs) + var cresolveMode_allocs *cgoAllocMap + ref62eee071.resolveMode, cresolveMode_allocs = (C.VkResolveModeFlagBits)(x.ResolveMode), cgoAllocsUnknown + allocs62eee071.Borrow(cresolveMode_allocs) - var cflags_allocs *cgoAllocMap - ref41b516d7.flags, cflags_allocs = (C.VkSparseMemoryBindFlags)(x.Flags), cgoAllocsUnknown - allocs41b516d7.Borrow(cflags_allocs) + var cresolveImageView_allocs *cgoAllocMap + ref62eee071.resolveImageView, cresolveImageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ResolveImageView)), cgoAllocsUnknown + allocs62eee071.Borrow(cresolveImageView_allocs) - x.ref41b516d7 = ref41b516d7 - x.allocs41b516d7 = allocs41b516d7 - return ref41b516d7, allocs41b516d7 + var cresolveImageLayout_allocs *cgoAllocMap + ref62eee071.resolveImageLayout, cresolveImageLayout_allocs = (C.VkImageLayout)(x.ResolveImageLayout), cgoAllocsUnknown + allocs62eee071.Borrow(cresolveImageLayout_allocs) + + var cloadOp_allocs *cgoAllocMap + ref62eee071.loadOp, cloadOp_allocs = (C.VkAttachmentLoadOp)(x.LoadOp), cgoAllocsUnknown + allocs62eee071.Borrow(cloadOp_allocs) + + var cstoreOp_allocs *cgoAllocMap + ref62eee071.storeOp, cstoreOp_allocs = (C.VkAttachmentStoreOp)(x.StoreOp), cgoAllocsUnknown + allocs62eee071.Borrow(cstoreOp_allocs) + + var cclearValue_allocs *cgoAllocMap + ref62eee071.clearValue, cclearValue_allocs = *(*C.VkClearValue)(unsafe.Pointer(&x.ClearValue)), cgoAllocsUnknown + allocs62eee071.Borrow(cclearValue_allocs) + + x.ref62eee071 = ref62eee071 + x.allocs62eee071 = allocs62eee071 + return ref62eee071, allocs62eee071 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SparseImageMemoryBind) PassValue() (C.VkSparseImageMemoryBind, *cgoAllocMap) { - if x.ref41b516d7 != nil { - return *x.ref41b516d7, nil +func (x RenderingAttachmentInfo) PassValue() (C.VkRenderingAttachmentInfo, *cgoAllocMap) { + if x.ref62eee071 != nil { + return *x.ref62eee071, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4047,131 +31255,163 @@ func (x SparseImageMemoryBind) PassValue() (C.VkSparseImageMemoryBind, *cgoAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SparseImageMemoryBind) Deref() { - if x.ref41b516d7 == nil { +func (x *RenderingAttachmentInfo) Deref() { + if x.ref62eee071 == nil { return } - x.Subresource = *NewImageSubresourceRef(unsafe.Pointer(&x.ref41b516d7.subresource)) - x.Offset = *NewOffset3DRef(unsafe.Pointer(&x.ref41b516d7.offset)) - x.Extent = *NewExtent3DRef(unsafe.Pointer(&x.ref41b516d7.extent)) - x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref41b516d7.memory)) - x.MemoryOffset = (DeviceSize)(x.ref41b516d7.memoryOffset) - x.Flags = (SparseMemoryBindFlags)(x.ref41b516d7.flags) + x.SType = (StructureType)(x.ref62eee071.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref62eee071.pNext)) + x.ImageView = *(*ImageView)(unsafe.Pointer(&x.ref62eee071.imageView)) + x.ImageLayout = (ImageLayout)(x.ref62eee071.imageLayout) + x.ResolveMode = (ResolveModeFlagBits)(x.ref62eee071.resolveMode) + x.ResolveImageView = *(*ImageView)(unsafe.Pointer(&x.ref62eee071.resolveImageView)) + x.ResolveImageLayout = (ImageLayout)(x.ref62eee071.resolveImageLayout) + x.LoadOp = (AttachmentLoadOp)(x.ref62eee071.loadOp) + x.StoreOp = (AttachmentStoreOp)(x.ref62eee071.storeOp) + x.ClearValue = *(*ClearValue)(unsafe.Pointer(&x.ref62eee071.clearValue)) } -// allocSparseImageMemoryBindInfoMemory allocates memory for type C.VkSparseImageMemoryBindInfo in C. +// allocRenderingInfoMemory allocates memory for type C.VkRenderingInfo in C. // The caller is responsible for freeing the this memory via C.free. -func allocSparseImageMemoryBindInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageMemoryBindInfoValue)) +func allocRenderingInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSparseImageMemoryBindInfoValue = unsafe.Sizeof([1]C.VkSparseImageMemoryBindInfo{}) +const sizeOfRenderingInfoValue = unsafe.Sizeof([1]C.VkRenderingInfo{}) -// unpackSSparseImageMemoryBind transforms a sliced Go data structure into plain C format. -func unpackSSparseImageMemoryBind(x []SparseImageMemoryBind) (unpacked *C.VkSparseImageMemoryBind, allocs *cgoAllocMap) { +// unpackSRenderingAttachmentInfo transforms a sliced Go data structure into plain C format. +func unpackSRenderingAttachmentInfo(x []RenderingAttachmentInfo) (unpacked *C.VkRenderingAttachmentInfo, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageMemoryBind) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkRenderingAttachmentInfo) { go allocs.Free() }) len0 := len(x) - mem0 := allocSparseImageMemoryBindMemory(len0) + mem0 := allocRenderingAttachmentInfoMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkSparseImageMemoryBind)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkRenderingAttachmentInfo)(unsafe.Pointer(h0)) for i0 := range x { allocs0 := new(cgoAllocMap) v0[i0], allocs0 = x[i0].PassValue() allocs.Borrow(allocs0) } h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSparseImageMemoryBind)(h.Data) + unpacked = (*C.VkRenderingAttachmentInfo)(h.Data) return } -// packSSparseImageMemoryBind reads sliced Go data structure out from plain C format. -func packSSparseImageMemoryBind(v []SparseImageMemoryBind, ptr0 *C.VkSparseImageMemoryBind) { +// packSRenderingAttachmentInfo reads sliced Go data structure out from plain C format. +func packSRenderingAttachmentInfo(v []RenderingAttachmentInfo, ptr0 *C.VkRenderingAttachmentInfo) { const m = 0x7fffffff for i0 := range v { - ptr1 := (*(*[m / sizeOfSparseImageMemoryBindValue]C.VkSparseImageMemoryBind)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSparseImageMemoryBindRef(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfRenderingAttachmentInfoValue]C.VkRenderingAttachmentInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewRenderingAttachmentInfoRef(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageMemoryBindInfo) Ref() *C.VkSparseImageMemoryBindInfo { +func (x *RenderingInfo) Ref() *C.VkRenderingInfo { if x == nil { return nil } - return x.ref50faeb70 + return x.refe60d8c7 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SparseImageMemoryBindInfo) Free() { - if x != nil && x.allocs50faeb70 != nil { - x.allocs50faeb70.(*cgoAllocMap).Free() - x.ref50faeb70 = nil +func (x *RenderingInfo) Free() { + if x != nil && x.allocse60d8c7 != nil { + x.allocse60d8c7.(*cgoAllocMap).Free() + x.refe60d8c7 = nil } } -// NewSparseImageMemoryBindInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewRenderingInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSparseImageMemoryBindInfoRef(ref unsafe.Pointer) *SparseImageMemoryBindInfo { +func NewRenderingInfoRef(ref unsafe.Pointer) *RenderingInfo { if ref == nil { return nil } - obj := new(SparseImageMemoryBindInfo) - obj.ref50faeb70 = (*C.VkSparseImageMemoryBindInfo)(unsafe.Pointer(ref)) + obj := new(RenderingInfo) + obj.refe60d8c7 = (*C.VkRenderingInfo)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SparseImageMemoryBindInfo) PassRef() (*C.VkSparseImageMemoryBindInfo, *cgoAllocMap) { +func (x *RenderingInfo) PassRef() (*C.VkRenderingInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref50faeb70 != nil { - return x.ref50faeb70, nil + } else if x.refe60d8c7 != nil { + return x.refe60d8c7, nil } - mem50faeb70 := allocSparseImageMemoryBindInfoMemory(1) - ref50faeb70 := (*C.VkSparseImageMemoryBindInfo)(mem50faeb70) - allocs50faeb70 := new(cgoAllocMap) - allocs50faeb70.Add(mem50faeb70) + meme60d8c7 := allocRenderingInfoMemory(1) + refe60d8c7 := (*C.VkRenderingInfo)(meme60d8c7) + allocse60d8c7 := new(cgoAllocMap) + allocse60d8c7.Add(meme60d8c7) - var cimage_allocs *cgoAllocMap - ref50faeb70.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs50faeb70.Borrow(cimage_allocs) + var csType_allocs *cgoAllocMap + refe60d8c7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse60d8c7.Borrow(csType_allocs) - var cbindCount_allocs *cgoAllocMap - ref50faeb70.bindCount, cbindCount_allocs = (C.uint32_t)(x.BindCount), cgoAllocsUnknown - allocs50faeb70.Borrow(cbindCount_allocs) + var cpNext_allocs *cgoAllocMap + refe60d8c7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse60d8c7.Borrow(cpNext_allocs) - var cpBinds_allocs *cgoAllocMap - ref50faeb70.pBinds, cpBinds_allocs = unpackSSparseImageMemoryBind(x.PBinds) - allocs50faeb70.Borrow(cpBinds_allocs) + var cflags_allocs *cgoAllocMap + refe60d8c7.flags, cflags_allocs = (C.VkRenderingFlags)(x.Flags), cgoAllocsUnknown + allocse60d8c7.Borrow(cflags_allocs) - x.ref50faeb70 = ref50faeb70 - x.allocs50faeb70 = allocs50faeb70 - return ref50faeb70, allocs50faeb70 + var crenderArea_allocs *cgoAllocMap + refe60d8c7.renderArea, crenderArea_allocs = x.RenderArea.PassValue() + allocse60d8c7.Borrow(crenderArea_allocs) + + var clayerCount_allocs *cgoAllocMap + refe60d8c7.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown + allocse60d8c7.Borrow(clayerCount_allocs) + + var cviewMask_allocs *cgoAllocMap + refe60d8c7.viewMask, cviewMask_allocs = (C.uint32_t)(x.ViewMask), cgoAllocsUnknown + allocse60d8c7.Borrow(cviewMask_allocs) + + var ccolorAttachmentCount_allocs *cgoAllocMap + refe60d8c7.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocse60d8c7.Borrow(ccolorAttachmentCount_allocs) + + var cpColorAttachments_allocs *cgoAllocMap + refe60d8c7.pColorAttachments, cpColorAttachments_allocs = unpackSRenderingAttachmentInfo(x.PColorAttachments) + allocse60d8c7.Borrow(cpColorAttachments_allocs) + + var cpDepthAttachment_allocs *cgoAllocMap + refe60d8c7.pDepthAttachment, cpDepthAttachment_allocs = unpackSRenderingAttachmentInfo(x.PDepthAttachment) + allocse60d8c7.Borrow(cpDepthAttachment_allocs) + + var cpStencilAttachment_allocs *cgoAllocMap + refe60d8c7.pStencilAttachment, cpStencilAttachment_allocs = unpackSRenderingAttachmentInfo(x.PStencilAttachment) + allocse60d8c7.Borrow(cpStencilAttachment_allocs) + + x.refe60d8c7 = refe60d8c7 + x.allocse60d8c7 = allocse60d8c7 + return refe60d8c7, allocse60d8c7 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SparseImageMemoryBindInfo) PassValue() (C.VkSparseImageMemoryBindInfo, *cgoAllocMap) { - if x.ref50faeb70 != nil { - return *x.ref50faeb70, nil +func (x RenderingInfo) PassValue() (C.VkRenderingInfo, *cgoAllocMap) { + if x.refe60d8c7 != nil { + return *x.refe60d8c7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4179,240 +31419,327 @@ func (x SparseImageMemoryBindInfo) PassValue() (C.VkSparseImageMemoryBindInfo, * // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SparseImageMemoryBindInfo) Deref() { - if x.ref50faeb70 == nil { +func (x *RenderingInfo) Deref() { + if x.refe60d8c7 == nil { return } - x.Image = *(*Image)(unsafe.Pointer(&x.ref50faeb70.image)) - x.BindCount = (uint32)(x.ref50faeb70.bindCount) - packSSparseImageMemoryBind(x.PBinds, x.ref50faeb70.pBinds) + x.SType = (StructureType)(x.refe60d8c7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe60d8c7.pNext)) + x.Flags = (RenderingFlags)(x.refe60d8c7.flags) + x.RenderArea = *NewRect2DRef(unsafe.Pointer(&x.refe60d8c7.renderArea)) + x.LayerCount = (uint32)(x.refe60d8c7.layerCount) + x.ViewMask = (uint32)(x.refe60d8c7.viewMask) + x.ColorAttachmentCount = (uint32)(x.refe60d8c7.colorAttachmentCount) + packSRenderingAttachmentInfo(x.PColorAttachments, x.refe60d8c7.pColorAttachments) + packSRenderingAttachmentInfo(x.PDepthAttachment, x.refe60d8c7.pDepthAttachment) + packSRenderingAttachmentInfo(x.PStencilAttachment, x.refe60d8c7.pStencilAttachment) } -// allocBindSparseInfoMemory allocates memory for type C.VkBindSparseInfo in C. +// allocPipelineRenderingCreateInfoMemory allocates memory for type C.VkPipelineRenderingCreateInfo in C. // The caller is responsible for freeing the this memory via C.free. -func allocBindSparseInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindSparseInfoValue)) +func allocPipelineRenderingCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRenderingCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBindSparseInfoValue = unsafe.Sizeof([1]C.VkBindSparseInfo{}) +const sizeOfPipelineRenderingCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRenderingCreateInfo{}) -// unpackSSparseBufferMemoryBindInfo transforms a sliced Go data structure into plain C format. -func unpackSSparseBufferMemoryBindInfo(x []SparseBufferMemoryBindInfo) (unpacked *C.VkSparseBufferMemoryBindInfo, allocs *cgoAllocMap) { +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PipelineRenderingCreateInfo) Ref() *C.VkPipelineRenderingCreateInfo { if x == nil { - return nil, nil + return nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseBufferMemoryBindInfo) { - go allocs.Free() - }) + return x.ref2f948283 +} - len0 := len(x) - mem0 := allocSparseBufferMemoryBindInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineRenderingCreateInfo) Free() { + if x != nil && x.allocs2f948283 != nil { + x.allocs2f948283.(*cgoAllocMap).Free() + x.ref2f948283 = nil } - v0 := *(*[]C.VkSparseBufferMemoryBindInfo)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) +} + +// NewPipelineRenderingCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPipelineRenderingCreateInfoRef(ref unsafe.Pointer) *PipelineRenderingCreateInfo { + if ref == nil { + return nil } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSparseBufferMemoryBindInfo)(h.Data) - return + obj := new(PipelineRenderingCreateInfo) + obj.ref2f948283 = (*C.VkPipelineRenderingCreateInfo)(unsafe.Pointer(ref)) + return obj } -// unpackSSparseImageOpaqueMemoryBindInfo transforms a sliced Go data structure into plain C format. -func unpackSSparseImageOpaqueMemoryBindInfo(x []SparseImageOpaqueMemoryBindInfo) (unpacked *C.VkSparseImageOpaqueMemoryBindInfo, allocs *cgoAllocMap) { +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PipelineRenderingCreateInfo) PassRef() (*C.VkPipelineRenderingCreateInfo, *cgoAllocMap) { if x == nil { return nil, nil + } else if x.ref2f948283 != nil { + return x.ref2f948283, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageOpaqueMemoryBindInfo) { - go allocs.Free() - }) + mem2f948283 := allocPipelineRenderingCreateInfoMemory(1) + ref2f948283 := (*C.VkPipelineRenderingCreateInfo)(mem2f948283) + allocs2f948283 := new(cgoAllocMap) + allocs2f948283.Add(mem2f948283) - len0 := len(x) - mem0 := allocSparseImageOpaqueMemoryBindInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, + var csType_allocs *cgoAllocMap + ref2f948283.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2f948283.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref2f948283.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2f948283.Borrow(cpNext_allocs) + + var cviewMask_allocs *cgoAllocMap + ref2f948283.viewMask, cviewMask_allocs = (C.uint32_t)(x.ViewMask), cgoAllocsUnknown + allocs2f948283.Borrow(cviewMask_allocs) + + var ccolorAttachmentCount_allocs *cgoAllocMap + ref2f948283.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocs2f948283.Borrow(ccolorAttachmentCount_allocs) + + var cpColorAttachmentFormats_allocs *cgoAllocMap + ref2f948283.pColorAttachmentFormats, cpColorAttachmentFormats_allocs = (*C.VkFormat)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentFormats)).Data)), cgoAllocsUnknown + allocs2f948283.Borrow(cpColorAttachmentFormats_allocs) + + var cdepthAttachmentFormat_allocs *cgoAllocMap + ref2f948283.depthAttachmentFormat, cdepthAttachmentFormat_allocs = (C.VkFormat)(x.DepthAttachmentFormat), cgoAllocsUnknown + allocs2f948283.Borrow(cdepthAttachmentFormat_allocs) + + var cstencilAttachmentFormat_allocs *cgoAllocMap + ref2f948283.stencilAttachmentFormat, cstencilAttachmentFormat_allocs = (C.VkFormat)(x.StencilAttachmentFormat), cgoAllocsUnknown + allocs2f948283.Borrow(cstencilAttachmentFormat_allocs) + + x.ref2f948283 = ref2f948283 + x.allocs2f948283 = allocs2f948283 + return ref2f948283, allocs2f948283 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PipelineRenderingCreateInfo) PassValue() (C.VkPipelineRenderingCreateInfo, *cgoAllocMap) { + if x.ref2f948283 != nil { + return *x.ref2f948283, nil } - v0 := *(*[]C.VkSparseImageOpaqueMemoryBindInfo)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineRenderingCreateInfo) Deref() { + if x.ref2f948283 == nil { + return } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSparseImageOpaqueMemoryBindInfo)(h.Data) - return + x.SType = (StructureType)(x.ref2f948283.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2f948283.pNext)) + x.ViewMask = (uint32)(x.ref2f948283.viewMask) + x.ColorAttachmentCount = (uint32)(x.ref2f948283.colorAttachmentCount) + hxf882e98 := (*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentFormats)) + hxf882e98.Data = unsafe.Pointer(x.ref2f948283.pColorAttachmentFormats) + hxf882e98.Cap = 0x7fffffff + // hxf882e98.Len = ? + + x.DepthAttachmentFormat = (Format)(x.ref2f948283.depthAttachmentFormat) + x.StencilAttachmentFormat = (Format)(x.ref2f948283.stencilAttachmentFormat) } -// unpackSSparseImageMemoryBindInfo transforms a sliced Go data structure into plain C format. -func unpackSSparseImageMemoryBindInfo(x []SparseImageMemoryBindInfo) (unpacked *C.VkSparseImageMemoryBindInfo, allocs *cgoAllocMap) { +// allocPhysicalDeviceDynamicRenderingFeaturesMemory allocates memory for type C.VkPhysicalDeviceDynamicRenderingFeatures in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceDynamicRenderingFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDynamicRenderingFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPhysicalDeviceDynamicRenderingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDynamicRenderingFeatures{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceDynamicRenderingFeatures) Ref() *C.VkPhysicalDeviceDynamicRenderingFeatures { if x == nil { - return nil, nil + return nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSparseImageMemoryBindInfo) { - go allocs.Free() - }) + return x.refa724d875 +} - len0 := len(x) - mem0 := allocSparseImageMemoryBindInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceDynamicRenderingFeatures) Free() { + if x != nil && x.allocsa724d875 != nil { + x.allocsa724d875.(*cgoAllocMap).Free() + x.refa724d875 = nil } - v0 := *(*[]C.VkSparseImageMemoryBindInfo)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) +} + +// NewPhysicalDeviceDynamicRenderingFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceDynamicRenderingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDynamicRenderingFeatures { + if ref == nil { + return nil } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSparseImageMemoryBindInfo)(h.Data) - return + obj := new(PhysicalDeviceDynamicRenderingFeatures) + obj.refa724d875 = (*C.VkPhysicalDeviceDynamicRenderingFeatures)(unsafe.Pointer(ref)) + return obj } -// packSSparseBufferMemoryBindInfo reads sliced Go data structure out from plain C format. -func packSSparseBufferMemoryBindInfo(v []SparseBufferMemoryBindInfo, ptr0 *C.VkSparseBufferMemoryBindInfo) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSparseBufferMemoryBindInfoValue]C.VkSparseBufferMemoryBindInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSparseBufferMemoryBindInfoRef(unsafe.Pointer(&ptr1)) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceDynamicRenderingFeatures) PassRef() (*C.VkPhysicalDeviceDynamicRenderingFeatures, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refa724d875 != nil { + return x.refa724d875, nil } + mema724d875 := allocPhysicalDeviceDynamicRenderingFeaturesMemory(1) + refa724d875 := (*C.VkPhysicalDeviceDynamicRenderingFeatures)(mema724d875) + allocsa724d875 := new(cgoAllocMap) + allocsa724d875.Add(mema724d875) + + var csType_allocs *cgoAllocMap + refa724d875.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa724d875.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refa724d875.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa724d875.Borrow(cpNext_allocs) + + var cdynamicRendering_allocs *cgoAllocMap + refa724d875.dynamicRendering, cdynamicRendering_allocs = (C.VkBool32)(x.DynamicRendering), cgoAllocsUnknown + allocsa724d875.Borrow(cdynamicRendering_allocs) + + x.refa724d875 = refa724d875 + x.allocsa724d875 = allocsa724d875 + return refa724d875, allocsa724d875 + } -// packSSparseImageOpaqueMemoryBindInfo reads sliced Go data structure out from plain C format. -func packSSparseImageOpaqueMemoryBindInfo(v []SparseImageOpaqueMemoryBindInfo, ptr0 *C.VkSparseImageOpaqueMemoryBindInfo) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSparseImageOpaqueMemoryBindInfoValue]C.VkSparseImageOpaqueMemoryBindInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSparseImageOpaqueMemoryBindInfoRef(unsafe.Pointer(&ptr1)) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceDynamicRenderingFeatures) PassValue() (C.VkPhysicalDeviceDynamicRenderingFeatures, *cgoAllocMap) { + if x.refa724d875 != nil { + return *x.refa724d875, nil } + ref, allocs := x.PassRef() + return *ref, allocs } -// packSSparseImageMemoryBindInfo reads sliced Go data structure out from plain C format. -func packSSparseImageMemoryBindInfo(v []SparseImageMemoryBindInfo, ptr0 *C.VkSparseImageMemoryBindInfo) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSparseImageMemoryBindInfoValue]C.VkSparseImageMemoryBindInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSparseImageMemoryBindInfoRef(unsafe.Pointer(&ptr1)) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceDynamicRenderingFeatures) Deref() { + if x.refa724d875 == nil { + return + } + x.SType = (StructureType)(x.refa724d875.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa724d875.pNext)) + x.DynamicRendering = (Bool32)(x.refa724d875.dynamicRendering) +} + +// allocCommandBufferInheritanceRenderingInfoMemory allocates memory for type C.VkCommandBufferInheritanceRenderingInfo in C. +// The caller is responsible for freeing the this memory via C.free. +func allocCommandBufferInheritanceRenderingInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceRenderingInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) } + return mem } +const sizeOfCommandBufferInheritanceRenderingInfoValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceRenderingInfo{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindSparseInfo) Ref() *C.VkBindSparseInfo { +func (x *CommandBufferInheritanceRenderingInfo) Ref() *C.VkCommandBufferInheritanceRenderingInfo { if x == nil { return nil } - return x.refb0cbe910 + return x.reff704c204 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BindSparseInfo) Free() { - if x != nil && x.allocsb0cbe910 != nil { - x.allocsb0cbe910.(*cgoAllocMap).Free() - x.refb0cbe910 = nil +func (x *CommandBufferInheritanceRenderingInfo) Free() { + if x != nil && x.allocsf704c204 != nil { + x.allocsf704c204.(*cgoAllocMap).Free() + x.reff704c204 = nil } } -// NewBindSparseInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCommandBufferInheritanceRenderingInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBindSparseInfoRef(ref unsafe.Pointer) *BindSparseInfo { +func NewCommandBufferInheritanceRenderingInfoRef(ref unsafe.Pointer) *CommandBufferInheritanceRenderingInfo { if ref == nil { return nil } - obj := new(BindSparseInfo) - obj.refb0cbe910 = (*C.VkBindSparseInfo)(unsafe.Pointer(ref)) + obj := new(CommandBufferInheritanceRenderingInfo) + obj.reff704c204 = (*C.VkCommandBufferInheritanceRenderingInfo)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BindSparseInfo) PassRef() (*C.VkBindSparseInfo, *cgoAllocMap) { +func (x *CommandBufferInheritanceRenderingInfo) PassRef() (*C.VkCommandBufferInheritanceRenderingInfo, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb0cbe910 != nil { - return x.refb0cbe910, nil + } else if x.reff704c204 != nil { + return x.reff704c204, nil } - memb0cbe910 := allocBindSparseInfoMemory(1) - refb0cbe910 := (*C.VkBindSparseInfo)(memb0cbe910) - allocsb0cbe910 := new(cgoAllocMap) - allocsb0cbe910.Add(memb0cbe910) + memf704c204 := allocCommandBufferInheritanceRenderingInfoMemory(1) + reff704c204 := (*C.VkCommandBufferInheritanceRenderingInfo)(memf704c204) + allocsf704c204 := new(cgoAllocMap) + allocsf704c204.Add(memf704c204) var csType_allocs *cgoAllocMap - refb0cbe910.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb0cbe910.Borrow(csType_allocs) + reff704c204.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf704c204.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb0cbe910.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb0cbe910.Borrow(cpNext_allocs) + reff704c204.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf704c204.Borrow(cpNext_allocs) - var cwaitSemaphoreCount_allocs *cgoAllocMap - refb0cbe910.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown - allocsb0cbe910.Borrow(cwaitSemaphoreCount_allocs) - - var cpWaitSemaphores_allocs *cgoAllocMap - refb0cbe910.pWaitSemaphores, cpWaitSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)).Data)), cgoAllocsUnknown - allocsb0cbe910.Borrow(cpWaitSemaphores_allocs) - - var cbufferBindCount_allocs *cgoAllocMap - refb0cbe910.bufferBindCount, cbufferBindCount_allocs = (C.uint32_t)(x.BufferBindCount), cgoAllocsUnknown - allocsb0cbe910.Borrow(cbufferBindCount_allocs) - - var cpBufferBinds_allocs *cgoAllocMap - refb0cbe910.pBufferBinds, cpBufferBinds_allocs = unpackSSparseBufferMemoryBindInfo(x.PBufferBinds) - allocsb0cbe910.Borrow(cpBufferBinds_allocs) + var cflags_allocs *cgoAllocMap + reff704c204.flags, cflags_allocs = (C.VkRenderingFlags)(x.Flags), cgoAllocsUnknown + allocsf704c204.Borrow(cflags_allocs) - var cimageOpaqueBindCount_allocs *cgoAllocMap - refb0cbe910.imageOpaqueBindCount, cimageOpaqueBindCount_allocs = (C.uint32_t)(x.ImageOpaqueBindCount), cgoAllocsUnknown - allocsb0cbe910.Borrow(cimageOpaqueBindCount_allocs) + var cviewMask_allocs *cgoAllocMap + reff704c204.viewMask, cviewMask_allocs = (C.uint32_t)(x.ViewMask), cgoAllocsUnknown + allocsf704c204.Borrow(cviewMask_allocs) - var cpImageOpaqueBinds_allocs *cgoAllocMap - refb0cbe910.pImageOpaqueBinds, cpImageOpaqueBinds_allocs = unpackSSparseImageOpaqueMemoryBindInfo(x.PImageOpaqueBinds) - allocsb0cbe910.Borrow(cpImageOpaqueBinds_allocs) + var ccolorAttachmentCount_allocs *cgoAllocMap + reff704c204.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocsf704c204.Borrow(ccolorAttachmentCount_allocs) - var cimageBindCount_allocs *cgoAllocMap - refb0cbe910.imageBindCount, cimageBindCount_allocs = (C.uint32_t)(x.ImageBindCount), cgoAllocsUnknown - allocsb0cbe910.Borrow(cimageBindCount_allocs) + var cpColorAttachmentFormats_allocs *cgoAllocMap + reff704c204.pColorAttachmentFormats, cpColorAttachmentFormats_allocs = (*C.VkFormat)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentFormats)).Data)), cgoAllocsUnknown + allocsf704c204.Borrow(cpColorAttachmentFormats_allocs) - var cpImageBinds_allocs *cgoAllocMap - refb0cbe910.pImageBinds, cpImageBinds_allocs = unpackSSparseImageMemoryBindInfo(x.PImageBinds) - allocsb0cbe910.Borrow(cpImageBinds_allocs) + var cdepthAttachmentFormat_allocs *cgoAllocMap + reff704c204.depthAttachmentFormat, cdepthAttachmentFormat_allocs = (C.VkFormat)(x.DepthAttachmentFormat), cgoAllocsUnknown + allocsf704c204.Borrow(cdepthAttachmentFormat_allocs) - var csignalSemaphoreCount_allocs *cgoAllocMap - refb0cbe910.signalSemaphoreCount, csignalSemaphoreCount_allocs = (C.uint32_t)(x.SignalSemaphoreCount), cgoAllocsUnknown - allocsb0cbe910.Borrow(csignalSemaphoreCount_allocs) + var cstencilAttachmentFormat_allocs *cgoAllocMap + reff704c204.stencilAttachmentFormat, cstencilAttachmentFormat_allocs = (C.VkFormat)(x.StencilAttachmentFormat), cgoAllocsUnknown + allocsf704c204.Borrow(cstencilAttachmentFormat_allocs) - var cpSignalSemaphores_allocs *cgoAllocMap - refb0cbe910.pSignalSemaphores, cpSignalSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores)).Data)), cgoAllocsUnknown - allocsb0cbe910.Borrow(cpSignalSemaphores_allocs) + var crasterizationSamples_allocs *cgoAllocMap + reff704c204.rasterizationSamples, crasterizationSamples_allocs = (C.VkSampleCountFlagBits)(x.RasterizationSamples), cgoAllocsUnknown + allocsf704c204.Borrow(crasterizationSamples_allocs) - x.refb0cbe910 = refb0cbe910 - x.allocsb0cbe910 = allocsb0cbe910 - return refb0cbe910, allocsb0cbe910 + x.reff704c204 = reff704c204 + x.allocsf704c204 = allocsf704c204 + return reff704c204, allocsf704c204 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BindSparseInfo) PassValue() (C.VkBindSparseInfo, *cgoAllocMap) { - if x.refb0cbe910 != nil { - return *x.refb0cbe910, nil +func (x CommandBufferInheritanceRenderingInfo) PassValue() (C.VkCommandBufferInheritanceRenderingInfo, *cgoAllocMap) { + if x.reff704c204 != nil { + return *x.reff704c204, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4420,107 +31747,100 @@ func (x BindSparseInfo) PassValue() (C.VkBindSparseInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindSparseInfo) Deref() { - if x.refb0cbe910 == nil { +func (x *CommandBufferInheritanceRenderingInfo) Deref() { + if x.reff704c204 == nil { return } - x.SType = (StructureType)(x.refb0cbe910.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb0cbe910.pNext)) - x.WaitSemaphoreCount = (uint32)(x.refb0cbe910.waitSemaphoreCount) - hxfa3f05c := (*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)) - hxfa3f05c.Data = unsafe.Pointer(x.refb0cbe910.pWaitSemaphores) - hxfa3f05c.Cap = 0x7fffffff - // hxfa3f05c.Len = ? - - x.BufferBindCount = (uint32)(x.refb0cbe910.bufferBindCount) - packSSparseBufferMemoryBindInfo(x.PBufferBinds, x.refb0cbe910.pBufferBinds) - x.ImageOpaqueBindCount = (uint32)(x.refb0cbe910.imageOpaqueBindCount) - packSSparseImageOpaqueMemoryBindInfo(x.PImageOpaqueBinds, x.refb0cbe910.pImageOpaqueBinds) - x.ImageBindCount = (uint32)(x.refb0cbe910.imageBindCount) - packSSparseImageMemoryBindInfo(x.PImageBinds, x.refb0cbe910.pImageBinds) - x.SignalSemaphoreCount = (uint32)(x.refb0cbe910.signalSemaphoreCount) - hxf0d18b7 := (*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphores)) - hxf0d18b7.Data = unsafe.Pointer(x.refb0cbe910.pSignalSemaphores) - hxf0d18b7.Cap = 0x7fffffff - // hxf0d18b7.Len = ? + x.SType = (StructureType)(x.reff704c204.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff704c204.pNext)) + x.Flags = (RenderingFlags)(x.reff704c204.flags) + x.ViewMask = (uint32)(x.reff704c204.viewMask) + x.ColorAttachmentCount = (uint32)(x.reff704c204.colorAttachmentCount) + hxf992404 := (*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentFormats)) + hxf992404.Data = unsafe.Pointer(x.reff704c204.pColorAttachmentFormats) + hxf992404.Cap = 0x7fffffff + // hxf992404.Len = ? + x.DepthAttachmentFormat = (Format)(x.reff704c204.depthAttachmentFormat) + x.StencilAttachmentFormat = (Format)(x.reff704c204.stencilAttachmentFormat) + x.RasterizationSamples = (SampleCountFlagBits)(x.reff704c204.rasterizationSamples) } -// allocFenceCreateInfoMemory allocates memory for type C.VkFenceCreateInfo in C. +// allocPhysicalDeviceShaderIntegerDotProductFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderIntegerDotProductFeatures in C. // The caller is responsible for freeing the this memory via C.free. -func allocFenceCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFenceCreateInfoValue)) +func allocPhysicalDeviceShaderIntegerDotProductFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderIntegerDotProductFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfFenceCreateInfoValue = unsafe.Sizeof([1]C.VkFenceCreateInfo{}) +const sizeOfPhysicalDeviceShaderIntegerDotProductFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderIntegerDotProductFeatures{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FenceCreateInfo) Ref() *C.VkFenceCreateInfo { +func (x *PhysicalDeviceShaderIntegerDotProductFeatures) Ref() *C.VkPhysicalDeviceShaderIntegerDotProductFeatures { if x == nil { return nil } - return x.refb8ff4840 + return x.ref776faa9c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *FenceCreateInfo) Free() { - if x != nil && x.allocsb8ff4840 != nil { - x.allocsb8ff4840.(*cgoAllocMap).Free() - x.refb8ff4840 = nil +func (x *PhysicalDeviceShaderIntegerDotProductFeatures) Free() { + if x != nil && x.allocs776faa9c != nil { + x.allocs776faa9c.(*cgoAllocMap).Free() + x.ref776faa9c = nil } } -// NewFenceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderIntegerDotProductFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewFenceCreateInfoRef(ref unsafe.Pointer) *FenceCreateInfo { +func NewPhysicalDeviceShaderIntegerDotProductFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderIntegerDotProductFeatures { if ref == nil { return nil } - obj := new(FenceCreateInfo) - obj.refb8ff4840 = (*C.VkFenceCreateInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderIntegerDotProductFeatures) + obj.ref776faa9c = (*C.VkPhysicalDeviceShaderIntegerDotProductFeatures)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *FenceCreateInfo) PassRef() (*C.VkFenceCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceShaderIntegerDotProductFeatures) PassRef() (*C.VkPhysicalDeviceShaderIntegerDotProductFeatures, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8ff4840 != nil { - return x.refb8ff4840, nil + } else if x.ref776faa9c != nil { + return x.ref776faa9c, nil } - memb8ff4840 := allocFenceCreateInfoMemory(1) - refb8ff4840 := (*C.VkFenceCreateInfo)(memb8ff4840) - allocsb8ff4840 := new(cgoAllocMap) - allocsb8ff4840.Add(memb8ff4840) + mem776faa9c := allocPhysicalDeviceShaderIntegerDotProductFeaturesMemory(1) + ref776faa9c := (*C.VkPhysicalDeviceShaderIntegerDotProductFeatures)(mem776faa9c) + allocs776faa9c := new(cgoAllocMap) + allocs776faa9c.Add(mem776faa9c) var csType_allocs *cgoAllocMap - refb8ff4840.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb8ff4840.Borrow(csType_allocs) + ref776faa9c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs776faa9c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb8ff4840.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb8ff4840.Borrow(cpNext_allocs) + ref776faa9c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs776faa9c.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - refb8ff4840.flags, cflags_allocs = (C.VkFenceCreateFlags)(x.Flags), cgoAllocsUnknown - allocsb8ff4840.Borrow(cflags_allocs) + var cshaderIntegerDotProduct_allocs *cgoAllocMap + ref776faa9c.shaderIntegerDotProduct, cshaderIntegerDotProduct_allocs = (C.VkBool32)(x.ShaderIntegerDotProduct), cgoAllocsUnknown + allocs776faa9c.Borrow(cshaderIntegerDotProduct_allocs) - x.refb8ff4840 = refb8ff4840 - x.allocsb8ff4840 = allocsb8ff4840 - return refb8ff4840, allocsb8ff4840 + x.ref776faa9c = ref776faa9c + x.allocs776faa9c = allocs776faa9c + return ref776faa9c, allocs776faa9c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x FenceCreateInfo) PassValue() (C.VkFenceCreateInfo, *cgoAllocMap) { - if x.refb8ff4840 != nil { - return *x.refb8ff4840, nil +func (x PhysicalDeviceShaderIntegerDotProductFeatures) PassValue() (C.VkPhysicalDeviceShaderIntegerDotProductFeatures, *cgoAllocMap) { + if x.ref776faa9c != nil { + return *x.ref776faa9c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4528,90 +31848,206 @@ func (x FenceCreateInfo) PassValue() (C.VkFenceCreateInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *FenceCreateInfo) Deref() { - if x.refb8ff4840 == nil { +func (x *PhysicalDeviceShaderIntegerDotProductFeatures) Deref() { + if x.ref776faa9c == nil { return } - x.SType = (StructureType)(x.refb8ff4840.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8ff4840.pNext)) - x.Flags = (FenceCreateFlags)(x.refb8ff4840.flags) + x.SType = (StructureType)(x.ref776faa9c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref776faa9c.pNext)) + x.ShaderIntegerDotProduct = (Bool32)(x.ref776faa9c.shaderIntegerDotProduct) } -// allocSemaphoreCreateInfoMemory allocates memory for type C.VkSemaphoreCreateInfo in C. +// allocPhysicalDeviceShaderIntegerDotProductPropertiesMemory allocates memory for type C.VkPhysicalDeviceShaderIntegerDotProductProperties in C. // The caller is responsible for freeing the this memory via C.free. -func allocSemaphoreCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreCreateInfoValue)) +func allocPhysicalDeviceShaderIntegerDotProductPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderIntegerDotProductPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSemaphoreCreateInfoValue = unsafe.Sizeof([1]C.VkSemaphoreCreateInfo{}) +const sizeOfPhysicalDeviceShaderIntegerDotProductPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderIntegerDotProductProperties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SemaphoreCreateInfo) Ref() *C.VkSemaphoreCreateInfo { +func (x *PhysicalDeviceShaderIntegerDotProductProperties) Ref() *C.VkPhysicalDeviceShaderIntegerDotProductProperties { if x == nil { return nil } - return x.reff130cd2b + return x.ref82bea9e5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SemaphoreCreateInfo) Free() { - if x != nil && x.allocsf130cd2b != nil { - x.allocsf130cd2b.(*cgoAllocMap).Free() - x.reff130cd2b = nil +func (x *PhysicalDeviceShaderIntegerDotProductProperties) Free() { + if x != nil && x.allocs82bea9e5 != nil { + x.allocs82bea9e5.(*cgoAllocMap).Free() + x.ref82bea9e5 = nil } } -// NewSemaphoreCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderIntegerDotProductPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSemaphoreCreateInfoRef(ref unsafe.Pointer) *SemaphoreCreateInfo { +func NewPhysicalDeviceShaderIntegerDotProductPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceShaderIntegerDotProductProperties { if ref == nil { return nil } - obj := new(SemaphoreCreateInfo) - obj.reff130cd2b = (*C.VkSemaphoreCreateInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderIntegerDotProductProperties) + obj.ref82bea9e5 = (*C.VkPhysicalDeviceShaderIntegerDotProductProperties)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SemaphoreCreateInfo) PassRef() (*C.VkSemaphoreCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceShaderIntegerDotProductProperties) PassRef() (*C.VkPhysicalDeviceShaderIntegerDotProductProperties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff130cd2b != nil { - return x.reff130cd2b, nil + } else if x.ref82bea9e5 != nil { + return x.ref82bea9e5, nil } - memf130cd2b := allocSemaphoreCreateInfoMemory(1) - reff130cd2b := (*C.VkSemaphoreCreateInfo)(memf130cd2b) - allocsf130cd2b := new(cgoAllocMap) - allocsf130cd2b.Add(memf130cd2b) + mem82bea9e5 := allocPhysicalDeviceShaderIntegerDotProductPropertiesMemory(1) + ref82bea9e5 := (*C.VkPhysicalDeviceShaderIntegerDotProductProperties)(mem82bea9e5) + allocs82bea9e5 := new(cgoAllocMap) + allocs82bea9e5.Add(mem82bea9e5) var csType_allocs *cgoAllocMap - reff130cd2b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf130cd2b.Borrow(csType_allocs) + ref82bea9e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs82bea9e5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff130cd2b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf130cd2b.Borrow(cpNext_allocs) + ref82bea9e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs82bea9e5.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - reff130cd2b.flags, cflags_allocs = (C.VkSemaphoreCreateFlags)(x.Flags), cgoAllocsUnknown - allocsf130cd2b.Borrow(cflags_allocs) + var cintegerDotProduct8BitUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct8BitUnsignedAccelerated, cintegerDotProduct8BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct8BitUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct8BitUnsignedAccelerated_allocs) - x.reff130cd2b = reff130cd2b - x.allocsf130cd2b = allocsf130cd2b - return reff130cd2b, allocsf130cd2b + var cintegerDotProduct8BitSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct8BitSignedAccelerated, cintegerDotProduct8BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct8BitSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct8BitSignedAccelerated_allocs) + + var cintegerDotProduct8BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct8BitMixedSignednessAccelerated, cintegerDotProduct8BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct8BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct8BitMixedSignednessAccelerated_allocs) + + var cintegerDotProduct4x8BitPackedUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct4x8BitPackedUnsignedAccelerated, cintegerDotProduct4x8BitPackedUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct4x8BitPackedUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct4x8BitPackedUnsignedAccelerated_allocs) + + var cintegerDotProduct4x8BitPackedSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct4x8BitPackedSignedAccelerated, cintegerDotProduct4x8BitPackedSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct4x8BitPackedSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct4x8BitPackedSignedAccelerated_allocs) + + var cintegerDotProduct4x8BitPackedMixedSignednessAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct4x8BitPackedMixedSignednessAccelerated, cintegerDotProduct4x8BitPackedMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct4x8BitPackedMixedSignednessAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct4x8BitPackedMixedSignednessAccelerated_allocs) + + var cintegerDotProduct16BitUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct16BitUnsignedAccelerated, cintegerDotProduct16BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct16BitUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct16BitUnsignedAccelerated_allocs) + + var cintegerDotProduct16BitSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct16BitSignedAccelerated, cintegerDotProduct16BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct16BitSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct16BitSignedAccelerated_allocs) + + var cintegerDotProduct16BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct16BitMixedSignednessAccelerated, cintegerDotProduct16BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct16BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct16BitMixedSignednessAccelerated_allocs) + + var cintegerDotProduct32BitUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct32BitUnsignedAccelerated, cintegerDotProduct32BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct32BitUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct32BitUnsignedAccelerated_allocs) + + var cintegerDotProduct32BitSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct32BitSignedAccelerated, cintegerDotProduct32BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct32BitSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct32BitSignedAccelerated_allocs) + + var cintegerDotProduct32BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct32BitMixedSignednessAccelerated, cintegerDotProduct32BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct32BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct32BitMixedSignednessAccelerated_allocs) + + var cintegerDotProduct64BitUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct64BitUnsignedAccelerated, cintegerDotProduct64BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct64BitUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct64BitUnsignedAccelerated_allocs) + + var cintegerDotProduct64BitSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct64BitSignedAccelerated, cintegerDotProduct64BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct64BitSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct64BitSignedAccelerated_allocs) + + var cintegerDotProduct64BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProduct64BitMixedSignednessAccelerated, cintegerDotProduct64BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProduct64BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProduct64BitMixedSignednessAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated, cintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating8BitUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating8BitSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating8BitSignedAccelerated, cintegerDotProductAccumulatingSaturating8BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating8BitSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating8BitSignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated, cintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated, cintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated, cintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated, cintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated, cintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating16BitUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating16BitSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating16BitSignedAccelerated, cintegerDotProductAccumulatingSaturating16BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating16BitSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating16BitSignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated, cintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated, cintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating32BitUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating32BitSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating32BitSignedAccelerated, cintegerDotProductAccumulatingSaturating32BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating32BitSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating32BitSignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated, cintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated, cintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating64BitUnsignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating64BitSignedAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating64BitSignedAccelerated, cintegerDotProductAccumulatingSaturating64BitSignedAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating64BitSignedAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating64BitSignedAccelerated_allocs) + + var cintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_allocs *cgoAllocMap + ref82bea9e5.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated, cintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_allocs = (C.VkBool32)(x.IntegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated), cgoAllocsUnknown + allocs82bea9e5.Borrow(cintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_allocs) + + x.ref82bea9e5 = ref82bea9e5 + x.allocs82bea9e5 = allocs82bea9e5 + return ref82bea9e5, allocs82bea9e5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SemaphoreCreateInfo) PassValue() (C.VkSemaphoreCreateInfo, *cgoAllocMap) { - if x.reff130cd2b != nil { - return *x.reff130cd2b, nil +func (x PhysicalDeviceShaderIntegerDotProductProperties) PassValue() (C.VkPhysicalDeviceShaderIntegerDotProductProperties, *cgoAllocMap) { + if x.ref82bea9e5 != nil { + return *x.ref82bea9e5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4619,90 +32055,131 @@ func (x SemaphoreCreateInfo) PassValue() (C.VkSemaphoreCreateInfo, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SemaphoreCreateInfo) Deref() { - if x.reff130cd2b == nil { +func (x *PhysicalDeviceShaderIntegerDotProductProperties) Deref() { + if x.ref82bea9e5 == nil { return } - x.SType = (StructureType)(x.reff130cd2b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff130cd2b.pNext)) - x.Flags = (SemaphoreCreateFlags)(x.reff130cd2b.flags) -} - -// allocEventCreateInfoMemory allocates memory for type C.VkEventCreateInfo in C. + x.SType = (StructureType)(x.ref82bea9e5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref82bea9e5.pNext)) + x.IntegerDotProduct8BitUnsignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct8BitUnsignedAccelerated) + x.IntegerDotProduct8BitSignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct8BitSignedAccelerated) + x.IntegerDotProduct8BitMixedSignednessAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct8BitMixedSignednessAccelerated) + x.IntegerDotProduct4x8BitPackedUnsignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct4x8BitPackedUnsignedAccelerated) + x.IntegerDotProduct4x8BitPackedSignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct4x8BitPackedSignedAccelerated) + x.IntegerDotProduct4x8BitPackedMixedSignednessAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct4x8BitPackedMixedSignednessAccelerated) + x.IntegerDotProduct16BitUnsignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct16BitUnsignedAccelerated) + x.IntegerDotProduct16BitSignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct16BitSignedAccelerated) + x.IntegerDotProduct16BitMixedSignednessAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct16BitMixedSignednessAccelerated) + x.IntegerDotProduct32BitUnsignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct32BitUnsignedAccelerated) + x.IntegerDotProduct32BitSignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct32BitSignedAccelerated) + x.IntegerDotProduct32BitMixedSignednessAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct32BitMixedSignednessAccelerated) + x.IntegerDotProduct64BitUnsignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct64BitUnsignedAccelerated) + x.IntegerDotProduct64BitSignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct64BitSignedAccelerated) + x.IntegerDotProduct64BitMixedSignednessAccelerated = (Bool32)(x.ref82bea9e5.integerDotProduct64BitMixedSignednessAccelerated) + x.IntegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) + x.IntegerDotProductAccumulatingSaturating8BitSignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating8BitSignedAccelerated) + x.IntegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) + x.IntegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) + x.IntegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) + x.IntegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) + x.IntegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) + x.IntegerDotProductAccumulatingSaturating16BitSignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating16BitSignedAccelerated) + x.IntegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) + x.IntegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) + x.IntegerDotProductAccumulatingSaturating32BitSignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating32BitSignedAccelerated) + x.IntegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) + x.IntegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) + x.IntegerDotProductAccumulatingSaturating64BitSignedAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating64BitSignedAccelerated) + x.IntegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = (Bool32)(x.ref82bea9e5.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated) +} + +// allocPhysicalDeviceTexelBufferAlignmentPropertiesMemory allocates memory for type C.VkPhysicalDeviceTexelBufferAlignmentProperties in C. // The caller is responsible for freeing the this memory via C.free. -func allocEventCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfEventCreateInfoValue)) +func allocPhysicalDeviceTexelBufferAlignmentPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTexelBufferAlignmentPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfEventCreateInfoValue = unsafe.Sizeof([1]C.VkEventCreateInfo{}) +const sizeOfPhysicalDeviceTexelBufferAlignmentPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTexelBufferAlignmentProperties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *EventCreateInfo) Ref() *C.VkEventCreateInfo { +func (x *PhysicalDeviceTexelBufferAlignmentProperties) Ref() *C.VkPhysicalDeviceTexelBufferAlignmentProperties { if x == nil { return nil } - return x.refa54f9ec8 + return x.ref52cb68df } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *EventCreateInfo) Free() { - if x != nil && x.allocsa54f9ec8 != nil { - x.allocsa54f9ec8.(*cgoAllocMap).Free() - x.refa54f9ec8 = nil +func (x *PhysicalDeviceTexelBufferAlignmentProperties) Free() { + if x != nil && x.allocs52cb68df != nil { + x.allocs52cb68df.(*cgoAllocMap).Free() + x.ref52cb68df = nil } } -// NewEventCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceTexelBufferAlignmentPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewEventCreateInfoRef(ref unsafe.Pointer) *EventCreateInfo { +func NewPhysicalDeviceTexelBufferAlignmentPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceTexelBufferAlignmentProperties { if ref == nil { return nil } - obj := new(EventCreateInfo) - obj.refa54f9ec8 = (*C.VkEventCreateInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceTexelBufferAlignmentProperties) + obj.ref52cb68df = (*C.VkPhysicalDeviceTexelBufferAlignmentProperties)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *EventCreateInfo) PassRef() (*C.VkEventCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceTexelBufferAlignmentProperties) PassRef() (*C.VkPhysicalDeviceTexelBufferAlignmentProperties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa54f9ec8 != nil { - return x.refa54f9ec8, nil + } else if x.ref52cb68df != nil { + return x.ref52cb68df, nil } - mema54f9ec8 := allocEventCreateInfoMemory(1) - refa54f9ec8 := (*C.VkEventCreateInfo)(mema54f9ec8) - allocsa54f9ec8 := new(cgoAllocMap) - allocsa54f9ec8.Add(mema54f9ec8) + mem52cb68df := allocPhysicalDeviceTexelBufferAlignmentPropertiesMemory(1) + ref52cb68df := (*C.VkPhysicalDeviceTexelBufferAlignmentProperties)(mem52cb68df) + allocs52cb68df := new(cgoAllocMap) + allocs52cb68df.Add(mem52cb68df) var csType_allocs *cgoAllocMap - refa54f9ec8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa54f9ec8.Borrow(csType_allocs) + ref52cb68df.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs52cb68df.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa54f9ec8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa54f9ec8.Borrow(cpNext_allocs) + ref52cb68df.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs52cb68df.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - refa54f9ec8.flags, cflags_allocs = (C.VkEventCreateFlags)(x.Flags), cgoAllocsUnknown - allocsa54f9ec8.Borrow(cflags_allocs) + var cstorageTexelBufferOffsetAlignmentBytes_allocs *cgoAllocMap + ref52cb68df.storageTexelBufferOffsetAlignmentBytes, cstorageTexelBufferOffsetAlignmentBytes_allocs = (C.VkDeviceSize)(x.StorageTexelBufferOffsetAlignmentBytes), cgoAllocsUnknown + allocs52cb68df.Borrow(cstorageTexelBufferOffsetAlignmentBytes_allocs) - x.refa54f9ec8 = refa54f9ec8 - x.allocsa54f9ec8 = allocsa54f9ec8 - return refa54f9ec8, allocsa54f9ec8 + var cstorageTexelBufferOffsetSingleTexelAlignment_allocs *cgoAllocMap + ref52cb68df.storageTexelBufferOffsetSingleTexelAlignment, cstorageTexelBufferOffsetSingleTexelAlignment_allocs = (C.VkBool32)(x.StorageTexelBufferOffsetSingleTexelAlignment), cgoAllocsUnknown + allocs52cb68df.Borrow(cstorageTexelBufferOffsetSingleTexelAlignment_allocs) + + var cuniformTexelBufferOffsetAlignmentBytes_allocs *cgoAllocMap + ref52cb68df.uniformTexelBufferOffsetAlignmentBytes, cuniformTexelBufferOffsetAlignmentBytes_allocs = (C.VkDeviceSize)(x.UniformTexelBufferOffsetAlignmentBytes), cgoAllocsUnknown + allocs52cb68df.Borrow(cuniformTexelBufferOffsetAlignmentBytes_allocs) + + var cuniformTexelBufferOffsetSingleTexelAlignment_allocs *cgoAllocMap + ref52cb68df.uniformTexelBufferOffsetSingleTexelAlignment, cuniformTexelBufferOffsetSingleTexelAlignment_allocs = (C.VkBool32)(x.UniformTexelBufferOffsetSingleTexelAlignment), cgoAllocsUnknown + allocs52cb68df.Borrow(cuniformTexelBufferOffsetSingleTexelAlignment_allocs) + + x.ref52cb68df = ref52cb68df + x.allocs52cb68df = allocs52cb68df + return ref52cb68df, allocs52cb68df } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x EventCreateInfo) PassValue() (C.VkEventCreateInfo, *cgoAllocMap) { - if x.refa54f9ec8 != nil { - return *x.refa54f9ec8, nil +func (x PhysicalDeviceTexelBufferAlignmentProperties) PassValue() (C.VkPhysicalDeviceTexelBufferAlignmentProperties, *cgoAllocMap) { + if x.ref52cb68df != nil { + return *x.ref52cb68df, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4710,102 +32187,101 @@ func (x EventCreateInfo) PassValue() (C.VkEventCreateInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *EventCreateInfo) Deref() { - if x.refa54f9ec8 == nil { +func (x *PhysicalDeviceTexelBufferAlignmentProperties) Deref() { + if x.ref52cb68df == nil { return } - x.SType = (StructureType)(x.refa54f9ec8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa54f9ec8.pNext)) - x.Flags = (EventCreateFlags)(x.refa54f9ec8.flags) + x.SType = (StructureType)(x.ref52cb68df.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref52cb68df.pNext)) + x.StorageTexelBufferOffsetAlignmentBytes = (DeviceSize)(x.ref52cb68df.storageTexelBufferOffsetAlignmentBytes) + x.StorageTexelBufferOffsetSingleTexelAlignment = (Bool32)(x.ref52cb68df.storageTexelBufferOffsetSingleTexelAlignment) + x.UniformTexelBufferOffsetAlignmentBytes = (DeviceSize)(x.ref52cb68df.uniformTexelBufferOffsetAlignmentBytes) + x.UniformTexelBufferOffsetSingleTexelAlignment = (Bool32)(x.ref52cb68df.uniformTexelBufferOffsetSingleTexelAlignment) } -// allocQueryPoolCreateInfoMemory allocates memory for type C.VkQueryPoolCreateInfo in C. +// allocFormatProperties3Memory allocates memory for type C.VkFormatProperties3 in C. // The caller is responsible for freeing the this memory via C.free. -func allocQueryPoolCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueryPoolCreateInfoValue)) +func allocFormatProperties3Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFormatProperties3Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfQueryPoolCreateInfoValue = unsafe.Sizeof([1]C.VkQueryPoolCreateInfo{}) +const sizeOfFormatProperties3Value = unsafe.Sizeof([1]C.VkFormatProperties3{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueryPoolCreateInfo) Ref() *C.VkQueryPoolCreateInfo { +func (x *FormatProperties3) Ref() *C.VkFormatProperties3 { if x == nil { return nil } - return x.ref85dfcd4a + return x.refaac19fbc } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *QueryPoolCreateInfo) Free() { - if x != nil && x.allocs85dfcd4a != nil { - x.allocs85dfcd4a.(*cgoAllocMap).Free() - x.ref85dfcd4a = nil +func (x *FormatProperties3) Free() { + if x != nil && x.allocsaac19fbc != nil { + x.allocsaac19fbc.(*cgoAllocMap).Free() + x.refaac19fbc = nil } } -// NewQueryPoolCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewFormatProperties3Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewQueryPoolCreateInfoRef(ref unsafe.Pointer) *QueryPoolCreateInfo { +func NewFormatProperties3Ref(ref unsafe.Pointer) *FormatProperties3 { if ref == nil { return nil } - obj := new(QueryPoolCreateInfo) - obj.ref85dfcd4a = (*C.VkQueryPoolCreateInfo)(unsafe.Pointer(ref)) + obj := new(FormatProperties3) + obj.refaac19fbc = (*C.VkFormatProperties3)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *QueryPoolCreateInfo) PassRef() (*C.VkQueryPoolCreateInfo, *cgoAllocMap) { +func (x *FormatProperties3) PassRef() (*C.VkFormatProperties3, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref85dfcd4a != nil { - return x.ref85dfcd4a, nil + } else if x.refaac19fbc != nil { + return x.refaac19fbc, nil } - mem85dfcd4a := allocQueryPoolCreateInfoMemory(1) - ref85dfcd4a := (*C.VkQueryPoolCreateInfo)(mem85dfcd4a) - allocs85dfcd4a := new(cgoAllocMap) - allocs85dfcd4a.Add(mem85dfcd4a) + memaac19fbc := allocFormatProperties3Memory(1) + refaac19fbc := (*C.VkFormatProperties3)(memaac19fbc) + allocsaac19fbc := new(cgoAllocMap) + allocsaac19fbc.Add(memaac19fbc) var csType_allocs *cgoAllocMap - ref85dfcd4a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs85dfcd4a.Borrow(csType_allocs) + refaac19fbc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaac19fbc.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref85dfcd4a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs85dfcd4a.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref85dfcd4a.flags, cflags_allocs = (C.VkQueryPoolCreateFlags)(x.Flags), cgoAllocsUnknown - allocs85dfcd4a.Borrow(cflags_allocs) + refaac19fbc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaac19fbc.Borrow(cpNext_allocs) - var cqueryType_allocs *cgoAllocMap - ref85dfcd4a.queryType, cqueryType_allocs = (C.VkQueryType)(x.QueryType), cgoAllocsUnknown - allocs85dfcd4a.Borrow(cqueryType_allocs) + var clinearTilingFeatures_allocs *cgoAllocMap + refaac19fbc.linearTilingFeatures, clinearTilingFeatures_allocs = (C.VkFormatFeatureFlags2)(x.LinearTilingFeatures), cgoAllocsUnknown + allocsaac19fbc.Borrow(clinearTilingFeatures_allocs) - var cqueryCount_allocs *cgoAllocMap - ref85dfcd4a.queryCount, cqueryCount_allocs = (C.uint32_t)(x.QueryCount), cgoAllocsUnknown - allocs85dfcd4a.Borrow(cqueryCount_allocs) + var coptimalTilingFeatures_allocs *cgoAllocMap + refaac19fbc.optimalTilingFeatures, coptimalTilingFeatures_allocs = (C.VkFormatFeatureFlags2)(x.OptimalTilingFeatures), cgoAllocsUnknown + allocsaac19fbc.Borrow(coptimalTilingFeatures_allocs) - var cpipelineStatistics_allocs *cgoAllocMap - ref85dfcd4a.pipelineStatistics, cpipelineStatistics_allocs = (C.VkQueryPipelineStatisticFlags)(x.PipelineStatistics), cgoAllocsUnknown - allocs85dfcd4a.Borrow(cpipelineStatistics_allocs) + var cbufferFeatures_allocs *cgoAllocMap + refaac19fbc.bufferFeatures, cbufferFeatures_allocs = (C.VkFormatFeatureFlags2)(x.BufferFeatures), cgoAllocsUnknown + allocsaac19fbc.Borrow(cbufferFeatures_allocs) - x.ref85dfcd4a = ref85dfcd4a - x.allocs85dfcd4a = allocs85dfcd4a - return ref85dfcd4a, allocs85dfcd4a + x.refaac19fbc = refaac19fbc + x.allocsaac19fbc = allocsaac19fbc + return refaac19fbc, allocsaac19fbc } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x QueryPoolCreateInfo) PassValue() (C.VkQueryPoolCreateInfo, *cgoAllocMap) { - if x.ref85dfcd4a != nil { - return *x.ref85dfcd4a, nil +func (x FormatProperties3) PassValue() (C.VkFormatProperties3, *cgoAllocMap) { + if x.refaac19fbc != nil { + return *x.refaac19fbc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4813,113 +32289,92 @@ func (x QueryPoolCreateInfo) PassValue() (C.VkQueryPoolCreateInfo, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *QueryPoolCreateInfo) Deref() { - if x.ref85dfcd4a == nil { +func (x *FormatProperties3) Deref() { + if x.refaac19fbc == nil { return } - x.SType = (StructureType)(x.ref85dfcd4a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref85dfcd4a.pNext)) - x.Flags = (QueryPoolCreateFlags)(x.ref85dfcd4a.flags) - x.QueryType = (QueryType)(x.ref85dfcd4a.queryType) - x.QueryCount = (uint32)(x.ref85dfcd4a.queryCount) - x.PipelineStatistics = (QueryPipelineStatisticFlags)(x.ref85dfcd4a.pipelineStatistics) + x.SType = (StructureType)(x.refaac19fbc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaac19fbc.pNext)) + x.LinearTilingFeatures = (FormatFeatureFlags2)(x.refaac19fbc.linearTilingFeatures) + x.OptimalTilingFeatures = (FormatFeatureFlags2)(x.refaac19fbc.optimalTilingFeatures) + x.BufferFeatures = (FormatFeatureFlags2)(x.refaac19fbc.bufferFeatures) } -// allocBufferCreateInfoMemory allocates memory for type C.VkBufferCreateInfo in C. +// allocPhysicalDeviceMaintenance4FeaturesMemory allocates memory for type C.VkPhysicalDeviceMaintenance4Features in C. // The caller is responsible for freeing the this memory via C.free. -func allocBufferCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferCreateInfoValue)) +func allocPhysicalDeviceMaintenance4FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMaintenance4FeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBufferCreateInfoValue = unsafe.Sizeof([1]C.VkBufferCreateInfo{}) +const sizeOfPhysicalDeviceMaintenance4FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMaintenance4Features{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferCreateInfo) Ref() *C.VkBufferCreateInfo { +func (x *PhysicalDeviceMaintenance4Features) Ref() *C.VkPhysicalDeviceMaintenance4Features { if x == nil { return nil } - return x.reffe19d2cd + return x.refb110636b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BufferCreateInfo) Free() { - if x != nil && x.allocsfe19d2cd != nil { - x.allocsfe19d2cd.(*cgoAllocMap).Free() - x.reffe19d2cd = nil +func (x *PhysicalDeviceMaintenance4Features) Free() { + if x != nil && x.allocsb110636b != nil { + x.allocsb110636b.(*cgoAllocMap).Free() + x.refb110636b = nil } } -// NewBufferCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceMaintenance4FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBufferCreateInfoRef(ref unsafe.Pointer) *BufferCreateInfo { +func NewPhysicalDeviceMaintenance4FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMaintenance4Features { if ref == nil { return nil } - obj := new(BufferCreateInfo) - obj.reffe19d2cd = (*C.VkBufferCreateInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceMaintenance4Features) + obj.refb110636b = (*C.VkPhysicalDeviceMaintenance4Features)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BufferCreateInfo) PassRef() (*C.VkBufferCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceMaintenance4Features) PassRef() (*C.VkPhysicalDeviceMaintenance4Features, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffe19d2cd != nil { - return x.reffe19d2cd, nil + } else if x.refb110636b != nil { + return x.refb110636b, nil } - memfe19d2cd := allocBufferCreateInfoMemory(1) - reffe19d2cd := (*C.VkBufferCreateInfo)(memfe19d2cd) - allocsfe19d2cd := new(cgoAllocMap) - allocsfe19d2cd.Add(memfe19d2cd) + memb110636b := allocPhysicalDeviceMaintenance4FeaturesMemory(1) + refb110636b := (*C.VkPhysicalDeviceMaintenance4Features)(memb110636b) + allocsb110636b := new(cgoAllocMap) + allocsb110636b.Add(memb110636b) var csType_allocs *cgoAllocMap - reffe19d2cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfe19d2cd.Borrow(csType_allocs) + refb110636b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb110636b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reffe19d2cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfe19d2cd.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - reffe19d2cd.flags, cflags_allocs = (C.VkBufferCreateFlags)(x.Flags), cgoAllocsUnknown - allocsfe19d2cd.Borrow(cflags_allocs) - - var csize_allocs *cgoAllocMap - reffe19d2cd.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocsfe19d2cd.Borrow(csize_allocs) - - var cusage_allocs *cgoAllocMap - reffe19d2cd.usage, cusage_allocs = (C.VkBufferUsageFlags)(x.Usage), cgoAllocsUnknown - allocsfe19d2cd.Borrow(cusage_allocs) - - var csharingMode_allocs *cgoAllocMap - reffe19d2cd.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown - allocsfe19d2cd.Borrow(csharingMode_allocs) - - var cqueueFamilyIndexCount_allocs *cgoAllocMap - reffe19d2cd.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown - allocsfe19d2cd.Borrow(cqueueFamilyIndexCount_allocs) + refb110636b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb110636b.Borrow(cpNext_allocs) - var cpQueueFamilyIndices_allocs *cgoAllocMap - reffe19d2cd.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown - allocsfe19d2cd.Borrow(cpQueueFamilyIndices_allocs) + var cmaintenance4_allocs *cgoAllocMap + refb110636b.maintenance4, cmaintenance4_allocs = (C.VkBool32)(x.Maintenance4), cgoAllocsUnknown + allocsb110636b.Borrow(cmaintenance4_allocs) - x.reffe19d2cd = reffe19d2cd - x.allocsfe19d2cd = allocsfe19d2cd - return reffe19d2cd, allocsfe19d2cd + x.refb110636b = refb110636b + x.allocsb110636b = allocsb110636b + return refb110636b, allocsb110636b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BufferCreateInfo) PassValue() (C.VkBufferCreateInfo, *cgoAllocMap) { - if x.reffe19d2cd != nil { - return *x.reffe19d2cd, nil +func (x PhysicalDeviceMaintenance4Features) PassValue() (C.VkPhysicalDeviceMaintenance4Features, *cgoAllocMap) { + if x.refb110636b != nil { + return *x.refb110636b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -4927,115 +32382,90 @@ func (x BufferCreateInfo) PassValue() (C.VkBufferCreateInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BufferCreateInfo) Deref() { - if x.reffe19d2cd == nil { +func (x *PhysicalDeviceMaintenance4Features) Deref() { + if x.refb110636b == nil { return } - x.SType = (StructureType)(x.reffe19d2cd.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffe19d2cd.pNext)) - x.Flags = (BufferCreateFlags)(x.reffe19d2cd.flags) - x.Size = (DeviceSize)(x.reffe19d2cd.size) - x.Usage = (BufferUsageFlags)(x.reffe19d2cd.usage) - x.SharingMode = (SharingMode)(x.reffe19d2cd.sharingMode) - x.QueueFamilyIndexCount = (uint32)(x.reffe19d2cd.queueFamilyIndexCount) - hxf2fab0d := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) - hxf2fab0d.Data = unsafe.Pointer(x.reffe19d2cd.pQueueFamilyIndices) - hxf2fab0d.Cap = 0x7fffffff - // hxf2fab0d.Len = ? - + x.SType = (StructureType)(x.refb110636b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb110636b.pNext)) + x.Maintenance4 = (Bool32)(x.refb110636b.maintenance4) } -// allocBufferViewCreateInfoMemory allocates memory for type C.VkBufferViewCreateInfo in C. +// allocPhysicalDeviceMaintenance4PropertiesMemory allocates memory for type C.VkPhysicalDeviceMaintenance4Properties in C. // The caller is responsible for freeing the this memory via C.free. -func allocBufferViewCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferViewCreateInfoValue)) +func allocPhysicalDeviceMaintenance4PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMaintenance4PropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBufferViewCreateInfoValue = unsafe.Sizeof([1]C.VkBufferViewCreateInfo{}) +const sizeOfPhysicalDeviceMaintenance4PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMaintenance4Properties{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferViewCreateInfo) Ref() *C.VkBufferViewCreateInfo { +func (x *PhysicalDeviceMaintenance4Properties) Ref() *C.VkPhysicalDeviceMaintenance4Properties { if x == nil { return nil } - return x.ref49b97027 + return x.ref3bfb62f4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BufferViewCreateInfo) Free() { - if x != nil && x.allocs49b97027 != nil { - x.allocs49b97027.(*cgoAllocMap).Free() - x.ref49b97027 = nil +func (x *PhysicalDeviceMaintenance4Properties) Free() { + if x != nil && x.allocs3bfb62f4 != nil { + x.allocs3bfb62f4.(*cgoAllocMap).Free() + x.ref3bfb62f4 = nil } } -// NewBufferViewCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceMaintenance4PropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBufferViewCreateInfoRef(ref unsafe.Pointer) *BufferViewCreateInfo { +func NewPhysicalDeviceMaintenance4PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMaintenance4Properties { if ref == nil { return nil } - obj := new(BufferViewCreateInfo) - obj.ref49b97027 = (*C.VkBufferViewCreateInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceMaintenance4Properties) + obj.ref3bfb62f4 = (*C.VkPhysicalDeviceMaintenance4Properties)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BufferViewCreateInfo) PassRef() (*C.VkBufferViewCreateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceMaintenance4Properties) PassRef() (*C.VkPhysicalDeviceMaintenance4Properties, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref49b97027 != nil { - return x.ref49b97027, nil + } else if x.ref3bfb62f4 != nil { + return x.ref3bfb62f4, nil } - mem49b97027 := allocBufferViewCreateInfoMemory(1) - ref49b97027 := (*C.VkBufferViewCreateInfo)(mem49b97027) - allocs49b97027 := new(cgoAllocMap) - allocs49b97027.Add(mem49b97027) + mem3bfb62f4 := allocPhysicalDeviceMaintenance4PropertiesMemory(1) + ref3bfb62f4 := (*C.VkPhysicalDeviceMaintenance4Properties)(mem3bfb62f4) + allocs3bfb62f4 := new(cgoAllocMap) + allocs3bfb62f4.Add(mem3bfb62f4) var csType_allocs *cgoAllocMap - ref49b97027.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs49b97027.Borrow(csType_allocs) + ref3bfb62f4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3bfb62f4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref49b97027.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs49b97027.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref49b97027.flags, cflags_allocs = (C.VkBufferViewCreateFlags)(x.Flags), cgoAllocsUnknown - allocs49b97027.Borrow(cflags_allocs) - - var cbuffer_allocs *cgoAllocMap - ref49b97027.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocs49b97027.Borrow(cbuffer_allocs) - - var cformat_allocs *cgoAllocMap - ref49b97027.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocs49b97027.Borrow(cformat_allocs) - - var coffset_allocs *cgoAllocMap - ref49b97027.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocs49b97027.Borrow(coffset_allocs) + ref3bfb62f4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3bfb62f4.Borrow(cpNext_allocs) - var c_range_allocs *cgoAllocMap - ref49b97027._range, c_range_allocs = (C.VkDeviceSize)(x.Range), cgoAllocsUnknown - allocs49b97027.Borrow(c_range_allocs) + var cmaxBufferSize_allocs *cgoAllocMap + ref3bfb62f4.maxBufferSize, cmaxBufferSize_allocs = (C.VkDeviceSize)(x.MaxBufferSize), cgoAllocsUnknown + allocs3bfb62f4.Borrow(cmaxBufferSize_allocs) - x.ref49b97027 = ref49b97027 - x.allocs49b97027 = allocs49b97027 - return ref49b97027, allocs49b97027 + x.ref3bfb62f4 = ref3bfb62f4 + x.allocs3bfb62f4 = allocs3bfb62f4 + return ref3bfb62f4, allocs3bfb62f4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BufferViewCreateInfo) PassValue() (C.VkBufferViewCreateInfo, *cgoAllocMap) { - if x.ref49b97027 != nil { - return *x.ref49b97027, nil +func (x PhysicalDeviceMaintenance4Properties) PassValue() (C.VkPhysicalDeviceMaintenance4Properties, *cgoAllocMap) { + if x.ref3bfb62f4 != nil { + return *x.ref3bfb62f4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5043,142 +32473,128 @@ func (x BufferViewCreateInfo) PassValue() (C.VkBufferViewCreateInfo, *cgoAllocMa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BufferViewCreateInfo) Deref() { - if x.ref49b97027 == nil { +func (x *PhysicalDeviceMaintenance4Properties) Deref() { + if x.ref3bfb62f4 == nil { return } - x.SType = (StructureType)(x.ref49b97027.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref49b97027.pNext)) - x.Flags = (BufferViewCreateFlags)(x.ref49b97027.flags) - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref49b97027.buffer)) - x.Format = (Format)(x.ref49b97027.format) - x.Offset = (DeviceSize)(x.ref49b97027.offset) - x.Range = (DeviceSize)(x.ref49b97027._range) + x.SType = (StructureType)(x.ref3bfb62f4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3bfb62f4.pNext)) + x.MaxBufferSize = (DeviceSize)(x.ref3bfb62f4.maxBufferSize) } -// allocImageCreateInfoMemory allocates memory for type C.VkImageCreateInfo in C. +// allocDeviceBufferMemoryRequirementsMemory allocates memory for type C.VkDeviceBufferMemoryRequirements in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageCreateInfoValue)) +func allocDeviceBufferMemoryRequirementsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceBufferMemoryRequirementsValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageCreateInfoValue = unsafe.Sizeof([1]C.VkImageCreateInfo{}) +const sizeOfDeviceBufferMemoryRequirementsValue = unsafe.Sizeof([1]C.VkDeviceBufferMemoryRequirements{}) + +// unpackSBufferCreateInfo transforms a sliced Go data structure into plain C format. +func unpackSBufferCreateInfo(x []BufferCreateInfo) (unpacked *C.VkBufferCreateInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkBufferCreateInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocBufferCreateInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkBufferCreateInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkBufferCreateInfo)(h.Data) + return +} + +// packSBufferCreateInfo reads sliced Go data structure out from plain C format. +func packSBufferCreateInfo(v []BufferCreateInfo, ptr0 *C.VkBufferCreateInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfBufferCreateInfoValue]C.VkBufferCreateInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewBufferCreateInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageCreateInfo) Ref() *C.VkImageCreateInfo { +func (x *DeviceBufferMemoryRequirements) Ref() *C.VkDeviceBufferMemoryRequirements { if x == nil { return nil } - return x.reffb587ba1 + return x.ref30350e90 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageCreateInfo) Free() { - if x != nil && x.allocsfb587ba1 != nil { - x.allocsfb587ba1.(*cgoAllocMap).Free() - x.reffb587ba1 = nil +func (x *DeviceBufferMemoryRequirements) Free() { + if x != nil && x.allocs30350e90 != nil { + x.allocs30350e90.(*cgoAllocMap).Free() + x.ref30350e90 = nil } } -// NewImageCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceBufferMemoryRequirementsRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageCreateInfoRef(ref unsafe.Pointer) *ImageCreateInfo { +func NewDeviceBufferMemoryRequirementsRef(ref unsafe.Pointer) *DeviceBufferMemoryRequirements { if ref == nil { return nil } - obj := new(ImageCreateInfo) - obj.reffb587ba1 = (*C.VkImageCreateInfo)(unsafe.Pointer(ref)) + obj := new(DeviceBufferMemoryRequirements) + obj.ref30350e90 = (*C.VkDeviceBufferMemoryRequirements)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageCreateInfo) PassRef() (*C.VkImageCreateInfo, *cgoAllocMap) { +func (x *DeviceBufferMemoryRequirements) PassRef() (*C.VkDeviceBufferMemoryRequirements, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffb587ba1 != nil { - return x.reffb587ba1, nil + } else if x.ref30350e90 != nil { + return x.ref30350e90, nil } - memfb587ba1 := allocImageCreateInfoMemory(1) - reffb587ba1 := (*C.VkImageCreateInfo)(memfb587ba1) - allocsfb587ba1 := new(cgoAllocMap) - allocsfb587ba1.Add(memfb587ba1) + mem30350e90 := allocDeviceBufferMemoryRequirementsMemory(1) + ref30350e90 := (*C.VkDeviceBufferMemoryRequirements)(mem30350e90) + allocs30350e90 := new(cgoAllocMap) + allocs30350e90.Add(mem30350e90) var csType_allocs *cgoAllocMap - reffb587ba1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfb587ba1.Borrow(csType_allocs) + ref30350e90.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs30350e90.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reffb587ba1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfb587ba1.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - reffb587ba1.flags, cflags_allocs = (C.VkImageCreateFlags)(x.Flags), cgoAllocsUnknown - allocsfb587ba1.Borrow(cflags_allocs) - - var cimageType_allocs *cgoAllocMap - reffb587ba1.imageType, cimageType_allocs = (C.VkImageType)(x.ImageType), cgoAllocsUnknown - allocsfb587ba1.Borrow(cimageType_allocs) - - var cformat_allocs *cgoAllocMap - reffb587ba1.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocsfb587ba1.Borrow(cformat_allocs) - - var cextent_allocs *cgoAllocMap - reffb587ba1.extent, cextent_allocs = x.Extent.PassValue() - allocsfb587ba1.Borrow(cextent_allocs) - - var cmipLevels_allocs *cgoAllocMap - reffb587ba1.mipLevels, cmipLevels_allocs = (C.uint32_t)(x.MipLevels), cgoAllocsUnknown - allocsfb587ba1.Borrow(cmipLevels_allocs) - - var carrayLayers_allocs *cgoAllocMap - reffb587ba1.arrayLayers, carrayLayers_allocs = (C.uint32_t)(x.ArrayLayers), cgoAllocsUnknown - allocsfb587ba1.Borrow(carrayLayers_allocs) - - var csamples_allocs *cgoAllocMap - reffb587ba1.samples, csamples_allocs = (C.VkSampleCountFlagBits)(x.Samples), cgoAllocsUnknown - allocsfb587ba1.Borrow(csamples_allocs) + ref30350e90.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs30350e90.Borrow(cpNext_allocs) - var ctiling_allocs *cgoAllocMap - reffb587ba1.tiling, ctiling_allocs = (C.VkImageTiling)(x.Tiling), cgoAllocsUnknown - allocsfb587ba1.Borrow(ctiling_allocs) - - var cusage_allocs *cgoAllocMap - reffb587ba1.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown - allocsfb587ba1.Borrow(cusage_allocs) - - var csharingMode_allocs *cgoAllocMap - reffb587ba1.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown - allocsfb587ba1.Borrow(csharingMode_allocs) - - var cqueueFamilyIndexCount_allocs *cgoAllocMap - reffb587ba1.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown - allocsfb587ba1.Borrow(cqueueFamilyIndexCount_allocs) - - var cpQueueFamilyIndices_allocs *cgoAllocMap - reffb587ba1.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown - allocsfb587ba1.Borrow(cpQueueFamilyIndices_allocs) - - var cinitialLayout_allocs *cgoAllocMap - reffb587ba1.initialLayout, cinitialLayout_allocs = (C.VkImageLayout)(x.InitialLayout), cgoAllocsUnknown - allocsfb587ba1.Borrow(cinitialLayout_allocs) + var cpCreateInfo_allocs *cgoAllocMap + ref30350e90.pCreateInfo, cpCreateInfo_allocs = unpackSBufferCreateInfo(x.PCreateInfo) + allocs30350e90.Borrow(cpCreateInfo_allocs) - x.reffb587ba1 = reffb587ba1 - x.allocsfb587ba1 = allocsfb587ba1 - return reffb587ba1, allocsfb587ba1 + x.ref30350e90 = ref30350e90 + x.allocs30350e90 = allocs30350e90 + return ref30350e90, allocs30350e90 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageCreateInfo) PassValue() (C.VkImageCreateInfo, *cgoAllocMap) { - if x.reffb587ba1 != nil { - return *x.reffb587ba1, nil +func (x DeviceBufferMemoryRequirements) PassValue() (C.VkDeviceBufferMemoryRequirements, *cgoAllocMap) { + if x.ref30350e90 != nil { + return *x.ref30350e90, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5186,114 +32602,132 @@ func (x ImageCreateInfo) PassValue() (C.VkImageCreateInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageCreateInfo) Deref() { - if x.reffb587ba1 == nil { +func (x *DeviceBufferMemoryRequirements) Deref() { + if x.ref30350e90 == nil { return } - x.SType = (StructureType)(x.reffb587ba1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffb587ba1.pNext)) - x.Flags = (ImageCreateFlags)(x.reffb587ba1.flags) - x.ImageType = (ImageType)(x.reffb587ba1.imageType) - x.Format = (Format)(x.reffb587ba1.format) - x.Extent = *NewExtent3DRef(unsafe.Pointer(&x.reffb587ba1.extent)) - x.MipLevels = (uint32)(x.reffb587ba1.mipLevels) - x.ArrayLayers = (uint32)(x.reffb587ba1.arrayLayers) - x.Samples = (SampleCountFlagBits)(x.reffb587ba1.samples) - x.Tiling = (ImageTiling)(x.reffb587ba1.tiling) - x.Usage = (ImageUsageFlags)(x.reffb587ba1.usage) - x.SharingMode = (SharingMode)(x.reffb587ba1.sharingMode) - x.QueueFamilyIndexCount = (uint32)(x.reffb587ba1.queueFamilyIndexCount) - hxf69fe70 := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) - hxf69fe70.Data = unsafe.Pointer(x.reffb587ba1.pQueueFamilyIndices) - hxf69fe70.Cap = 0x7fffffff - // hxf69fe70.Len = ? - - x.InitialLayout = (ImageLayout)(x.reffb587ba1.initialLayout) + x.SType = (StructureType)(x.ref30350e90.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref30350e90.pNext)) + packSBufferCreateInfo(x.PCreateInfo, x.ref30350e90.pCreateInfo) } -// allocSubresourceLayoutMemory allocates memory for type C.VkSubresourceLayout in C. +// allocDeviceImageMemoryRequirementsMemory allocates memory for type C.VkDeviceImageMemoryRequirements in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubresourceLayoutMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubresourceLayoutValue)) +func allocDeviceImageMemoryRequirementsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceImageMemoryRequirementsValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubresourceLayoutValue = unsafe.Sizeof([1]C.VkSubresourceLayout{}) +const sizeOfDeviceImageMemoryRequirementsValue = unsafe.Sizeof([1]C.VkDeviceImageMemoryRequirements{}) + +// unpackSImageCreateInfo transforms a sliced Go data structure into plain C format. +func unpackSImageCreateInfo(x []ImageCreateInfo) (unpacked *C.VkImageCreateInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkImageCreateInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocImageCreateInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkImageCreateInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkImageCreateInfo)(h.Data) + return +} + +// packSImageCreateInfo reads sliced Go data structure out from plain C format. +func packSImageCreateInfo(v []ImageCreateInfo, ptr0 *C.VkImageCreateInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfImageCreateInfoValue]C.VkImageCreateInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewImageCreateInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubresourceLayout) Ref() *C.VkSubresourceLayout { +func (x *DeviceImageMemoryRequirements) Ref() *C.VkDeviceImageMemoryRequirements { if x == nil { return nil } - return x.ref182612ad + return x.refd9532ea3 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubresourceLayout) Free() { - if x != nil && x.allocs182612ad != nil { - x.allocs182612ad.(*cgoAllocMap).Free() - x.ref182612ad = nil +func (x *DeviceImageMemoryRequirements) Free() { + if x != nil && x.allocsd9532ea3 != nil { + x.allocsd9532ea3.(*cgoAllocMap).Free() + x.refd9532ea3 = nil } } -// NewSubresourceLayoutRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceImageMemoryRequirementsRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubresourceLayoutRef(ref unsafe.Pointer) *SubresourceLayout { +func NewDeviceImageMemoryRequirementsRef(ref unsafe.Pointer) *DeviceImageMemoryRequirements { if ref == nil { return nil } - obj := new(SubresourceLayout) - obj.ref182612ad = (*C.VkSubresourceLayout)(unsafe.Pointer(ref)) + obj := new(DeviceImageMemoryRequirements) + obj.refd9532ea3 = (*C.VkDeviceImageMemoryRequirements)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubresourceLayout) PassRef() (*C.VkSubresourceLayout, *cgoAllocMap) { +func (x *DeviceImageMemoryRequirements) PassRef() (*C.VkDeviceImageMemoryRequirements, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref182612ad != nil { - return x.ref182612ad, nil + } else if x.refd9532ea3 != nil { + return x.refd9532ea3, nil } - mem182612ad := allocSubresourceLayoutMemory(1) - ref182612ad := (*C.VkSubresourceLayout)(mem182612ad) - allocs182612ad := new(cgoAllocMap) - allocs182612ad.Add(mem182612ad) - - var coffset_allocs *cgoAllocMap - ref182612ad.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocs182612ad.Borrow(coffset_allocs) + memd9532ea3 := allocDeviceImageMemoryRequirementsMemory(1) + refd9532ea3 := (*C.VkDeviceImageMemoryRequirements)(memd9532ea3) + allocsd9532ea3 := new(cgoAllocMap) + allocsd9532ea3.Add(memd9532ea3) - var csize_allocs *cgoAllocMap - ref182612ad.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs182612ad.Borrow(csize_allocs) + var csType_allocs *cgoAllocMap + refd9532ea3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd9532ea3.Borrow(csType_allocs) - var crowPitch_allocs *cgoAllocMap - ref182612ad.rowPitch, crowPitch_allocs = (C.VkDeviceSize)(x.RowPitch), cgoAllocsUnknown - allocs182612ad.Borrow(crowPitch_allocs) + var cpNext_allocs *cgoAllocMap + refd9532ea3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd9532ea3.Borrow(cpNext_allocs) - var carrayPitch_allocs *cgoAllocMap - ref182612ad.arrayPitch, carrayPitch_allocs = (C.VkDeviceSize)(x.ArrayPitch), cgoAllocsUnknown - allocs182612ad.Borrow(carrayPitch_allocs) + var cpCreateInfo_allocs *cgoAllocMap + refd9532ea3.pCreateInfo, cpCreateInfo_allocs = unpackSImageCreateInfo(x.PCreateInfo) + allocsd9532ea3.Borrow(cpCreateInfo_allocs) - var cdepthPitch_allocs *cgoAllocMap - ref182612ad.depthPitch, cdepthPitch_allocs = (C.VkDeviceSize)(x.DepthPitch), cgoAllocsUnknown - allocs182612ad.Borrow(cdepthPitch_allocs) + var cplaneAspect_allocs *cgoAllocMap + refd9532ea3.planeAspect, cplaneAspect_allocs = (C.VkImageAspectFlagBits)(x.PlaneAspect), cgoAllocsUnknown + allocsd9532ea3.Borrow(cplaneAspect_allocs) - x.ref182612ad = ref182612ad - x.allocs182612ad = allocs182612ad - return ref182612ad, allocs182612ad + x.refd9532ea3 = refd9532ea3 + x.allocsd9532ea3 = allocsd9532ea3 + return refd9532ea3, allocsd9532ea3 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubresourceLayout) PassValue() (C.VkSubresourceLayout, *cgoAllocMap) { - if x.ref182612ad != nil { - return *x.ref182612ad, nil +func (x DeviceImageMemoryRequirements) PassValue() (C.VkDeviceImageMemoryRequirements, *cgoAllocMap) { + if x.refd9532ea3 != nil { + return *x.refd9532ea3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5301,96 +32735,119 @@ func (x SubresourceLayout) PassValue() (C.VkSubresourceLayout, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubresourceLayout) Deref() { - if x.ref182612ad == nil { +func (x *DeviceImageMemoryRequirements) Deref() { + if x.refd9532ea3 == nil { return } - x.Offset = (DeviceSize)(x.ref182612ad.offset) - x.Size = (DeviceSize)(x.ref182612ad.size) - x.RowPitch = (DeviceSize)(x.ref182612ad.rowPitch) - x.ArrayPitch = (DeviceSize)(x.ref182612ad.arrayPitch) - x.DepthPitch = (DeviceSize)(x.ref182612ad.depthPitch) + x.SType = (StructureType)(x.refd9532ea3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd9532ea3.pNext)) + packSImageCreateInfo(x.PCreateInfo, x.refd9532ea3.pCreateInfo) + x.PlaneAspect = (ImageAspectFlagBits)(x.refd9532ea3.planeAspect) } -// allocComponentMappingMemory allocates memory for type C.VkComponentMapping in C. +// allocSurfaceCapabilitiesMemory allocates memory for type C.VkSurfaceCapabilitiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocComponentMappingMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfComponentMappingValue)) +func allocSurfaceCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceCapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfComponentMappingValue = unsafe.Sizeof([1]C.VkComponentMapping{}) +const sizeOfSurfaceCapabilitiesValue = unsafe.Sizeof([1]C.VkSurfaceCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ComponentMapping) Ref() *C.VkComponentMapping { +func (x *SurfaceCapabilities) Ref() *C.VkSurfaceCapabilitiesKHR { if x == nil { return nil } - return x.ref63d3d563 + return x.ref11d5f596 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ComponentMapping) Free() { - if x != nil && x.allocs63d3d563 != nil { - x.allocs63d3d563.(*cgoAllocMap).Free() - x.ref63d3d563 = nil +func (x *SurfaceCapabilities) Free() { + if x != nil && x.allocs11d5f596 != nil { + x.allocs11d5f596.(*cgoAllocMap).Free() + x.ref11d5f596 = nil } } -// NewComponentMappingRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSurfaceCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewComponentMappingRef(ref unsafe.Pointer) *ComponentMapping { +func NewSurfaceCapabilitiesRef(ref unsafe.Pointer) *SurfaceCapabilities { if ref == nil { return nil } - obj := new(ComponentMapping) - obj.ref63d3d563 = (*C.VkComponentMapping)(unsafe.Pointer(ref)) + obj := new(SurfaceCapabilities) + obj.ref11d5f596 = (*C.VkSurfaceCapabilitiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ComponentMapping) PassRef() (*C.VkComponentMapping, *cgoAllocMap) { +func (x *SurfaceCapabilities) PassRef() (*C.VkSurfaceCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref63d3d563 != nil { - return x.ref63d3d563, nil + } else if x.ref11d5f596 != nil { + return x.ref11d5f596, nil } - mem63d3d563 := allocComponentMappingMemory(1) - ref63d3d563 := (*C.VkComponentMapping)(mem63d3d563) - allocs63d3d563 := new(cgoAllocMap) - allocs63d3d563.Add(mem63d3d563) + mem11d5f596 := allocSurfaceCapabilitiesMemory(1) + ref11d5f596 := (*C.VkSurfaceCapabilitiesKHR)(mem11d5f596) + allocs11d5f596 := new(cgoAllocMap) + allocs11d5f596.Add(mem11d5f596) - var cr_allocs *cgoAllocMap - ref63d3d563.r, cr_allocs = (C.VkComponentSwizzle)(x.R), cgoAllocsUnknown - allocs63d3d563.Borrow(cr_allocs) + var cminImageCount_allocs *cgoAllocMap + ref11d5f596.minImageCount, cminImageCount_allocs = (C.uint32_t)(x.MinImageCount), cgoAllocsUnknown + allocs11d5f596.Borrow(cminImageCount_allocs) - var cg_allocs *cgoAllocMap - ref63d3d563.g, cg_allocs = (C.VkComponentSwizzle)(x.G), cgoAllocsUnknown - allocs63d3d563.Borrow(cg_allocs) + var cmaxImageCount_allocs *cgoAllocMap + ref11d5f596.maxImageCount, cmaxImageCount_allocs = (C.uint32_t)(x.MaxImageCount), cgoAllocsUnknown + allocs11d5f596.Borrow(cmaxImageCount_allocs) - var cb_allocs *cgoAllocMap - ref63d3d563.b, cb_allocs = (C.VkComponentSwizzle)(x.B), cgoAllocsUnknown - allocs63d3d563.Borrow(cb_allocs) + var ccurrentExtent_allocs *cgoAllocMap + ref11d5f596.currentExtent, ccurrentExtent_allocs = x.CurrentExtent.PassValue() + allocs11d5f596.Borrow(ccurrentExtent_allocs) - var ca_allocs *cgoAllocMap - ref63d3d563.a, ca_allocs = (C.VkComponentSwizzle)(x.A), cgoAllocsUnknown - allocs63d3d563.Borrow(ca_allocs) + var cminImageExtent_allocs *cgoAllocMap + ref11d5f596.minImageExtent, cminImageExtent_allocs = x.MinImageExtent.PassValue() + allocs11d5f596.Borrow(cminImageExtent_allocs) - x.ref63d3d563 = ref63d3d563 - x.allocs63d3d563 = allocs63d3d563 - return ref63d3d563, allocs63d3d563 + var cmaxImageExtent_allocs *cgoAllocMap + ref11d5f596.maxImageExtent, cmaxImageExtent_allocs = x.MaxImageExtent.PassValue() + allocs11d5f596.Borrow(cmaxImageExtent_allocs) + + var cmaxImageArrayLayers_allocs *cgoAllocMap + ref11d5f596.maxImageArrayLayers, cmaxImageArrayLayers_allocs = (C.uint32_t)(x.MaxImageArrayLayers), cgoAllocsUnknown + allocs11d5f596.Borrow(cmaxImageArrayLayers_allocs) + + var csupportedTransforms_allocs *cgoAllocMap + ref11d5f596.supportedTransforms, csupportedTransforms_allocs = (C.VkSurfaceTransformFlagsKHR)(x.SupportedTransforms), cgoAllocsUnknown + allocs11d5f596.Borrow(csupportedTransforms_allocs) + + var ccurrentTransform_allocs *cgoAllocMap + ref11d5f596.currentTransform, ccurrentTransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.CurrentTransform), cgoAllocsUnknown + allocs11d5f596.Borrow(ccurrentTransform_allocs) + + var csupportedCompositeAlpha_allocs *cgoAllocMap + ref11d5f596.supportedCompositeAlpha, csupportedCompositeAlpha_allocs = (C.VkCompositeAlphaFlagsKHR)(x.SupportedCompositeAlpha), cgoAllocsUnknown + allocs11d5f596.Borrow(csupportedCompositeAlpha_allocs) + + var csupportedUsageFlags_allocs *cgoAllocMap + ref11d5f596.supportedUsageFlags, csupportedUsageFlags_allocs = (C.VkImageUsageFlags)(x.SupportedUsageFlags), cgoAllocsUnknown + allocs11d5f596.Borrow(csupportedUsageFlags_allocs) + + x.ref11d5f596 = ref11d5f596 + x.allocs11d5f596 = allocs11d5f596 + return ref11d5f596, allocs11d5f596 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ComponentMapping) PassValue() (C.VkComponentMapping, *cgoAllocMap) { - if x.ref63d3d563 != nil { - return *x.ref63d3d563, nil +func (x SurfaceCapabilities) PassValue() (C.VkSurfaceCapabilitiesKHR, *cgoAllocMap) { + if x.ref11d5f596 != nil { + return *x.ref11d5f596, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5398,99 +32855,93 @@ func (x ComponentMapping) PassValue() (C.VkComponentMapping, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ComponentMapping) Deref() { - if x.ref63d3d563 == nil { +func (x *SurfaceCapabilities) Deref() { + if x.ref11d5f596 == nil { return } - x.R = (ComponentSwizzle)(x.ref63d3d563.r) - x.G = (ComponentSwizzle)(x.ref63d3d563.g) - x.B = (ComponentSwizzle)(x.ref63d3d563.b) - x.A = (ComponentSwizzle)(x.ref63d3d563.a) + x.MinImageCount = (uint32)(x.ref11d5f596.minImageCount) + x.MaxImageCount = (uint32)(x.ref11d5f596.maxImageCount) + x.CurrentExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref11d5f596.currentExtent)) + x.MinImageExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref11d5f596.minImageExtent)) + x.MaxImageExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref11d5f596.maxImageExtent)) + x.MaxImageArrayLayers = (uint32)(x.ref11d5f596.maxImageArrayLayers) + x.SupportedTransforms = (SurfaceTransformFlags)(x.ref11d5f596.supportedTransforms) + x.CurrentTransform = (SurfaceTransformFlagBits)(x.ref11d5f596.currentTransform) + x.SupportedCompositeAlpha = (CompositeAlphaFlags)(x.ref11d5f596.supportedCompositeAlpha) + x.SupportedUsageFlags = (ImageUsageFlags)(x.ref11d5f596.supportedUsageFlags) } -// allocImageSubresourceRangeMemory allocates memory for type C.VkImageSubresourceRange in C. +// allocSurfaceFormatMemory allocates memory for type C.VkSurfaceFormatKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageSubresourceRangeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSubresourceRangeValue)) +func allocSurfaceFormatMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceFormatValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageSubresourceRangeValue = unsafe.Sizeof([1]C.VkImageSubresourceRange{}) +const sizeOfSurfaceFormatValue = unsafe.Sizeof([1]C.VkSurfaceFormatKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageSubresourceRange) Ref() *C.VkImageSubresourceRange { +func (x *SurfaceFormat) Ref() *C.VkSurfaceFormatKHR { if x == nil { return nil } - return x.ref5aa1126 + return x.refedaf82ca } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageSubresourceRange) Free() { - if x != nil && x.allocs5aa1126 != nil { - x.allocs5aa1126.(*cgoAllocMap).Free() - x.ref5aa1126 = nil +func (x *SurfaceFormat) Free() { + if x != nil && x.allocsedaf82ca != nil { + x.allocsedaf82ca.(*cgoAllocMap).Free() + x.refedaf82ca = nil } } -// NewImageSubresourceRangeRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSurfaceFormatRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageSubresourceRangeRef(ref unsafe.Pointer) *ImageSubresourceRange { +func NewSurfaceFormatRef(ref unsafe.Pointer) *SurfaceFormat { if ref == nil { return nil } - obj := new(ImageSubresourceRange) - obj.ref5aa1126 = (*C.VkImageSubresourceRange)(unsafe.Pointer(ref)) + obj := new(SurfaceFormat) + obj.refedaf82ca = (*C.VkSurfaceFormatKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageSubresourceRange) PassRef() (*C.VkImageSubresourceRange, *cgoAllocMap) { +func (x *SurfaceFormat) PassRef() (*C.VkSurfaceFormatKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5aa1126 != nil { - return x.ref5aa1126, nil + } else if x.refedaf82ca != nil { + return x.refedaf82ca, nil } - mem5aa1126 := allocImageSubresourceRangeMemory(1) - ref5aa1126 := (*C.VkImageSubresourceRange)(mem5aa1126) - allocs5aa1126 := new(cgoAllocMap) - allocs5aa1126.Add(mem5aa1126) - - var caspectMask_allocs *cgoAllocMap - ref5aa1126.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocs5aa1126.Borrow(caspectMask_allocs) - - var cbaseMipLevel_allocs *cgoAllocMap - ref5aa1126.baseMipLevel, cbaseMipLevel_allocs = (C.uint32_t)(x.BaseMipLevel), cgoAllocsUnknown - allocs5aa1126.Borrow(cbaseMipLevel_allocs) - - var clevelCount_allocs *cgoAllocMap - ref5aa1126.levelCount, clevelCount_allocs = (C.uint32_t)(x.LevelCount), cgoAllocsUnknown - allocs5aa1126.Borrow(clevelCount_allocs) + memedaf82ca := allocSurfaceFormatMemory(1) + refedaf82ca := (*C.VkSurfaceFormatKHR)(memedaf82ca) + allocsedaf82ca := new(cgoAllocMap) + allocsedaf82ca.Add(memedaf82ca) - var cbaseArrayLayer_allocs *cgoAllocMap - ref5aa1126.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown - allocs5aa1126.Borrow(cbaseArrayLayer_allocs) + var cformat_allocs *cgoAllocMap + refedaf82ca.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocsedaf82ca.Borrow(cformat_allocs) - var clayerCount_allocs *cgoAllocMap - ref5aa1126.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown - allocs5aa1126.Borrow(clayerCount_allocs) + var ccolorSpace_allocs *cgoAllocMap + refedaf82ca.colorSpace, ccolorSpace_allocs = (C.VkColorSpaceKHR)(x.ColorSpace), cgoAllocsUnknown + allocsedaf82ca.Borrow(ccolorSpace_allocs) - x.ref5aa1126 = ref5aa1126 - x.allocs5aa1126 = allocs5aa1126 - return ref5aa1126, allocs5aa1126 + x.refedaf82ca = refedaf82ca + x.allocsedaf82ca = allocsedaf82ca + return refedaf82ca, allocsedaf82ca } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageSubresourceRange) PassValue() (C.VkImageSubresourceRange, *cgoAllocMap) { - if x.ref5aa1126 != nil { - return *x.ref5aa1126, nil +func (x SurfaceFormat) PassValue() (C.VkSurfaceFormatKHR, *cgoAllocMap) { + if x.refedaf82ca != nil { + return *x.refedaf82ca, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5498,112 +32949,149 @@ func (x ImageSubresourceRange) PassValue() (C.VkImageSubresourceRange, *cgoAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageSubresourceRange) Deref() { - if x.ref5aa1126 == nil { +func (x *SurfaceFormat) Deref() { + if x.refedaf82ca == nil { return } - x.AspectMask = (ImageAspectFlags)(x.ref5aa1126.aspectMask) - x.BaseMipLevel = (uint32)(x.ref5aa1126.baseMipLevel) - x.LevelCount = (uint32)(x.ref5aa1126.levelCount) - x.BaseArrayLayer = (uint32)(x.ref5aa1126.baseArrayLayer) - x.LayerCount = (uint32)(x.ref5aa1126.layerCount) + x.Format = (Format)(x.refedaf82ca.format) + x.ColorSpace = (ColorSpace)(x.refedaf82ca.colorSpace) } -// allocImageViewCreateInfoMemory allocates memory for type C.VkImageViewCreateInfo in C. +// allocSwapchainCreateInfoMemory allocates memory for type C.VkSwapchainCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageViewCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewCreateInfoValue)) +func allocSwapchainCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageViewCreateInfoValue = unsafe.Sizeof([1]C.VkImageViewCreateInfo{}) +const sizeOfSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageViewCreateInfo) Ref() *C.VkImageViewCreateInfo { +func (x *SwapchainCreateInfo) Ref() *C.VkSwapchainCreateInfoKHR { if x == nil { return nil } - return x.ref77e8d4b8 + return x.refdb619e1c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageViewCreateInfo) Free() { - if x != nil && x.allocs77e8d4b8 != nil { - x.allocs77e8d4b8.(*cgoAllocMap).Free() - x.ref77e8d4b8 = nil +func (x *SwapchainCreateInfo) Free() { + if x != nil && x.allocsdb619e1c != nil { + x.allocsdb619e1c.(*cgoAllocMap).Free() + x.refdb619e1c = nil } } -// NewImageViewCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSwapchainCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageViewCreateInfoRef(ref unsafe.Pointer) *ImageViewCreateInfo { +func NewSwapchainCreateInfoRef(ref unsafe.Pointer) *SwapchainCreateInfo { if ref == nil { return nil } - obj := new(ImageViewCreateInfo) - obj.ref77e8d4b8 = (*C.VkImageViewCreateInfo)(unsafe.Pointer(ref)) + obj := new(SwapchainCreateInfo) + obj.refdb619e1c = (*C.VkSwapchainCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageViewCreateInfo) PassRef() (*C.VkImageViewCreateInfo, *cgoAllocMap) { +func (x *SwapchainCreateInfo) PassRef() (*C.VkSwapchainCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref77e8d4b8 != nil { - return x.ref77e8d4b8, nil + } else if x.refdb619e1c != nil { + return x.refdb619e1c, nil } - mem77e8d4b8 := allocImageViewCreateInfoMemory(1) - ref77e8d4b8 := (*C.VkImageViewCreateInfo)(mem77e8d4b8) - allocs77e8d4b8 := new(cgoAllocMap) - allocs77e8d4b8.Add(mem77e8d4b8) + memdb619e1c := allocSwapchainCreateInfoMemory(1) + refdb619e1c := (*C.VkSwapchainCreateInfoKHR)(memdb619e1c) + allocsdb619e1c := new(cgoAllocMap) + allocsdb619e1c.Add(memdb619e1c) var csType_allocs *cgoAllocMap - ref77e8d4b8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs77e8d4b8.Borrow(csType_allocs) + refdb619e1c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdb619e1c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref77e8d4b8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs77e8d4b8.Borrow(cpNext_allocs) + refdb619e1c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdb619e1c.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - ref77e8d4b8.flags, cflags_allocs = (C.VkImageViewCreateFlags)(x.Flags), cgoAllocsUnknown - allocs77e8d4b8.Borrow(cflags_allocs) + refdb619e1c.flags, cflags_allocs = (C.VkSwapchainCreateFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsdb619e1c.Borrow(cflags_allocs) - var cimage_allocs *cgoAllocMap - ref77e8d4b8.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs77e8d4b8.Borrow(cimage_allocs) + var csurface_allocs *cgoAllocMap + refdb619e1c.surface, csurface_allocs = *(*C.VkSurfaceKHR)(unsafe.Pointer(&x.Surface)), cgoAllocsUnknown + allocsdb619e1c.Borrow(csurface_allocs) - var cviewType_allocs *cgoAllocMap - ref77e8d4b8.viewType, cviewType_allocs = (C.VkImageViewType)(x.ViewType), cgoAllocsUnknown - allocs77e8d4b8.Borrow(cviewType_allocs) + var cminImageCount_allocs *cgoAllocMap + refdb619e1c.minImageCount, cminImageCount_allocs = (C.uint32_t)(x.MinImageCount), cgoAllocsUnknown + allocsdb619e1c.Borrow(cminImageCount_allocs) - var cformat_allocs *cgoAllocMap - ref77e8d4b8.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocs77e8d4b8.Borrow(cformat_allocs) + var cimageFormat_allocs *cgoAllocMap + refdb619e1c.imageFormat, cimageFormat_allocs = (C.VkFormat)(x.ImageFormat), cgoAllocsUnknown + allocsdb619e1c.Borrow(cimageFormat_allocs) - var ccomponents_allocs *cgoAllocMap - ref77e8d4b8.components, ccomponents_allocs = x.Components.PassValue() - allocs77e8d4b8.Borrow(ccomponents_allocs) + var cimageColorSpace_allocs *cgoAllocMap + refdb619e1c.imageColorSpace, cimageColorSpace_allocs = (C.VkColorSpaceKHR)(x.ImageColorSpace), cgoAllocsUnknown + allocsdb619e1c.Borrow(cimageColorSpace_allocs) - var csubresourceRange_allocs *cgoAllocMap - ref77e8d4b8.subresourceRange, csubresourceRange_allocs = x.SubresourceRange.PassValue() - allocs77e8d4b8.Borrow(csubresourceRange_allocs) + var cimageExtent_allocs *cgoAllocMap + refdb619e1c.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() + allocsdb619e1c.Borrow(cimageExtent_allocs) - x.ref77e8d4b8 = ref77e8d4b8 - x.allocs77e8d4b8 = allocs77e8d4b8 - return ref77e8d4b8, allocs77e8d4b8 + var cimageArrayLayers_allocs *cgoAllocMap + refdb619e1c.imageArrayLayers, cimageArrayLayers_allocs = (C.uint32_t)(x.ImageArrayLayers), cgoAllocsUnknown + allocsdb619e1c.Borrow(cimageArrayLayers_allocs) + + var cimageUsage_allocs *cgoAllocMap + refdb619e1c.imageUsage, cimageUsage_allocs = (C.VkImageUsageFlags)(x.ImageUsage), cgoAllocsUnknown + allocsdb619e1c.Borrow(cimageUsage_allocs) + + var cimageSharingMode_allocs *cgoAllocMap + refdb619e1c.imageSharingMode, cimageSharingMode_allocs = (C.VkSharingMode)(x.ImageSharingMode), cgoAllocsUnknown + allocsdb619e1c.Borrow(cimageSharingMode_allocs) + + var cqueueFamilyIndexCount_allocs *cgoAllocMap + refdb619e1c.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown + allocsdb619e1c.Borrow(cqueueFamilyIndexCount_allocs) + + var cpQueueFamilyIndices_allocs *cgoAllocMap + refdb619e1c.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown + allocsdb619e1c.Borrow(cpQueueFamilyIndices_allocs) + + var cpreTransform_allocs *cgoAllocMap + refdb619e1c.preTransform, cpreTransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.PreTransform), cgoAllocsUnknown + allocsdb619e1c.Borrow(cpreTransform_allocs) + + var ccompositeAlpha_allocs *cgoAllocMap + refdb619e1c.compositeAlpha, ccompositeAlpha_allocs = (C.VkCompositeAlphaFlagBitsKHR)(x.CompositeAlpha), cgoAllocsUnknown + allocsdb619e1c.Borrow(ccompositeAlpha_allocs) + + var cpresentMode_allocs *cgoAllocMap + refdb619e1c.presentMode, cpresentMode_allocs = (C.VkPresentModeKHR)(x.PresentMode), cgoAllocsUnknown + allocsdb619e1c.Borrow(cpresentMode_allocs) + + var cclipped_allocs *cgoAllocMap + refdb619e1c.clipped, cclipped_allocs = (C.VkBool32)(x.Clipped), cgoAllocsUnknown + allocsdb619e1c.Borrow(cclipped_allocs) + + var coldSwapchain_allocs *cgoAllocMap + refdb619e1c.oldSwapchain, coldSwapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.OldSwapchain)), cgoAllocsUnknown + allocsdb619e1c.Borrow(coldSwapchain_allocs) + + x.refdb619e1c = refdb619e1c + x.allocsdb619e1c = allocsdb619e1c + return refdb619e1c, allocsdb619e1c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageViewCreateInfo) PassValue() (C.VkImageViewCreateInfo, *cgoAllocMap) { - if x.ref77e8d4b8 != nil { - return *x.ref77e8d4b8, nil +func (x SwapchainCreateInfo) PassValue() (C.VkSwapchainCreateInfoKHR, *cgoAllocMap) { + if x.refdb619e1c != nil { + return *x.refdb619e1c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5611,103 +33099,129 @@ func (x ImageViewCreateInfo) PassValue() (C.VkImageViewCreateInfo, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageViewCreateInfo) Deref() { - if x.ref77e8d4b8 == nil { +func (x *SwapchainCreateInfo) Deref() { + if x.refdb619e1c == nil { return } - x.SType = (StructureType)(x.ref77e8d4b8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref77e8d4b8.pNext)) - x.Flags = (ImageViewCreateFlags)(x.ref77e8d4b8.flags) - x.Image = *(*Image)(unsafe.Pointer(&x.ref77e8d4b8.image)) - x.ViewType = (ImageViewType)(x.ref77e8d4b8.viewType) - x.Format = (Format)(x.ref77e8d4b8.format) - x.Components = *NewComponentMappingRef(unsafe.Pointer(&x.ref77e8d4b8.components)) - x.SubresourceRange = *NewImageSubresourceRangeRef(unsafe.Pointer(&x.ref77e8d4b8.subresourceRange)) + x.SType = (StructureType)(x.refdb619e1c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdb619e1c.pNext)) + x.Flags = (SwapchainCreateFlags)(x.refdb619e1c.flags) + x.Surface = *(*Surface)(unsafe.Pointer(&x.refdb619e1c.surface)) + x.MinImageCount = (uint32)(x.refdb619e1c.minImageCount) + x.ImageFormat = (Format)(x.refdb619e1c.imageFormat) + x.ImageColorSpace = (ColorSpace)(x.refdb619e1c.imageColorSpace) + x.ImageExtent = *NewExtent2DRef(unsafe.Pointer(&x.refdb619e1c.imageExtent)) + x.ImageArrayLayers = (uint32)(x.refdb619e1c.imageArrayLayers) + x.ImageUsage = (ImageUsageFlags)(x.refdb619e1c.imageUsage) + x.ImageSharingMode = (SharingMode)(x.refdb619e1c.imageSharingMode) + x.QueueFamilyIndexCount = (uint32)(x.refdb619e1c.queueFamilyIndexCount) + hxf8e0dd2 := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) + hxf8e0dd2.Data = unsafe.Pointer(x.refdb619e1c.pQueueFamilyIndices) + hxf8e0dd2.Cap = 0x7fffffff + // hxf8e0dd2.Len = ? + + x.PreTransform = (SurfaceTransformFlagBits)(x.refdb619e1c.preTransform) + x.CompositeAlpha = (CompositeAlphaFlagBits)(x.refdb619e1c.compositeAlpha) + x.PresentMode = (PresentMode)(x.refdb619e1c.presentMode) + x.Clipped = (Bool32)(x.refdb619e1c.clipped) + x.OldSwapchain = *(*Swapchain)(unsafe.Pointer(&x.refdb619e1c.oldSwapchain)) } -// allocShaderModuleCreateInfoMemory allocates memory for type C.VkShaderModuleCreateInfo in C. +// allocPresentInfoMemory allocates memory for type C.VkPresentInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocShaderModuleCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderModuleCreateInfoValue)) +func allocPresentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfShaderModuleCreateInfoValue = unsafe.Sizeof([1]C.VkShaderModuleCreateInfo{}) +const sizeOfPresentInfoValue = unsafe.Sizeof([1]C.VkPresentInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderModuleCreateInfo) Ref() *C.VkShaderModuleCreateInfo { +func (x *PresentInfo) Ref() *C.VkPresentInfoKHR { if x == nil { return nil } - return x.refc663d23e + return x.ref1d0e82d4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ShaderModuleCreateInfo) Free() { - if x != nil && x.allocsc663d23e != nil { - x.allocsc663d23e.(*cgoAllocMap).Free() - x.refc663d23e = nil +func (x *PresentInfo) Free() { + if x != nil && x.allocs1d0e82d4 != nil { + x.allocs1d0e82d4.(*cgoAllocMap).Free() + x.ref1d0e82d4 = nil } } -// NewShaderModuleCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPresentInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewShaderModuleCreateInfoRef(ref unsafe.Pointer) *ShaderModuleCreateInfo { +func NewPresentInfoRef(ref unsafe.Pointer) *PresentInfo { if ref == nil { return nil } - obj := new(ShaderModuleCreateInfo) - obj.refc663d23e = (*C.VkShaderModuleCreateInfo)(unsafe.Pointer(ref)) + obj := new(PresentInfo) + obj.ref1d0e82d4 = (*C.VkPresentInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ShaderModuleCreateInfo) PassRef() (*C.VkShaderModuleCreateInfo, *cgoAllocMap) { +func (x *PresentInfo) PassRef() (*C.VkPresentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc663d23e != nil { - return x.refc663d23e, nil + } else if x.ref1d0e82d4 != nil { + return x.ref1d0e82d4, nil } - memc663d23e := allocShaderModuleCreateInfoMemory(1) - refc663d23e := (*C.VkShaderModuleCreateInfo)(memc663d23e) - allocsc663d23e := new(cgoAllocMap) - allocsc663d23e.Add(memc663d23e) + mem1d0e82d4 := allocPresentInfoMemory(1) + ref1d0e82d4 := (*C.VkPresentInfoKHR)(mem1d0e82d4) + allocs1d0e82d4 := new(cgoAllocMap) + allocs1d0e82d4.Add(mem1d0e82d4) var csType_allocs *cgoAllocMap - refc663d23e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc663d23e.Borrow(csType_allocs) + ref1d0e82d4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1d0e82d4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc663d23e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc663d23e.Borrow(cpNext_allocs) + ref1d0e82d4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1d0e82d4.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - refc663d23e.flags, cflags_allocs = (C.VkShaderModuleCreateFlags)(x.Flags), cgoAllocsUnknown - allocsc663d23e.Borrow(cflags_allocs) + var cwaitSemaphoreCount_allocs *cgoAllocMap + ref1d0e82d4.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown + allocs1d0e82d4.Borrow(cwaitSemaphoreCount_allocs) - var ccodeSize_allocs *cgoAllocMap - refc663d23e.codeSize, ccodeSize_allocs = (C.size_t)(x.CodeSize), cgoAllocsUnknown - allocsc663d23e.Borrow(ccodeSize_allocs) + var cpWaitSemaphores_allocs *cgoAllocMap + ref1d0e82d4.pWaitSemaphores, cpWaitSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)).Data)), cgoAllocsUnknown + allocs1d0e82d4.Borrow(cpWaitSemaphores_allocs) - var cpCode_allocs *cgoAllocMap - refc663d23e.pCode, cpCode_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCode)).Data)), cgoAllocsUnknown - allocsc663d23e.Borrow(cpCode_allocs) + var cswapchainCount_allocs *cgoAllocMap + ref1d0e82d4.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs1d0e82d4.Borrow(cswapchainCount_allocs) - x.refc663d23e = refc663d23e - x.allocsc663d23e = allocsc663d23e - return refc663d23e, allocsc663d23e + var cpSwapchains_allocs *cgoAllocMap + ref1d0e82d4.pSwapchains, cpSwapchains_allocs = (*C.VkSwapchainKHR)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSwapchains)).Data)), cgoAllocsUnknown + allocs1d0e82d4.Borrow(cpSwapchains_allocs) + + var cpImageIndices_allocs *cgoAllocMap + ref1d0e82d4.pImageIndices, cpImageIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PImageIndices)).Data)), cgoAllocsUnknown + allocs1d0e82d4.Borrow(cpImageIndices_allocs) + + var cpResults_allocs *cgoAllocMap + ref1d0e82d4.pResults, cpResults_allocs = (*C.VkResult)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PResults)).Data)), cgoAllocsUnknown + allocs1d0e82d4.Borrow(cpResults_allocs) + + x.ref1d0e82d4 = ref1d0e82d4 + x.allocs1d0e82d4 = allocs1d0e82d4 + return ref1d0e82d4, allocs1d0e82d4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ShaderModuleCreateInfo) PassValue() (C.VkShaderModuleCreateInfo, *cgoAllocMap) { - if x.refc663d23e != nil { - return *x.refc663d23e, nil +func (x PresentInfo) PassValue() (C.VkPresentInfoKHR, *cgoAllocMap) { + if x.ref1d0e82d4 != nil { + return *x.ref1d0e82d4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5715,104 +33229,111 @@ func (x ShaderModuleCreateInfo) PassValue() (C.VkShaderModuleCreateInfo, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ShaderModuleCreateInfo) Deref() { - if x.refc663d23e == nil { +func (x *PresentInfo) Deref() { + if x.ref1d0e82d4 == nil { return } - x.SType = (StructureType)(x.refc663d23e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc663d23e.pNext)) - x.Flags = (ShaderModuleCreateFlags)(x.refc663d23e.flags) - x.CodeSize = (uint)(x.refc663d23e.codeSize) - hxf65bf54 := (*sliceHeader)(unsafe.Pointer(&x.PCode)) - hxf65bf54.Data = unsafe.Pointer(x.refc663d23e.pCode) - hxf65bf54.Cap = 0x7fffffff - // hxf65bf54.Len = ? + x.SType = (StructureType)(x.ref1d0e82d4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1d0e82d4.pNext)) + x.WaitSemaphoreCount = (uint32)(x.ref1d0e82d4.waitSemaphoreCount) + hxf44d909 := (*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)) + hxf44d909.Data = unsafe.Pointer(x.ref1d0e82d4.pWaitSemaphores) + hxf44d909.Cap = 0x7fffffff + // hxf44d909.Len = ? + + x.SwapchainCount = (uint32)(x.ref1d0e82d4.swapchainCount) + hxfa835e7 := (*sliceHeader)(unsafe.Pointer(&x.PSwapchains)) + hxfa835e7.Data = unsafe.Pointer(x.ref1d0e82d4.pSwapchains) + hxfa835e7.Cap = 0x7fffffff + // hxfa835e7.Len = ? + + hxf8eae10 := (*sliceHeader)(unsafe.Pointer(&x.PImageIndices)) + hxf8eae10.Data = unsafe.Pointer(x.ref1d0e82d4.pImageIndices) + hxf8eae10.Cap = 0x7fffffff + // hxf8eae10.Len = ? + + hxfeb55cf := (*sliceHeader)(unsafe.Pointer(&x.PResults)) + hxfeb55cf.Data = unsafe.Pointer(x.ref1d0e82d4.pResults) + hxfeb55cf.Cap = 0x7fffffff + // hxfeb55cf.Len = ? } -// allocPipelineCacheCreateInfoMemory allocates memory for type C.VkPipelineCacheCreateInfo in C. +// allocImageSwapchainCreateInfoMemory allocates memory for type C.VkImageSwapchainCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineCacheCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCacheCreateInfoValue)) +func allocImageSwapchainCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSwapchainCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineCacheCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineCacheCreateInfo{}) +const sizeOfImageSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkImageSwapchainCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineCacheCreateInfo) Ref() *C.VkPipelineCacheCreateInfo { +func (x *ImageSwapchainCreateInfo) Ref() *C.VkImageSwapchainCreateInfoKHR { if x == nil { return nil } - return x.reff11e7dd1 + return x.refd83cc5d0 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineCacheCreateInfo) Free() { - if x != nil && x.allocsf11e7dd1 != nil { - x.allocsf11e7dd1.(*cgoAllocMap).Free() - x.reff11e7dd1 = nil +func (x *ImageSwapchainCreateInfo) Free() { + if x != nil && x.allocsd83cc5d0 != nil { + x.allocsd83cc5d0.(*cgoAllocMap).Free() + x.refd83cc5d0 = nil } } -// NewPipelineCacheCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageSwapchainCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineCacheCreateInfoRef(ref unsafe.Pointer) *PipelineCacheCreateInfo { +func NewImageSwapchainCreateInfoRef(ref unsafe.Pointer) *ImageSwapchainCreateInfo { if ref == nil { return nil } - obj := new(PipelineCacheCreateInfo) - obj.reff11e7dd1 = (*C.VkPipelineCacheCreateInfo)(unsafe.Pointer(ref)) + obj := new(ImageSwapchainCreateInfo) + obj.refd83cc5d0 = (*C.VkImageSwapchainCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineCacheCreateInfo) PassRef() (*C.VkPipelineCacheCreateInfo, *cgoAllocMap) { +func (x *ImageSwapchainCreateInfo) PassRef() (*C.VkImageSwapchainCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff11e7dd1 != nil { - return x.reff11e7dd1, nil + } else if x.refd83cc5d0 != nil { + return x.refd83cc5d0, nil } - memf11e7dd1 := allocPipelineCacheCreateInfoMemory(1) - reff11e7dd1 := (*C.VkPipelineCacheCreateInfo)(memf11e7dd1) - allocsf11e7dd1 := new(cgoAllocMap) - allocsf11e7dd1.Add(memf11e7dd1) + memd83cc5d0 := allocImageSwapchainCreateInfoMemory(1) + refd83cc5d0 := (*C.VkImageSwapchainCreateInfoKHR)(memd83cc5d0) + allocsd83cc5d0 := new(cgoAllocMap) + allocsd83cc5d0.Add(memd83cc5d0) var csType_allocs *cgoAllocMap - reff11e7dd1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf11e7dd1.Borrow(csType_allocs) + refd83cc5d0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd83cc5d0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff11e7dd1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf11e7dd1.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - reff11e7dd1.flags, cflags_allocs = (C.VkPipelineCacheCreateFlags)(x.Flags), cgoAllocsUnknown - allocsf11e7dd1.Borrow(cflags_allocs) - - var cinitialDataSize_allocs *cgoAllocMap - reff11e7dd1.initialDataSize, cinitialDataSize_allocs = (C.size_t)(x.InitialDataSize), cgoAllocsUnknown - allocsf11e7dd1.Borrow(cinitialDataSize_allocs) + refd83cc5d0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd83cc5d0.Borrow(cpNext_allocs) - var cpInitialData_allocs *cgoAllocMap - reff11e7dd1.pInitialData, cpInitialData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PInitialData)), cgoAllocsUnknown - allocsf11e7dd1.Borrow(cpInitialData_allocs) + var cswapchain_allocs *cgoAllocMap + refd83cc5d0.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown + allocsd83cc5d0.Borrow(cswapchain_allocs) - x.reff11e7dd1 = reff11e7dd1 - x.allocsf11e7dd1 = allocsf11e7dd1 - return reff11e7dd1, allocsf11e7dd1 + x.refd83cc5d0 = refd83cc5d0 + x.allocsd83cc5d0 = allocsd83cc5d0 + return refd83cc5d0, allocsd83cc5d0 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineCacheCreateInfo) PassValue() (C.VkPipelineCacheCreateInfo, *cgoAllocMap) { - if x.reff11e7dd1 != nil { - return *x.reff11e7dd1, nil +func (x ImageSwapchainCreateInfo) PassValue() (C.VkImageSwapchainCreateInfoKHR, *cgoAllocMap) { + if x.refd83cc5d0 != nil { + return *x.refd83cc5d0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5820,92 +33341,94 @@ func (x PipelineCacheCreateInfo) PassValue() (C.VkPipelineCacheCreateInfo, *cgoA // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineCacheCreateInfo) Deref() { - if x.reff11e7dd1 == nil { +func (x *ImageSwapchainCreateInfo) Deref() { + if x.refd83cc5d0 == nil { return } - x.SType = (StructureType)(x.reff11e7dd1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff11e7dd1.pNext)) - x.Flags = (PipelineCacheCreateFlags)(x.reff11e7dd1.flags) - x.InitialDataSize = (uint)(x.reff11e7dd1.initialDataSize) - x.PInitialData = (unsafe.Pointer)(unsafe.Pointer(x.reff11e7dd1.pInitialData)) + x.SType = (StructureType)(x.refd83cc5d0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd83cc5d0.pNext)) + x.Swapchain = *(*Swapchain)(unsafe.Pointer(&x.refd83cc5d0.swapchain)) } -// allocSpecializationMapEntryMemory allocates memory for type C.VkSpecializationMapEntry in C. +// allocBindImageMemorySwapchainInfoMemory allocates memory for type C.VkBindImageMemorySwapchainInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocSpecializationMapEntryMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSpecializationMapEntryValue)) +func allocBindImageMemorySwapchainInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindImageMemorySwapchainInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSpecializationMapEntryValue = unsafe.Sizeof([1]C.VkSpecializationMapEntry{}) +const sizeOfBindImageMemorySwapchainInfoValue = unsafe.Sizeof([1]C.VkBindImageMemorySwapchainInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SpecializationMapEntry) Ref() *C.VkSpecializationMapEntry { +func (x *BindImageMemorySwapchainInfo) Ref() *C.VkBindImageMemorySwapchainInfoKHR { if x == nil { return nil } - return x.ref2fd815d1 + return x.ref1aa25cb6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SpecializationMapEntry) Free() { - if x != nil && x.allocs2fd815d1 != nil { - x.allocs2fd815d1.(*cgoAllocMap).Free() - x.ref2fd815d1 = nil +func (x *BindImageMemorySwapchainInfo) Free() { + if x != nil && x.allocs1aa25cb6 != nil { + x.allocs1aa25cb6.(*cgoAllocMap).Free() + x.ref1aa25cb6 = nil } } -// NewSpecializationMapEntryRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBindImageMemorySwapchainInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSpecializationMapEntryRef(ref unsafe.Pointer) *SpecializationMapEntry { +func NewBindImageMemorySwapchainInfoRef(ref unsafe.Pointer) *BindImageMemorySwapchainInfo { if ref == nil { return nil } - obj := new(SpecializationMapEntry) - obj.ref2fd815d1 = (*C.VkSpecializationMapEntry)(unsafe.Pointer(ref)) + obj := new(BindImageMemorySwapchainInfo) + obj.ref1aa25cb6 = (*C.VkBindImageMemorySwapchainInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SpecializationMapEntry) PassRef() (*C.VkSpecializationMapEntry, *cgoAllocMap) { +func (x *BindImageMemorySwapchainInfo) PassRef() (*C.VkBindImageMemorySwapchainInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2fd815d1 != nil { - return x.ref2fd815d1, nil + } else if x.ref1aa25cb6 != nil { + return x.ref1aa25cb6, nil } - mem2fd815d1 := allocSpecializationMapEntryMemory(1) - ref2fd815d1 := (*C.VkSpecializationMapEntry)(mem2fd815d1) - allocs2fd815d1 := new(cgoAllocMap) - allocs2fd815d1.Add(mem2fd815d1) + mem1aa25cb6 := allocBindImageMemorySwapchainInfoMemory(1) + ref1aa25cb6 := (*C.VkBindImageMemorySwapchainInfoKHR)(mem1aa25cb6) + allocs1aa25cb6 := new(cgoAllocMap) + allocs1aa25cb6.Add(mem1aa25cb6) - var cconstantID_allocs *cgoAllocMap - ref2fd815d1.constantID, cconstantID_allocs = (C.uint32_t)(x.ConstantID), cgoAllocsUnknown - allocs2fd815d1.Borrow(cconstantID_allocs) + var csType_allocs *cgoAllocMap + ref1aa25cb6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1aa25cb6.Borrow(csType_allocs) - var coffset_allocs *cgoAllocMap - ref2fd815d1.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown - allocs2fd815d1.Borrow(coffset_allocs) + var cpNext_allocs *cgoAllocMap + ref1aa25cb6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1aa25cb6.Borrow(cpNext_allocs) - var csize_allocs *cgoAllocMap - ref2fd815d1.size, csize_allocs = (C.size_t)(x.Size), cgoAllocsUnknown - allocs2fd815d1.Borrow(csize_allocs) + var cswapchain_allocs *cgoAllocMap + ref1aa25cb6.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown + allocs1aa25cb6.Borrow(cswapchain_allocs) - x.ref2fd815d1 = ref2fd815d1 - x.allocs2fd815d1 = allocs2fd815d1 - return ref2fd815d1, allocs2fd815d1 + var cimageIndex_allocs *cgoAllocMap + ref1aa25cb6.imageIndex, cimageIndex_allocs = (C.uint32_t)(x.ImageIndex), cgoAllocsUnknown + allocs1aa25cb6.Borrow(cimageIndex_allocs) + + x.ref1aa25cb6 = ref1aa25cb6 + x.allocs1aa25cb6 = allocs1aa25cb6 + return ref1aa25cb6, allocs1aa25cb6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SpecializationMapEntry) PassValue() (C.VkSpecializationMapEntry, *cgoAllocMap) { - if x.ref2fd815d1 != nil { - return *x.ref2fd815d1, nil +func (x BindImageMemorySwapchainInfo) PassValue() (C.VkBindImageMemorySwapchainInfoKHR, *cgoAllocMap) { + if x.ref1aa25cb6 != nil { + return *x.ref1aa25cb6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -5913,132 +33436,107 @@ func (x SpecializationMapEntry) PassValue() (C.VkSpecializationMapEntry, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SpecializationMapEntry) Deref() { - if x.ref2fd815d1 == nil { +func (x *BindImageMemorySwapchainInfo) Deref() { + if x.ref1aa25cb6 == nil { return } - x.ConstantID = (uint32)(x.ref2fd815d1.constantID) - x.Offset = (uint32)(x.ref2fd815d1.offset) - x.Size = (uint)(x.ref2fd815d1.size) + x.SType = (StructureType)(x.ref1aa25cb6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1aa25cb6.pNext)) + x.Swapchain = *(*Swapchain)(unsafe.Pointer(&x.ref1aa25cb6.swapchain)) + x.ImageIndex = (uint32)(x.ref1aa25cb6.imageIndex) } -// allocSpecializationInfoMemory allocates memory for type C.VkSpecializationInfo in C. +// allocAcquireNextImageInfoMemory allocates memory for type C.VkAcquireNextImageInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocSpecializationInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSpecializationInfoValue)) +func allocAcquireNextImageInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAcquireNextImageInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSpecializationInfoValue = unsafe.Sizeof([1]C.VkSpecializationInfo{}) - -// unpackSSpecializationMapEntry transforms a sliced Go data structure into plain C format. -func unpackSSpecializationMapEntry(x []SpecializationMapEntry) (unpacked *C.VkSpecializationMapEntry, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSpecializationMapEntry) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocSpecializationMapEntryMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkSpecializationMapEntry)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSpecializationMapEntry)(h.Data) - return -} - -// packSSpecializationMapEntry reads sliced Go data structure out from plain C format. -func packSSpecializationMapEntry(v []SpecializationMapEntry, ptr0 *C.VkSpecializationMapEntry) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSpecializationMapEntryValue]C.VkSpecializationMapEntry)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSpecializationMapEntryRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfAcquireNextImageInfoValue = unsafe.Sizeof([1]C.VkAcquireNextImageInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SpecializationInfo) Ref() *C.VkSpecializationInfo { +func (x *AcquireNextImageInfo) Ref() *C.VkAcquireNextImageInfoKHR { if x == nil { return nil } - return x.ref6bc395a3 + return x.ref588806a5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SpecializationInfo) Free() { - if x != nil && x.allocs6bc395a3 != nil { - x.allocs6bc395a3.(*cgoAllocMap).Free() - x.ref6bc395a3 = nil +func (x *AcquireNextImageInfo) Free() { + if x != nil && x.allocs588806a5 != nil { + x.allocs588806a5.(*cgoAllocMap).Free() + x.ref588806a5 = nil } } -// NewSpecializationInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewAcquireNextImageInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSpecializationInfoRef(ref unsafe.Pointer) *SpecializationInfo { +func NewAcquireNextImageInfoRef(ref unsafe.Pointer) *AcquireNextImageInfo { if ref == nil { return nil } - obj := new(SpecializationInfo) - obj.ref6bc395a3 = (*C.VkSpecializationInfo)(unsafe.Pointer(ref)) + obj := new(AcquireNextImageInfo) + obj.ref588806a5 = (*C.VkAcquireNextImageInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SpecializationInfo) PassRef() (*C.VkSpecializationInfo, *cgoAllocMap) { +func (x *AcquireNextImageInfo) PassRef() (*C.VkAcquireNextImageInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6bc395a3 != nil { - return x.ref6bc395a3, nil + } else if x.ref588806a5 != nil { + return x.ref588806a5, nil } - mem6bc395a3 := allocSpecializationInfoMemory(1) - ref6bc395a3 := (*C.VkSpecializationInfo)(mem6bc395a3) - allocs6bc395a3 := new(cgoAllocMap) - allocs6bc395a3.Add(mem6bc395a3) + mem588806a5 := allocAcquireNextImageInfoMemory(1) + ref588806a5 := (*C.VkAcquireNextImageInfoKHR)(mem588806a5) + allocs588806a5 := new(cgoAllocMap) + allocs588806a5.Add(mem588806a5) - var cmapEntryCount_allocs *cgoAllocMap - ref6bc395a3.mapEntryCount, cmapEntryCount_allocs = (C.uint32_t)(x.MapEntryCount), cgoAllocsUnknown - allocs6bc395a3.Borrow(cmapEntryCount_allocs) + var csType_allocs *cgoAllocMap + ref588806a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs588806a5.Borrow(csType_allocs) - var cpMapEntries_allocs *cgoAllocMap - ref6bc395a3.pMapEntries, cpMapEntries_allocs = unpackSSpecializationMapEntry(x.PMapEntries) - allocs6bc395a3.Borrow(cpMapEntries_allocs) + var cpNext_allocs *cgoAllocMap + ref588806a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs588806a5.Borrow(cpNext_allocs) - var cdataSize_allocs *cgoAllocMap - ref6bc395a3.dataSize, cdataSize_allocs = (C.size_t)(x.DataSize), cgoAllocsUnknown - allocs6bc395a3.Borrow(cdataSize_allocs) + var cswapchain_allocs *cgoAllocMap + ref588806a5.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown + allocs588806a5.Borrow(cswapchain_allocs) - var cpData_allocs *cgoAllocMap - ref6bc395a3.pData, cpData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PData)), cgoAllocsUnknown - allocs6bc395a3.Borrow(cpData_allocs) + var ctimeout_allocs *cgoAllocMap + ref588806a5.timeout, ctimeout_allocs = (C.uint64_t)(x.Timeout), cgoAllocsUnknown + allocs588806a5.Borrow(ctimeout_allocs) - x.ref6bc395a3 = ref6bc395a3 - x.allocs6bc395a3 = allocs6bc395a3 - return ref6bc395a3, allocs6bc395a3 + var csemaphore_allocs *cgoAllocMap + ref588806a5.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocs588806a5.Borrow(csemaphore_allocs) + + var cfence_allocs *cgoAllocMap + ref588806a5.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown + allocs588806a5.Borrow(cfence_allocs) + + var cdeviceMask_allocs *cgoAllocMap + ref588806a5.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown + allocs588806a5.Borrow(cdeviceMask_allocs) + + x.ref588806a5 = ref588806a5 + x.allocs588806a5 = allocs588806a5 + return ref588806a5, allocs588806a5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SpecializationInfo) PassValue() (C.VkSpecializationInfo, *cgoAllocMap) { - if x.ref6bc395a3 != nil { - return *x.ref6bc395a3, nil +func (x AcquireNextImageInfo) PassValue() (C.VkAcquireNextImageInfoKHR, *cgoAllocMap) { + if x.ref588806a5 != nil { + return *x.ref588806a5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6046,145 +33544,98 @@ func (x SpecializationInfo) PassValue() (C.VkSpecializationInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SpecializationInfo) Deref() { - if x.ref6bc395a3 == nil { +func (x *AcquireNextImageInfo) Deref() { + if x.ref588806a5 == nil { return } - x.MapEntryCount = (uint32)(x.ref6bc395a3.mapEntryCount) - packSSpecializationMapEntry(x.PMapEntries, x.ref6bc395a3.pMapEntries) - x.DataSize = (uint)(x.ref6bc395a3.dataSize) - x.PData = (unsafe.Pointer)(unsafe.Pointer(x.ref6bc395a3.pData)) + x.SType = (StructureType)(x.ref588806a5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref588806a5.pNext)) + x.Swapchain = *(*Swapchain)(unsafe.Pointer(&x.ref588806a5.swapchain)) + x.Timeout = (uint64)(x.ref588806a5.timeout) + x.Semaphore = *(*Semaphore)(unsafe.Pointer(&x.ref588806a5.semaphore)) + x.Fence = *(*Fence)(unsafe.Pointer(&x.ref588806a5.fence)) + x.DeviceMask = (uint32)(x.ref588806a5.deviceMask) } -// allocPipelineShaderStageCreateInfoMemory allocates memory for type C.VkPipelineShaderStageCreateInfo in C. +// allocDeviceGroupPresentCapabilitiesMemory allocates memory for type C.VkDeviceGroupPresentCapabilitiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineShaderStageCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineShaderStageCreateInfoValue)) +func allocDeviceGroupPresentCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupPresentCapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineShaderStageCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineShaderStageCreateInfo{}) - -// unpackSSpecializationInfo transforms a sliced Go data structure into plain C format. -func unpackSSpecializationInfo(x []SpecializationInfo) (unpacked *C.VkSpecializationInfo, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSpecializationInfo) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocSpecializationInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkSpecializationInfo)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSpecializationInfo)(h.Data) - return -} - -// packSSpecializationInfo reads sliced Go data structure out from plain C format. -func packSSpecializationInfo(v []SpecializationInfo, ptr0 *C.VkSpecializationInfo) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSpecializationInfoValue]C.VkSpecializationInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSpecializationInfoRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfDeviceGroupPresentCapabilitiesValue = unsafe.Sizeof([1]C.VkDeviceGroupPresentCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineShaderStageCreateInfo) Ref() *C.VkPipelineShaderStageCreateInfo { +func (x *DeviceGroupPresentCapabilities) Ref() *C.VkDeviceGroupPresentCapabilitiesKHR { if x == nil { return nil } - return x.ref50ba8b60 + return x.refa3962c81 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineShaderStageCreateInfo) Free() { - if x != nil && x.allocs50ba8b60 != nil { - x.allocs50ba8b60.(*cgoAllocMap).Free() - x.ref50ba8b60 = nil +func (x *DeviceGroupPresentCapabilities) Free() { + if x != nil && x.allocsa3962c81 != nil { + x.allocsa3962c81.(*cgoAllocMap).Free() + x.refa3962c81 = nil } } -// NewPipelineShaderStageCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceGroupPresentCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineShaderStageCreateInfoRef(ref unsafe.Pointer) *PipelineShaderStageCreateInfo { +func NewDeviceGroupPresentCapabilitiesRef(ref unsafe.Pointer) *DeviceGroupPresentCapabilities { if ref == nil { return nil } - obj := new(PipelineShaderStageCreateInfo) - obj.ref50ba8b60 = (*C.VkPipelineShaderStageCreateInfo)(unsafe.Pointer(ref)) + obj := new(DeviceGroupPresentCapabilities) + obj.refa3962c81 = (*C.VkDeviceGroupPresentCapabilitiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineShaderStageCreateInfo) PassRef() (*C.VkPipelineShaderStageCreateInfo, *cgoAllocMap) { +func (x *DeviceGroupPresentCapabilities) PassRef() (*C.VkDeviceGroupPresentCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref50ba8b60 != nil { - return x.ref50ba8b60, nil + } else if x.refa3962c81 != nil { + return x.refa3962c81, nil } - mem50ba8b60 := allocPipelineShaderStageCreateInfoMemory(1) - ref50ba8b60 := (*C.VkPipelineShaderStageCreateInfo)(mem50ba8b60) - allocs50ba8b60 := new(cgoAllocMap) - allocs50ba8b60.Add(mem50ba8b60) + mema3962c81 := allocDeviceGroupPresentCapabilitiesMemory(1) + refa3962c81 := (*C.VkDeviceGroupPresentCapabilitiesKHR)(mema3962c81) + allocsa3962c81 := new(cgoAllocMap) + allocsa3962c81.Add(mema3962c81) var csType_allocs *cgoAllocMap - ref50ba8b60.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs50ba8b60.Borrow(csType_allocs) + refa3962c81.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa3962c81.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref50ba8b60.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs50ba8b60.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref50ba8b60.flags, cflags_allocs = (C.VkPipelineShaderStageCreateFlags)(x.Flags), cgoAllocsUnknown - allocs50ba8b60.Borrow(cflags_allocs) - - var cstage_allocs *cgoAllocMap - ref50ba8b60.stage, cstage_allocs = (C.VkShaderStageFlagBits)(x.Stage), cgoAllocsUnknown - allocs50ba8b60.Borrow(cstage_allocs) - - var cmodule_allocs *cgoAllocMap - ref50ba8b60.module, cmodule_allocs = *(*C.VkShaderModule)(unsafe.Pointer(&x.Module)), cgoAllocsUnknown - allocs50ba8b60.Borrow(cmodule_allocs) + refa3962c81.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa3962c81.Borrow(cpNext_allocs) - var cpName_allocs *cgoAllocMap - ref50ba8b60.pName, cpName_allocs = unpackPCharString(x.PName) - allocs50ba8b60.Borrow(cpName_allocs) + var cpresentMask_allocs *cgoAllocMap + refa3962c81.presentMask, cpresentMask_allocs = *(*[32]C.uint32_t)(unsafe.Pointer(&x.PresentMask)), cgoAllocsUnknown + allocsa3962c81.Borrow(cpresentMask_allocs) - var cpSpecializationInfo_allocs *cgoAllocMap - ref50ba8b60.pSpecializationInfo, cpSpecializationInfo_allocs = unpackSSpecializationInfo(x.PSpecializationInfo) - allocs50ba8b60.Borrow(cpSpecializationInfo_allocs) + var cmodes_allocs *cgoAllocMap + refa3962c81.modes, cmodes_allocs = (C.VkDeviceGroupPresentModeFlagsKHR)(x.Modes), cgoAllocsUnknown + allocsa3962c81.Borrow(cmodes_allocs) - x.ref50ba8b60 = ref50ba8b60 - x.allocs50ba8b60 = allocs50ba8b60 - return ref50ba8b60, allocs50ba8b60 + x.refa3962c81 = refa3962c81 + x.allocsa3962c81 = allocsa3962c81 + return refa3962c81, allocsa3962c81 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineShaderStageCreateInfo) PassValue() (C.VkPipelineShaderStageCreateInfo, *cgoAllocMap) { - if x.ref50ba8b60 != nil { - return *x.ref50ba8b60, nil +func (x DeviceGroupPresentCapabilities) PassValue() (C.VkDeviceGroupPresentCapabilitiesKHR, *cgoAllocMap) { + if x.refa3962c81 != nil { + return *x.refa3962c81, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6192,94 +33643,99 @@ func (x PipelineShaderStageCreateInfo) PassValue() (C.VkPipelineShaderStageCreat // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineShaderStageCreateInfo) Deref() { - if x.ref50ba8b60 == nil { +func (x *DeviceGroupPresentCapabilities) Deref() { + if x.refa3962c81 == nil { return } - x.SType = (StructureType)(x.ref50ba8b60.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref50ba8b60.pNext)) - x.Flags = (PipelineShaderStageCreateFlags)(x.ref50ba8b60.flags) - x.Stage = (ShaderStageFlagBits)(x.ref50ba8b60.stage) - x.Module = *(*ShaderModule)(unsafe.Pointer(&x.ref50ba8b60.module)) - x.PName = packPCharString(x.ref50ba8b60.pName) - packSSpecializationInfo(x.PSpecializationInfo, x.ref50ba8b60.pSpecializationInfo) + x.SType = (StructureType)(x.refa3962c81.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa3962c81.pNext)) + x.PresentMask = *(*[32]uint32)(unsafe.Pointer(&x.refa3962c81.presentMask)) + x.Modes = (DeviceGroupPresentModeFlags)(x.refa3962c81.modes) } -// allocVertexInputBindingDescriptionMemory allocates memory for type C.VkVertexInputBindingDescription in C. +// allocDeviceGroupPresentInfoMemory allocates memory for type C.VkDeviceGroupPresentInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocVertexInputBindingDescriptionMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputBindingDescriptionValue)) +func allocDeviceGroupPresentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupPresentInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfVertexInputBindingDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputBindingDescription{}) +const sizeOfDeviceGroupPresentInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupPresentInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VertexInputBindingDescription) Ref() *C.VkVertexInputBindingDescription { +func (x *DeviceGroupPresentInfo) Ref() *C.VkDeviceGroupPresentInfoKHR { if x == nil { return nil } - return x.ref5c9d8c23 + return x.reff6912d09 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *VertexInputBindingDescription) Free() { - if x != nil && x.allocs5c9d8c23 != nil { - x.allocs5c9d8c23.(*cgoAllocMap).Free() - x.ref5c9d8c23 = nil +func (x *DeviceGroupPresentInfo) Free() { + if x != nil && x.allocsf6912d09 != nil { + x.allocsf6912d09.(*cgoAllocMap).Free() + x.reff6912d09 = nil } } -// NewVertexInputBindingDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceGroupPresentInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewVertexInputBindingDescriptionRef(ref unsafe.Pointer) *VertexInputBindingDescription { +func NewDeviceGroupPresentInfoRef(ref unsafe.Pointer) *DeviceGroupPresentInfo { if ref == nil { return nil } - obj := new(VertexInputBindingDescription) - obj.ref5c9d8c23 = (*C.VkVertexInputBindingDescription)(unsafe.Pointer(ref)) + obj := new(DeviceGroupPresentInfo) + obj.reff6912d09 = (*C.VkDeviceGroupPresentInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *VertexInputBindingDescription) PassRef() (*C.VkVertexInputBindingDescription, *cgoAllocMap) { +func (x *DeviceGroupPresentInfo) PassRef() (*C.VkDeviceGroupPresentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5c9d8c23 != nil { - return x.ref5c9d8c23, nil + } else if x.reff6912d09 != nil { + return x.reff6912d09, nil } - mem5c9d8c23 := allocVertexInputBindingDescriptionMemory(1) - ref5c9d8c23 := (*C.VkVertexInputBindingDescription)(mem5c9d8c23) - allocs5c9d8c23 := new(cgoAllocMap) - allocs5c9d8c23.Add(mem5c9d8c23) + memf6912d09 := allocDeviceGroupPresentInfoMemory(1) + reff6912d09 := (*C.VkDeviceGroupPresentInfoKHR)(memf6912d09) + allocsf6912d09 := new(cgoAllocMap) + allocsf6912d09.Add(memf6912d09) - var cbinding_allocs *cgoAllocMap - ref5c9d8c23.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocs5c9d8c23.Borrow(cbinding_allocs) + var csType_allocs *cgoAllocMap + reff6912d09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf6912d09.Borrow(csType_allocs) - var cstride_allocs *cgoAllocMap - ref5c9d8c23.stride, cstride_allocs = (C.uint32_t)(x.Stride), cgoAllocsUnknown - allocs5c9d8c23.Borrow(cstride_allocs) + var cpNext_allocs *cgoAllocMap + reff6912d09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf6912d09.Borrow(cpNext_allocs) - var cinputRate_allocs *cgoAllocMap - ref5c9d8c23.inputRate, cinputRate_allocs = (C.VkVertexInputRate)(x.InputRate), cgoAllocsUnknown - allocs5c9d8c23.Borrow(cinputRate_allocs) + var cswapchainCount_allocs *cgoAllocMap + reff6912d09.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocsf6912d09.Borrow(cswapchainCount_allocs) - x.ref5c9d8c23 = ref5c9d8c23 - x.allocs5c9d8c23 = allocs5c9d8c23 - return ref5c9d8c23, allocs5c9d8c23 + var cpDeviceMasks_allocs *cgoAllocMap + reff6912d09.pDeviceMasks, cpDeviceMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDeviceMasks)).Data)), cgoAllocsUnknown + allocsf6912d09.Borrow(cpDeviceMasks_allocs) + + var cmode_allocs *cgoAllocMap + reff6912d09.mode, cmode_allocs = (C.VkDeviceGroupPresentModeFlagBitsKHR)(x.Mode), cgoAllocsUnknown + allocsf6912d09.Borrow(cmode_allocs) + + x.reff6912d09 = reff6912d09 + x.allocsf6912d09 = allocsf6912d09 + return reff6912d09, allocsf6912d09 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VertexInputBindingDescription) PassValue() (C.VkVertexInputBindingDescription, *cgoAllocMap) { - if x.ref5c9d8c23 != nil { - return *x.ref5c9d8c23, nil +func (x DeviceGroupPresentInfo) PassValue() (C.VkDeviceGroupPresentInfoKHR, *cgoAllocMap) { + if x.reff6912d09 != nil { + return *x.reff6912d09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6287,94 +33743,96 @@ func (x VertexInputBindingDescription) PassValue() (C.VkVertexInputBindingDescri // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *VertexInputBindingDescription) Deref() { - if x.ref5c9d8c23 == nil { +func (x *DeviceGroupPresentInfo) Deref() { + if x.reff6912d09 == nil { return } - x.Binding = (uint32)(x.ref5c9d8c23.binding) - x.Stride = (uint32)(x.ref5c9d8c23.stride) - x.InputRate = (VertexInputRate)(x.ref5c9d8c23.inputRate) + x.SType = (StructureType)(x.reff6912d09.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff6912d09.pNext)) + x.SwapchainCount = (uint32)(x.reff6912d09.swapchainCount) + hxf458096 := (*sliceHeader)(unsafe.Pointer(&x.PDeviceMasks)) + hxf458096.Data = unsafe.Pointer(x.reff6912d09.pDeviceMasks) + hxf458096.Cap = 0x7fffffff + // hxf458096.Len = ? + + x.Mode = (DeviceGroupPresentModeFlagBits)(x.reff6912d09.mode) } -// allocVertexInputAttributeDescriptionMemory allocates memory for type C.VkVertexInputAttributeDescription in C. +// allocDeviceGroupSwapchainCreateInfoMemory allocates memory for type C.VkDeviceGroupSwapchainCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocVertexInputAttributeDescriptionMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputAttributeDescriptionValue)) +func allocDeviceGroupSwapchainCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupSwapchainCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfVertexInputAttributeDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputAttributeDescription{}) +const sizeOfDeviceGroupSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupSwapchainCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VertexInputAttributeDescription) Ref() *C.VkVertexInputAttributeDescription { +func (x *DeviceGroupSwapchainCreateInfo) Ref() *C.VkDeviceGroupSwapchainCreateInfoKHR { if x == nil { return nil } - return x.refdc4635ff + return x.ref44ae0c0e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *VertexInputAttributeDescription) Free() { - if x != nil && x.allocsdc4635ff != nil { - x.allocsdc4635ff.(*cgoAllocMap).Free() - x.refdc4635ff = nil +func (x *DeviceGroupSwapchainCreateInfo) Free() { + if x != nil && x.allocs44ae0c0e != nil { + x.allocs44ae0c0e.(*cgoAllocMap).Free() + x.ref44ae0c0e = nil } } -// NewVertexInputAttributeDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceGroupSwapchainCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewVertexInputAttributeDescriptionRef(ref unsafe.Pointer) *VertexInputAttributeDescription { +func NewDeviceGroupSwapchainCreateInfoRef(ref unsafe.Pointer) *DeviceGroupSwapchainCreateInfo { if ref == nil { return nil } - obj := new(VertexInputAttributeDescription) - obj.refdc4635ff = (*C.VkVertexInputAttributeDescription)(unsafe.Pointer(ref)) + obj := new(DeviceGroupSwapchainCreateInfo) + obj.ref44ae0c0e = (*C.VkDeviceGroupSwapchainCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *VertexInputAttributeDescription) PassRef() (*C.VkVertexInputAttributeDescription, *cgoAllocMap) { +func (x *DeviceGroupSwapchainCreateInfo) PassRef() (*C.VkDeviceGroupSwapchainCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdc4635ff != nil { - return x.refdc4635ff, nil + } else if x.ref44ae0c0e != nil { + return x.ref44ae0c0e, nil } - memdc4635ff := allocVertexInputAttributeDescriptionMemory(1) - refdc4635ff := (*C.VkVertexInputAttributeDescription)(memdc4635ff) - allocsdc4635ff := new(cgoAllocMap) - allocsdc4635ff.Add(memdc4635ff) - - var clocation_allocs *cgoAllocMap - refdc4635ff.location, clocation_allocs = (C.uint32_t)(x.Location), cgoAllocsUnknown - allocsdc4635ff.Borrow(clocation_allocs) + mem44ae0c0e := allocDeviceGroupSwapchainCreateInfoMemory(1) + ref44ae0c0e := (*C.VkDeviceGroupSwapchainCreateInfoKHR)(mem44ae0c0e) + allocs44ae0c0e := new(cgoAllocMap) + allocs44ae0c0e.Add(mem44ae0c0e) - var cbinding_allocs *cgoAllocMap - refdc4635ff.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocsdc4635ff.Borrow(cbinding_allocs) + var csType_allocs *cgoAllocMap + ref44ae0c0e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs44ae0c0e.Borrow(csType_allocs) - var cformat_allocs *cgoAllocMap - refdc4635ff.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocsdc4635ff.Borrow(cformat_allocs) + var cpNext_allocs *cgoAllocMap + ref44ae0c0e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs44ae0c0e.Borrow(cpNext_allocs) - var coffset_allocs *cgoAllocMap - refdc4635ff.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown - allocsdc4635ff.Borrow(coffset_allocs) + var cmodes_allocs *cgoAllocMap + ref44ae0c0e.modes, cmodes_allocs = (C.VkDeviceGroupPresentModeFlagsKHR)(x.Modes), cgoAllocsUnknown + allocs44ae0c0e.Borrow(cmodes_allocs) - x.refdc4635ff = refdc4635ff - x.allocsdc4635ff = allocsdc4635ff - return refdc4635ff, allocsdc4635ff + x.ref44ae0c0e = ref44ae0c0e + x.allocs44ae0c0e = allocs44ae0c0e + return ref44ae0c0e, allocs44ae0c0e } -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VertexInputAttributeDescription) PassValue() (C.VkVertexInputAttributeDescription, *cgoAllocMap) { - if x.refdc4635ff != nil { - return *x.refdc4635ff, nil +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DeviceGroupSwapchainCreateInfo) PassValue() (C.VkDeviceGroupSwapchainCreateInfoKHR, *cgoAllocMap) { + if x.ref44ae0c0e != nil { + return *x.ref44ae0c0e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6382,183 +33840,86 @@ func (x VertexInputAttributeDescription) PassValue() (C.VkVertexInputAttributeDe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *VertexInputAttributeDescription) Deref() { - if x.refdc4635ff == nil { +func (x *DeviceGroupSwapchainCreateInfo) Deref() { + if x.ref44ae0c0e == nil { return } - x.Location = (uint32)(x.refdc4635ff.location) - x.Binding = (uint32)(x.refdc4635ff.binding) - x.Format = (Format)(x.refdc4635ff.format) - x.Offset = (uint32)(x.refdc4635ff.offset) + x.SType = (StructureType)(x.ref44ae0c0e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref44ae0c0e.pNext)) + x.Modes = (DeviceGroupPresentModeFlags)(x.ref44ae0c0e.modes) } -// allocPipelineVertexInputStateCreateInfoMemory allocates memory for type C.VkPipelineVertexInputStateCreateInfo in C. +// allocDisplayModeParametersMemory allocates memory for type C.VkDisplayModeParametersKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineVertexInputStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineVertexInputStateCreateInfoValue)) +func allocDisplayModeParametersMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModeParametersValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineVertexInputStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineVertexInputStateCreateInfo{}) - -// unpackSVertexInputBindingDescription transforms a sliced Go data structure into plain C format. -func unpackSVertexInputBindingDescription(x []VertexInputBindingDescription) (unpacked *C.VkVertexInputBindingDescription, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVertexInputBindingDescription) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVertexInputBindingDescriptionMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVertexInputBindingDescription)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkVertexInputBindingDescription)(h.Data) - return -} - -// unpackSVertexInputAttributeDescription transforms a sliced Go data structure into plain C format. -func unpackSVertexInputAttributeDescription(x []VertexInputAttributeDescription) (unpacked *C.VkVertexInputAttributeDescription, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVertexInputAttributeDescription) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVertexInputAttributeDescriptionMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVertexInputAttributeDescription)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkVertexInputAttributeDescription)(h.Data) - return -} - -// packSVertexInputBindingDescription reads sliced Go data structure out from plain C format. -func packSVertexInputBindingDescription(v []VertexInputBindingDescription, ptr0 *C.VkVertexInputBindingDescription) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVertexInputBindingDescriptionValue]C.VkVertexInputBindingDescription)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVertexInputBindingDescriptionRef(unsafe.Pointer(&ptr1)) - } -} - -// packSVertexInputAttributeDescription reads sliced Go data structure out from plain C format. -func packSVertexInputAttributeDescription(v []VertexInputAttributeDescription, ptr0 *C.VkVertexInputAttributeDescription) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVertexInputAttributeDescriptionValue]C.VkVertexInputAttributeDescription)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVertexInputAttributeDescriptionRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfDisplayModeParametersValue = unsafe.Sizeof([1]C.VkDisplayModeParametersKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineVertexInputStateCreateInfo) Ref() *C.VkPipelineVertexInputStateCreateInfo { +func (x *DisplayModeParameters) Ref() *C.VkDisplayModeParametersKHR { if x == nil { return nil } - return x.ref5fe4aa50 + return x.refe016f77f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineVertexInputStateCreateInfo) Free() { - if x != nil && x.allocs5fe4aa50 != nil { - x.allocs5fe4aa50.(*cgoAllocMap).Free() - x.ref5fe4aa50 = nil +func (x *DisplayModeParameters) Free() { + if x != nil && x.allocse016f77f != nil { + x.allocse016f77f.(*cgoAllocMap).Free() + x.refe016f77f = nil } } -// NewPipelineVertexInputStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayModeParametersRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineVertexInputStateCreateInfoRef(ref unsafe.Pointer) *PipelineVertexInputStateCreateInfo { +func NewDisplayModeParametersRef(ref unsafe.Pointer) *DisplayModeParameters { if ref == nil { return nil } - obj := new(PipelineVertexInputStateCreateInfo) - obj.ref5fe4aa50 = (*C.VkPipelineVertexInputStateCreateInfo)(unsafe.Pointer(ref)) + obj := new(DisplayModeParameters) + obj.refe016f77f = (*C.VkDisplayModeParametersKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineVertexInputStateCreateInfo) PassRef() (*C.VkPipelineVertexInputStateCreateInfo, *cgoAllocMap) { +func (x *DisplayModeParameters) PassRef() (*C.VkDisplayModeParametersKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5fe4aa50 != nil { - return x.ref5fe4aa50, nil + } else if x.refe016f77f != nil { + return x.refe016f77f, nil } - mem5fe4aa50 := allocPipelineVertexInputStateCreateInfoMemory(1) - ref5fe4aa50 := (*C.VkPipelineVertexInputStateCreateInfo)(mem5fe4aa50) - allocs5fe4aa50 := new(cgoAllocMap) - allocs5fe4aa50.Add(mem5fe4aa50) - - var csType_allocs *cgoAllocMap - ref5fe4aa50.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5fe4aa50.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref5fe4aa50.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5fe4aa50.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref5fe4aa50.flags, cflags_allocs = (C.VkPipelineVertexInputStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocs5fe4aa50.Borrow(cflags_allocs) - - var cvertexBindingDescriptionCount_allocs *cgoAllocMap - ref5fe4aa50.vertexBindingDescriptionCount, cvertexBindingDescriptionCount_allocs = (C.uint32_t)(x.VertexBindingDescriptionCount), cgoAllocsUnknown - allocs5fe4aa50.Borrow(cvertexBindingDescriptionCount_allocs) - - var cpVertexBindingDescriptions_allocs *cgoAllocMap - ref5fe4aa50.pVertexBindingDescriptions, cpVertexBindingDescriptions_allocs = unpackSVertexInputBindingDescription(x.PVertexBindingDescriptions) - allocs5fe4aa50.Borrow(cpVertexBindingDescriptions_allocs) + meme016f77f := allocDisplayModeParametersMemory(1) + refe016f77f := (*C.VkDisplayModeParametersKHR)(meme016f77f) + allocse016f77f := new(cgoAllocMap) + allocse016f77f.Add(meme016f77f) - var cvertexAttributeDescriptionCount_allocs *cgoAllocMap - ref5fe4aa50.vertexAttributeDescriptionCount, cvertexAttributeDescriptionCount_allocs = (C.uint32_t)(x.VertexAttributeDescriptionCount), cgoAllocsUnknown - allocs5fe4aa50.Borrow(cvertexAttributeDescriptionCount_allocs) + var cvisibleRegion_allocs *cgoAllocMap + refe016f77f.visibleRegion, cvisibleRegion_allocs = x.VisibleRegion.PassValue() + allocse016f77f.Borrow(cvisibleRegion_allocs) - var cpVertexAttributeDescriptions_allocs *cgoAllocMap - ref5fe4aa50.pVertexAttributeDescriptions, cpVertexAttributeDescriptions_allocs = unpackSVertexInputAttributeDescription(x.PVertexAttributeDescriptions) - allocs5fe4aa50.Borrow(cpVertexAttributeDescriptions_allocs) + var crefreshRate_allocs *cgoAllocMap + refe016f77f.refreshRate, crefreshRate_allocs = (C.uint32_t)(x.RefreshRate), cgoAllocsUnknown + allocse016f77f.Borrow(crefreshRate_allocs) - x.ref5fe4aa50 = ref5fe4aa50 - x.allocs5fe4aa50 = allocs5fe4aa50 - return ref5fe4aa50, allocs5fe4aa50 + x.refe016f77f = refe016f77f + x.allocse016f77f = allocse016f77f + return refe016f77f, allocse016f77f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineVertexInputStateCreateInfo) PassValue() (C.VkPipelineVertexInputStateCreateInfo, *cgoAllocMap) { - if x.ref5fe4aa50 != nil { - return *x.ref5fe4aa50, nil +func (x DisplayModeParameters) PassValue() (C.VkDisplayModeParametersKHR, *cgoAllocMap) { + if x.refe016f77f != nil { + return *x.refe016f77f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6566,102 +33927,93 @@ func (x PipelineVertexInputStateCreateInfo) PassValue() (C.VkPipelineVertexInput // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineVertexInputStateCreateInfo) Deref() { - if x.ref5fe4aa50 == nil { +func (x *DisplayModeParameters) Deref() { + if x.refe016f77f == nil { return } - x.SType = (StructureType)(x.ref5fe4aa50.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5fe4aa50.pNext)) - x.Flags = (PipelineVertexInputStateCreateFlags)(x.ref5fe4aa50.flags) - x.VertexBindingDescriptionCount = (uint32)(x.ref5fe4aa50.vertexBindingDescriptionCount) - packSVertexInputBindingDescription(x.PVertexBindingDescriptions, x.ref5fe4aa50.pVertexBindingDescriptions) - x.VertexAttributeDescriptionCount = (uint32)(x.ref5fe4aa50.vertexAttributeDescriptionCount) - packSVertexInputAttributeDescription(x.PVertexAttributeDescriptions, x.ref5fe4aa50.pVertexAttributeDescriptions) + x.VisibleRegion = *NewExtent2DRef(unsafe.Pointer(&x.refe016f77f.visibleRegion)) + x.RefreshRate = (uint32)(x.refe016f77f.refreshRate) } -// allocPipelineInputAssemblyStateCreateInfoMemory allocates memory for type C.VkPipelineInputAssemblyStateCreateInfo in C. +// allocDisplayModeCreateInfoMemory allocates memory for type C.VkDisplayModeCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineInputAssemblyStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineInputAssemblyStateCreateInfoValue)) +func allocDisplayModeCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModeCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineInputAssemblyStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineInputAssemblyStateCreateInfo{}) +const sizeOfDisplayModeCreateInfoValue = unsafe.Sizeof([1]C.VkDisplayModeCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineInputAssemblyStateCreateInfo) Ref() *C.VkPipelineInputAssemblyStateCreateInfo { +func (x *DisplayModeCreateInfo) Ref() *C.VkDisplayModeCreateInfoKHR { if x == nil { return nil } - return x.ref22e1691d + return x.ref392fca31 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineInputAssemblyStateCreateInfo) Free() { - if x != nil && x.allocs22e1691d != nil { - x.allocs22e1691d.(*cgoAllocMap).Free() - x.ref22e1691d = nil +func (x *DisplayModeCreateInfo) Free() { + if x != nil && x.allocs392fca31 != nil { + x.allocs392fca31.(*cgoAllocMap).Free() + x.ref392fca31 = nil } } -// NewPipelineInputAssemblyStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayModeCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineInputAssemblyStateCreateInfoRef(ref unsafe.Pointer) *PipelineInputAssemblyStateCreateInfo { +func NewDisplayModeCreateInfoRef(ref unsafe.Pointer) *DisplayModeCreateInfo { if ref == nil { return nil } - obj := new(PipelineInputAssemblyStateCreateInfo) - obj.ref22e1691d = (*C.VkPipelineInputAssemblyStateCreateInfo)(unsafe.Pointer(ref)) + obj := new(DisplayModeCreateInfo) + obj.ref392fca31 = (*C.VkDisplayModeCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineInputAssemblyStateCreateInfo) PassRef() (*C.VkPipelineInputAssemblyStateCreateInfo, *cgoAllocMap) { +func (x *DisplayModeCreateInfo) PassRef() (*C.VkDisplayModeCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref22e1691d != nil { - return x.ref22e1691d, nil + } else if x.ref392fca31 != nil { + return x.ref392fca31, nil } - mem22e1691d := allocPipelineInputAssemblyStateCreateInfoMemory(1) - ref22e1691d := (*C.VkPipelineInputAssemblyStateCreateInfo)(mem22e1691d) - allocs22e1691d := new(cgoAllocMap) - allocs22e1691d.Add(mem22e1691d) + mem392fca31 := allocDisplayModeCreateInfoMemory(1) + ref392fca31 := (*C.VkDisplayModeCreateInfoKHR)(mem392fca31) + allocs392fca31 := new(cgoAllocMap) + allocs392fca31.Add(mem392fca31) var csType_allocs *cgoAllocMap - ref22e1691d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs22e1691d.Borrow(csType_allocs) + ref392fca31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs392fca31.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref22e1691d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs22e1691d.Borrow(cpNext_allocs) + ref392fca31.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs392fca31.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - ref22e1691d.flags, cflags_allocs = (C.VkPipelineInputAssemblyStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocs22e1691d.Borrow(cflags_allocs) - - var ctopology_allocs *cgoAllocMap - ref22e1691d.topology, ctopology_allocs = (C.VkPrimitiveTopology)(x.Topology), cgoAllocsUnknown - allocs22e1691d.Borrow(ctopology_allocs) + ref392fca31.flags, cflags_allocs = (C.VkDisplayModeCreateFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs392fca31.Borrow(cflags_allocs) - var cprimitiveRestartEnable_allocs *cgoAllocMap - ref22e1691d.primitiveRestartEnable, cprimitiveRestartEnable_allocs = (C.VkBool32)(x.PrimitiveRestartEnable), cgoAllocsUnknown - allocs22e1691d.Borrow(cprimitiveRestartEnable_allocs) + var cparameters_allocs *cgoAllocMap + ref392fca31.parameters, cparameters_allocs = x.Parameters.PassValue() + allocs392fca31.Borrow(cparameters_allocs) - x.ref22e1691d = ref22e1691d - x.allocs22e1691d = allocs22e1691d - return ref22e1691d, allocs22e1691d + x.ref392fca31 = ref392fca31 + x.allocs392fca31 = allocs392fca31 + return ref392fca31, allocs392fca31 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineInputAssemblyStateCreateInfo) PassValue() (C.VkPipelineInputAssemblyStateCreateInfo, *cgoAllocMap) { - if x.ref22e1691d != nil { - return *x.ref22e1691d, nil +func (x DisplayModeCreateInfo) PassValue() (C.VkDisplayModeCreateInfoKHR, *cgoAllocMap) { + if x.ref392fca31 != nil { + return *x.ref392fca31, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6669,96 +34021,87 @@ func (x PipelineInputAssemblyStateCreateInfo) PassValue() (C.VkPipelineInputAsse // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineInputAssemblyStateCreateInfo) Deref() { - if x.ref22e1691d == nil { +func (x *DisplayModeCreateInfo) Deref() { + if x.ref392fca31 == nil { return } - x.SType = (StructureType)(x.ref22e1691d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref22e1691d.pNext)) - x.Flags = (PipelineInputAssemblyStateCreateFlags)(x.ref22e1691d.flags) - x.Topology = (PrimitiveTopology)(x.ref22e1691d.topology) - x.PrimitiveRestartEnable = (Bool32)(x.ref22e1691d.primitiveRestartEnable) + x.SType = (StructureType)(x.ref392fca31.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref392fca31.pNext)) + x.Flags = (DisplayModeCreateFlags)(x.ref392fca31.flags) + x.Parameters = *NewDisplayModeParametersRef(unsafe.Pointer(&x.ref392fca31.parameters)) } -// allocPipelineTessellationStateCreateInfoMemory allocates memory for type C.VkPipelineTessellationStateCreateInfo in C. +// allocDisplayModePropertiesMemory allocates memory for type C.VkDisplayModePropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineTessellationStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineTessellationStateCreateInfoValue)) +func allocDisplayModePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModePropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineTessellationStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineTessellationStateCreateInfo{}) +const sizeOfDisplayModePropertiesValue = unsafe.Sizeof([1]C.VkDisplayModePropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineTessellationStateCreateInfo) Ref() *C.VkPipelineTessellationStateCreateInfo { +func (x *DisplayModeProperties) Ref() *C.VkDisplayModePropertiesKHR { if x == nil { return nil } - return x.ref4ef3997a + return x.ref5e3abaaa } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineTessellationStateCreateInfo) Free() { - if x != nil && x.allocs4ef3997a != nil { - x.allocs4ef3997a.(*cgoAllocMap).Free() - x.ref4ef3997a = nil +func (x *DisplayModeProperties) Free() { + if x != nil && x.allocs5e3abaaa != nil { + x.allocs5e3abaaa.(*cgoAllocMap).Free() + x.ref5e3abaaa = nil } } -// NewPipelineTessellationStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayModePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineTessellationStateCreateInfoRef(ref unsafe.Pointer) *PipelineTessellationStateCreateInfo { +func NewDisplayModePropertiesRef(ref unsafe.Pointer) *DisplayModeProperties { if ref == nil { return nil } - obj := new(PipelineTessellationStateCreateInfo) - obj.ref4ef3997a = (*C.VkPipelineTessellationStateCreateInfo)(unsafe.Pointer(ref)) + obj := new(DisplayModeProperties) + obj.ref5e3abaaa = (*C.VkDisplayModePropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineTessellationStateCreateInfo) PassRef() (*C.VkPipelineTessellationStateCreateInfo, *cgoAllocMap) { +func (x *DisplayModeProperties) PassRef() (*C.VkDisplayModePropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4ef3997a != nil { - return x.ref4ef3997a, nil + } else if x.ref5e3abaaa != nil { + return x.ref5e3abaaa, nil } - mem4ef3997a := allocPipelineTessellationStateCreateInfoMemory(1) - ref4ef3997a := (*C.VkPipelineTessellationStateCreateInfo)(mem4ef3997a) - allocs4ef3997a := new(cgoAllocMap) - allocs4ef3997a.Add(mem4ef3997a) - - var csType_allocs *cgoAllocMap - ref4ef3997a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4ef3997a.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref4ef3997a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs4ef3997a.Borrow(cpNext_allocs) + mem5e3abaaa := allocDisplayModePropertiesMemory(1) + ref5e3abaaa := (*C.VkDisplayModePropertiesKHR)(mem5e3abaaa) + allocs5e3abaaa := new(cgoAllocMap) + allocs5e3abaaa.Add(mem5e3abaaa) - var cflags_allocs *cgoAllocMap - ref4ef3997a.flags, cflags_allocs = (C.VkPipelineTessellationStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocs4ef3997a.Borrow(cflags_allocs) + var cdisplayMode_allocs *cgoAllocMap + ref5e3abaaa.displayMode, cdisplayMode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.DisplayMode)), cgoAllocsUnknown + allocs5e3abaaa.Borrow(cdisplayMode_allocs) - var cpatchControlPoints_allocs *cgoAllocMap - ref4ef3997a.patchControlPoints, cpatchControlPoints_allocs = (C.uint32_t)(x.PatchControlPoints), cgoAllocsUnknown - allocs4ef3997a.Borrow(cpatchControlPoints_allocs) + var cparameters_allocs *cgoAllocMap + ref5e3abaaa.parameters, cparameters_allocs = x.Parameters.PassValue() + allocs5e3abaaa.Borrow(cparameters_allocs) - x.ref4ef3997a = ref4ef3997a - x.allocs4ef3997a = allocs4ef3997a - return ref4ef3997a, allocs4ef3997a + x.ref5e3abaaa = ref5e3abaaa + x.allocs5e3abaaa = allocs5e3abaaa + return ref5e3abaaa, allocs5e3abaaa } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineTessellationStateCreateInfo) PassValue() (C.VkPipelineTessellationStateCreateInfo, *cgoAllocMap) { - if x.ref4ef3997a != nil { - return *x.ref4ef3997a, nil +func (x DisplayModeProperties) PassValue() (C.VkDisplayModePropertiesKHR, *cgoAllocMap) { + if x.ref5e3abaaa != nil { + return *x.ref5e3abaaa, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6766,103 +34109,113 @@ func (x PipelineTessellationStateCreateInfo) PassValue() (C.VkPipelineTessellati // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineTessellationStateCreateInfo) Deref() { - if x.ref4ef3997a == nil { +func (x *DisplayModeProperties) Deref() { + if x.ref5e3abaaa == nil { return } - x.SType = (StructureType)(x.ref4ef3997a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4ef3997a.pNext)) - x.Flags = (PipelineTessellationStateCreateFlags)(x.ref4ef3997a.flags) - x.PatchControlPoints = (uint32)(x.ref4ef3997a.patchControlPoints) + x.DisplayMode = *(*DisplayMode)(unsafe.Pointer(&x.ref5e3abaaa.displayMode)) + x.Parameters = *NewDisplayModeParametersRef(unsafe.Pointer(&x.ref5e3abaaa.parameters)) } -// allocViewportMemory allocates memory for type C.VkViewport in C. +// allocDisplayPlaneCapabilitiesMemory allocates memory for type C.VkDisplayPlaneCapabilitiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocViewportMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfViewportValue)) +func allocDisplayPlaneCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneCapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfViewportValue = unsafe.Sizeof([1]C.VkViewport{}) +const sizeOfDisplayPlaneCapabilitiesValue = unsafe.Sizeof([1]C.VkDisplayPlaneCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Viewport) Ref() *C.VkViewport { +func (x *DisplayPlaneCapabilities) Ref() *C.VkDisplayPlaneCapabilitiesKHR { if x == nil { return nil } - return x.ref75cf5291 + return x.ref6f31fcaf } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *Viewport) Free() { - if x != nil && x.allocs75cf5291 != nil { - x.allocs75cf5291.(*cgoAllocMap).Free() - x.ref75cf5291 = nil +func (x *DisplayPlaneCapabilities) Free() { + if x != nil && x.allocs6f31fcaf != nil { + x.allocs6f31fcaf.(*cgoAllocMap).Free() + x.ref6f31fcaf = nil } } -// NewViewportRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayPlaneCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewViewportRef(ref unsafe.Pointer) *Viewport { +func NewDisplayPlaneCapabilitiesRef(ref unsafe.Pointer) *DisplayPlaneCapabilities { if ref == nil { return nil } - obj := new(Viewport) - obj.ref75cf5291 = (*C.VkViewport)(unsafe.Pointer(ref)) + obj := new(DisplayPlaneCapabilities) + obj.ref6f31fcaf = (*C.VkDisplayPlaneCapabilitiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *Viewport) PassRef() (*C.VkViewport, *cgoAllocMap) { +func (x *DisplayPlaneCapabilities) PassRef() (*C.VkDisplayPlaneCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref75cf5291 != nil { - return x.ref75cf5291, nil + } else if x.ref6f31fcaf != nil { + return x.ref6f31fcaf, nil } - mem75cf5291 := allocViewportMemory(1) - ref75cf5291 := (*C.VkViewport)(mem75cf5291) - allocs75cf5291 := new(cgoAllocMap) - allocs75cf5291.Add(mem75cf5291) + mem6f31fcaf := allocDisplayPlaneCapabilitiesMemory(1) + ref6f31fcaf := (*C.VkDisplayPlaneCapabilitiesKHR)(mem6f31fcaf) + allocs6f31fcaf := new(cgoAllocMap) + allocs6f31fcaf.Add(mem6f31fcaf) - var cx_allocs *cgoAllocMap - ref75cf5291.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown - allocs75cf5291.Borrow(cx_allocs) + var csupportedAlpha_allocs *cgoAllocMap + ref6f31fcaf.supportedAlpha, csupportedAlpha_allocs = (C.VkDisplayPlaneAlphaFlagsKHR)(x.SupportedAlpha), cgoAllocsUnknown + allocs6f31fcaf.Borrow(csupportedAlpha_allocs) - var cy_allocs *cgoAllocMap - ref75cf5291.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown - allocs75cf5291.Borrow(cy_allocs) + var cminSrcPosition_allocs *cgoAllocMap + ref6f31fcaf.minSrcPosition, cminSrcPosition_allocs = x.MinSrcPosition.PassValue() + allocs6f31fcaf.Borrow(cminSrcPosition_allocs) - var cwidth_allocs *cgoAllocMap - ref75cf5291.width, cwidth_allocs = (C.float)(x.Width), cgoAllocsUnknown - allocs75cf5291.Borrow(cwidth_allocs) + var cmaxSrcPosition_allocs *cgoAllocMap + ref6f31fcaf.maxSrcPosition, cmaxSrcPosition_allocs = x.MaxSrcPosition.PassValue() + allocs6f31fcaf.Borrow(cmaxSrcPosition_allocs) - var cheight_allocs *cgoAllocMap - ref75cf5291.height, cheight_allocs = (C.float)(x.Height), cgoAllocsUnknown - allocs75cf5291.Borrow(cheight_allocs) + var cminSrcExtent_allocs *cgoAllocMap + ref6f31fcaf.minSrcExtent, cminSrcExtent_allocs = x.MinSrcExtent.PassValue() + allocs6f31fcaf.Borrow(cminSrcExtent_allocs) - var cminDepth_allocs *cgoAllocMap - ref75cf5291.minDepth, cminDepth_allocs = (C.float)(x.MinDepth), cgoAllocsUnknown - allocs75cf5291.Borrow(cminDepth_allocs) + var cmaxSrcExtent_allocs *cgoAllocMap + ref6f31fcaf.maxSrcExtent, cmaxSrcExtent_allocs = x.MaxSrcExtent.PassValue() + allocs6f31fcaf.Borrow(cmaxSrcExtent_allocs) - var cmaxDepth_allocs *cgoAllocMap - ref75cf5291.maxDepth, cmaxDepth_allocs = (C.float)(x.MaxDepth), cgoAllocsUnknown - allocs75cf5291.Borrow(cmaxDepth_allocs) + var cminDstPosition_allocs *cgoAllocMap + ref6f31fcaf.minDstPosition, cminDstPosition_allocs = x.MinDstPosition.PassValue() + allocs6f31fcaf.Borrow(cminDstPosition_allocs) - x.ref75cf5291 = ref75cf5291 - x.allocs75cf5291 = allocs75cf5291 - return ref75cf5291, allocs75cf5291 + var cmaxDstPosition_allocs *cgoAllocMap + ref6f31fcaf.maxDstPosition, cmaxDstPosition_allocs = x.MaxDstPosition.PassValue() + allocs6f31fcaf.Borrow(cmaxDstPosition_allocs) + + var cminDstExtent_allocs *cgoAllocMap + ref6f31fcaf.minDstExtent, cminDstExtent_allocs = x.MinDstExtent.PassValue() + allocs6f31fcaf.Borrow(cminDstExtent_allocs) + + var cmaxDstExtent_allocs *cgoAllocMap + ref6f31fcaf.maxDstExtent, cmaxDstExtent_allocs = x.MaxDstExtent.PassValue() + allocs6f31fcaf.Borrow(cmaxDstExtent_allocs) + + x.ref6f31fcaf = ref6f31fcaf + x.allocs6f31fcaf = allocs6f31fcaf + return ref6f31fcaf, allocs6f31fcaf } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x Viewport) PassValue() (C.VkViewport, *cgoAllocMap) { - if x.ref75cf5291 != nil { - return *x.ref75cf5291, nil +func (x DisplayPlaneCapabilities) PassValue() (C.VkDisplayPlaneCapabilitiesKHR, *cgoAllocMap) { + if x.ref6f31fcaf != nil { + return *x.ref6f31fcaf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6870,89 +34223,92 @@ func (x Viewport) PassValue() (C.VkViewport, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *Viewport) Deref() { - if x.ref75cf5291 == nil { +func (x *DisplayPlaneCapabilities) Deref() { + if x.ref6f31fcaf == nil { return } - x.X = (float32)(x.ref75cf5291.x) - x.Y = (float32)(x.ref75cf5291.y) - x.Width = (float32)(x.ref75cf5291.width) - x.Height = (float32)(x.ref75cf5291.height) - x.MinDepth = (float32)(x.ref75cf5291.minDepth) - x.MaxDepth = (float32)(x.ref75cf5291.maxDepth) + x.SupportedAlpha = (DisplayPlaneAlphaFlags)(x.ref6f31fcaf.supportedAlpha) + x.MinSrcPosition = *NewOffset2DRef(unsafe.Pointer(&x.ref6f31fcaf.minSrcPosition)) + x.MaxSrcPosition = *NewOffset2DRef(unsafe.Pointer(&x.ref6f31fcaf.maxSrcPosition)) + x.MinSrcExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref6f31fcaf.minSrcExtent)) + x.MaxSrcExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref6f31fcaf.maxSrcExtent)) + x.MinDstPosition = *NewOffset2DRef(unsafe.Pointer(&x.ref6f31fcaf.minDstPosition)) + x.MaxDstPosition = *NewOffset2DRef(unsafe.Pointer(&x.ref6f31fcaf.maxDstPosition)) + x.MinDstExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref6f31fcaf.minDstExtent)) + x.MaxDstExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref6f31fcaf.maxDstExtent)) } -// allocOffset2DMemory allocates memory for type C.VkOffset2D in C. +// allocDisplayPlanePropertiesMemory allocates memory for type C.VkDisplayPlanePropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocOffset2DMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfOffset2DValue)) +func allocDisplayPlanePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlanePropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfOffset2DValue = unsafe.Sizeof([1]C.VkOffset2D{}) +const sizeOfDisplayPlanePropertiesValue = unsafe.Sizeof([1]C.VkDisplayPlanePropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Offset2D) Ref() *C.VkOffset2D { +func (x *DisplayPlaneProperties) Ref() *C.VkDisplayPlanePropertiesKHR { if x == nil { return nil } - return x.ref32734883 + return x.refce3db3f6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *Offset2D) Free() { - if x != nil && x.allocs32734883 != nil { - x.allocs32734883.(*cgoAllocMap).Free() - x.ref32734883 = nil +func (x *DisplayPlaneProperties) Free() { + if x != nil && x.allocsce3db3f6 != nil { + x.allocsce3db3f6.(*cgoAllocMap).Free() + x.refce3db3f6 = nil } } -// NewOffset2DRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayPlanePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewOffset2DRef(ref unsafe.Pointer) *Offset2D { +func NewDisplayPlanePropertiesRef(ref unsafe.Pointer) *DisplayPlaneProperties { if ref == nil { return nil } - obj := new(Offset2D) - obj.ref32734883 = (*C.VkOffset2D)(unsafe.Pointer(ref)) + obj := new(DisplayPlaneProperties) + obj.refce3db3f6 = (*C.VkDisplayPlanePropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *Offset2D) PassRef() (*C.VkOffset2D, *cgoAllocMap) { +func (x *DisplayPlaneProperties) PassRef() (*C.VkDisplayPlanePropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref32734883 != nil { - return x.ref32734883, nil + } else if x.refce3db3f6 != nil { + return x.refce3db3f6, nil } - mem32734883 := allocOffset2DMemory(1) - ref32734883 := (*C.VkOffset2D)(mem32734883) - allocs32734883 := new(cgoAllocMap) - allocs32734883.Add(mem32734883) + memce3db3f6 := allocDisplayPlanePropertiesMemory(1) + refce3db3f6 := (*C.VkDisplayPlanePropertiesKHR)(memce3db3f6) + allocsce3db3f6 := new(cgoAllocMap) + allocsce3db3f6.Add(memce3db3f6) - var cx_allocs *cgoAllocMap - ref32734883.x, cx_allocs = (C.int32_t)(x.X), cgoAllocsUnknown - allocs32734883.Borrow(cx_allocs) + var ccurrentDisplay_allocs *cgoAllocMap + refce3db3f6.currentDisplay, ccurrentDisplay_allocs = *(*C.VkDisplayKHR)(unsafe.Pointer(&x.CurrentDisplay)), cgoAllocsUnknown + allocsce3db3f6.Borrow(ccurrentDisplay_allocs) - var cy_allocs *cgoAllocMap - ref32734883.y, cy_allocs = (C.int32_t)(x.Y), cgoAllocsUnknown - allocs32734883.Borrow(cy_allocs) + var ccurrentStackIndex_allocs *cgoAllocMap + refce3db3f6.currentStackIndex, ccurrentStackIndex_allocs = (C.uint32_t)(x.CurrentStackIndex), cgoAllocsUnknown + allocsce3db3f6.Borrow(ccurrentStackIndex_allocs) - x.ref32734883 = ref32734883 - x.allocs32734883 = allocs32734883 - return ref32734883, allocs32734883 + x.refce3db3f6 = refce3db3f6 + x.allocsce3db3f6 = allocsce3db3f6 + return refce3db3f6, allocsce3db3f6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x Offset2D) PassValue() (C.VkOffset2D, *cgoAllocMap) { - if x.ref32734883 != nil { - return *x.ref32734883, nil +func (x DisplayPlaneProperties) PassValue() (C.VkDisplayPlanePropertiesKHR, *cgoAllocMap) { + if x.refce3db3f6 != nil { + return *x.refce3db3f6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -6960,85 +34316,105 @@ func (x Offset2D) PassValue() (C.VkOffset2D, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *Offset2D) Deref() { - if x.ref32734883 == nil { +func (x *DisplayPlaneProperties) Deref() { + if x.refce3db3f6 == nil { return } - x.X = (int32)(x.ref32734883.x) - x.Y = (int32)(x.ref32734883.y) + x.CurrentDisplay = *(*Display)(unsafe.Pointer(&x.refce3db3f6.currentDisplay)) + x.CurrentStackIndex = (uint32)(x.refce3db3f6.currentStackIndex) } -// allocExtent2DMemory allocates memory for type C.VkExtent2D in C. +// allocDisplayPropertiesMemory allocates memory for type C.VkDisplayPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocExtent2DMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExtent2DValue)) +func allocDisplayPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExtent2DValue = unsafe.Sizeof([1]C.VkExtent2D{}) +const sizeOfDisplayPropertiesValue = unsafe.Sizeof([1]C.VkDisplayPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Extent2D) Ref() *C.VkExtent2D { +func (x *DisplayProperties) Ref() *C.VkDisplayPropertiesKHR { if x == nil { return nil } - return x.refe2edf56b + return x.reffe2a7187 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *Extent2D) Free() { - if x != nil && x.allocse2edf56b != nil { - x.allocse2edf56b.(*cgoAllocMap).Free() - x.refe2edf56b = nil +func (x *DisplayProperties) Free() { + if x != nil && x.allocsfe2a7187 != nil { + x.allocsfe2a7187.(*cgoAllocMap).Free() + x.reffe2a7187 = nil } } -// NewExtent2DRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExtent2DRef(ref unsafe.Pointer) *Extent2D { +func NewDisplayPropertiesRef(ref unsafe.Pointer) *DisplayProperties { if ref == nil { return nil } - obj := new(Extent2D) - obj.refe2edf56b = (*C.VkExtent2D)(unsafe.Pointer(ref)) + obj := new(DisplayProperties) + obj.reffe2a7187 = (*C.VkDisplayPropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *Extent2D) PassRef() (*C.VkExtent2D, *cgoAllocMap) { +func (x *DisplayProperties) PassRef() (*C.VkDisplayPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe2edf56b != nil { - return x.refe2edf56b, nil + } else if x.reffe2a7187 != nil { + return x.reffe2a7187, nil } - meme2edf56b := allocExtent2DMemory(1) - refe2edf56b := (*C.VkExtent2D)(meme2edf56b) - allocse2edf56b := new(cgoAllocMap) - allocse2edf56b.Add(meme2edf56b) + memfe2a7187 := allocDisplayPropertiesMemory(1) + reffe2a7187 := (*C.VkDisplayPropertiesKHR)(memfe2a7187) + allocsfe2a7187 := new(cgoAllocMap) + allocsfe2a7187.Add(memfe2a7187) - var cwidth_allocs *cgoAllocMap - refe2edf56b.width, cwidth_allocs = (C.uint32_t)(x.Width), cgoAllocsUnknown - allocse2edf56b.Borrow(cwidth_allocs) + var cdisplay_allocs *cgoAllocMap + reffe2a7187.display, cdisplay_allocs = *(*C.VkDisplayKHR)(unsafe.Pointer(&x.Display)), cgoAllocsUnknown + allocsfe2a7187.Borrow(cdisplay_allocs) - var cheight_allocs *cgoAllocMap - refe2edf56b.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown - allocse2edf56b.Borrow(cheight_allocs) + var cdisplayName_allocs *cgoAllocMap + reffe2a7187.displayName, cdisplayName_allocs = unpackPCharString(x.DisplayName) + allocsfe2a7187.Borrow(cdisplayName_allocs) - x.refe2edf56b = refe2edf56b - x.allocse2edf56b = allocse2edf56b - return refe2edf56b, allocse2edf56b + var cphysicalDimensions_allocs *cgoAllocMap + reffe2a7187.physicalDimensions, cphysicalDimensions_allocs = x.PhysicalDimensions.PassValue() + allocsfe2a7187.Borrow(cphysicalDimensions_allocs) + + var cphysicalResolution_allocs *cgoAllocMap + reffe2a7187.physicalResolution, cphysicalResolution_allocs = x.PhysicalResolution.PassValue() + allocsfe2a7187.Borrow(cphysicalResolution_allocs) + + var csupportedTransforms_allocs *cgoAllocMap + reffe2a7187.supportedTransforms, csupportedTransforms_allocs = (C.VkSurfaceTransformFlagsKHR)(x.SupportedTransforms), cgoAllocsUnknown + allocsfe2a7187.Borrow(csupportedTransforms_allocs) + + var cplaneReorderPossible_allocs *cgoAllocMap + reffe2a7187.planeReorderPossible, cplaneReorderPossible_allocs = (C.VkBool32)(x.PlaneReorderPossible), cgoAllocsUnknown + allocsfe2a7187.Borrow(cplaneReorderPossible_allocs) + + var cpersistentContent_allocs *cgoAllocMap + reffe2a7187.persistentContent, cpersistentContent_allocs = (C.VkBool32)(x.PersistentContent), cgoAllocsUnknown + allocsfe2a7187.Borrow(cpersistentContent_allocs) + + x.reffe2a7187 = reffe2a7187 + x.allocsfe2a7187 = allocsfe2a7187 + return reffe2a7187, allocsfe2a7187 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x Extent2D) PassValue() (C.VkExtent2D, *cgoAllocMap) { - if x.refe2edf56b != nil { - return *x.refe2edf56b, nil +func (x DisplayProperties) PassValue() (C.VkDisplayPropertiesKHR, *cgoAllocMap) { + if x.reffe2a7187 != nil { + return *x.reffe2a7187, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7046,85 +34422,122 @@ func (x Extent2D) PassValue() (C.VkExtent2D, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *Extent2D) Deref() { - if x.refe2edf56b == nil { +func (x *DisplayProperties) Deref() { + if x.reffe2a7187 == nil { return } - x.Width = (uint32)(x.refe2edf56b.width) - x.Height = (uint32)(x.refe2edf56b.height) + x.Display = *(*Display)(unsafe.Pointer(&x.reffe2a7187.display)) + x.DisplayName = packPCharString(x.reffe2a7187.displayName) + x.PhysicalDimensions = *NewExtent2DRef(unsafe.Pointer(&x.reffe2a7187.physicalDimensions)) + x.PhysicalResolution = *NewExtent2DRef(unsafe.Pointer(&x.reffe2a7187.physicalResolution)) + x.SupportedTransforms = (SurfaceTransformFlags)(x.reffe2a7187.supportedTransforms) + x.PlaneReorderPossible = (Bool32)(x.reffe2a7187.planeReorderPossible) + x.PersistentContent = (Bool32)(x.reffe2a7187.persistentContent) } -// allocRect2DMemory allocates memory for type C.VkRect2D in C. +// allocDisplaySurfaceCreateInfoMemory allocates memory for type C.VkDisplaySurfaceCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocRect2DMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRect2DValue)) +func allocDisplaySurfaceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplaySurfaceCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfRect2DValue = unsafe.Sizeof([1]C.VkRect2D{}) +const sizeOfDisplaySurfaceCreateInfoValue = unsafe.Sizeof([1]C.VkDisplaySurfaceCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *Rect2D) Ref() *C.VkRect2D { +func (x *DisplaySurfaceCreateInfo) Ref() *C.VkDisplaySurfaceCreateInfoKHR { if x == nil { return nil } - return x.ref89e4256f + return x.ref58445c35 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *Rect2D) Free() { - if x != nil && x.allocs89e4256f != nil { - x.allocs89e4256f.(*cgoAllocMap).Free() - x.ref89e4256f = nil +func (x *DisplaySurfaceCreateInfo) Free() { + if x != nil && x.allocs58445c35 != nil { + x.allocs58445c35.(*cgoAllocMap).Free() + x.ref58445c35 = nil } } -// NewRect2DRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplaySurfaceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewRect2DRef(ref unsafe.Pointer) *Rect2D { +func NewDisplaySurfaceCreateInfoRef(ref unsafe.Pointer) *DisplaySurfaceCreateInfo { if ref == nil { return nil } - obj := new(Rect2D) - obj.ref89e4256f = (*C.VkRect2D)(unsafe.Pointer(ref)) + obj := new(DisplaySurfaceCreateInfo) + obj.ref58445c35 = (*C.VkDisplaySurfaceCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *Rect2D) PassRef() (*C.VkRect2D, *cgoAllocMap) { +func (x *DisplaySurfaceCreateInfo) PassRef() (*C.VkDisplaySurfaceCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref89e4256f != nil { - return x.ref89e4256f, nil + } else if x.ref58445c35 != nil { + return x.ref58445c35, nil } - mem89e4256f := allocRect2DMemory(1) - ref89e4256f := (*C.VkRect2D)(mem89e4256f) - allocs89e4256f := new(cgoAllocMap) - allocs89e4256f.Add(mem89e4256f) + mem58445c35 := allocDisplaySurfaceCreateInfoMemory(1) + ref58445c35 := (*C.VkDisplaySurfaceCreateInfoKHR)(mem58445c35) + allocs58445c35 := new(cgoAllocMap) + allocs58445c35.Add(mem58445c35) - var coffset_allocs *cgoAllocMap - ref89e4256f.offset, coffset_allocs = x.Offset.PassValue() - allocs89e4256f.Borrow(coffset_allocs) + var csType_allocs *cgoAllocMap + ref58445c35.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs58445c35.Borrow(csType_allocs) - var cextent_allocs *cgoAllocMap - ref89e4256f.extent, cextent_allocs = x.Extent.PassValue() - allocs89e4256f.Borrow(cextent_allocs) + var cpNext_allocs *cgoAllocMap + ref58445c35.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs58445c35.Borrow(cpNext_allocs) - x.ref89e4256f = ref89e4256f - x.allocs89e4256f = allocs89e4256f - return ref89e4256f, allocs89e4256f + var cflags_allocs *cgoAllocMap + ref58445c35.flags, cflags_allocs = (C.VkDisplaySurfaceCreateFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs58445c35.Borrow(cflags_allocs) + + var cdisplayMode_allocs *cgoAllocMap + ref58445c35.displayMode, cdisplayMode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.DisplayMode)), cgoAllocsUnknown + allocs58445c35.Borrow(cdisplayMode_allocs) + + var cplaneIndex_allocs *cgoAllocMap + ref58445c35.planeIndex, cplaneIndex_allocs = (C.uint32_t)(x.PlaneIndex), cgoAllocsUnknown + allocs58445c35.Borrow(cplaneIndex_allocs) + + var cplaneStackIndex_allocs *cgoAllocMap + ref58445c35.planeStackIndex, cplaneStackIndex_allocs = (C.uint32_t)(x.PlaneStackIndex), cgoAllocsUnknown + allocs58445c35.Borrow(cplaneStackIndex_allocs) + + var ctransform_allocs *cgoAllocMap + ref58445c35.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown + allocs58445c35.Borrow(ctransform_allocs) + + var cglobalAlpha_allocs *cgoAllocMap + ref58445c35.globalAlpha, cglobalAlpha_allocs = (C.float)(x.GlobalAlpha), cgoAllocsUnknown + allocs58445c35.Borrow(cglobalAlpha_allocs) + + var calphaMode_allocs *cgoAllocMap + ref58445c35.alphaMode, calphaMode_allocs = (C.VkDisplayPlaneAlphaFlagBitsKHR)(x.AlphaMode), cgoAllocsUnknown + allocs58445c35.Borrow(calphaMode_allocs) + + var cimageExtent_allocs *cgoAllocMap + ref58445c35.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() + allocs58445c35.Borrow(cimageExtent_allocs) + + x.ref58445c35 = ref58445c35 + x.allocs58445c35 = allocs58445c35 + return ref58445c35, allocs58445c35 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x Rect2D) PassValue() (C.VkRect2D, *cgoAllocMap) { - if x.ref89e4256f != nil { - return *x.ref89e4256f, nil +func (x DisplaySurfaceCreateInfo) PassValue() (C.VkDisplaySurfaceCreateInfoKHR, *cgoAllocMap) { + if x.ref58445c35 != nil { + return *x.ref58445c35, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7132,181 +34545,105 @@ func (x Rect2D) PassValue() (C.VkRect2D, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *Rect2D) Deref() { - if x.ref89e4256f == nil { +func (x *DisplaySurfaceCreateInfo) Deref() { + if x.ref58445c35 == nil { return } - x.Offset = *NewOffset2DRef(unsafe.Pointer(&x.ref89e4256f.offset)) - x.Extent = *NewExtent2DRef(unsafe.Pointer(&x.ref89e4256f.extent)) + x.SType = (StructureType)(x.ref58445c35.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref58445c35.pNext)) + x.Flags = (DisplaySurfaceCreateFlags)(x.ref58445c35.flags) + x.DisplayMode = *(*DisplayMode)(unsafe.Pointer(&x.ref58445c35.displayMode)) + x.PlaneIndex = (uint32)(x.ref58445c35.planeIndex) + x.PlaneStackIndex = (uint32)(x.ref58445c35.planeStackIndex) + x.Transform = (SurfaceTransformFlagBits)(x.ref58445c35.transform) + x.GlobalAlpha = (float32)(x.ref58445c35.globalAlpha) + x.AlphaMode = (DisplayPlaneAlphaFlagBits)(x.ref58445c35.alphaMode) + x.ImageExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref58445c35.imageExtent)) } -// allocPipelineViewportStateCreateInfoMemory allocates memory for type C.VkPipelineViewportStateCreateInfo in C. +// allocDisplayPresentInfoMemory allocates memory for type C.VkDisplayPresentInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineViewportStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportStateCreateInfoValue)) +func allocDisplayPresentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPresentInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineViewportStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineViewportStateCreateInfo{}) - -// unpackSViewport transforms a sliced Go data structure into plain C format. -func unpackSViewport(x []Viewport) (unpacked *C.VkViewport, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkViewport) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocViewportMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkViewport)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkViewport)(h.Data) - return -} - -// unpackSRect2D transforms a sliced Go data structure into plain C format. -func unpackSRect2D(x []Rect2D) (unpacked *C.VkRect2D, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkRect2D) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocRect2DMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkRect2D)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkRect2D)(h.Data) - return -} - -// packSViewport reads sliced Go data structure out from plain C format. -func packSViewport(v []Viewport, ptr0 *C.VkViewport) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfViewportValue]C.VkViewport)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewViewportRef(unsafe.Pointer(&ptr1)) - } -} - -// packSRect2D reads sliced Go data structure out from plain C format. -func packSRect2D(v []Rect2D, ptr0 *C.VkRect2D) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfRect2DValue]C.VkRect2D)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewRect2DRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfDisplayPresentInfoValue = unsafe.Sizeof([1]C.VkDisplayPresentInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportStateCreateInfo) Ref() *C.VkPipelineViewportStateCreateInfo { +func (x *DisplayPresentInfo) Ref() *C.VkDisplayPresentInfoKHR { if x == nil { return nil } - return x.refc4705791 + return x.ref8d2571e4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineViewportStateCreateInfo) Free() { - if x != nil && x.allocsc4705791 != nil { - x.allocsc4705791.(*cgoAllocMap).Free() - x.refc4705791 = nil +func (x *DisplayPresentInfo) Free() { + if x != nil && x.allocs8d2571e4 != nil { + x.allocs8d2571e4.(*cgoAllocMap).Free() + x.ref8d2571e4 = nil } } -// NewPipelineViewportStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayPresentInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineViewportStateCreateInfoRef(ref unsafe.Pointer) *PipelineViewportStateCreateInfo { +func NewDisplayPresentInfoRef(ref unsafe.Pointer) *DisplayPresentInfo { if ref == nil { return nil } - obj := new(PipelineViewportStateCreateInfo) - obj.refc4705791 = (*C.VkPipelineViewportStateCreateInfo)(unsafe.Pointer(ref)) + obj := new(DisplayPresentInfo) + obj.ref8d2571e4 = (*C.VkDisplayPresentInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineViewportStateCreateInfo) PassRef() (*C.VkPipelineViewportStateCreateInfo, *cgoAllocMap) { +func (x *DisplayPresentInfo) PassRef() (*C.VkDisplayPresentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc4705791 != nil { - return x.refc4705791, nil + } else if x.ref8d2571e4 != nil { + return x.ref8d2571e4, nil } - memc4705791 := allocPipelineViewportStateCreateInfoMemory(1) - refc4705791 := (*C.VkPipelineViewportStateCreateInfo)(memc4705791) - allocsc4705791 := new(cgoAllocMap) - allocsc4705791.Add(memc4705791) + mem8d2571e4 := allocDisplayPresentInfoMemory(1) + ref8d2571e4 := (*C.VkDisplayPresentInfoKHR)(mem8d2571e4) + allocs8d2571e4 := new(cgoAllocMap) + allocs8d2571e4.Add(mem8d2571e4) var csType_allocs *cgoAllocMap - refc4705791.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc4705791.Borrow(csType_allocs) + ref8d2571e4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8d2571e4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc4705791.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc4705791.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refc4705791.flags, cflags_allocs = (C.VkPipelineViewportStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocsc4705791.Borrow(cflags_allocs) - - var cviewportCount_allocs *cgoAllocMap - refc4705791.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown - allocsc4705791.Borrow(cviewportCount_allocs) + ref8d2571e4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8d2571e4.Borrow(cpNext_allocs) - var cpViewports_allocs *cgoAllocMap - refc4705791.pViewports, cpViewports_allocs = unpackSViewport(x.PViewports) - allocsc4705791.Borrow(cpViewports_allocs) + var csrcRect_allocs *cgoAllocMap + ref8d2571e4.srcRect, csrcRect_allocs = x.SrcRect.PassValue() + allocs8d2571e4.Borrow(csrcRect_allocs) - var cscissorCount_allocs *cgoAllocMap - refc4705791.scissorCount, cscissorCount_allocs = (C.uint32_t)(x.ScissorCount), cgoAllocsUnknown - allocsc4705791.Borrow(cscissorCount_allocs) + var cdstRect_allocs *cgoAllocMap + ref8d2571e4.dstRect, cdstRect_allocs = x.DstRect.PassValue() + allocs8d2571e4.Borrow(cdstRect_allocs) - var cpScissors_allocs *cgoAllocMap - refc4705791.pScissors, cpScissors_allocs = unpackSRect2D(x.PScissors) - allocsc4705791.Borrow(cpScissors_allocs) + var cpersistent_allocs *cgoAllocMap + ref8d2571e4.persistent, cpersistent_allocs = (C.VkBool32)(x.Persistent), cgoAllocsUnknown + allocs8d2571e4.Borrow(cpersistent_allocs) - x.refc4705791 = refc4705791 - x.allocsc4705791 = allocsc4705791 - return refc4705791, allocsc4705791 + x.ref8d2571e4 = ref8d2571e4 + x.allocs8d2571e4 = allocs8d2571e4 + return ref8d2571e4, allocs8d2571e4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineViewportStateCreateInfo) PassValue() (C.VkPipelineViewportStateCreateInfo, *cgoAllocMap) { - if x.refc4705791 != nil { - return *x.refc4705791, nil +func (x DisplayPresentInfo) PassValue() (C.VkDisplayPresentInfoKHR, *cgoAllocMap) { + if x.ref8d2571e4 != nil { + return *x.ref8d2571e4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7314,134 +34651,183 @@ func (x PipelineViewportStateCreateInfo) PassValue() (C.VkPipelineViewportStateC // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineViewportStateCreateInfo) Deref() { - if x.refc4705791 == nil { +func (x *DisplayPresentInfo) Deref() { + if x.ref8d2571e4 == nil { return } - x.SType = (StructureType)(x.refc4705791.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc4705791.pNext)) - x.Flags = (PipelineViewportStateCreateFlags)(x.refc4705791.flags) - x.ViewportCount = (uint32)(x.refc4705791.viewportCount) - packSViewport(x.PViewports, x.refc4705791.pViewports) - x.ScissorCount = (uint32)(x.refc4705791.scissorCount) - packSRect2D(x.PScissors, x.refc4705791.pScissors) + x.SType = (StructureType)(x.ref8d2571e4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8d2571e4.pNext)) + x.SrcRect = *NewRect2DRef(unsafe.Pointer(&x.ref8d2571e4.srcRect)) + x.DstRect = *NewRect2DRef(unsafe.Pointer(&x.ref8d2571e4.dstRect)) + x.Persistent = (Bool32)(x.ref8d2571e4.persistent) } -// allocPipelineRasterizationStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationStateCreateInfo in C. +// allocQueueFamilyQueryResultStatusPropertiesMemory allocates memory for type C.VkQueueFamilyQueryResultStatusPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineRasterizationStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationStateCreateInfoValue)) +func allocQueueFamilyQueryResultStatusPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyQueryResultStatusPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineRasterizationStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateCreateInfo{}) +const sizeOfQueueFamilyQueryResultStatusPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyQueryResultStatusPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationStateCreateInfo) Ref() *C.VkPipelineRasterizationStateCreateInfo { +func (x *QueueFamilyQueryResultStatusProperties) Ref() *C.VkQueueFamilyQueryResultStatusPropertiesKHR { if x == nil { return nil } - return x.ref48cb9fad + return x.ref1453d181 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineRasterizationStateCreateInfo) Free() { - if x != nil && x.allocs48cb9fad != nil { - x.allocs48cb9fad.(*cgoAllocMap).Free() - x.ref48cb9fad = nil +func (x *QueueFamilyQueryResultStatusProperties) Free() { + if x != nil && x.allocs1453d181 != nil { + x.allocs1453d181.(*cgoAllocMap).Free() + x.ref1453d181 = nil } } -// NewPipelineRasterizationStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewQueueFamilyQueryResultStatusPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineRasterizationStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationStateCreateInfo { +func NewQueueFamilyQueryResultStatusPropertiesRef(ref unsafe.Pointer) *QueueFamilyQueryResultStatusProperties { if ref == nil { return nil } - obj := new(PipelineRasterizationStateCreateInfo) - obj.ref48cb9fad = (*C.VkPipelineRasterizationStateCreateInfo)(unsafe.Pointer(ref)) + obj := new(QueueFamilyQueryResultStatusProperties) + obj.ref1453d181 = (*C.VkQueueFamilyQueryResultStatusPropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineRasterizationStateCreateInfo) PassRef() (*C.VkPipelineRasterizationStateCreateInfo, *cgoAllocMap) { +func (x *QueueFamilyQueryResultStatusProperties) PassRef() (*C.VkQueueFamilyQueryResultStatusPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref48cb9fad != nil { - return x.ref48cb9fad, nil + } else if x.ref1453d181 != nil { + return x.ref1453d181, nil } - mem48cb9fad := allocPipelineRasterizationStateCreateInfoMemory(1) - ref48cb9fad := (*C.VkPipelineRasterizationStateCreateInfo)(mem48cb9fad) - allocs48cb9fad := new(cgoAllocMap) - allocs48cb9fad.Add(mem48cb9fad) + mem1453d181 := allocQueueFamilyQueryResultStatusPropertiesMemory(1) + ref1453d181 := (*C.VkQueueFamilyQueryResultStatusPropertiesKHR)(mem1453d181) + allocs1453d181 := new(cgoAllocMap) + allocs1453d181.Add(mem1453d181) var csType_allocs *cgoAllocMap - ref48cb9fad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs48cb9fad.Borrow(csType_allocs) + ref1453d181.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1453d181.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref48cb9fad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs48cb9fad.Borrow(cpNext_allocs) + ref1453d181.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1453d181.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref48cb9fad.flags, cflags_allocs = (C.VkPipelineRasterizationStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocs48cb9fad.Borrow(cflags_allocs) + var cqueryResultStatusSupport_allocs *cgoAllocMap + ref1453d181.queryResultStatusSupport, cqueryResultStatusSupport_allocs = (C.VkBool32)(x.QueryResultStatusSupport), cgoAllocsUnknown + allocs1453d181.Borrow(cqueryResultStatusSupport_allocs) - var cdepthClampEnable_allocs *cgoAllocMap - ref48cb9fad.depthClampEnable, cdepthClampEnable_allocs = (C.VkBool32)(x.DepthClampEnable), cgoAllocsUnknown - allocs48cb9fad.Borrow(cdepthClampEnable_allocs) + x.ref1453d181 = ref1453d181 + x.allocs1453d181 = allocs1453d181 + return ref1453d181, allocs1453d181 - var crasterizerDiscardEnable_allocs *cgoAllocMap - ref48cb9fad.rasterizerDiscardEnable, crasterizerDiscardEnable_allocs = (C.VkBool32)(x.RasterizerDiscardEnable), cgoAllocsUnknown - allocs48cb9fad.Borrow(crasterizerDiscardEnable_allocs) +} - var cpolygonMode_allocs *cgoAllocMap - ref48cb9fad.polygonMode, cpolygonMode_allocs = (C.VkPolygonMode)(x.PolygonMode), cgoAllocsUnknown - allocs48cb9fad.Borrow(cpolygonMode_allocs) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x QueueFamilyQueryResultStatusProperties) PassValue() (C.VkQueueFamilyQueryResultStatusPropertiesKHR, *cgoAllocMap) { + if x.ref1453d181 != nil { + return *x.ref1453d181, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} - var ccullMode_allocs *cgoAllocMap - ref48cb9fad.cullMode, ccullMode_allocs = (C.VkCullModeFlags)(x.CullMode), cgoAllocsUnknown - allocs48cb9fad.Borrow(ccullMode_allocs) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *QueueFamilyQueryResultStatusProperties) Deref() { + if x.ref1453d181 == nil { + return + } + x.SType = (StructureType)(x.ref1453d181.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1453d181.pNext)) + x.QueryResultStatusSupport = (Bool32)(x.ref1453d181.queryResultStatusSupport) +} - var cfrontFace_allocs *cgoAllocMap - ref48cb9fad.frontFace, cfrontFace_allocs = (C.VkFrontFace)(x.FrontFace), cgoAllocsUnknown - allocs48cb9fad.Borrow(cfrontFace_allocs) +// allocQueueFamilyVideoPropertiesMemory allocates memory for type C.VkQueueFamilyVideoPropertiesKHR in C. +// The caller is responsible for freeing the this memory via C.free. +func allocQueueFamilyVideoPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyVideoPropertiesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} - var cdepthBiasEnable_allocs *cgoAllocMap - ref48cb9fad.depthBiasEnable, cdepthBiasEnable_allocs = (C.VkBool32)(x.DepthBiasEnable), cgoAllocsUnknown - allocs48cb9fad.Borrow(cdepthBiasEnable_allocs) +const sizeOfQueueFamilyVideoPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyVideoPropertiesKHR{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *QueueFamilyVideoProperties) Ref() *C.VkQueueFamilyVideoPropertiesKHR { + if x == nil { + return nil + } + return x.refb21c87c4 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *QueueFamilyVideoProperties) Free() { + if x != nil && x.allocsb21c87c4 != nil { + x.allocsb21c87c4.(*cgoAllocMap).Free() + x.refb21c87c4 = nil + } +} - var cdepthBiasConstantFactor_allocs *cgoAllocMap - ref48cb9fad.depthBiasConstantFactor, cdepthBiasConstantFactor_allocs = (C.float)(x.DepthBiasConstantFactor), cgoAllocsUnknown - allocs48cb9fad.Borrow(cdepthBiasConstantFactor_allocs) +// NewQueueFamilyVideoPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewQueueFamilyVideoPropertiesRef(ref unsafe.Pointer) *QueueFamilyVideoProperties { + if ref == nil { + return nil + } + obj := new(QueueFamilyVideoProperties) + obj.refb21c87c4 = (*C.VkQueueFamilyVideoPropertiesKHR)(unsafe.Pointer(ref)) + return obj +} - var cdepthBiasClamp_allocs *cgoAllocMap - ref48cb9fad.depthBiasClamp, cdepthBiasClamp_allocs = (C.float)(x.DepthBiasClamp), cgoAllocsUnknown - allocs48cb9fad.Borrow(cdepthBiasClamp_allocs) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *QueueFamilyVideoProperties) PassRef() (*C.VkQueueFamilyVideoPropertiesKHR, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refb21c87c4 != nil { + return x.refb21c87c4, nil + } + memb21c87c4 := allocQueueFamilyVideoPropertiesMemory(1) + refb21c87c4 := (*C.VkQueueFamilyVideoPropertiesKHR)(memb21c87c4) + allocsb21c87c4 := new(cgoAllocMap) + allocsb21c87c4.Add(memb21c87c4) - var cdepthBiasSlopeFactor_allocs *cgoAllocMap - ref48cb9fad.depthBiasSlopeFactor, cdepthBiasSlopeFactor_allocs = (C.float)(x.DepthBiasSlopeFactor), cgoAllocsUnknown - allocs48cb9fad.Borrow(cdepthBiasSlopeFactor_allocs) + var csType_allocs *cgoAllocMap + refb21c87c4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb21c87c4.Borrow(csType_allocs) - var clineWidth_allocs *cgoAllocMap - ref48cb9fad.lineWidth, clineWidth_allocs = (C.float)(x.LineWidth), cgoAllocsUnknown - allocs48cb9fad.Borrow(clineWidth_allocs) + var cpNext_allocs *cgoAllocMap + refb21c87c4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb21c87c4.Borrow(cpNext_allocs) - x.ref48cb9fad = ref48cb9fad - x.allocs48cb9fad = allocs48cb9fad - return ref48cb9fad, allocs48cb9fad + var cvideoCodecOperations_allocs *cgoAllocMap + refb21c87c4.videoCodecOperations, cvideoCodecOperations_allocs = (C.VkVideoCodecOperationFlagsKHR)(x.VideoCodecOperations), cgoAllocsUnknown + allocsb21c87c4.Borrow(cvideoCodecOperations_allocs) + + x.refb21c87c4 = refb21c87c4 + x.allocsb21c87c4 = allocsb21c87c4 + return refb21c87c4, allocsb21c87c4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineRasterizationStateCreateInfo) PassValue() (C.VkPipelineRasterizationStateCreateInfo, *cgoAllocMap) { - if x.ref48cb9fad != nil { - return *x.ref48cb9fad, nil +func (x QueueFamilyVideoProperties) PassValue() (C.VkQueueFamilyVideoPropertiesKHR, *cgoAllocMap) { + if x.refb21c87c4 != nil { + return *x.refb21c87c4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7449,124 +34835,102 @@ func (x PipelineRasterizationStateCreateInfo) PassValue() (C.VkPipelineRasteriza // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineRasterizationStateCreateInfo) Deref() { - if x.ref48cb9fad == nil { +func (x *QueueFamilyVideoProperties) Deref() { + if x.refb21c87c4 == nil { return } - x.SType = (StructureType)(x.ref48cb9fad.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref48cb9fad.pNext)) - x.Flags = (PipelineRasterizationStateCreateFlags)(x.ref48cb9fad.flags) - x.DepthClampEnable = (Bool32)(x.ref48cb9fad.depthClampEnable) - x.RasterizerDiscardEnable = (Bool32)(x.ref48cb9fad.rasterizerDiscardEnable) - x.PolygonMode = (PolygonMode)(x.ref48cb9fad.polygonMode) - x.CullMode = (CullModeFlags)(x.ref48cb9fad.cullMode) - x.FrontFace = (FrontFace)(x.ref48cb9fad.frontFace) - x.DepthBiasEnable = (Bool32)(x.ref48cb9fad.depthBiasEnable) - x.DepthBiasConstantFactor = (float32)(x.ref48cb9fad.depthBiasConstantFactor) - x.DepthBiasClamp = (float32)(x.ref48cb9fad.depthBiasClamp) - x.DepthBiasSlopeFactor = (float32)(x.ref48cb9fad.depthBiasSlopeFactor) - x.LineWidth = (float32)(x.ref48cb9fad.lineWidth) + x.SType = (StructureType)(x.refb21c87c4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb21c87c4.pNext)) + x.VideoCodecOperations = (VideoCodecOperationFlags)(x.refb21c87c4.videoCodecOperations) } -// allocPipelineMultisampleStateCreateInfoMemory allocates memory for type C.VkPipelineMultisampleStateCreateInfo in C. +// allocVideoProfileInfoMemory allocates memory for type C.VkVideoProfileInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineMultisampleStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineMultisampleStateCreateInfoValue)) +func allocVideoProfileInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoProfileInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineMultisampleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineMultisampleStateCreateInfo{}) +const sizeOfVideoProfileInfoValue = unsafe.Sizeof([1]C.VkVideoProfileInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineMultisampleStateCreateInfo) Ref() *C.VkPipelineMultisampleStateCreateInfo { +func (x *VideoProfileInfo) Ref() *C.VkVideoProfileInfoKHR { if x == nil { return nil } - return x.refb6538bfb + return x.refdbadacde } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineMultisampleStateCreateInfo) Free() { - if x != nil && x.allocsb6538bfb != nil { - x.allocsb6538bfb.(*cgoAllocMap).Free() - x.refb6538bfb = nil +func (x *VideoProfileInfo) Free() { + if x != nil && x.allocsdbadacde != nil { + x.allocsdbadacde.(*cgoAllocMap).Free() + x.refdbadacde = nil } } -// NewPipelineMultisampleStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoProfileInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineMultisampleStateCreateInfoRef(ref unsafe.Pointer) *PipelineMultisampleStateCreateInfo { +func NewVideoProfileInfoRef(ref unsafe.Pointer) *VideoProfileInfo { if ref == nil { return nil } - obj := new(PipelineMultisampleStateCreateInfo) - obj.refb6538bfb = (*C.VkPipelineMultisampleStateCreateInfo)(unsafe.Pointer(ref)) + obj := new(VideoProfileInfo) + obj.refdbadacde = (*C.VkVideoProfileInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineMultisampleStateCreateInfo) PassRef() (*C.VkPipelineMultisampleStateCreateInfo, *cgoAllocMap) { +func (x *VideoProfileInfo) PassRef() (*C.VkVideoProfileInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb6538bfb != nil { - return x.refb6538bfb, nil + } else if x.refdbadacde != nil { + return x.refdbadacde, nil } - memb6538bfb := allocPipelineMultisampleStateCreateInfoMemory(1) - refb6538bfb := (*C.VkPipelineMultisampleStateCreateInfo)(memb6538bfb) - allocsb6538bfb := new(cgoAllocMap) - allocsb6538bfb.Add(memb6538bfb) + memdbadacde := allocVideoProfileInfoMemory(1) + refdbadacde := (*C.VkVideoProfileInfoKHR)(memdbadacde) + allocsdbadacde := new(cgoAllocMap) + allocsdbadacde.Add(memdbadacde) var csType_allocs *cgoAllocMap - refb6538bfb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb6538bfb.Borrow(csType_allocs) + refdbadacde.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdbadacde.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb6538bfb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb6538bfb.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refb6538bfb.flags, cflags_allocs = (C.VkPipelineMultisampleStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocsb6538bfb.Borrow(cflags_allocs) - - var crasterizationSamples_allocs *cgoAllocMap - refb6538bfb.rasterizationSamples, crasterizationSamples_allocs = (C.VkSampleCountFlagBits)(x.RasterizationSamples), cgoAllocsUnknown - allocsb6538bfb.Borrow(crasterizationSamples_allocs) - - var csampleShadingEnable_allocs *cgoAllocMap - refb6538bfb.sampleShadingEnable, csampleShadingEnable_allocs = (C.VkBool32)(x.SampleShadingEnable), cgoAllocsUnknown - allocsb6538bfb.Borrow(csampleShadingEnable_allocs) + refdbadacde.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdbadacde.Borrow(cpNext_allocs) - var cminSampleShading_allocs *cgoAllocMap - refb6538bfb.minSampleShading, cminSampleShading_allocs = (C.float)(x.MinSampleShading), cgoAllocsUnknown - allocsb6538bfb.Borrow(cminSampleShading_allocs) + var cvideoCodecOperation_allocs *cgoAllocMap + refdbadacde.videoCodecOperation, cvideoCodecOperation_allocs = (C.VkVideoCodecOperationFlagBitsKHR)(x.VideoCodecOperation), cgoAllocsUnknown + allocsdbadacde.Borrow(cvideoCodecOperation_allocs) - var cpSampleMask_allocs *cgoAllocMap - refb6538bfb.pSampleMask, cpSampleMask_allocs = (*C.VkSampleMask)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSampleMask)).Data)), cgoAllocsUnknown - allocsb6538bfb.Borrow(cpSampleMask_allocs) + var cchromaSubsampling_allocs *cgoAllocMap + refdbadacde.chromaSubsampling, cchromaSubsampling_allocs = (C.VkVideoChromaSubsamplingFlagsKHR)(x.ChromaSubsampling), cgoAllocsUnknown + allocsdbadacde.Borrow(cchromaSubsampling_allocs) - var calphaToCoverageEnable_allocs *cgoAllocMap - refb6538bfb.alphaToCoverageEnable, calphaToCoverageEnable_allocs = (C.VkBool32)(x.AlphaToCoverageEnable), cgoAllocsUnknown - allocsb6538bfb.Borrow(calphaToCoverageEnable_allocs) + var clumaBitDepth_allocs *cgoAllocMap + refdbadacde.lumaBitDepth, clumaBitDepth_allocs = (C.VkVideoComponentBitDepthFlagsKHR)(x.LumaBitDepth), cgoAllocsUnknown + allocsdbadacde.Borrow(clumaBitDepth_allocs) - var calphaToOneEnable_allocs *cgoAllocMap - refb6538bfb.alphaToOneEnable, calphaToOneEnable_allocs = (C.VkBool32)(x.AlphaToOneEnable), cgoAllocsUnknown - allocsb6538bfb.Borrow(calphaToOneEnable_allocs) + var cchromaBitDepth_allocs *cgoAllocMap + refdbadacde.chromaBitDepth, cchromaBitDepth_allocs = (C.VkVideoComponentBitDepthFlagsKHR)(x.ChromaBitDepth), cgoAllocsUnknown + allocsdbadacde.Borrow(cchromaBitDepth_allocs) - x.refb6538bfb = refb6538bfb - x.allocsb6538bfb = allocsb6538bfb - return refb6538bfb, allocsb6538bfb + x.refdbadacde = refdbadacde + x.allocsdbadacde = allocsdbadacde + return refdbadacde, allocsdbadacde } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineMultisampleStateCreateInfo) PassValue() (C.VkPipelineMultisampleStateCreateInfo, *cgoAllocMap) { - if x.refb6538bfb != nil { - return *x.refb6538bfb, nil +func (x VideoProfileInfo) PassValue() (C.VkVideoProfileInfoKHR, *cgoAllocMap) { + if x.refdbadacde != nil { + return *x.refdbadacde, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7574,116 +34938,135 @@ func (x PipelineMultisampleStateCreateInfo) PassValue() (C.VkPipelineMultisample // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineMultisampleStateCreateInfo) Deref() { - if x.refb6538bfb == nil { +func (x *VideoProfileInfo) Deref() { + if x.refdbadacde == nil { return } - x.SType = (StructureType)(x.refb6538bfb.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb6538bfb.pNext)) - x.Flags = (PipelineMultisampleStateCreateFlags)(x.refb6538bfb.flags) - x.RasterizationSamples = (SampleCountFlagBits)(x.refb6538bfb.rasterizationSamples) - x.SampleShadingEnable = (Bool32)(x.refb6538bfb.sampleShadingEnable) - x.MinSampleShading = (float32)(x.refb6538bfb.minSampleShading) - hxf3b8dbd := (*sliceHeader)(unsafe.Pointer(&x.PSampleMask)) - hxf3b8dbd.Data = unsafe.Pointer(x.refb6538bfb.pSampleMask) - hxf3b8dbd.Cap = 0x7fffffff - // hxf3b8dbd.Len = ? - - x.AlphaToCoverageEnable = (Bool32)(x.refb6538bfb.alphaToCoverageEnable) - x.AlphaToOneEnable = (Bool32)(x.refb6538bfb.alphaToOneEnable) + x.SType = (StructureType)(x.refdbadacde.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdbadacde.pNext)) + x.VideoCodecOperation = (VideoCodecOperationFlagBits)(x.refdbadacde.videoCodecOperation) + x.ChromaSubsampling = (VideoChromaSubsamplingFlags)(x.refdbadacde.chromaSubsampling) + x.LumaBitDepth = (VideoComponentBitDepthFlags)(x.refdbadacde.lumaBitDepth) + x.ChromaBitDepth = (VideoComponentBitDepthFlags)(x.refdbadacde.chromaBitDepth) } -// allocStencilOpStateMemory allocates memory for type C.VkStencilOpState in C. +// allocVideoProfileListInfoMemory allocates memory for type C.VkVideoProfileListInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocStencilOpStateMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfStencilOpStateValue)) +func allocVideoProfileListInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoProfileListInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfStencilOpStateValue = unsafe.Sizeof([1]C.VkStencilOpState{}) +const sizeOfVideoProfileListInfoValue = unsafe.Sizeof([1]C.VkVideoProfileListInfoKHR{}) + +// unpackSVideoProfileInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoProfileInfo(x []VideoProfileInfo) (unpacked *C.VkVideoProfileInfoKHR, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoProfileInfoKHR) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVideoProfileInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVideoProfileInfoKHR)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkVideoProfileInfoKHR)(h.Data) + return +} + +// packSVideoProfileInfo reads sliced Go data structure out from plain C format. +func packSVideoProfileInfo(v []VideoProfileInfo, ptr0 *C.VkVideoProfileInfoKHR) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVideoProfileInfoValue]C.VkVideoProfileInfoKHR)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoProfileInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *StencilOpState) Ref() *C.VkStencilOpState { +func (x *VideoProfileListInfo) Ref() *C.VkVideoProfileListInfoKHR { if x == nil { return nil } - return x.ref28886871 + return x.refd98c78d7 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *StencilOpState) Free() { - if x != nil && x.allocs28886871 != nil { - x.allocs28886871.(*cgoAllocMap).Free() - x.ref28886871 = nil +func (x *VideoProfileListInfo) Free() { + if x != nil && x.allocsd98c78d7 != nil { + x.allocsd98c78d7.(*cgoAllocMap).Free() + x.refd98c78d7 = nil } } -// NewStencilOpStateRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoProfileListInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewStencilOpStateRef(ref unsafe.Pointer) *StencilOpState { +func NewVideoProfileListInfoRef(ref unsafe.Pointer) *VideoProfileListInfo { if ref == nil { return nil } - obj := new(StencilOpState) - obj.ref28886871 = (*C.VkStencilOpState)(unsafe.Pointer(ref)) + obj := new(VideoProfileListInfo) + obj.refd98c78d7 = (*C.VkVideoProfileListInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *StencilOpState) PassRef() (*C.VkStencilOpState, *cgoAllocMap) { +func (x *VideoProfileListInfo) PassRef() (*C.VkVideoProfileListInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref28886871 != nil { - return x.ref28886871, nil + } else if x.refd98c78d7 != nil { + return x.refd98c78d7, nil } - mem28886871 := allocStencilOpStateMemory(1) - ref28886871 := (*C.VkStencilOpState)(mem28886871) - allocs28886871 := new(cgoAllocMap) - allocs28886871.Add(mem28886871) - - var cfailOp_allocs *cgoAllocMap - ref28886871.failOp, cfailOp_allocs = (C.VkStencilOp)(x.FailOp), cgoAllocsUnknown - allocs28886871.Borrow(cfailOp_allocs) - - var cpassOp_allocs *cgoAllocMap - ref28886871.passOp, cpassOp_allocs = (C.VkStencilOp)(x.PassOp), cgoAllocsUnknown - allocs28886871.Borrow(cpassOp_allocs) - - var cdepthFailOp_allocs *cgoAllocMap - ref28886871.depthFailOp, cdepthFailOp_allocs = (C.VkStencilOp)(x.DepthFailOp), cgoAllocsUnknown - allocs28886871.Borrow(cdepthFailOp_allocs) + memd98c78d7 := allocVideoProfileListInfoMemory(1) + refd98c78d7 := (*C.VkVideoProfileListInfoKHR)(memd98c78d7) + allocsd98c78d7 := new(cgoAllocMap) + allocsd98c78d7.Add(memd98c78d7) - var ccompareOp_allocs *cgoAllocMap - ref28886871.compareOp, ccompareOp_allocs = (C.VkCompareOp)(x.CompareOp), cgoAllocsUnknown - allocs28886871.Borrow(ccompareOp_allocs) + var csType_allocs *cgoAllocMap + refd98c78d7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd98c78d7.Borrow(csType_allocs) - var ccompareMask_allocs *cgoAllocMap - ref28886871.compareMask, ccompareMask_allocs = (C.uint32_t)(x.CompareMask), cgoAllocsUnknown - allocs28886871.Borrow(ccompareMask_allocs) + var cpNext_allocs *cgoAllocMap + refd98c78d7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd98c78d7.Borrow(cpNext_allocs) - var cwriteMask_allocs *cgoAllocMap - ref28886871.writeMask, cwriteMask_allocs = (C.uint32_t)(x.WriteMask), cgoAllocsUnknown - allocs28886871.Borrow(cwriteMask_allocs) + var cprofileCount_allocs *cgoAllocMap + refd98c78d7.profileCount, cprofileCount_allocs = (C.uint32_t)(x.ProfileCount), cgoAllocsUnknown + allocsd98c78d7.Borrow(cprofileCount_allocs) - var creference_allocs *cgoAllocMap - ref28886871.reference, creference_allocs = (C.uint32_t)(x.Reference), cgoAllocsUnknown - allocs28886871.Borrow(creference_allocs) + var cpProfiles_allocs *cgoAllocMap + refd98c78d7.pProfiles, cpProfiles_allocs = unpackSVideoProfileInfo(x.PProfiles) + allocsd98c78d7.Borrow(cpProfiles_allocs) - x.ref28886871 = ref28886871 - x.allocs28886871 = allocs28886871 - return ref28886871, allocs28886871 + x.refd98c78d7 = refd98c78d7 + x.allocsd98c78d7 = allocsd98c78d7 + return refd98c78d7, allocsd98c78d7 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x StencilOpState) PassValue() (C.VkStencilOpState, *cgoAllocMap) { - if x.ref28886871 != nil { - return *x.ref28886871, nil +func (x VideoProfileListInfo) PassValue() (C.VkVideoProfileListInfoKHR, *cgoAllocMap) { + if x.refd98c78d7 != nil { + return *x.refd98c78d7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7691,130 +35074,123 @@ func (x StencilOpState) PassValue() (C.VkStencilOpState, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *StencilOpState) Deref() { - if x.ref28886871 == nil { +func (x *VideoProfileListInfo) Deref() { + if x.refd98c78d7 == nil { return } - x.FailOp = (StencilOp)(x.ref28886871.failOp) - x.PassOp = (StencilOp)(x.ref28886871.passOp) - x.DepthFailOp = (StencilOp)(x.ref28886871.depthFailOp) - x.CompareOp = (CompareOp)(x.ref28886871.compareOp) - x.CompareMask = (uint32)(x.ref28886871.compareMask) - x.WriteMask = (uint32)(x.ref28886871.writeMask) - x.Reference = (uint32)(x.ref28886871.reference) + x.SType = (StructureType)(x.refd98c78d7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd98c78d7.pNext)) + x.ProfileCount = (uint32)(x.refd98c78d7.profileCount) + packSVideoProfileInfo(x.PProfiles, x.refd98c78d7.pProfiles) } -// allocPipelineDepthStencilStateCreateInfoMemory allocates memory for type C.VkPipelineDepthStencilStateCreateInfo in C. +// allocVideoCapabilitiesMemory allocates memory for type C.VkVideoCapabilitiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineDepthStencilStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineDepthStencilStateCreateInfoValue)) +func allocVideoCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoCapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineDepthStencilStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDepthStencilStateCreateInfo{}) +const sizeOfVideoCapabilitiesValue = unsafe.Sizeof([1]C.VkVideoCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineDepthStencilStateCreateInfo) Ref() *C.VkPipelineDepthStencilStateCreateInfo { +func (x *VideoCapabilities) Ref() *C.VkVideoCapabilitiesKHR { if x == nil { return nil } - return x.refeabfcf1 + return x.reff1959efe } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineDepthStencilStateCreateInfo) Free() { - if x != nil && x.allocseabfcf1 != nil { - x.allocseabfcf1.(*cgoAllocMap).Free() - x.refeabfcf1 = nil +func (x *VideoCapabilities) Free() { + if x != nil && x.allocsf1959efe != nil { + x.allocsf1959efe.(*cgoAllocMap).Free() + x.reff1959efe = nil } } -// NewPipelineDepthStencilStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineDepthStencilStateCreateInfoRef(ref unsafe.Pointer) *PipelineDepthStencilStateCreateInfo { +func NewVideoCapabilitiesRef(ref unsafe.Pointer) *VideoCapabilities { if ref == nil { return nil } - obj := new(PipelineDepthStencilStateCreateInfo) - obj.refeabfcf1 = (*C.VkPipelineDepthStencilStateCreateInfo)(unsafe.Pointer(ref)) + obj := new(VideoCapabilities) + obj.reff1959efe = (*C.VkVideoCapabilitiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineDepthStencilStateCreateInfo) PassRef() (*C.VkPipelineDepthStencilStateCreateInfo, *cgoAllocMap) { +func (x *VideoCapabilities) PassRef() (*C.VkVideoCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refeabfcf1 != nil { - return x.refeabfcf1, nil + } else if x.reff1959efe != nil { + return x.reff1959efe, nil } - memeabfcf1 := allocPipelineDepthStencilStateCreateInfoMemory(1) - refeabfcf1 := (*C.VkPipelineDepthStencilStateCreateInfo)(memeabfcf1) - allocseabfcf1 := new(cgoAllocMap) - allocseabfcf1.Add(memeabfcf1) + memf1959efe := allocVideoCapabilitiesMemory(1) + reff1959efe := (*C.VkVideoCapabilitiesKHR)(memf1959efe) + allocsf1959efe := new(cgoAllocMap) + allocsf1959efe.Add(memf1959efe) var csType_allocs *cgoAllocMap - refeabfcf1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocseabfcf1.Borrow(csType_allocs) + reff1959efe.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf1959efe.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refeabfcf1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocseabfcf1.Borrow(cpNext_allocs) + reff1959efe.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf1959efe.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - refeabfcf1.flags, cflags_allocs = (C.VkPipelineDepthStencilStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocseabfcf1.Borrow(cflags_allocs) - - var cdepthTestEnable_allocs *cgoAllocMap - refeabfcf1.depthTestEnable, cdepthTestEnable_allocs = (C.VkBool32)(x.DepthTestEnable), cgoAllocsUnknown - allocseabfcf1.Borrow(cdepthTestEnable_allocs) + reff1959efe.flags, cflags_allocs = (C.VkVideoCapabilityFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsf1959efe.Borrow(cflags_allocs) - var cdepthWriteEnable_allocs *cgoAllocMap - refeabfcf1.depthWriteEnable, cdepthWriteEnable_allocs = (C.VkBool32)(x.DepthWriteEnable), cgoAllocsUnknown - allocseabfcf1.Borrow(cdepthWriteEnable_allocs) + var cminBitstreamBufferOffsetAlignment_allocs *cgoAllocMap + reff1959efe.minBitstreamBufferOffsetAlignment, cminBitstreamBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.MinBitstreamBufferOffsetAlignment), cgoAllocsUnknown + allocsf1959efe.Borrow(cminBitstreamBufferOffsetAlignment_allocs) - var cdepthCompareOp_allocs *cgoAllocMap - refeabfcf1.depthCompareOp, cdepthCompareOp_allocs = (C.VkCompareOp)(x.DepthCompareOp), cgoAllocsUnknown - allocseabfcf1.Borrow(cdepthCompareOp_allocs) + var cminBitstreamBufferSizeAlignment_allocs *cgoAllocMap + reff1959efe.minBitstreamBufferSizeAlignment, cminBitstreamBufferSizeAlignment_allocs = (C.VkDeviceSize)(x.MinBitstreamBufferSizeAlignment), cgoAllocsUnknown + allocsf1959efe.Borrow(cminBitstreamBufferSizeAlignment_allocs) - var cdepthBoundsTestEnable_allocs *cgoAllocMap - refeabfcf1.depthBoundsTestEnable, cdepthBoundsTestEnable_allocs = (C.VkBool32)(x.DepthBoundsTestEnable), cgoAllocsUnknown - allocseabfcf1.Borrow(cdepthBoundsTestEnable_allocs) + var cpictureAccessGranularity_allocs *cgoAllocMap + reff1959efe.pictureAccessGranularity, cpictureAccessGranularity_allocs = x.PictureAccessGranularity.PassValue() + allocsf1959efe.Borrow(cpictureAccessGranularity_allocs) - var cstencilTestEnable_allocs *cgoAllocMap - refeabfcf1.stencilTestEnable, cstencilTestEnable_allocs = (C.VkBool32)(x.StencilTestEnable), cgoAllocsUnknown - allocseabfcf1.Borrow(cstencilTestEnable_allocs) + var cminCodedExtent_allocs *cgoAllocMap + reff1959efe.minCodedExtent, cminCodedExtent_allocs = x.MinCodedExtent.PassValue() + allocsf1959efe.Borrow(cminCodedExtent_allocs) - var cfront_allocs *cgoAllocMap - refeabfcf1.front, cfront_allocs = x.Front.PassValue() - allocseabfcf1.Borrow(cfront_allocs) + var cmaxCodedExtent_allocs *cgoAllocMap + reff1959efe.maxCodedExtent, cmaxCodedExtent_allocs = x.MaxCodedExtent.PassValue() + allocsf1959efe.Borrow(cmaxCodedExtent_allocs) - var cback_allocs *cgoAllocMap - refeabfcf1.back, cback_allocs = x.Back.PassValue() - allocseabfcf1.Borrow(cback_allocs) + var cmaxDpbSlots_allocs *cgoAllocMap + reff1959efe.maxDpbSlots, cmaxDpbSlots_allocs = (C.uint32_t)(x.MaxDpbSlots), cgoAllocsUnknown + allocsf1959efe.Borrow(cmaxDpbSlots_allocs) - var cminDepthBounds_allocs *cgoAllocMap - refeabfcf1.minDepthBounds, cminDepthBounds_allocs = (C.float)(x.MinDepthBounds), cgoAllocsUnknown - allocseabfcf1.Borrow(cminDepthBounds_allocs) + var cmaxActiveReferencePictures_allocs *cgoAllocMap + reff1959efe.maxActiveReferencePictures, cmaxActiveReferencePictures_allocs = (C.uint32_t)(x.MaxActiveReferencePictures), cgoAllocsUnknown + allocsf1959efe.Borrow(cmaxActiveReferencePictures_allocs) - var cmaxDepthBounds_allocs *cgoAllocMap - refeabfcf1.maxDepthBounds, cmaxDepthBounds_allocs = (C.float)(x.MaxDepthBounds), cgoAllocsUnknown - allocseabfcf1.Borrow(cmaxDepthBounds_allocs) + var cstdHeaderVersion_allocs *cgoAllocMap + reff1959efe.stdHeaderVersion, cstdHeaderVersion_allocs = x.StdHeaderVersion.PassValue() + allocsf1959efe.Borrow(cstdHeaderVersion_allocs) - x.refeabfcf1 = refeabfcf1 - x.allocseabfcf1 = allocseabfcf1 - return refeabfcf1, allocseabfcf1 + x.reff1959efe = reff1959efe + x.allocsf1959efe = allocsf1959efe + return reff1959efe, allocsf1959efe } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineDepthStencilStateCreateInfo) PassValue() (C.VkPipelineDepthStencilStateCreateInfo, *cgoAllocMap) { - if x.refeabfcf1 != nil { - return *x.refeabfcf1, nil +func (x VideoCapabilities) PassValue() (C.VkVideoCapabilitiesKHR, *cgoAllocMap) { + if x.reff1959efe != nil { + return *x.reff1959efe, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7822,119 +35198,98 @@ func (x PipelineDepthStencilStateCreateInfo) PassValue() (C.VkPipelineDepthStenc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineDepthStencilStateCreateInfo) Deref() { - if x.refeabfcf1 == nil { +func (x *VideoCapabilities) Deref() { + if x.reff1959efe == nil { return } - x.SType = (StructureType)(x.refeabfcf1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeabfcf1.pNext)) - x.Flags = (PipelineDepthStencilStateCreateFlags)(x.refeabfcf1.flags) - x.DepthTestEnable = (Bool32)(x.refeabfcf1.depthTestEnable) - x.DepthWriteEnable = (Bool32)(x.refeabfcf1.depthWriteEnable) - x.DepthCompareOp = (CompareOp)(x.refeabfcf1.depthCompareOp) - x.DepthBoundsTestEnable = (Bool32)(x.refeabfcf1.depthBoundsTestEnable) - x.StencilTestEnable = (Bool32)(x.refeabfcf1.stencilTestEnable) - x.Front = *NewStencilOpStateRef(unsafe.Pointer(&x.refeabfcf1.front)) - x.Back = *NewStencilOpStateRef(unsafe.Pointer(&x.refeabfcf1.back)) - x.MinDepthBounds = (float32)(x.refeabfcf1.minDepthBounds) - x.MaxDepthBounds = (float32)(x.refeabfcf1.maxDepthBounds) + x.SType = (StructureType)(x.reff1959efe.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff1959efe.pNext)) + x.Flags = (VideoCapabilityFlags)(x.reff1959efe.flags) + x.MinBitstreamBufferOffsetAlignment = (DeviceSize)(x.reff1959efe.minBitstreamBufferOffsetAlignment) + x.MinBitstreamBufferSizeAlignment = (DeviceSize)(x.reff1959efe.minBitstreamBufferSizeAlignment) + x.PictureAccessGranularity = *NewExtent2DRef(unsafe.Pointer(&x.reff1959efe.pictureAccessGranularity)) + x.MinCodedExtent = *NewExtent2DRef(unsafe.Pointer(&x.reff1959efe.minCodedExtent)) + x.MaxCodedExtent = *NewExtent2DRef(unsafe.Pointer(&x.reff1959efe.maxCodedExtent)) + x.MaxDpbSlots = (uint32)(x.reff1959efe.maxDpbSlots) + x.MaxActiveReferencePictures = (uint32)(x.reff1959efe.maxActiveReferencePictures) + x.StdHeaderVersion = *NewExtensionPropertiesRef(unsafe.Pointer(&x.reff1959efe.stdHeaderVersion)) } -// allocPipelineColorBlendAttachmentStateMemory allocates memory for type C.VkPipelineColorBlendAttachmentState in C. +// allocPhysicalDeviceVideoFormatInfoMemory allocates memory for type C.VkPhysicalDeviceVideoFormatInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineColorBlendAttachmentStateMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineColorBlendAttachmentStateValue)) +func allocPhysicalDeviceVideoFormatInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVideoFormatInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineColorBlendAttachmentStateValue = unsafe.Sizeof([1]C.VkPipelineColorBlendAttachmentState{}) +const sizeOfPhysicalDeviceVideoFormatInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVideoFormatInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineColorBlendAttachmentState) Ref() *C.VkPipelineColorBlendAttachmentState { +func (x *PhysicalDeviceVideoFormatInfo) Ref() *C.VkPhysicalDeviceVideoFormatInfoKHR { if x == nil { return nil } - return x.ref9e889477 + return x.ref4d0248b7 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineColorBlendAttachmentState) Free() { - if x != nil && x.allocs9e889477 != nil { - x.allocs9e889477.(*cgoAllocMap).Free() - x.ref9e889477 = nil +func (x *PhysicalDeviceVideoFormatInfo) Free() { + if x != nil && x.allocs4d0248b7 != nil { + x.allocs4d0248b7.(*cgoAllocMap).Free() + x.ref4d0248b7 = nil } } -// NewPipelineColorBlendAttachmentStateRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceVideoFormatInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineColorBlendAttachmentStateRef(ref unsafe.Pointer) *PipelineColorBlendAttachmentState { +func NewPhysicalDeviceVideoFormatInfoRef(ref unsafe.Pointer) *PhysicalDeviceVideoFormatInfo { if ref == nil { return nil } - obj := new(PipelineColorBlendAttachmentState) - obj.ref9e889477 = (*C.VkPipelineColorBlendAttachmentState)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceVideoFormatInfo) + obj.ref4d0248b7 = (*C.VkPhysicalDeviceVideoFormatInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineColorBlendAttachmentState) PassRef() (*C.VkPipelineColorBlendAttachmentState, *cgoAllocMap) { +func (x *PhysicalDeviceVideoFormatInfo) PassRef() (*C.VkPhysicalDeviceVideoFormatInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9e889477 != nil { - return x.ref9e889477, nil + } else if x.ref4d0248b7 != nil { + return x.ref4d0248b7, nil } - mem9e889477 := allocPipelineColorBlendAttachmentStateMemory(1) - ref9e889477 := (*C.VkPipelineColorBlendAttachmentState)(mem9e889477) - allocs9e889477 := new(cgoAllocMap) - allocs9e889477.Add(mem9e889477) - - var cblendEnable_allocs *cgoAllocMap - ref9e889477.blendEnable, cblendEnable_allocs = (C.VkBool32)(x.BlendEnable), cgoAllocsUnknown - allocs9e889477.Borrow(cblendEnable_allocs) - - var csrcColorBlendFactor_allocs *cgoAllocMap - ref9e889477.srcColorBlendFactor, csrcColorBlendFactor_allocs = (C.VkBlendFactor)(x.SrcColorBlendFactor), cgoAllocsUnknown - allocs9e889477.Borrow(csrcColorBlendFactor_allocs) - - var cdstColorBlendFactor_allocs *cgoAllocMap - ref9e889477.dstColorBlendFactor, cdstColorBlendFactor_allocs = (C.VkBlendFactor)(x.DstColorBlendFactor), cgoAllocsUnknown - allocs9e889477.Borrow(cdstColorBlendFactor_allocs) - - var ccolorBlendOp_allocs *cgoAllocMap - ref9e889477.colorBlendOp, ccolorBlendOp_allocs = (C.VkBlendOp)(x.ColorBlendOp), cgoAllocsUnknown - allocs9e889477.Borrow(ccolorBlendOp_allocs) + mem4d0248b7 := allocPhysicalDeviceVideoFormatInfoMemory(1) + ref4d0248b7 := (*C.VkPhysicalDeviceVideoFormatInfoKHR)(mem4d0248b7) + allocs4d0248b7 := new(cgoAllocMap) + allocs4d0248b7.Add(mem4d0248b7) - var csrcAlphaBlendFactor_allocs *cgoAllocMap - ref9e889477.srcAlphaBlendFactor, csrcAlphaBlendFactor_allocs = (C.VkBlendFactor)(x.SrcAlphaBlendFactor), cgoAllocsUnknown - allocs9e889477.Borrow(csrcAlphaBlendFactor_allocs) - - var cdstAlphaBlendFactor_allocs *cgoAllocMap - ref9e889477.dstAlphaBlendFactor, cdstAlphaBlendFactor_allocs = (C.VkBlendFactor)(x.DstAlphaBlendFactor), cgoAllocsUnknown - allocs9e889477.Borrow(cdstAlphaBlendFactor_allocs) + var csType_allocs *cgoAllocMap + ref4d0248b7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4d0248b7.Borrow(csType_allocs) - var calphaBlendOp_allocs *cgoAllocMap - ref9e889477.alphaBlendOp, calphaBlendOp_allocs = (C.VkBlendOp)(x.AlphaBlendOp), cgoAllocsUnknown - allocs9e889477.Borrow(calphaBlendOp_allocs) + var cpNext_allocs *cgoAllocMap + ref4d0248b7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4d0248b7.Borrow(cpNext_allocs) - var ccolorWriteMask_allocs *cgoAllocMap - ref9e889477.colorWriteMask, ccolorWriteMask_allocs = (C.VkColorComponentFlags)(x.ColorWriteMask), cgoAllocsUnknown - allocs9e889477.Borrow(ccolorWriteMask_allocs) + var cimageUsage_allocs *cgoAllocMap + ref4d0248b7.imageUsage, cimageUsage_allocs = (C.VkImageUsageFlags)(x.ImageUsage), cgoAllocsUnknown + allocs4d0248b7.Borrow(cimageUsage_allocs) - x.ref9e889477 = ref9e889477 - x.allocs9e889477 = allocs9e889477 - return ref9e889477, allocs9e889477 + x.ref4d0248b7 = ref4d0248b7 + x.allocs4d0248b7 = allocs4d0248b7 + return ref4d0248b7, allocs4d0248b7 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineColorBlendAttachmentState) PassValue() (C.VkPipelineColorBlendAttachmentState, *cgoAllocMap) { - if x.ref9e889477 != nil { - return *x.ref9e889477, nil +func (x PhysicalDeviceVideoFormatInfo) PassValue() (C.VkPhysicalDeviceVideoFormatInfoKHR, *cgoAllocMap) { + if x.ref4d0248b7 != nil { + return *x.ref4d0248b7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -7942,153 +35297,110 @@ func (x PipelineColorBlendAttachmentState) PassValue() (C.VkPipelineColorBlendAt // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineColorBlendAttachmentState) Deref() { - if x.ref9e889477 == nil { +func (x *PhysicalDeviceVideoFormatInfo) Deref() { + if x.ref4d0248b7 == nil { return } - x.BlendEnable = (Bool32)(x.ref9e889477.blendEnable) - x.SrcColorBlendFactor = (BlendFactor)(x.ref9e889477.srcColorBlendFactor) - x.DstColorBlendFactor = (BlendFactor)(x.ref9e889477.dstColorBlendFactor) - x.ColorBlendOp = (BlendOp)(x.ref9e889477.colorBlendOp) - x.SrcAlphaBlendFactor = (BlendFactor)(x.ref9e889477.srcAlphaBlendFactor) - x.DstAlphaBlendFactor = (BlendFactor)(x.ref9e889477.dstAlphaBlendFactor) - x.AlphaBlendOp = (BlendOp)(x.ref9e889477.alphaBlendOp) - x.ColorWriteMask = (ColorComponentFlags)(x.ref9e889477.colorWriteMask) + x.SType = (StructureType)(x.ref4d0248b7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4d0248b7.pNext)) + x.ImageUsage = (ImageUsageFlags)(x.ref4d0248b7.imageUsage) } -// allocPipelineColorBlendStateCreateInfoMemory allocates memory for type C.VkPipelineColorBlendStateCreateInfo in C. +// allocVideoFormatPropertiesMemory allocates memory for type C.VkVideoFormatPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineColorBlendStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineColorBlendStateCreateInfoValue)) +func allocVideoFormatPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoFormatPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineColorBlendStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorBlendStateCreateInfo{}) - -// unpackSPipelineColorBlendAttachmentState transforms a sliced Go data structure into plain C format. -func unpackSPipelineColorBlendAttachmentState(x []PipelineColorBlendAttachmentState) (unpacked *C.VkPipelineColorBlendAttachmentState, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineColorBlendAttachmentState) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocPipelineColorBlendAttachmentStateMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkPipelineColorBlendAttachmentState)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkPipelineColorBlendAttachmentState)(h.Data) - return -} - -// packSPipelineColorBlendAttachmentState reads sliced Go data structure out from plain C format. -func packSPipelineColorBlendAttachmentState(v []PipelineColorBlendAttachmentState, ptr0 *C.VkPipelineColorBlendAttachmentState) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfPipelineColorBlendAttachmentStateValue]C.VkPipelineColorBlendAttachmentState)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewPipelineColorBlendAttachmentStateRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfVideoFormatPropertiesValue = unsafe.Sizeof([1]C.VkVideoFormatPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineColorBlendStateCreateInfo) Ref() *C.VkPipelineColorBlendStateCreateInfo { +func (x *VideoFormatProperties) Ref() *C.VkVideoFormatPropertiesKHR { if x == nil { return nil } - return x.ref2a9b490b + return x.refa1a566f8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineColorBlendStateCreateInfo) Free() { - if x != nil && x.allocs2a9b490b != nil { - x.allocs2a9b490b.(*cgoAllocMap).Free() - x.ref2a9b490b = nil +func (x *VideoFormatProperties) Free() { + if x != nil && x.allocsa1a566f8 != nil { + x.allocsa1a566f8.(*cgoAllocMap).Free() + x.refa1a566f8 = nil } } -// NewPipelineColorBlendStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineColorBlendStateCreateInfoRef(ref unsafe.Pointer) *PipelineColorBlendStateCreateInfo { +func NewVideoFormatPropertiesRef(ref unsafe.Pointer) *VideoFormatProperties { if ref == nil { return nil } - obj := new(PipelineColorBlendStateCreateInfo) - obj.ref2a9b490b = (*C.VkPipelineColorBlendStateCreateInfo)(unsafe.Pointer(ref)) + obj := new(VideoFormatProperties) + obj.refa1a566f8 = (*C.VkVideoFormatPropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineColorBlendStateCreateInfo) PassRef() (*C.VkPipelineColorBlendStateCreateInfo, *cgoAllocMap) { +func (x *VideoFormatProperties) PassRef() (*C.VkVideoFormatPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2a9b490b != nil { - return x.ref2a9b490b, nil + } else if x.refa1a566f8 != nil { + return x.refa1a566f8, nil } - mem2a9b490b := allocPipelineColorBlendStateCreateInfoMemory(1) - ref2a9b490b := (*C.VkPipelineColorBlendStateCreateInfo)(mem2a9b490b) - allocs2a9b490b := new(cgoAllocMap) - allocs2a9b490b.Add(mem2a9b490b) + mema1a566f8 := allocVideoFormatPropertiesMemory(1) + refa1a566f8 := (*C.VkVideoFormatPropertiesKHR)(mema1a566f8) + allocsa1a566f8 := new(cgoAllocMap) + allocsa1a566f8.Add(mema1a566f8) var csType_allocs *cgoAllocMap - ref2a9b490b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2a9b490b.Borrow(csType_allocs) + refa1a566f8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa1a566f8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2a9b490b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2a9b490b.Borrow(cpNext_allocs) + refa1a566f8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa1a566f8.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref2a9b490b.flags, cflags_allocs = (C.VkPipelineColorBlendStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocs2a9b490b.Borrow(cflags_allocs) + var cformat_allocs *cgoAllocMap + refa1a566f8.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocsa1a566f8.Borrow(cformat_allocs) - var clogicOpEnable_allocs *cgoAllocMap - ref2a9b490b.logicOpEnable, clogicOpEnable_allocs = (C.VkBool32)(x.LogicOpEnable), cgoAllocsUnknown - allocs2a9b490b.Borrow(clogicOpEnable_allocs) + var ccomponentMapping_allocs *cgoAllocMap + refa1a566f8.componentMapping, ccomponentMapping_allocs = x.ComponentMapping.PassValue() + allocsa1a566f8.Borrow(ccomponentMapping_allocs) - var clogicOp_allocs *cgoAllocMap - ref2a9b490b.logicOp, clogicOp_allocs = (C.VkLogicOp)(x.LogicOp), cgoAllocsUnknown - allocs2a9b490b.Borrow(clogicOp_allocs) + var cimageCreateFlags_allocs *cgoAllocMap + refa1a566f8.imageCreateFlags, cimageCreateFlags_allocs = (C.VkImageCreateFlags)(x.ImageCreateFlags), cgoAllocsUnknown + allocsa1a566f8.Borrow(cimageCreateFlags_allocs) - var cattachmentCount_allocs *cgoAllocMap - ref2a9b490b.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown - allocs2a9b490b.Borrow(cattachmentCount_allocs) + var cimageType_allocs *cgoAllocMap + refa1a566f8.imageType, cimageType_allocs = (C.VkImageType)(x.ImageType), cgoAllocsUnknown + allocsa1a566f8.Borrow(cimageType_allocs) - var cpAttachments_allocs *cgoAllocMap - ref2a9b490b.pAttachments, cpAttachments_allocs = unpackSPipelineColorBlendAttachmentState(x.PAttachments) - allocs2a9b490b.Borrow(cpAttachments_allocs) + var cimageTiling_allocs *cgoAllocMap + refa1a566f8.imageTiling, cimageTiling_allocs = (C.VkImageTiling)(x.ImageTiling), cgoAllocsUnknown + allocsa1a566f8.Borrow(cimageTiling_allocs) - var cblendConstants_allocs *cgoAllocMap - ref2a9b490b.blendConstants, cblendConstants_allocs = *(*[4]C.float)(unsafe.Pointer(&x.BlendConstants)), cgoAllocsUnknown - allocs2a9b490b.Borrow(cblendConstants_allocs) + var cimageUsageFlags_allocs *cgoAllocMap + refa1a566f8.imageUsageFlags, cimageUsageFlags_allocs = (C.VkImageUsageFlags)(x.ImageUsageFlags), cgoAllocsUnknown + allocsa1a566f8.Borrow(cimageUsageFlags_allocs) - x.ref2a9b490b = ref2a9b490b - x.allocs2a9b490b = allocs2a9b490b - return ref2a9b490b, allocs2a9b490b + x.refa1a566f8 = refa1a566f8 + x.allocsa1a566f8 = allocsa1a566f8 + return refa1a566f8, allocsa1a566f8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineColorBlendStateCreateInfo) PassValue() (C.VkPipelineColorBlendStateCreateInfo, *cgoAllocMap) { - if x.ref2a9b490b != nil { - return *x.ref2a9b490b, nil +func (x VideoFormatProperties) PassValue() (C.VkVideoFormatPropertiesKHR, *cgoAllocMap) { + if x.refa1a566f8 != nil { + return *x.refa1a566f8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8096,103 +35408,107 @@ func (x PipelineColorBlendStateCreateInfo) PassValue() (C.VkPipelineColorBlendSt // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineColorBlendStateCreateInfo) Deref() { - if x.ref2a9b490b == nil { +func (x *VideoFormatProperties) Deref() { + if x.refa1a566f8 == nil { return } - x.SType = (StructureType)(x.ref2a9b490b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2a9b490b.pNext)) - x.Flags = (PipelineColorBlendStateCreateFlags)(x.ref2a9b490b.flags) - x.LogicOpEnable = (Bool32)(x.ref2a9b490b.logicOpEnable) - x.LogicOp = (LogicOp)(x.ref2a9b490b.logicOp) - x.AttachmentCount = (uint32)(x.ref2a9b490b.attachmentCount) - packSPipelineColorBlendAttachmentState(x.PAttachments, x.ref2a9b490b.pAttachments) - x.BlendConstants = *(*[4]float32)(unsafe.Pointer(&x.ref2a9b490b.blendConstants)) + x.SType = (StructureType)(x.refa1a566f8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa1a566f8.pNext)) + x.Format = (Format)(x.refa1a566f8.format) + x.ComponentMapping = *NewComponentMappingRef(unsafe.Pointer(&x.refa1a566f8.componentMapping)) + x.ImageCreateFlags = (ImageCreateFlags)(x.refa1a566f8.imageCreateFlags) + x.ImageType = (ImageType)(x.refa1a566f8.imageType) + x.ImageTiling = (ImageTiling)(x.refa1a566f8.imageTiling) + x.ImageUsageFlags = (ImageUsageFlags)(x.refa1a566f8.imageUsageFlags) } -// allocPipelineDynamicStateCreateInfoMemory allocates memory for type C.VkPipelineDynamicStateCreateInfo in C. +// allocVideoPictureResourceInfoMemory allocates memory for type C.VkVideoPictureResourceInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineDynamicStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineDynamicStateCreateInfoValue)) +func allocVideoPictureResourceInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoPictureResourceInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineDynamicStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDynamicStateCreateInfo{}) +const sizeOfVideoPictureResourceInfoValue = unsafe.Sizeof([1]C.VkVideoPictureResourceInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineDynamicStateCreateInfo) Ref() *C.VkPipelineDynamicStateCreateInfo { +func (x *VideoPictureResourceInfo) Ref() *C.VkVideoPictureResourceInfoKHR { if x == nil { return nil } - return x.ref246d7bc8 + return x.refe7a42049 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineDynamicStateCreateInfo) Free() { - if x != nil && x.allocs246d7bc8 != nil { - x.allocs246d7bc8.(*cgoAllocMap).Free() - x.ref246d7bc8 = nil +func (x *VideoPictureResourceInfo) Free() { + if x != nil && x.allocse7a42049 != nil { + x.allocse7a42049.(*cgoAllocMap).Free() + x.refe7a42049 = nil } } -// NewPipelineDynamicStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoPictureResourceInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineDynamicStateCreateInfoRef(ref unsafe.Pointer) *PipelineDynamicStateCreateInfo { +func NewVideoPictureResourceInfoRef(ref unsafe.Pointer) *VideoPictureResourceInfo { if ref == nil { return nil } - obj := new(PipelineDynamicStateCreateInfo) - obj.ref246d7bc8 = (*C.VkPipelineDynamicStateCreateInfo)(unsafe.Pointer(ref)) + obj := new(VideoPictureResourceInfo) + obj.refe7a42049 = (*C.VkVideoPictureResourceInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineDynamicStateCreateInfo) PassRef() (*C.VkPipelineDynamicStateCreateInfo, *cgoAllocMap) { +func (x *VideoPictureResourceInfo) PassRef() (*C.VkVideoPictureResourceInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref246d7bc8 != nil { - return x.ref246d7bc8, nil + } else if x.refe7a42049 != nil { + return x.refe7a42049, nil } - mem246d7bc8 := allocPipelineDynamicStateCreateInfoMemory(1) - ref246d7bc8 := (*C.VkPipelineDynamicStateCreateInfo)(mem246d7bc8) - allocs246d7bc8 := new(cgoAllocMap) - allocs246d7bc8.Add(mem246d7bc8) + meme7a42049 := allocVideoPictureResourceInfoMemory(1) + refe7a42049 := (*C.VkVideoPictureResourceInfoKHR)(meme7a42049) + allocse7a42049 := new(cgoAllocMap) + allocse7a42049.Add(meme7a42049) var csType_allocs *cgoAllocMap - ref246d7bc8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs246d7bc8.Borrow(csType_allocs) + refe7a42049.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse7a42049.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref246d7bc8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs246d7bc8.Borrow(cpNext_allocs) + refe7a42049.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse7a42049.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref246d7bc8.flags, cflags_allocs = (C.VkPipelineDynamicStateCreateFlags)(x.Flags), cgoAllocsUnknown - allocs246d7bc8.Borrow(cflags_allocs) + var ccodedOffset_allocs *cgoAllocMap + refe7a42049.codedOffset, ccodedOffset_allocs = x.CodedOffset.PassValue() + allocse7a42049.Borrow(ccodedOffset_allocs) - var cdynamicStateCount_allocs *cgoAllocMap - ref246d7bc8.dynamicStateCount, cdynamicStateCount_allocs = (C.uint32_t)(x.DynamicStateCount), cgoAllocsUnknown - allocs246d7bc8.Borrow(cdynamicStateCount_allocs) + var ccodedExtent_allocs *cgoAllocMap + refe7a42049.codedExtent, ccodedExtent_allocs = x.CodedExtent.PassValue() + allocse7a42049.Borrow(ccodedExtent_allocs) - var cpDynamicStates_allocs *cgoAllocMap - ref246d7bc8.pDynamicStates, cpDynamicStates_allocs = (*C.VkDynamicState)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDynamicStates)).Data)), cgoAllocsUnknown - allocs246d7bc8.Borrow(cpDynamicStates_allocs) + var cbaseArrayLayer_allocs *cgoAllocMap + refe7a42049.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown + allocse7a42049.Borrow(cbaseArrayLayer_allocs) - x.ref246d7bc8 = ref246d7bc8 - x.allocs246d7bc8 = allocs246d7bc8 - return ref246d7bc8, allocs246d7bc8 + var cimageViewBinding_allocs *cgoAllocMap + refe7a42049.imageViewBinding, cimageViewBinding_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageViewBinding)), cgoAllocsUnknown + allocse7a42049.Borrow(cimageViewBinding_allocs) + + x.refe7a42049 = refe7a42049 + x.allocse7a42049 = allocse7a42049 + return refe7a42049, allocse7a42049 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineDynamicStateCreateInfo) PassValue() (C.VkPipelineDynamicStateCreateInfo, *cgoAllocMap) { - if x.ref246d7bc8 != nil { - return *x.ref246d7bc8, nil +func (x VideoPictureResourceInfo) PassValue() (C.VkVideoPictureResourceInfoKHR, *cgoAllocMap) { + if x.refe7a42049 != nil { + return *x.refe7a42049, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8200,198 +35516,135 @@ func (x PipelineDynamicStateCreateInfo) PassValue() (C.VkPipelineDynamicStateCre // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineDynamicStateCreateInfo) Deref() { - if x.ref246d7bc8 == nil { +func (x *VideoPictureResourceInfo) Deref() { + if x.refe7a42049 == nil { return } - x.SType = (StructureType)(x.ref246d7bc8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref246d7bc8.pNext)) - x.Flags = (PipelineDynamicStateCreateFlags)(x.ref246d7bc8.flags) - x.DynamicStateCount = (uint32)(x.ref246d7bc8.dynamicStateCount) - hxf7a6dff := (*sliceHeader)(unsafe.Pointer(&x.PDynamicStates)) - hxf7a6dff.Data = unsafe.Pointer(x.ref246d7bc8.pDynamicStates) - hxf7a6dff.Cap = 0x7fffffff - // hxf7a6dff.Len = ? - + x.SType = (StructureType)(x.refe7a42049.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe7a42049.pNext)) + x.CodedOffset = *NewOffset2DRef(unsafe.Pointer(&x.refe7a42049.codedOffset)) + x.CodedExtent = *NewExtent2DRef(unsafe.Pointer(&x.refe7a42049.codedExtent)) + x.BaseArrayLayer = (uint32)(x.refe7a42049.baseArrayLayer) + x.ImageViewBinding = *(*ImageView)(unsafe.Pointer(&x.refe7a42049.imageViewBinding)) } -// allocGraphicsPipelineCreateInfoMemory allocates memory for type C.VkGraphicsPipelineCreateInfo in C. +// allocVideoReferenceSlotInfoMemory allocates memory for type C.VkVideoReferenceSlotInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocGraphicsPipelineCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsPipelineCreateInfoValue)) +func allocVideoReferenceSlotInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoReferenceSlotInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfGraphicsPipelineCreateInfoValue = unsafe.Sizeof([1]C.VkGraphicsPipelineCreateInfo{}) +const sizeOfVideoReferenceSlotInfoValue = unsafe.Sizeof([1]C.VkVideoReferenceSlotInfoKHR{}) -// unpackSPipelineShaderStageCreateInfo transforms a sliced Go data structure into plain C format. -func unpackSPipelineShaderStageCreateInfo(x []PipelineShaderStageCreateInfo) (unpacked *C.VkPipelineShaderStageCreateInfo, allocs *cgoAllocMap) { +// unpackSVideoPictureResourceInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoPictureResourceInfo(x []VideoPictureResourceInfo) (unpacked *C.VkVideoPictureResourceInfoKHR, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineShaderStageCreateInfo) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoPictureResourceInfoKHR) { go allocs.Free() }) len0 := len(x) - mem0 := allocPipelineShaderStageCreateInfoMemory(len0) + mem0 := allocVideoPictureResourceInfoMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkPipelineShaderStageCreateInfo)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkVideoPictureResourceInfoKHR)(unsafe.Pointer(h0)) for i0 := range x { allocs0 := new(cgoAllocMap) v0[i0], allocs0 = x[i0].PassValue() allocs.Borrow(allocs0) } h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkPipelineShaderStageCreateInfo)(h.Data) + unpacked = (*C.VkVideoPictureResourceInfoKHR)(h.Data) return } -// packSPipelineShaderStageCreateInfo reads sliced Go data structure out from plain C format. -func packSPipelineShaderStageCreateInfo(v []PipelineShaderStageCreateInfo, ptr0 *C.VkPipelineShaderStageCreateInfo) { +// packSVideoPictureResourceInfo reads sliced Go data structure out from plain C format. +func packSVideoPictureResourceInfo(v []VideoPictureResourceInfo, ptr0 *C.VkVideoPictureResourceInfoKHR) { const m = 0x7fffffff for i0 := range v { - ptr1 := (*(*[m / sizeOfPipelineShaderStageCreateInfoValue]C.VkPipelineShaderStageCreateInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewPipelineShaderStageCreateInfoRef(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfVideoPictureResourceInfoValue]C.VkVideoPictureResourceInfoKHR)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoPictureResourceInfoRef(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GraphicsPipelineCreateInfo) Ref() *C.VkGraphicsPipelineCreateInfo { +func (x *VideoReferenceSlotInfo) Ref() *C.VkVideoReferenceSlotInfoKHR { if x == nil { return nil } - return x.ref178f88b6 + return x.refbbd1d28 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *GraphicsPipelineCreateInfo) Free() { - if x != nil && x.allocs178f88b6 != nil { - x.allocs178f88b6.(*cgoAllocMap).Free() - x.ref178f88b6 = nil +func (x *VideoReferenceSlotInfo) Free() { + if x != nil && x.allocsbbd1d28 != nil { + x.allocsbbd1d28.(*cgoAllocMap).Free() + x.refbbd1d28 = nil } } -// NewGraphicsPipelineCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoReferenceSlotInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewGraphicsPipelineCreateInfoRef(ref unsafe.Pointer) *GraphicsPipelineCreateInfo { +func NewVideoReferenceSlotInfoRef(ref unsafe.Pointer) *VideoReferenceSlotInfo { if ref == nil { return nil } - obj := new(GraphicsPipelineCreateInfo) - obj.ref178f88b6 = (*C.VkGraphicsPipelineCreateInfo)(unsafe.Pointer(ref)) + obj := new(VideoReferenceSlotInfo) + obj.refbbd1d28 = (*C.VkVideoReferenceSlotInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *GraphicsPipelineCreateInfo) PassRef() (*C.VkGraphicsPipelineCreateInfo, *cgoAllocMap) { +func (x *VideoReferenceSlotInfo) PassRef() (*C.VkVideoReferenceSlotInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref178f88b6 != nil { - return x.ref178f88b6, nil + } else if x.refbbd1d28 != nil { + return x.refbbd1d28, nil } - mem178f88b6 := allocGraphicsPipelineCreateInfoMemory(1) - ref178f88b6 := (*C.VkGraphicsPipelineCreateInfo)(mem178f88b6) - allocs178f88b6 := new(cgoAllocMap) - allocs178f88b6.Add(mem178f88b6) + membbd1d28 := allocVideoReferenceSlotInfoMemory(1) + refbbd1d28 := (*C.VkVideoReferenceSlotInfoKHR)(membbd1d28) + allocsbbd1d28 := new(cgoAllocMap) + allocsbbd1d28.Add(membbd1d28) var csType_allocs *cgoAllocMap - ref178f88b6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs178f88b6.Borrow(csType_allocs) + refbbd1d28.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbbd1d28.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref178f88b6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs178f88b6.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref178f88b6.flags, cflags_allocs = (C.VkPipelineCreateFlags)(x.Flags), cgoAllocsUnknown - allocs178f88b6.Borrow(cflags_allocs) - - var cstageCount_allocs *cgoAllocMap - ref178f88b6.stageCount, cstageCount_allocs = (C.uint32_t)(x.StageCount), cgoAllocsUnknown - allocs178f88b6.Borrow(cstageCount_allocs) - - var cpStages_allocs *cgoAllocMap - ref178f88b6.pStages, cpStages_allocs = unpackSPipelineShaderStageCreateInfo(x.PStages) - allocs178f88b6.Borrow(cpStages_allocs) - - var cpVertexInputState_allocs *cgoAllocMap - ref178f88b6.pVertexInputState, cpVertexInputState_allocs = x.PVertexInputState.PassRef() - allocs178f88b6.Borrow(cpVertexInputState_allocs) - - var cpInputAssemblyState_allocs *cgoAllocMap - ref178f88b6.pInputAssemblyState, cpInputAssemblyState_allocs = x.PInputAssemblyState.PassRef() - allocs178f88b6.Borrow(cpInputAssemblyState_allocs) - - var cpTessellationState_allocs *cgoAllocMap - ref178f88b6.pTessellationState, cpTessellationState_allocs = x.PTessellationState.PassRef() - allocs178f88b6.Borrow(cpTessellationState_allocs) - - var cpViewportState_allocs *cgoAllocMap - ref178f88b6.pViewportState, cpViewportState_allocs = x.PViewportState.PassRef() - allocs178f88b6.Borrow(cpViewportState_allocs) - - var cpRasterizationState_allocs *cgoAllocMap - ref178f88b6.pRasterizationState, cpRasterizationState_allocs = x.PRasterizationState.PassRef() - allocs178f88b6.Borrow(cpRasterizationState_allocs) - - var cpMultisampleState_allocs *cgoAllocMap - ref178f88b6.pMultisampleState, cpMultisampleState_allocs = x.PMultisampleState.PassRef() - allocs178f88b6.Borrow(cpMultisampleState_allocs) - - var cpDepthStencilState_allocs *cgoAllocMap - ref178f88b6.pDepthStencilState, cpDepthStencilState_allocs = x.PDepthStencilState.PassRef() - allocs178f88b6.Borrow(cpDepthStencilState_allocs) - - var cpColorBlendState_allocs *cgoAllocMap - ref178f88b6.pColorBlendState, cpColorBlendState_allocs = x.PColorBlendState.PassRef() - allocs178f88b6.Borrow(cpColorBlendState_allocs) - - var cpDynamicState_allocs *cgoAllocMap - ref178f88b6.pDynamicState, cpDynamicState_allocs = x.PDynamicState.PassRef() - allocs178f88b6.Borrow(cpDynamicState_allocs) - - var clayout_allocs *cgoAllocMap - ref178f88b6.layout, clayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.Layout)), cgoAllocsUnknown - allocs178f88b6.Borrow(clayout_allocs) - - var crenderPass_allocs *cgoAllocMap - ref178f88b6.renderPass, crenderPass_allocs = *(*C.VkRenderPass)(unsafe.Pointer(&x.RenderPass)), cgoAllocsUnknown - allocs178f88b6.Borrow(crenderPass_allocs) - - var csubpass_allocs *cgoAllocMap - ref178f88b6.subpass, csubpass_allocs = (C.uint32_t)(x.Subpass), cgoAllocsUnknown - allocs178f88b6.Borrow(csubpass_allocs) + refbbd1d28.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbbd1d28.Borrow(cpNext_allocs) - var cbasePipelineHandle_allocs *cgoAllocMap - ref178f88b6.basePipelineHandle, cbasePipelineHandle_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.BasePipelineHandle)), cgoAllocsUnknown - allocs178f88b6.Borrow(cbasePipelineHandle_allocs) + var cslotIndex_allocs *cgoAllocMap + refbbd1d28.slotIndex, cslotIndex_allocs = (C.int32_t)(x.SlotIndex), cgoAllocsUnknown + allocsbbd1d28.Borrow(cslotIndex_allocs) - var cbasePipelineIndex_allocs *cgoAllocMap - ref178f88b6.basePipelineIndex, cbasePipelineIndex_allocs = (C.int32_t)(x.BasePipelineIndex), cgoAllocsUnknown - allocs178f88b6.Borrow(cbasePipelineIndex_allocs) + var cpPictureResource_allocs *cgoAllocMap + refbbd1d28.pPictureResource, cpPictureResource_allocs = unpackSVideoPictureResourceInfo(x.PPictureResource) + allocsbbd1d28.Borrow(cpPictureResource_allocs) - x.ref178f88b6 = ref178f88b6 - x.allocs178f88b6 = allocs178f88b6 - return ref178f88b6, allocs178f88b6 + x.refbbd1d28 = refbbd1d28 + x.allocsbbd1d28 = allocsbbd1d28 + return refbbd1d28, allocsbbd1d28 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x GraphicsPipelineCreateInfo) PassValue() (C.VkGraphicsPipelineCreateInfo, *cgoAllocMap) { - if x.ref178f88b6 != nil { - return *x.ref178f88b6, nil +func (x VideoReferenceSlotInfo) PassValue() (C.VkVideoReferenceSlotInfoKHR, *cgoAllocMap) { + if x.refbbd1d28 != nil { + return *x.refbbd1d28, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8399,122 +35652,95 @@ func (x GraphicsPipelineCreateInfo) PassValue() (C.VkGraphicsPipelineCreateInfo, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *GraphicsPipelineCreateInfo) Deref() { - if x.ref178f88b6 == nil { +func (x *VideoReferenceSlotInfo) Deref() { + if x.refbbd1d28 == nil { return } - x.SType = (StructureType)(x.ref178f88b6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref178f88b6.pNext)) - x.Flags = (PipelineCreateFlags)(x.ref178f88b6.flags) - x.StageCount = (uint32)(x.ref178f88b6.stageCount) - packSPipelineShaderStageCreateInfo(x.PStages, x.ref178f88b6.pStages) - x.PVertexInputState = NewPipelineVertexInputStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pVertexInputState)) - x.PInputAssemblyState = NewPipelineInputAssemblyStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pInputAssemblyState)) - x.PTessellationState = NewPipelineTessellationStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pTessellationState)) - x.PViewportState = NewPipelineViewportStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pViewportState)) - x.PRasterizationState = NewPipelineRasterizationStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pRasterizationState)) - x.PMultisampleState = NewPipelineMultisampleStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pMultisampleState)) - x.PDepthStencilState = NewPipelineDepthStencilStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pDepthStencilState)) - x.PColorBlendState = NewPipelineColorBlendStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pColorBlendState)) - x.PDynamicState = NewPipelineDynamicStateCreateInfoRef(unsafe.Pointer(x.ref178f88b6.pDynamicState)) - x.Layout = *(*PipelineLayout)(unsafe.Pointer(&x.ref178f88b6.layout)) - x.RenderPass = *(*RenderPass)(unsafe.Pointer(&x.ref178f88b6.renderPass)) - x.Subpass = (uint32)(x.ref178f88b6.subpass) - x.BasePipelineHandle = *(*Pipeline)(unsafe.Pointer(&x.ref178f88b6.basePipelineHandle)) - x.BasePipelineIndex = (int32)(x.ref178f88b6.basePipelineIndex) + x.SType = (StructureType)(x.refbbd1d28.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbbd1d28.pNext)) + x.SlotIndex = (int32)(x.refbbd1d28.slotIndex) + packSVideoPictureResourceInfo(x.PPictureResource, x.refbbd1d28.pPictureResource) } -// allocComputePipelineCreateInfoMemory allocates memory for type C.VkComputePipelineCreateInfo in C. +// allocVideoSessionMemoryRequirementsMemory allocates memory for type C.VkVideoSessionMemoryRequirementsKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocComputePipelineCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfComputePipelineCreateInfoValue)) +func allocVideoSessionMemoryRequirementsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoSessionMemoryRequirementsValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfComputePipelineCreateInfoValue = unsafe.Sizeof([1]C.VkComputePipelineCreateInfo{}) +const sizeOfVideoSessionMemoryRequirementsValue = unsafe.Sizeof([1]C.VkVideoSessionMemoryRequirementsKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ComputePipelineCreateInfo) Ref() *C.VkComputePipelineCreateInfo { +func (x *VideoSessionMemoryRequirements) Ref() *C.VkVideoSessionMemoryRequirementsKHR { if x == nil { return nil } - return x.ref77823220 + return x.refd39e523e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ComputePipelineCreateInfo) Free() { - if x != nil && x.allocs77823220 != nil { - x.allocs77823220.(*cgoAllocMap).Free() - x.ref77823220 = nil +func (x *VideoSessionMemoryRequirements) Free() { + if x != nil && x.allocsd39e523e != nil { + x.allocsd39e523e.(*cgoAllocMap).Free() + x.refd39e523e = nil } } -// NewComputePipelineCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoSessionMemoryRequirementsRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewComputePipelineCreateInfoRef(ref unsafe.Pointer) *ComputePipelineCreateInfo { +func NewVideoSessionMemoryRequirementsRef(ref unsafe.Pointer) *VideoSessionMemoryRequirements { if ref == nil { return nil } - obj := new(ComputePipelineCreateInfo) - obj.ref77823220 = (*C.VkComputePipelineCreateInfo)(unsafe.Pointer(ref)) + obj := new(VideoSessionMemoryRequirements) + obj.refd39e523e = (*C.VkVideoSessionMemoryRequirementsKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ComputePipelineCreateInfo) PassRef() (*C.VkComputePipelineCreateInfo, *cgoAllocMap) { +func (x *VideoSessionMemoryRequirements) PassRef() (*C.VkVideoSessionMemoryRequirementsKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref77823220 != nil { - return x.ref77823220, nil + } else if x.refd39e523e != nil { + return x.refd39e523e, nil } - mem77823220 := allocComputePipelineCreateInfoMemory(1) - ref77823220 := (*C.VkComputePipelineCreateInfo)(mem77823220) - allocs77823220 := new(cgoAllocMap) - allocs77823220.Add(mem77823220) + memd39e523e := allocVideoSessionMemoryRequirementsMemory(1) + refd39e523e := (*C.VkVideoSessionMemoryRequirementsKHR)(memd39e523e) + allocsd39e523e := new(cgoAllocMap) + allocsd39e523e.Add(memd39e523e) var csType_allocs *cgoAllocMap - ref77823220.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs77823220.Borrow(csType_allocs) + refd39e523e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd39e523e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref77823220.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs77823220.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref77823220.flags, cflags_allocs = (C.VkPipelineCreateFlags)(x.Flags), cgoAllocsUnknown - allocs77823220.Borrow(cflags_allocs) - - var cstage_allocs *cgoAllocMap - ref77823220.stage, cstage_allocs = x.Stage.PassValue() - allocs77823220.Borrow(cstage_allocs) - - var clayout_allocs *cgoAllocMap - ref77823220.layout, clayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.Layout)), cgoAllocsUnknown - allocs77823220.Borrow(clayout_allocs) + refd39e523e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd39e523e.Borrow(cpNext_allocs) - var cbasePipelineHandle_allocs *cgoAllocMap - ref77823220.basePipelineHandle, cbasePipelineHandle_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.BasePipelineHandle)), cgoAllocsUnknown - allocs77823220.Borrow(cbasePipelineHandle_allocs) + var cmemoryBindIndex_allocs *cgoAllocMap + refd39e523e.memoryBindIndex, cmemoryBindIndex_allocs = (C.uint32_t)(x.MemoryBindIndex), cgoAllocsUnknown + allocsd39e523e.Borrow(cmemoryBindIndex_allocs) - var cbasePipelineIndex_allocs *cgoAllocMap - ref77823220.basePipelineIndex, cbasePipelineIndex_allocs = (C.int32_t)(x.BasePipelineIndex), cgoAllocsUnknown - allocs77823220.Borrow(cbasePipelineIndex_allocs) + var cmemoryRequirements_allocs *cgoAllocMap + refd39e523e.memoryRequirements, cmemoryRequirements_allocs = x.MemoryRequirements.PassValue() + allocsd39e523e.Borrow(cmemoryRequirements_allocs) - x.ref77823220 = ref77823220 - x.allocs77823220 = allocs77823220 - return ref77823220, allocs77823220 + x.refd39e523e = refd39e523e + x.allocsd39e523e = allocsd39e523e + return refd39e523e, allocsd39e523e } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ComputePipelineCreateInfo) PassValue() (C.VkComputePipelineCreateInfo, *cgoAllocMap) { - if x.ref77823220 != nil { - return *x.ref77823220, nil +func (x VideoSessionMemoryRequirements) PassValue() (C.VkVideoSessionMemoryRequirementsKHR, *cgoAllocMap) { + if x.refd39e523e != nil { + return *x.refd39e523e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8522,94 +35748,103 @@ func (x ComputePipelineCreateInfo) PassValue() (C.VkComputePipelineCreateInfo, * // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ComputePipelineCreateInfo) Deref() { - if x.ref77823220 == nil { +func (x *VideoSessionMemoryRequirements) Deref() { + if x.refd39e523e == nil { return } - x.SType = (StructureType)(x.ref77823220.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref77823220.pNext)) - x.Flags = (PipelineCreateFlags)(x.ref77823220.flags) - x.Stage = *NewPipelineShaderStageCreateInfoRef(unsafe.Pointer(&x.ref77823220.stage)) - x.Layout = *(*PipelineLayout)(unsafe.Pointer(&x.ref77823220.layout)) - x.BasePipelineHandle = *(*Pipeline)(unsafe.Pointer(&x.ref77823220.basePipelineHandle)) - x.BasePipelineIndex = (int32)(x.ref77823220.basePipelineIndex) + x.SType = (StructureType)(x.refd39e523e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd39e523e.pNext)) + x.MemoryBindIndex = (uint32)(x.refd39e523e.memoryBindIndex) + x.MemoryRequirements = *NewMemoryRequirementsRef(unsafe.Pointer(&x.refd39e523e.memoryRequirements)) } -// allocPushConstantRangeMemory allocates memory for type C.VkPushConstantRange in C. +// allocBindVideoSessionMemoryInfoMemory allocates memory for type C.VkBindVideoSessionMemoryInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPushConstantRangeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPushConstantRangeValue)) +func allocBindVideoSessionMemoryInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindVideoSessionMemoryInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPushConstantRangeValue = unsafe.Sizeof([1]C.VkPushConstantRange{}) +const sizeOfBindVideoSessionMemoryInfoValue = unsafe.Sizeof([1]C.VkBindVideoSessionMemoryInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PushConstantRange) Ref() *C.VkPushConstantRange { +func (x *BindVideoSessionMemoryInfo) Ref() *C.VkBindVideoSessionMemoryInfoKHR { if x == nil { return nil } - return x.ref6f025856 + return x.refaa36fd7c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PushConstantRange) Free() { - if x != nil && x.allocs6f025856 != nil { - x.allocs6f025856.(*cgoAllocMap).Free() - x.ref6f025856 = nil +func (x *BindVideoSessionMemoryInfo) Free() { + if x != nil && x.allocsaa36fd7c != nil { + x.allocsaa36fd7c.(*cgoAllocMap).Free() + x.refaa36fd7c = nil } } -// NewPushConstantRangeRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBindVideoSessionMemoryInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPushConstantRangeRef(ref unsafe.Pointer) *PushConstantRange { +func NewBindVideoSessionMemoryInfoRef(ref unsafe.Pointer) *BindVideoSessionMemoryInfo { if ref == nil { return nil } - obj := new(PushConstantRange) - obj.ref6f025856 = (*C.VkPushConstantRange)(unsafe.Pointer(ref)) + obj := new(BindVideoSessionMemoryInfo) + obj.refaa36fd7c = (*C.VkBindVideoSessionMemoryInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PushConstantRange) PassRef() (*C.VkPushConstantRange, *cgoAllocMap) { +func (x *BindVideoSessionMemoryInfo) PassRef() (*C.VkBindVideoSessionMemoryInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6f025856 != nil { - return x.ref6f025856, nil + } else if x.refaa36fd7c != nil { + return x.refaa36fd7c, nil } - mem6f025856 := allocPushConstantRangeMemory(1) - ref6f025856 := (*C.VkPushConstantRange)(mem6f025856) - allocs6f025856 := new(cgoAllocMap) - allocs6f025856.Add(mem6f025856) + memaa36fd7c := allocBindVideoSessionMemoryInfoMemory(1) + refaa36fd7c := (*C.VkBindVideoSessionMemoryInfoKHR)(memaa36fd7c) + allocsaa36fd7c := new(cgoAllocMap) + allocsaa36fd7c.Add(memaa36fd7c) - var cstageFlags_allocs *cgoAllocMap - ref6f025856.stageFlags, cstageFlags_allocs = (C.VkShaderStageFlags)(x.StageFlags), cgoAllocsUnknown - allocs6f025856.Borrow(cstageFlags_allocs) + var csType_allocs *cgoAllocMap + refaa36fd7c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaa36fd7c.Borrow(csType_allocs) - var coffset_allocs *cgoAllocMap - ref6f025856.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown - allocs6f025856.Borrow(coffset_allocs) + var cpNext_allocs *cgoAllocMap + refaa36fd7c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaa36fd7c.Borrow(cpNext_allocs) - var csize_allocs *cgoAllocMap - ref6f025856.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown - allocs6f025856.Borrow(csize_allocs) + var cmemoryBindIndex_allocs *cgoAllocMap + refaa36fd7c.memoryBindIndex, cmemoryBindIndex_allocs = (C.uint32_t)(x.MemoryBindIndex), cgoAllocsUnknown + allocsaa36fd7c.Borrow(cmemoryBindIndex_allocs) - x.ref6f025856 = ref6f025856 - x.allocs6f025856 = allocs6f025856 - return ref6f025856, allocs6f025856 + var cmemory_allocs *cgoAllocMap + refaa36fd7c.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocsaa36fd7c.Borrow(cmemory_allocs) + + var cmemoryOffset_allocs *cgoAllocMap + refaa36fd7c.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown + allocsaa36fd7c.Borrow(cmemoryOffset_allocs) + + var cmemorySize_allocs *cgoAllocMap + refaa36fd7c.memorySize, cmemorySize_allocs = (C.VkDeviceSize)(x.MemorySize), cgoAllocsUnknown + allocsaa36fd7c.Borrow(cmemorySize_allocs) + + x.refaa36fd7c = refaa36fd7c + x.allocsaa36fd7c = allocsaa36fd7c + return refaa36fd7c, allocsaa36fd7c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PushConstantRange) PassValue() (C.VkPushConstantRange, *cgoAllocMap) { - if x.ref6f025856 != nil { - return *x.ref6f025856, nil +func (x BindVideoSessionMemoryInfo) PassValue() (C.VkBindVideoSessionMemoryInfoKHR, *cgoAllocMap) { + if x.refaa36fd7c != nil { + return *x.refaa36fd7c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8617,144 +35852,163 @@ func (x PushConstantRange) PassValue() (C.VkPushConstantRange, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PushConstantRange) Deref() { - if x.ref6f025856 == nil { +func (x *BindVideoSessionMemoryInfo) Deref() { + if x.refaa36fd7c == nil { return } - x.StageFlags = (ShaderStageFlags)(x.ref6f025856.stageFlags) - x.Offset = (uint32)(x.ref6f025856.offset) - x.Size = (uint32)(x.ref6f025856.size) + x.SType = (StructureType)(x.refaa36fd7c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaa36fd7c.pNext)) + x.MemoryBindIndex = (uint32)(x.refaa36fd7c.memoryBindIndex) + x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.refaa36fd7c.memory)) + x.MemoryOffset = (DeviceSize)(x.refaa36fd7c.memoryOffset) + x.MemorySize = (DeviceSize)(x.refaa36fd7c.memorySize) } -// allocPipelineLayoutCreateInfoMemory allocates memory for type C.VkPipelineLayoutCreateInfo in C. +// allocVideoSessionCreateInfoMemory allocates memory for type C.VkVideoSessionCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineLayoutCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineLayoutCreateInfoValue)) +func allocVideoSessionCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoSessionCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineLayoutCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineLayoutCreateInfo{}) +const sizeOfVideoSessionCreateInfoValue = unsafe.Sizeof([1]C.VkVideoSessionCreateInfoKHR{}) -// unpackSPushConstantRange transforms a sliced Go data structure into plain C format. -func unpackSPushConstantRange(x []PushConstantRange) (unpacked *C.VkPushConstantRange, allocs *cgoAllocMap) { +// unpackSExtensionProperties transforms a sliced Go data structure into plain C format. +func unpackSExtensionProperties(x []ExtensionProperties) (unpacked *C.VkExtensionProperties, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkPushConstantRange) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkExtensionProperties) { go allocs.Free() }) len0 := len(x) - mem0 := allocPushConstantRangeMemory(len0) + mem0 := allocExtensionPropertiesMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkPushConstantRange)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkExtensionProperties)(unsafe.Pointer(h0)) for i0 := range x { allocs0 := new(cgoAllocMap) v0[i0], allocs0 = x[i0].PassValue() allocs.Borrow(allocs0) } h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkPushConstantRange)(h.Data) + unpacked = (*C.VkExtensionProperties)(h.Data) return } -// packSPushConstantRange reads sliced Go data structure out from plain C format. -func packSPushConstantRange(v []PushConstantRange, ptr0 *C.VkPushConstantRange) { +// packSExtensionProperties reads sliced Go data structure out from plain C format. +func packSExtensionProperties(v []ExtensionProperties, ptr0 *C.VkExtensionProperties) { const m = 0x7fffffff for i0 := range v { - ptr1 := (*(*[m / sizeOfPushConstantRangeValue]C.VkPushConstantRange)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewPushConstantRangeRef(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfExtensionPropertiesValue]C.VkExtensionProperties)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewExtensionPropertiesRef(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineLayoutCreateInfo) Ref() *C.VkPipelineLayoutCreateInfo { +func (x *VideoSessionCreateInfo) Ref() *C.VkVideoSessionCreateInfoKHR { if x == nil { return nil } - return x.ref64cc4eed + return x.refaf4ef5a1 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineLayoutCreateInfo) Free() { - if x != nil && x.allocs64cc4eed != nil { - x.allocs64cc4eed.(*cgoAllocMap).Free() - x.ref64cc4eed = nil +func (x *VideoSessionCreateInfo) Free() { + if x != nil && x.allocsaf4ef5a1 != nil { + x.allocsaf4ef5a1.(*cgoAllocMap).Free() + x.refaf4ef5a1 = nil } } -// NewPipelineLayoutCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoSessionCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineLayoutCreateInfoRef(ref unsafe.Pointer) *PipelineLayoutCreateInfo { +func NewVideoSessionCreateInfoRef(ref unsafe.Pointer) *VideoSessionCreateInfo { if ref == nil { return nil } - obj := new(PipelineLayoutCreateInfo) - obj.ref64cc4eed = (*C.VkPipelineLayoutCreateInfo)(unsafe.Pointer(ref)) + obj := new(VideoSessionCreateInfo) + obj.refaf4ef5a1 = (*C.VkVideoSessionCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineLayoutCreateInfo) PassRef() (*C.VkPipelineLayoutCreateInfo, *cgoAllocMap) { +func (x *VideoSessionCreateInfo) PassRef() (*C.VkVideoSessionCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref64cc4eed != nil { - return x.ref64cc4eed, nil + } else if x.refaf4ef5a1 != nil { + return x.refaf4ef5a1, nil } - mem64cc4eed := allocPipelineLayoutCreateInfoMemory(1) - ref64cc4eed := (*C.VkPipelineLayoutCreateInfo)(mem64cc4eed) - allocs64cc4eed := new(cgoAllocMap) - allocs64cc4eed.Add(mem64cc4eed) + memaf4ef5a1 := allocVideoSessionCreateInfoMemory(1) + refaf4ef5a1 := (*C.VkVideoSessionCreateInfoKHR)(memaf4ef5a1) + allocsaf4ef5a1 := new(cgoAllocMap) + allocsaf4ef5a1.Add(memaf4ef5a1) var csType_allocs *cgoAllocMap - ref64cc4eed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs64cc4eed.Borrow(csType_allocs) + refaf4ef5a1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref64cc4eed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs64cc4eed.Borrow(cpNext_allocs) + refaf4ef5a1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(cpNext_allocs) + + var cqueueFamilyIndex_allocs *cgoAllocMap + refaf4ef5a1.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(cqueueFamilyIndex_allocs) var cflags_allocs *cgoAllocMap - ref64cc4eed.flags, cflags_allocs = (C.VkPipelineLayoutCreateFlags)(x.Flags), cgoAllocsUnknown - allocs64cc4eed.Borrow(cflags_allocs) + refaf4ef5a1.flags, cflags_allocs = (C.VkVideoSessionCreateFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(cflags_allocs) - var csetLayoutCount_allocs *cgoAllocMap - ref64cc4eed.setLayoutCount, csetLayoutCount_allocs = (C.uint32_t)(x.SetLayoutCount), cgoAllocsUnknown - allocs64cc4eed.Borrow(csetLayoutCount_allocs) + var cpVideoProfile_allocs *cgoAllocMap + refaf4ef5a1.pVideoProfile, cpVideoProfile_allocs = unpackSVideoProfileInfo(x.PVideoProfile) + allocsaf4ef5a1.Borrow(cpVideoProfile_allocs) - var cpSetLayouts_allocs *cgoAllocMap - ref64cc4eed.pSetLayouts, cpSetLayouts_allocs = (*C.VkDescriptorSetLayout)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSetLayouts)).Data)), cgoAllocsUnknown - allocs64cc4eed.Borrow(cpSetLayouts_allocs) + var cpictureFormat_allocs *cgoAllocMap + refaf4ef5a1.pictureFormat, cpictureFormat_allocs = (C.VkFormat)(x.PictureFormat), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(cpictureFormat_allocs) - var cpushConstantRangeCount_allocs *cgoAllocMap - ref64cc4eed.pushConstantRangeCount, cpushConstantRangeCount_allocs = (C.uint32_t)(x.PushConstantRangeCount), cgoAllocsUnknown - allocs64cc4eed.Borrow(cpushConstantRangeCount_allocs) + var cmaxCodedExtent_allocs *cgoAllocMap + refaf4ef5a1.maxCodedExtent, cmaxCodedExtent_allocs = x.MaxCodedExtent.PassValue() + allocsaf4ef5a1.Borrow(cmaxCodedExtent_allocs) - var cpPushConstantRanges_allocs *cgoAllocMap - ref64cc4eed.pPushConstantRanges, cpPushConstantRanges_allocs = unpackSPushConstantRange(x.PPushConstantRanges) - allocs64cc4eed.Borrow(cpPushConstantRanges_allocs) + var creferencePictureFormat_allocs *cgoAllocMap + refaf4ef5a1.referencePictureFormat, creferencePictureFormat_allocs = (C.VkFormat)(x.ReferencePictureFormat), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(creferencePictureFormat_allocs) - x.ref64cc4eed = ref64cc4eed - x.allocs64cc4eed = allocs64cc4eed - return ref64cc4eed, allocs64cc4eed + var cmaxDpbSlots_allocs *cgoAllocMap + refaf4ef5a1.maxDpbSlots, cmaxDpbSlots_allocs = (C.uint32_t)(x.MaxDpbSlots), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(cmaxDpbSlots_allocs) + + var cmaxActiveReferencePictures_allocs *cgoAllocMap + refaf4ef5a1.maxActiveReferencePictures, cmaxActiveReferencePictures_allocs = (C.uint32_t)(x.MaxActiveReferencePictures), cgoAllocsUnknown + allocsaf4ef5a1.Borrow(cmaxActiveReferencePictures_allocs) + + var cpStdHeaderVersion_allocs *cgoAllocMap + refaf4ef5a1.pStdHeaderVersion, cpStdHeaderVersion_allocs = unpackSExtensionProperties(x.PStdHeaderVersion) + allocsaf4ef5a1.Borrow(cpStdHeaderVersion_allocs) + + x.refaf4ef5a1 = refaf4ef5a1 + x.allocsaf4ef5a1 = allocsaf4ef5a1 + return refaf4ef5a1, allocsaf4ef5a1 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineLayoutCreateInfo) PassValue() (C.VkPipelineLayoutCreateInfo, *cgoAllocMap) { - if x.ref64cc4eed != nil { - return *x.ref64cc4eed, nil +func (x VideoSessionCreateInfo) PassValue() (C.VkVideoSessionCreateInfoKHR, *cgoAllocMap) { + if x.refaf4ef5a1 != nil { + return *x.refaf4ef5a1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8762,158 +36016,106 @@ func (x PipelineLayoutCreateInfo) PassValue() (C.VkPipelineLayoutCreateInfo, *cg // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineLayoutCreateInfo) Deref() { - if x.ref64cc4eed == nil { +func (x *VideoSessionCreateInfo) Deref() { + if x.refaf4ef5a1 == nil { return } - x.SType = (StructureType)(x.ref64cc4eed.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref64cc4eed.pNext)) - x.Flags = (PipelineLayoutCreateFlags)(x.ref64cc4eed.flags) - x.SetLayoutCount = (uint32)(x.ref64cc4eed.setLayoutCount) - hxfe48d67 := (*sliceHeader)(unsafe.Pointer(&x.PSetLayouts)) - hxfe48d67.Data = unsafe.Pointer(x.ref64cc4eed.pSetLayouts) - hxfe48d67.Cap = 0x7fffffff - // hxfe48d67.Len = ? - - x.PushConstantRangeCount = (uint32)(x.ref64cc4eed.pushConstantRangeCount) - packSPushConstantRange(x.PPushConstantRanges, x.ref64cc4eed.pPushConstantRanges) + x.SType = (StructureType)(x.refaf4ef5a1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaf4ef5a1.pNext)) + x.QueueFamilyIndex = (uint32)(x.refaf4ef5a1.queueFamilyIndex) + x.Flags = (VideoSessionCreateFlags)(x.refaf4ef5a1.flags) + packSVideoProfileInfo(x.PVideoProfile, x.refaf4ef5a1.pVideoProfile) + x.PictureFormat = (Format)(x.refaf4ef5a1.pictureFormat) + x.MaxCodedExtent = *NewExtent2DRef(unsafe.Pointer(&x.refaf4ef5a1.maxCodedExtent)) + x.ReferencePictureFormat = (Format)(x.refaf4ef5a1.referencePictureFormat) + x.MaxDpbSlots = (uint32)(x.refaf4ef5a1.maxDpbSlots) + x.MaxActiveReferencePictures = (uint32)(x.refaf4ef5a1.maxActiveReferencePictures) + packSExtensionProperties(x.PStdHeaderVersion, x.refaf4ef5a1.pStdHeaderVersion) } -// allocSamplerCreateInfoMemory allocates memory for type C.VkSamplerCreateInfo in C. +// allocVideoSessionParametersCreateInfoMemory allocates memory for type C.VkVideoSessionParametersCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocSamplerCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerCreateInfoValue)) +func allocVideoSessionParametersCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoSessionParametersCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSamplerCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerCreateInfo{}) +const sizeOfVideoSessionParametersCreateInfoValue = unsafe.Sizeof([1]C.VkVideoSessionParametersCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerCreateInfo) Ref() *C.VkSamplerCreateInfo { +func (x *VideoSessionParametersCreateInfo) Ref() *C.VkVideoSessionParametersCreateInfoKHR { if x == nil { return nil } - return x.refce034abf + return x.reff62c4e51 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SamplerCreateInfo) Free() { - if x != nil && x.allocsce034abf != nil { - x.allocsce034abf.(*cgoAllocMap).Free() - x.refce034abf = nil +func (x *VideoSessionParametersCreateInfo) Free() { + if x != nil && x.allocsf62c4e51 != nil { + x.allocsf62c4e51.(*cgoAllocMap).Free() + x.reff62c4e51 = nil } } -// NewSamplerCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoSessionParametersCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSamplerCreateInfoRef(ref unsafe.Pointer) *SamplerCreateInfo { +func NewVideoSessionParametersCreateInfoRef(ref unsafe.Pointer) *VideoSessionParametersCreateInfo { if ref == nil { return nil } - obj := new(SamplerCreateInfo) - obj.refce034abf = (*C.VkSamplerCreateInfo)(unsafe.Pointer(ref)) + obj := new(VideoSessionParametersCreateInfo) + obj.reff62c4e51 = (*C.VkVideoSessionParametersCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SamplerCreateInfo) PassRef() (*C.VkSamplerCreateInfo, *cgoAllocMap) { +func (x *VideoSessionParametersCreateInfo) PassRef() (*C.VkVideoSessionParametersCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refce034abf != nil { - return x.refce034abf, nil + } else if x.reff62c4e51 != nil { + return x.reff62c4e51, nil } - memce034abf := allocSamplerCreateInfoMemory(1) - refce034abf := (*C.VkSamplerCreateInfo)(memce034abf) - allocsce034abf := new(cgoAllocMap) - allocsce034abf.Add(memce034abf) + memf62c4e51 := allocVideoSessionParametersCreateInfoMemory(1) + reff62c4e51 := (*C.VkVideoSessionParametersCreateInfoKHR)(memf62c4e51) + allocsf62c4e51 := new(cgoAllocMap) + allocsf62c4e51.Add(memf62c4e51) var csType_allocs *cgoAllocMap - refce034abf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsce034abf.Borrow(csType_allocs) + reff62c4e51.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf62c4e51.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refce034abf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsce034abf.Borrow(cpNext_allocs) + reff62c4e51.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf62c4e51.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - refce034abf.flags, cflags_allocs = (C.VkSamplerCreateFlags)(x.Flags), cgoAllocsUnknown - allocsce034abf.Borrow(cflags_allocs) - - var cmagFilter_allocs *cgoAllocMap - refce034abf.magFilter, cmagFilter_allocs = (C.VkFilter)(x.MagFilter), cgoAllocsUnknown - allocsce034abf.Borrow(cmagFilter_allocs) - - var cminFilter_allocs *cgoAllocMap - refce034abf.minFilter, cminFilter_allocs = (C.VkFilter)(x.MinFilter), cgoAllocsUnknown - allocsce034abf.Borrow(cminFilter_allocs) - - var cmipmapMode_allocs *cgoAllocMap - refce034abf.mipmapMode, cmipmapMode_allocs = (C.VkSamplerMipmapMode)(x.MipmapMode), cgoAllocsUnknown - allocsce034abf.Borrow(cmipmapMode_allocs) - - var caddressModeU_allocs *cgoAllocMap - refce034abf.addressModeU, caddressModeU_allocs = (C.VkSamplerAddressMode)(x.AddressModeU), cgoAllocsUnknown - allocsce034abf.Borrow(caddressModeU_allocs) - - var caddressModeV_allocs *cgoAllocMap - refce034abf.addressModeV, caddressModeV_allocs = (C.VkSamplerAddressMode)(x.AddressModeV), cgoAllocsUnknown - allocsce034abf.Borrow(caddressModeV_allocs) - - var caddressModeW_allocs *cgoAllocMap - refce034abf.addressModeW, caddressModeW_allocs = (C.VkSamplerAddressMode)(x.AddressModeW), cgoAllocsUnknown - allocsce034abf.Borrow(caddressModeW_allocs) - - var cmipLodBias_allocs *cgoAllocMap - refce034abf.mipLodBias, cmipLodBias_allocs = (C.float)(x.MipLodBias), cgoAllocsUnknown - allocsce034abf.Borrow(cmipLodBias_allocs) - - var canisotropyEnable_allocs *cgoAllocMap - refce034abf.anisotropyEnable, canisotropyEnable_allocs = (C.VkBool32)(x.AnisotropyEnable), cgoAllocsUnknown - allocsce034abf.Borrow(canisotropyEnable_allocs) - - var cmaxAnisotropy_allocs *cgoAllocMap - refce034abf.maxAnisotropy, cmaxAnisotropy_allocs = (C.float)(x.MaxAnisotropy), cgoAllocsUnknown - allocsce034abf.Borrow(cmaxAnisotropy_allocs) - - var ccompareEnable_allocs *cgoAllocMap - refce034abf.compareEnable, ccompareEnable_allocs = (C.VkBool32)(x.CompareEnable), cgoAllocsUnknown - allocsce034abf.Borrow(ccompareEnable_allocs) - - var ccompareOp_allocs *cgoAllocMap - refce034abf.compareOp, ccompareOp_allocs = (C.VkCompareOp)(x.CompareOp), cgoAllocsUnknown - allocsce034abf.Borrow(ccompareOp_allocs) - - var cminLod_allocs *cgoAllocMap - refce034abf.minLod, cminLod_allocs = (C.float)(x.MinLod), cgoAllocsUnknown - allocsce034abf.Borrow(cminLod_allocs) - - var cmaxLod_allocs *cgoAllocMap - refce034abf.maxLod, cmaxLod_allocs = (C.float)(x.MaxLod), cgoAllocsUnknown - allocsce034abf.Borrow(cmaxLod_allocs) + reff62c4e51.flags, cflags_allocs = (C.VkVideoSessionParametersCreateFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsf62c4e51.Borrow(cflags_allocs) - var cborderColor_allocs *cgoAllocMap - refce034abf.borderColor, cborderColor_allocs = (C.VkBorderColor)(x.BorderColor), cgoAllocsUnknown - allocsce034abf.Borrow(cborderColor_allocs) + var cvideoSessionParametersTemplate_allocs *cgoAllocMap + reff62c4e51.videoSessionParametersTemplate, cvideoSessionParametersTemplate_allocs = *(*C.VkVideoSessionParametersKHR)(unsafe.Pointer(&x.VideoSessionParametersTemplate)), cgoAllocsUnknown + allocsf62c4e51.Borrow(cvideoSessionParametersTemplate_allocs) - var cunnormalizedCoordinates_allocs *cgoAllocMap - refce034abf.unnormalizedCoordinates, cunnormalizedCoordinates_allocs = (C.VkBool32)(x.UnnormalizedCoordinates), cgoAllocsUnknown - allocsce034abf.Borrow(cunnormalizedCoordinates_allocs) + var cvideoSession_allocs *cgoAllocMap + reff62c4e51.videoSession, cvideoSession_allocs = *(*C.VkVideoSessionKHR)(unsafe.Pointer(&x.VideoSession)), cgoAllocsUnknown + allocsf62c4e51.Borrow(cvideoSession_allocs) - x.refce034abf = refce034abf - x.allocsce034abf = allocsce034abf - return refce034abf, allocsce034abf + x.reff62c4e51 = reff62c4e51 + x.allocsf62c4e51 = allocsf62c4e51 + return reff62c4e51, allocsf62c4e51 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SamplerCreateInfo) PassValue() (C.VkSamplerCreateInfo, *cgoAllocMap) { - if x.refce034abf != nil { - return *x.refce034abf, nil +func (x VideoSessionParametersCreateInfo) PassValue() (C.VkVideoSessionParametersCreateInfoKHR, *cgoAllocMap) { + if x.reff62c4e51 != nil { + return *x.reff62c4e51, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -8921,113 +36123,92 @@ func (x SamplerCreateInfo) PassValue() (C.VkSamplerCreateInfo, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SamplerCreateInfo) Deref() { - if x.refce034abf == nil { +func (x *VideoSessionParametersCreateInfo) Deref() { + if x.reff62c4e51 == nil { return } - x.SType = (StructureType)(x.refce034abf.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refce034abf.pNext)) - x.Flags = (SamplerCreateFlags)(x.refce034abf.flags) - x.MagFilter = (Filter)(x.refce034abf.magFilter) - x.MinFilter = (Filter)(x.refce034abf.minFilter) - x.MipmapMode = (SamplerMipmapMode)(x.refce034abf.mipmapMode) - x.AddressModeU = (SamplerAddressMode)(x.refce034abf.addressModeU) - x.AddressModeV = (SamplerAddressMode)(x.refce034abf.addressModeV) - x.AddressModeW = (SamplerAddressMode)(x.refce034abf.addressModeW) - x.MipLodBias = (float32)(x.refce034abf.mipLodBias) - x.AnisotropyEnable = (Bool32)(x.refce034abf.anisotropyEnable) - x.MaxAnisotropy = (float32)(x.refce034abf.maxAnisotropy) - x.CompareEnable = (Bool32)(x.refce034abf.compareEnable) - x.CompareOp = (CompareOp)(x.refce034abf.compareOp) - x.MinLod = (float32)(x.refce034abf.minLod) - x.MaxLod = (float32)(x.refce034abf.maxLod) - x.BorderColor = (BorderColor)(x.refce034abf.borderColor) - x.UnnormalizedCoordinates = (Bool32)(x.refce034abf.unnormalizedCoordinates) + x.SType = (StructureType)(x.reff62c4e51.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff62c4e51.pNext)) + x.Flags = (VideoSessionParametersCreateFlags)(x.reff62c4e51.flags) + x.VideoSessionParametersTemplate = *(*VideoSessionParameters)(unsafe.Pointer(&x.reff62c4e51.videoSessionParametersTemplate)) + x.VideoSession = *(*VideoSession)(unsafe.Pointer(&x.reff62c4e51.videoSession)) } -// allocDescriptorSetLayoutBindingMemory allocates memory for type C.VkDescriptorSetLayoutBinding in C. +// allocVideoSessionParametersUpdateInfoMemory allocates memory for type C.VkVideoSessionParametersUpdateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetLayoutBindingMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutBindingValue)) +func allocVideoSessionParametersUpdateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoSessionParametersUpdateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorSetLayoutBindingValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutBinding{}) +const sizeOfVideoSessionParametersUpdateInfoValue = unsafe.Sizeof([1]C.VkVideoSessionParametersUpdateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetLayoutBinding) Ref() *C.VkDescriptorSetLayoutBinding { +func (x *VideoSessionParametersUpdateInfo) Ref() *C.VkVideoSessionParametersUpdateInfoKHR { if x == nil { return nil } - return x.ref8b50b4ec + return x.refcf7b7609 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorSetLayoutBinding) Free() { - if x != nil && x.allocs8b50b4ec != nil { - x.allocs8b50b4ec.(*cgoAllocMap).Free() - x.ref8b50b4ec = nil +func (x *VideoSessionParametersUpdateInfo) Free() { + if x != nil && x.allocscf7b7609 != nil { + x.allocscf7b7609.(*cgoAllocMap).Free() + x.refcf7b7609 = nil } } -// NewDescriptorSetLayoutBindingRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoSessionParametersUpdateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorSetLayoutBindingRef(ref unsafe.Pointer) *DescriptorSetLayoutBinding { +func NewVideoSessionParametersUpdateInfoRef(ref unsafe.Pointer) *VideoSessionParametersUpdateInfo { if ref == nil { return nil } - obj := new(DescriptorSetLayoutBinding) - obj.ref8b50b4ec = (*C.VkDescriptorSetLayoutBinding)(unsafe.Pointer(ref)) + obj := new(VideoSessionParametersUpdateInfo) + obj.refcf7b7609 = (*C.VkVideoSessionParametersUpdateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorSetLayoutBinding) PassRef() (*C.VkDescriptorSetLayoutBinding, *cgoAllocMap) { +func (x *VideoSessionParametersUpdateInfo) PassRef() (*C.VkVideoSessionParametersUpdateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8b50b4ec != nil { - return x.ref8b50b4ec, nil + } else if x.refcf7b7609 != nil { + return x.refcf7b7609, nil } - mem8b50b4ec := allocDescriptorSetLayoutBindingMemory(1) - ref8b50b4ec := (*C.VkDescriptorSetLayoutBinding)(mem8b50b4ec) - allocs8b50b4ec := new(cgoAllocMap) - allocs8b50b4ec.Add(mem8b50b4ec) - - var cbinding_allocs *cgoAllocMap - ref8b50b4ec.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocs8b50b4ec.Borrow(cbinding_allocs) - - var cdescriptorType_allocs *cgoAllocMap - ref8b50b4ec.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown - allocs8b50b4ec.Borrow(cdescriptorType_allocs) + memcf7b7609 := allocVideoSessionParametersUpdateInfoMemory(1) + refcf7b7609 := (*C.VkVideoSessionParametersUpdateInfoKHR)(memcf7b7609) + allocscf7b7609 := new(cgoAllocMap) + allocscf7b7609.Add(memcf7b7609) - var cdescriptorCount_allocs *cgoAllocMap - ref8b50b4ec.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown - allocs8b50b4ec.Borrow(cdescriptorCount_allocs) + var csType_allocs *cgoAllocMap + refcf7b7609.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscf7b7609.Borrow(csType_allocs) - var cstageFlags_allocs *cgoAllocMap - ref8b50b4ec.stageFlags, cstageFlags_allocs = (C.VkShaderStageFlags)(x.StageFlags), cgoAllocsUnknown - allocs8b50b4ec.Borrow(cstageFlags_allocs) + var cpNext_allocs *cgoAllocMap + refcf7b7609.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscf7b7609.Borrow(cpNext_allocs) - var cpImmutableSamplers_allocs *cgoAllocMap - ref8b50b4ec.pImmutableSamplers, cpImmutableSamplers_allocs = (*C.VkSampler)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PImmutableSamplers)).Data)), cgoAllocsUnknown - allocs8b50b4ec.Borrow(cpImmutableSamplers_allocs) + var cupdateSequenceCount_allocs *cgoAllocMap + refcf7b7609.updateSequenceCount, cupdateSequenceCount_allocs = (C.uint32_t)(x.UpdateSequenceCount), cgoAllocsUnknown + allocscf7b7609.Borrow(cupdateSequenceCount_allocs) - x.ref8b50b4ec = ref8b50b4ec - x.allocs8b50b4ec = allocs8b50b4ec - return ref8b50b4ec, allocs8b50b4ec + x.refcf7b7609 = refcf7b7609 + x.allocscf7b7609 = allocscf7b7609 + return refcf7b7609, allocscf7b7609 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorSetLayoutBinding) PassValue() (C.VkDescriptorSetLayoutBinding, *cgoAllocMap) { - if x.ref8b50b4ec != nil { - return *x.ref8b50b4ec, nil +func (x VideoSessionParametersUpdateInfo) PassValue() (C.VkVideoSessionParametersUpdateInfoKHR, *cgoAllocMap) { + if x.refcf7b7609 != nil { + return *x.refcf7b7609, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9035,142 +36216,144 @@ func (x DescriptorSetLayoutBinding) PassValue() (C.VkDescriptorSetLayoutBinding, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorSetLayoutBinding) Deref() { - if x.ref8b50b4ec == nil { +func (x *VideoSessionParametersUpdateInfo) Deref() { + if x.refcf7b7609 == nil { return } - x.Binding = (uint32)(x.ref8b50b4ec.binding) - x.DescriptorType = (DescriptorType)(x.ref8b50b4ec.descriptorType) - x.DescriptorCount = (uint32)(x.ref8b50b4ec.descriptorCount) - x.StageFlags = (ShaderStageFlags)(x.ref8b50b4ec.stageFlags) - hxf4171bf := (*sliceHeader)(unsafe.Pointer(&x.PImmutableSamplers)) - hxf4171bf.Data = unsafe.Pointer(x.ref8b50b4ec.pImmutableSamplers) - hxf4171bf.Cap = 0x7fffffff - // hxf4171bf.Len = ? - + x.SType = (StructureType)(x.refcf7b7609.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcf7b7609.pNext)) + x.UpdateSequenceCount = (uint32)(x.refcf7b7609.updateSequenceCount) } -// allocDescriptorSetLayoutCreateInfoMemory allocates memory for type C.VkDescriptorSetLayoutCreateInfo in C. +// allocVideoBeginCodingInfoMemory allocates memory for type C.VkVideoBeginCodingInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetLayoutCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutCreateInfoValue)) +func allocVideoBeginCodingInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoBeginCodingInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorSetLayoutCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutCreateInfo{}) +const sizeOfVideoBeginCodingInfoValue = unsafe.Sizeof([1]C.VkVideoBeginCodingInfoKHR{}) -// unpackSDescriptorSetLayoutBinding transforms a sliced Go data structure into plain C format. -func unpackSDescriptorSetLayoutBinding(x []DescriptorSetLayoutBinding) (unpacked *C.VkDescriptorSetLayoutBinding, allocs *cgoAllocMap) { +// unpackSVideoReferenceSlotInfo transforms a sliced Go data structure into plain C format. +func unpackSVideoReferenceSlotInfo(x []VideoReferenceSlotInfo) (unpacked *C.VkVideoReferenceSlotInfoKHR, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorSetLayoutBinding) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkVideoReferenceSlotInfoKHR) { go allocs.Free() }) len0 := len(x) - mem0 := allocDescriptorSetLayoutBindingMemory(len0) + mem0 := allocVideoReferenceSlotInfoMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkDescriptorSetLayoutBinding)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkVideoReferenceSlotInfoKHR)(unsafe.Pointer(h0)) for i0 := range x { allocs0 := new(cgoAllocMap) v0[i0], allocs0 = x[i0].PassValue() allocs.Borrow(allocs0) } h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkDescriptorSetLayoutBinding)(h.Data) + unpacked = (*C.VkVideoReferenceSlotInfoKHR)(h.Data) return } -// packSDescriptorSetLayoutBinding reads sliced Go data structure out from plain C format. -func packSDescriptorSetLayoutBinding(v []DescriptorSetLayoutBinding, ptr0 *C.VkDescriptorSetLayoutBinding) { +// packSVideoReferenceSlotInfo reads sliced Go data structure out from plain C format. +func packSVideoReferenceSlotInfo(v []VideoReferenceSlotInfo, ptr0 *C.VkVideoReferenceSlotInfoKHR) { const m = 0x7fffffff for i0 := range v { - ptr1 := (*(*[m / sizeOfDescriptorSetLayoutBindingValue]C.VkDescriptorSetLayoutBinding)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewDescriptorSetLayoutBindingRef(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfVideoReferenceSlotInfoValue]C.VkVideoReferenceSlotInfoKHR)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVideoReferenceSlotInfoRef(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetLayoutCreateInfo) Ref() *C.VkDescriptorSetLayoutCreateInfo { +func (x *VideoBeginCodingInfo) Ref() *C.VkVideoBeginCodingInfoKHR { if x == nil { return nil } - return x.ref5ee8e0ed + return x.ref6ab3d7b5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorSetLayoutCreateInfo) Free() { - if x != nil && x.allocs5ee8e0ed != nil { - x.allocs5ee8e0ed.(*cgoAllocMap).Free() - x.ref5ee8e0ed = nil +func (x *VideoBeginCodingInfo) Free() { + if x != nil && x.allocs6ab3d7b5 != nil { + x.allocs6ab3d7b5.(*cgoAllocMap).Free() + x.ref6ab3d7b5 = nil } } -// NewDescriptorSetLayoutCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoBeginCodingInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorSetLayoutCreateInfoRef(ref unsafe.Pointer) *DescriptorSetLayoutCreateInfo { +func NewVideoBeginCodingInfoRef(ref unsafe.Pointer) *VideoBeginCodingInfo { if ref == nil { return nil } - obj := new(DescriptorSetLayoutCreateInfo) - obj.ref5ee8e0ed = (*C.VkDescriptorSetLayoutCreateInfo)(unsafe.Pointer(ref)) + obj := new(VideoBeginCodingInfo) + obj.ref6ab3d7b5 = (*C.VkVideoBeginCodingInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorSetLayoutCreateInfo) PassRef() (*C.VkDescriptorSetLayoutCreateInfo, *cgoAllocMap) { +func (x *VideoBeginCodingInfo) PassRef() (*C.VkVideoBeginCodingInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5ee8e0ed != nil { - return x.ref5ee8e0ed, nil + } else if x.ref6ab3d7b5 != nil { + return x.ref6ab3d7b5, nil } - mem5ee8e0ed := allocDescriptorSetLayoutCreateInfoMemory(1) - ref5ee8e0ed := (*C.VkDescriptorSetLayoutCreateInfo)(mem5ee8e0ed) - allocs5ee8e0ed := new(cgoAllocMap) - allocs5ee8e0ed.Add(mem5ee8e0ed) + mem6ab3d7b5 := allocVideoBeginCodingInfoMemory(1) + ref6ab3d7b5 := (*C.VkVideoBeginCodingInfoKHR)(mem6ab3d7b5) + allocs6ab3d7b5 := new(cgoAllocMap) + allocs6ab3d7b5.Add(mem6ab3d7b5) var csType_allocs *cgoAllocMap - ref5ee8e0ed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5ee8e0ed.Borrow(csType_allocs) + ref6ab3d7b5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5ee8e0ed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5ee8e0ed.Borrow(cpNext_allocs) + ref6ab3d7b5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(cpNext_allocs) + + var cflags_allocs *cgoAllocMap + ref6ab3d7b5.flags, cflags_allocs = (C.VkVideoBeginCodingFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(cflags_allocs) + + var cvideoSession_allocs *cgoAllocMap + ref6ab3d7b5.videoSession, cvideoSession_allocs = *(*C.VkVideoSessionKHR)(unsafe.Pointer(&x.VideoSession)), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(cvideoSession_allocs) - var cflags_allocs *cgoAllocMap - ref5ee8e0ed.flags, cflags_allocs = (C.VkDescriptorSetLayoutCreateFlags)(x.Flags), cgoAllocsUnknown - allocs5ee8e0ed.Borrow(cflags_allocs) + var cvideoSessionParameters_allocs *cgoAllocMap + ref6ab3d7b5.videoSessionParameters, cvideoSessionParameters_allocs = *(*C.VkVideoSessionParametersKHR)(unsafe.Pointer(&x.VideoSessionParameters)), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(cvideoSessionParameters_allocs) - var cbindingCount_allocs *cgoAllocMap - ref5ee8e0ed.bindingCount, cbindingCount_allocs = (C.uint32_t)(x.BindingCount), cgoAllocsUnknown - allocs5ee8e0ed.Borrow(cbindingCount_allocs) + var creferenceSlotCount_allocs *cgoAllocMap + ref6ab3d7b5.referenceSlotCount, creferenceSlotCount_allocs = (C.uint32_t)(x.ReferenceSlotCount), cgoAllocsUnknown + allocs6ab3d7b5.Borrow(creferenceSlotCount_allocs) - var cpBindings_allocs *cgoAllocMap - ref5ee8e0ed.pBindings, cpBindings_allocs = unpackSDescriptorSetLayoutBinding(x.PBindings) - allocs5ee8e0ed.Borrow(cpBindings_allocs) + var cpReferenceSlots_allocs *cgoAllocMap + ref6ab3d7b5.pReferenceSlots, cpReferenceSlots_allocs = unpackSVideoReferenceSlotInfo(x.PReferenceSlots) + allocs6ab3d7b5.Borrow(cpReferenceSlots_allocs) - x.ref5ee8e0ed = ref5ee8e0ed - x.allocs5ee8e0ed = allocs5ee8e0ed - return ref5ee8e0ed, allocs5ee8e0ed + x.ref6ab3d7b5 = ref6ab3d7b5 + x.allocs6ab3d7b5 = allocs6ab3d7b5 + return ref6ab3d7b5, allocs6ab3d7b5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorSetLayoutCreateInfo) PassValue() (C.VkDescriptorSetLayoutCreateInfo, *cgoAllocMap) { - if x.ref5ee8e0ed != nil { - return *x.ref5ee8e0ed, nil +func (x VideoBeginCodingInfo) PassValue() (C.VkVideoBeginCodingInfoKHR, *cgoAllocMap) { + if x.ref6ab3d7b5 != nil { + return *x.ref6ab3d7b5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9178,88 +36361,94 @@ func (x DescriptorSetLayoutCreateInfo) PassValue() (C.VkDescriptorSetLayoutCreat // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorSetLayoutCreateInfo) Deref() { - if x.ref5ee8e0ed == nil { +func (x *VideoBeginCodingInfo) Deref() { + if x.ref6ab3d7b5 == nil { return } - x.SType = (StructureType)(x.ref5ee8e0ed.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5ee8e0ed.pNext)) - x.Flags = (DescriptorSetLayoutCreateFlags)(x.ref5ee8e0ed.flags) - x.BindingCount = (uint32)(x.ref5ee8e0ed.bindingCount) - packSDescriptorSetLayoutBinding(x.PBindings, x.ref5ee8e0ed.pBindings) + x.SType = (StructureType)(x.ref6ab3d7b5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6ab3d7b5.pNext)) + x.Flags = (VideoBeginCodingFlags)(x.ref6ab3d7b5.flags) + x.VideoSession = *(*VideoSession)(unsafe.Pointer(&x.ref6ab3d7b5.videoSession)) + x.VideoSessionParameters = *(*VideoSessionParameters)(unsafe.Pointer(&x.ref6ab3d7b5.videoSessionParameters)) + x.ReferenceSlotCount = (uint32)(x.ref6ab3d7b5.referenceSlotCount) + packSVideoReferenceSlotInfo(x.PReferenceSlots, x.ref6ab3d7b5.pReferenceSlots) } -// allocDescriptorPoolSizeMemory allocates memory for type C.VkDescriptorPoolSize in C. +// allocVideoEndCodingInfoMemory allocates memory for type C.VkVideoEndCodingInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorPoolSizeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorPoolSizeValue)) +func allocVideoEndCodingInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoEndCodingInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorPoolSizeValue = unsafe.Sizeof([1]C.VkDescriptorPoolSize{}) +const sizeOfVideoEndCodingInfoValue = unsafe.Sizeof([1]C.VkVideoEndCodingInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorPoolSize) Ref() *C.VkDescriptorPoolSize { +func (x *VideoEndCodingInfo) Ref() *C.VkVideoEndCodingInfoKHR { if x == nil { return nil } - return x.refe15137da + return x.ref13b0038a } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorPoolSize) Free() { - if x != nil && x.allocse15137da != nil { - x.allocse15137da.(*cgoAllocMap).Free() - x.refe15137da = nil +func (x *VideoEndCodingInfo) Free() { + if x != nil && x.allocs13b0038a != nil { + x.allocs13b0038a.(*cgoAllocMap).Free() + x.ref13b0038a = nil } } -// NewDescriptorPoolSizeRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoEndCodingInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorPoolSizeRef(ref unsafe.Pointer) *DescriptorPoolSize { +func NewVideoEndCodingInfoRef(ref unsafe.Pointer) *VideoEndCodingInfo { if ref == nil { return nil } - obj := new(DescriptorPoolSize) - obj.refe15137da = (*C.VkDescriptorPoolSize)(unsafe.Pointer(ref)) + obj := new(VideoEndCodingInfo) + obj.ref13b0038a = (*C.VkVideoEndCodingInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorPoolSize) PassRef() (*C.VkDescriptorPoolSize, *cgoAllocMap) { +func (x *VideoEndCodingInfo) PassRef() (*C.VkVideoEndCodingInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe15137da != nil { - return x.refe15137da, nil + } else if x.ref13b0038a != nil { + return x.ref13b0038a, nil } - meme15137da := allocDescriptorPoolSizeMemory(1) - refe15137da := (*C.VkDescriptorPoolSize)(meme15137da) - allocse15137da := new(cgoAllocMap) - allocse15137da.Add(meme15137da) + mem13b0038a := allocVideoEndCodingInfoMemory(1) + ref13b0038a := (*C.VkVideoEndCodingInfoKHR)(mem13b0038a) + allocs13b0038a := new(cgoAllocMap) + allocs13b0038a.Add(mem13b0038a) - var c_type_allocs *cgoAllocMap - refe15137da._type, c_type_allocs = (C.VkDescriptorType)(x.Type), cgoAllocsUnknown - allocse15137da.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + ref13b0038a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs13b0038a.Borrow(csType_allocs) - var cdescriptorCount_allocs *cgoAllocMap - refe15137da.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown - allocse15137da.Borrow(cdescriptorCount_allocs) + var cpNext_allocs *cgoAllocMap + ref13b0038a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs13b0038a.Borrow(cpNext_allocs) - x.refe15137da = refe15137da - x.allocse15137da = allocse15137da - return refe15137da, allocse15137da + var cflags_allocs *cgoAllocMap + ref13b0038a.flags, cflags_allocs = (C.VkVideoEndCodingFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs13b0038a.Borrow(cflags_allocs) + + x.ref13b0038a = ref13b0038a + x.allocs13b0038a = allocs13b0038a + return ref13b0038a, allocs13b0038a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorPoolSize) PassValue() (C.VkDescriptorPoolSize, *cgoAllocMap) { - if x.refe15137da != nil { - return *x.refe15137da, nil +func (x VideoEndCodingInfo) PassValue() (C.VkVideoEndCodingInfoKHR, *cgoAllocMap) { + if x.ref13b0038a != nil { + return *x.ref13b0038a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9267,139 +36456,90 @@ func (x DescriptorPoolSize) PassValue() (C.VkDescriptorPoolSize, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorPoolSize) Deref() { - if x.refe15137da == nil { +func (x *VideoEndCodingInfo) Deref() { + if x.ref13b0038a == nil { return } - x.Type = (DescriptorType)(x.refe15137da._type) - x.DescriptorCount = (uint32)(x.refe15137da.descriptorCount) + x.SType = (StructureType)(x.ref13b0038a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref13b0038a.pNext)) + x.Flags = (VideoEndCodingFlags)(x.ref13b0038a.flags) } -// allocDescriptorPoolCreateInfoMemory allocates memory for type C.VkDescriptorPoolCreateInfo in C. +// allocVideoCodingControlInfoMemory allocates memory for type C.VkVideoCodingControlInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorPoolCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorPoolCreateInfoValue)) +func allocVideoCodingControlInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoCodingControlInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorPoolCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorPoolCreateInfo{}) - -// unpackSDescriptorPoolSize transforms a sliced Go data structure into plain C format. -func unpackSDescriptorPoolSize(x []DescriptorPoolSize) (unpacked *C.VkDescriptorPoolSize, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorPoolSize) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocDescriptorPoolSizeMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkDescriptorPoolSize)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkDescriptorPoolSize)(h.Data) - return -} - -// packSDescriptorPoolSize reads sliced Go data structure out from plain C format. -func packSDescriptorPoolSize(v []DescriptorPoolSize, ptr0 *C.VkDescriptorPoolSize) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfDescriptorPoolSizeValue]C.VkDescriptorPoolSize)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewDescriptorPoolSizeRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfVideoCodingControlInfoValue = unsafe.Sizeof([1]C.VkVideoCodingControlInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorPoolCreateInfo) Ref() *C.VkDescriptorPoolCreateInfo { +func (x *VideoCodingControlInfo) Ref() *C.VkVideoCodingControlInfoKHR { if x == nil { return nil } - return x.ref19868463 + return x.ref226eddcd } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorPoolCreateInfo) Free() { - if x != nil && x.allocs19868463 != nil { - x.allocs19868463.(*cgoAllocMap).Free() - x.ref19868463 = nil +func (x *VideoCodingControlInfo) Free() { + if x != nil && x.allocs226eddcd != nil { + x.allocs226eddcd.(*cgoAllocMap).Free() + x.ref226eddcd = nil } } -// NewDescriptorPoolCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoCodingControlInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorPoolCreateInfoRef(ref unsafe.Pointer) *DescriptorPoolCreateInfo { +func NewVideoCodingControlInfoRef(ref unsafe.Pointer) *VideoCodingControlInfo { if ref == nil { return nil } - obj := new(DescriptorPoolCreateInfo) - obj.ref19868463 = (*C.VkDescriptorPoolCreateInfo)(unsafe.Pointer(ref)) + obj := new(VideoCodingControlInfo) + obj.ref226eddcd = (*C.VkVideoCodingControlInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorPoolCreateInfo) PassRef() (*C.VkDescriptorPoolCreateInfo, *cgoAllocMap) { +func (x *VideoCodingControlInfo) PassRef() (*C.VkVideoCodingControlInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref19868463 != nil { - return x.ref19868463, nil + } else if x.ref226eddcd != nil { + return x.ref226eddcd, nil } - mem19868463 := allocDescriptorPoolCreateInfoMemory(1) - ref19868463 := (*C.VkDescriptorPoolCreateInfo)(mem19868463) - allocs19868463 := new(cgoAllocMap) - allocs19868463.Add(mem19868463) + mem226eddcd := allocVideoCodingControlInfoMemory(1) + ref226eddcd := (*C.VkVideoCodingControlInfoKHR)(mem226eddcd) + allocs226eddcd := new(cgoAllocMap) + allocs226eddcd.Add(mem226eddcd) var csType_allocs *cgoAllocMap - ref19868463.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs19868463.Borrow(csType_allocs) + ref226eddcd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs226eddcd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref19868463.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs19868463.Borrow(cpNext_allocs) + ref226eddcd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs226eddcd.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - ref19868463.flags, cflags_allocs = (C.VkDescriptorPoolCreateFlags)(x.Flags), cgoAllocsUnknown - allocs19868463.Borrow(cflags_allocs) + ref226eddcd.flags, cflags_allocs = (C.VkVideoCodingControlFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs226eddcd.Borrow(cflags_allocs) - var cmaxSets_allocs *cgoAllocMap - ref19868463.maxSets, cmaxSets_allocs = (C.uint32_t)(x.MaxSets), cgoAllocsUnknown - allocs19868463.Borrow(cmaxSets_allocs) - - var cpoolSizeCount_allocs *cgoAllocMap - ref19868463.poolSizeCount, cpoolSizeCount_allocs = (C.uint32_t)(x.PoolSizeCount), cgoAllocsUnknown - allocs19868463.Borrow(cpoolSizeCount_allocs) - - var cpPoolSizes_allocs *cgoAllocMap - ref19868463.pPoolSizes, cpPoolSizes_allocs = unpackSDescriptorPoolSize(x.PPoolSizes) - allocs19868463.Borrow(cpPoolSizes_allocs) - - x.ref19868463 = ref19868463 - x.allocs19868463 = allocs19868463 - return ref19868463, allocs19868463 + x.ref226eddcd = ref226eddcd + x.allocs226eddcd = allocs226eddcd + return ref226eddcd, allocs226eddcd } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorPoolCreateInfo) PassValue() (C.VkDescriptorPoolCreateInfo, *cgoAllocMap) { - if x.ref19868463 != nil { - return *x.ref19868463, nil +func (x VideoCodingControlInfo) PassValue() (C.VkVideoCodingControlInfoKHR, *cgoAllocMap) { + if x.ref226eddcd != nil { + return *x.ref226eddcd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9407,101 +36547,90 @@ func (x DescriptorPoolCreateInfo) PassValue() (C.VkDescriptorPoolCreateInfo, *cg // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorPoolCreateInfo) Deref() { - if x.ref19868463 == nil { +func (x *VideoCodingControlInfo) Deref() { + if x.ref226eddcd == nil { return } - x.SType = (StructureType)(x.ref19868463.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref19868463.pNext)) - x.Flags = (DescriptorPoolCreateFlags)(x.ref19868463.flags) - x.MaxSets = (uint32)(x.ref19868463.maxSets) - x.PoolSizeCount = (uint32)(x.ref19868463.poolSizeCount) - packSDescriptorPoolSize(x.PPoolSizes, x.ref19868463.pPoolSizes) + x.SType = (StructureType)(x.ref226eddcd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref226eddcd.pNext)) + x.Flags = (VideoCodingControlFlags)(x.ref226eddcd.flags) } -// allocDescriptorSetAllocateInfoMemory allocates memory for type C.VkDescriptorSetAllocateInfo in C. +// allocVideoDecodeCapabilitiesMemory allocates memory for type C.VkVideoDecodeCapabilitiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetAllocateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetAllocateInfoValue)) +func allocVideoDecodeCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeCapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorSetAllocateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetAllocateInfo{}) +const sizeOfVideoDecodeCapabilitiesValue = unsafe.Sizeof([1]C.VkVideoDecodeCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetAllocateInfo) Ref() *C.VkDescriptorSetAllocateInfo { +func (x *VideoDecodeCapabilities) Ref() *C.VkVideoDecodeCapabilitiesKHR { if x == nil { return nil } - return x.ref2dd6cc22 + return x.refc94faaf3 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorSetAllocateInfo) Free() { - if x != nil && x.allocs2dd6cc22 != nil { - x.allocs2dd6cc22.(*cgoAllocMap).Free() - x.ref2dd6cc22 = nil +func (x *VideoDecodeCapabilities) Free() { + if x != nil && x.allocsc94faaf3 != nil { + x.allocsc94faaf3.(*cgoAllocMap).Free() + x.refc94faaf3 = nil } } -// NewDescriptorSetAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorSetAllocateInfoRef(ref unsafe.Pointer) *DescriptorSetAllocateInfo { +func NewVideoDecodeCapabilitiesRef(ref unsafe.Pointer) *VideoDecodeCapabilities { if ref == nil { return nil } - obj := new(DescriptorSetAllocateInfo) - obj.ref2dd6cc22 = (*C.VkDescriptorSetAllocateInfo)(unsafe.Pointer(ref)) + obj := new(VideoDecodeCapabilities) + obj.refc94faaf3 = (*C.VkVideoDecodeCapabilitiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorSetAllocateInfo) PassRef() (*C.VkDescriptorSetAllocateInfo, *cgoAllocMap) { +func (x *VideoDecodeCapabilities) PassRef() (*C.VkVideoDecodeCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2dd6cc22 != nil { - return x.ref2dd6cc22, nil + } else if x.refc94faaf3 != nil { + return x.refc94faaf3, nil } - mem2dd6cc22 := allocDescriptorSetAllocateInfoMemory(1) - ref2dd6cc22 := (*C.VkDescriptorSetAllocateInfo)(mem2dd6cc22) - allocs2dd6cc22 := new(cgoAllocMap) - allocs2dd6cc22.Add(mem2dd6cc22) + memc94faaf3 := allocVideoDecodeCapabilitiesMemory(1) + refc94faaf3 := (*C.VkVideoDecodeCapabilitiesKHR)(memc94faaf3) + allocsc94faaf3 := new(cgoAllocMap) + allocsc94faaf3.Add(memc94faaf3) var csType_allocs *cgoAllocMap - ref2dd6cc22.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2dd6cc22.Borrow(csType_allocs) + refc94faaf3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc94faaf3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2dd6cc22.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2dd6cc22.Borrow(cpNext_allocs) - - var cdescriptorPool_allocs *cgoAllocMap - ref2dd6cc22.descriptorPool, cdescriptorPool_allocs = *(*C.VkDescriptorPool)(unsafe.Pointer(&x.DescriptorPool)), cgoAllocsUnknown - allocs2dd6cc22.Borrow(cdescriptorPool_allocs) - - var cdescriptorSetCount_allocs *cgoAllocMap - ref2dd6cc22.descriptorSetCount, cdescriptorSetCount_allocs = (C.uint32_t)(x.DescriptorSetCount), cgoAllocsUnknown - allocs2dd6cc22.Borrow(cdescriptorSetCount_allocs) + refc94faaf3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc94faaf3.Borrow(cpNext_allocs) - var cpSetLayouts_allocs *cgoAllocMap - ref2dd6cc22.pSetLayouts, cpSetLayouts_allocs = (*C.VkDescriptorSetLayout)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSetLayouts)).Data)), cgoAllocsUnknown - allocs2dd6cc22.Borrow(cpSetLayouts_allocs) + var cflags_allocs *cgoAllocMap + refc94faaf3.flags, cflags_allocs = (C.VkVideoDecodeCapabilityFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsc94faaf3.Borrow(cflags_allocs) - x.ref2dd6cc22 = ref2dd6cc22 - x.allocs2dd6cc22 = allocs2dd6cc22 - return ref2dd6cc22, allocs2dd6cc22 + x.refc94faaf3 = refc94faaf3 + x.allocsc94faaf3 = allocsc94faaf3 + return refc94faaf3, allocsc94faaf3 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorSetAllocateInfo) PassValue() (C.VkDescriptorSetAllocateInfo, *cgoAllocMap) { - if x.ref2dd6cc22 != nil { - return *x.ref2dd6cc22, nil +func (x VideoDecodeCapabilities) PassValue() (C.VkVideoDecodeCapabilitiesKHR, *cgoAllocMap) { + if x.refc94faaf3 != nil { + return *x.refc94faaf3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9509,96 +36638,90 @@ func (x DescriptorSetAllocateInfo) PassValue() (C.VkDescriptorSetAllocateInfo, * // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorSetAllocateInfo) Deref() { - if x.ref2dd6cc22 == nil { +func (x *VideoDecodeCapabilities) Deref() { + if x.refc94faaf3 == nil { return } - x.SType = (StructureType)(x.ref2dd6cc22.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2dd6cc22.pNext)) - x.DescriptorPool = *(*DescriptorPool)(unsafe.Pointer(&x.ref2dd6cc22.descriptorPool)) - x.DescriptorSetCount = (uint32)(x.ref2dd6cc22.descriptorSetCount) - hxf058b18 := (*sliceHeader)(unsafe.Pointer(&x.PSetLayouts)) - hxf058b18.Data = unsafe.Pointer(x.ref2dd6cc22.pSetLayouts) - hxf058b18.Cap = 0x7fffffff - // hxf058b18.Len = ? - + x.SType = (StructureType)(x.refc94faaf3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc94faaf3.pNext)) + x.Flags = (VideoDecodeCapabilityFlags)(x.refc94faaf3.flags) } -// allocDescriptorImageInfoMemory allocates memory for type C.VkDescriptorImageInfo in C. +// allocVideoDecodeUsageInfoMemory allocates memory for type C.VkVideoDecodeUsageInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorImageInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorImageInfoValue)) +func allocVideoDecodeUsageInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeUsageInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorImageInfoValue = unsafe.Sizeof([1]C.VkDescriptorImageInfo{}) +const sizeOfVideoDecodeUsageInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeUsageInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorImageInfo) Ref() *C.VkDescriptorImageInfo { +func (x *VideoDecodeUsageInfo) Ref() *C.VkVideoDecodeUsageInfoKHR { if x == nil { return nil } - return x.refaf073b07 + return x.refd72a4309 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorImageInfo) Free() { - if x != nil && x.allocsaf073b07 != nil { - x.allocsaf073b07.(*cgoAllocMap).Free() - x.refaf073b07 = nil +func (x *VideoDecodeUsageInfo) Free() { + if x != nil && x.allocsd72a4309 != nil { + x.allocsd72a4309.(*cgoAllocMap).Free() + x.refd72a4309 = nil } } -// NewDescriptorImageInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeUsageInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorImageInfoRef(ref unsafe.Pointer) *DescriptorImageInfo { +func NewVideoDecodeUsageInfoRef(ref unsafe.Pointer) *VideoDecodeUsageInfo { if ref == nil { return nil } - obj := new(DescriptorImageInfo) - obj.refaf073b07 = (*C.VkDescriptorImageInfo)(unsafe.Pointer(ref)) + obj := new(VideoDecodeUsageInfo) + obj.refd72a4309 = (*C.VkVideoDecodeUsageInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorImageInfo) PassRef() (*C.VkDescriptorImageInfo, *cgoAllocMap) { +func (x *VideoDecodeUsageInfo) PassRef() (*C.VkVideoDecodeUsageInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaf073b07 != nil { - return x.refaf073b07, nil + } else if x.refd72a4309 != nil { + return x.refd72a4309, nil } - memaf073b07 := allocDescriptorImageInfoMemory(1) - refaf073b07 := (*C.VkDescriptorImageInfo)(memaf073b07) - allocsaf073b07 := new(cgoAllocMap) - allocsaf073b07.Add(memaf073b07) + memd72a4309 := allocVideoDecodeUsageInfoMemory(1) + refd72a4309 := (*C.VkVideoDecodeUsageInfoKHR)(memd72a4309) + allocsd72a4309 := new(cgoAllocMap) + allocsd72a4309.Add(memd72a4309) - var csampler_allocs *cgoAllocMap - refaf073b07.sampler, csampler_allocs = *(*C.VkSampler)(unsafe.Pointer(&x.Sampler)), cgoAllocsUnknown - allocsaf073b07.Borrow(csampler_allocs) + var csType_allocs *cgoAllocMap + refd72a4309.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd72a4309.Borrow(csType_allocs) - var cimageView_allocs *cgoAllocMap - refaf073b07.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown - allocsaf073b07.Borrow(cimageView_allocs) + var cpNext_allocs *cgoAllocMap + refd72a4309.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd72a4309.Borrow(cpNext_allocs) - var cimageLayout_allocs *cgoAllocMap - refaf073b07.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown - allocsaf073b07.Borrow(cimageLayout_allocs) + var cvideoUsageHints_allocs *cgoAllocMap + refd72a4309.videoUsageHints, cvideoUsageHints_allocs = (C.VkVideoDecodeUsageFlagsKHR)(x.VideoUsageHints), cgoAllocsUnknown + allocsd72a4309.Borrow(cvideoUsageHints_allocs) - x.refaf073b07 = refaf073b07 - x.allocsaf073b07 = allocsaf073b07 - return refaf073b07, allocsaf073b07 + x.refd72a4309 = refd72a4309 + x.allocsd72a4309 = allocsd72a4309 + return refd72a4309, allocsd72a4309 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorImageInfo) PassValue() (C.VkDescriptorImageInfo, *cgoAllocMap) { - if x.refaf073b07 != nil { - return *x.refaf073b07, nil +func (x VideoDecodeUsageInfo) PassValue() (C.VkVideoDecodeUsageInfoKHR, *cgoAllocMap) { + if x.refd72a4309 != nil { + return *x.refd72a4309, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9606,90 +36729,118 @@ func (x DescriptorImageInfo) PassValue() (C.VkDescriptorImageInfo, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorImageInfo) Deref() { - if x.refaf073b07 == nil { +func (x *VideoDecodeUsageInfo) Deref() { + if x.refd72a4309 == nil { return } - x.Sampler = *(*Sampler)(unsafe.Pointer(&x.refaf073b07.sampler)) - x.ImageView = *(*ImageView)(unsafe.Pointer(&x.refaf073b07.imageView)) - x.ImageLayout = (ImageLayout)(x.refaf073b07.imageLayout) + x.SType = (StructureType)(x.refd72a4309.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd72a4309.pNext)) + x.VideoUsageHints = (VideoDecodeUsageFlags)(x.refd72a4309.videoUsageHints) } -// allocDescriptorBufferInfoMemory allocates memory for type C.VkDescriptorBufferInfo in C. +// allocVideoDecodeInfoMemory allocates memory for type C.VkVideoDecodeInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorBufferInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorBufferInfoValue)) +func allocVideoDecodeInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVideoDecodeInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorBufferInfoValue = unsafe.Sizeof([1]C.VkDescriptorBufferInfo{}) +const sizeOfVideoDecodeInfoValue = unsafe.Sizeof([1]C.VkVideoDecodeInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorBufferInfo) Ref() *C.VkDescriptorBufferInfo { +func (x *VideoDecodeInfo) Ref() *C.VkVideoDecodeInfoKHR { if x == nil { return nil } - return x.refe64bec0e + return x.refbbf9d3b8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorBufferInfo) Free() { - if x != nil && x.allocse64bec0e != nil { - x.allocse64bec0e.(*cgoAllocMap).Free() - x.refe64bec0e = nil +func (x *VideoDecodeInfo) Free() { + if x != nil && x.allocsbbf9d3b8 != nil { + x.allocsbbf9d3b8.(*cgoAllocMap).Free() + x.refbbf9d3b8 = nil } } -// NewDescriptorBufferInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVideoDecodeInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorBufferInfoRef(ref unsafe.Pointer) *DescriptorBufferInfo { +func NewVideoDecodeInfoRef(ref unsafe.Pointer) *VideoDecodeInfo { if ref == nil { return nil } - obj := new(DescriptorBufferInfo) - obj.refe64bec0e = (*C.VkDescriptorBufferInfo)(unsafe.Pointer(ref)) + obj := new(VideoDecodeInfo) + obj.refbbf9d3b8 = (*C.VkVideoDecodeInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorBufferInfo) PassRef() (*C.VkDescriptorBufferInfo, *cgoAllocMap) { +func (x *VideoDecodeInfo) PassRef() (*C.VkVideoDecodeInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe64bec0e != nil { - return x.refe64bec0e, nil + } else if x.refbbf9d3b8 != nil { + return x.refbbf9d3b8, nil } - meme64bec0e := allocDescriptorBufferInfoMemory(1) - refe64bec0e := (*C.VkDescriptorBufferInfo)(meme64bec0e) - allocse64bec0e := new(cgoAllocMap) - allocse64bec0e.Add(meme64bec0e) + membbf9d3b8 := allocVideoDecodeInfoMemory(1) + refbbf9d3b8 := (*C.VkVideoDecodeInfoKHR)(membbf9d3b8) + allocsbbf9d3b8 := new(cgoAllocMap) + allocsbbf9d3b8.Add(membbf9d3b8) - var cbuffer_allocs *cgoAllocMap - refe64bec0e.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocse64bec0e.Borrow(cbuffer_allocs) + var csType_allocs *cgoAllocMap + refbbf9d3b8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbbf9d3b8.Borrow(csType_allocs) - var coffset_allocs *cgoAllocMap - refe64bec0e.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocse64bec0e.Borrow(coffset_allocs) + var cpNext_allocs *cgoAllocMap + refbbf9d3b8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbbf9d3b8.Borrow(cpNext_allocs) - var c_range_allocs *cgoAllocMap - refe64bec0e._range, c_range_allocs = (C.VkDeviceSize)(x.Range), cgoAllocsUnknown - allocse64bec0e.Borrow(c_range_allocs) + var cflags_allocs *cgoAllocMap + refbbf9d3b8.flags, cflags_allocs = (C.VkVideoDecodeFlagsKHR)(x.Flags), cgoAllocsUnknown + allocsbbf9d3b8.Borrow(cflags_allocs) - x.refe64bec0e = refe64bec0e - x.allocse64bec0e = allocse64bec0e - return refe64bec0e, allocse64bec0e + var csrcBuffer_allocs *cgoAllocMap + refbbf9d3b8.srcBuffer, csrcBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SrcBuffer)), cgoAllocsUnknown + allocsbbf9d3b8.Borrow(csrcBuffer_allocs) + + var csrcBufferOffset_allocs *cgoAllocMap + refbbf9d3b8.srcBufferOffset, csrcBufferOffset_allocs = (C.VkDeviceSize)(x.SrcBufferOffset), cgoAllocsUnknown + allocsbbf9d3b8.Borrow(csrcBufferOffset_allocs) + + var csrcBufferRange_allocs *cgoAllocMap + refbbf9d3b8.srcBufferRange, csrcBufferRange_allocs = (C.VkDeviceSize)(x.SrcBufferRange), cgoAllocsUnknown + allocsbbf9d3b8.Borrow(csrcBufferRange_allocs) + + var cdstPictureResource_allocs *cgoAllocMap + refbbf9d3b8.dstPictureResource, cdstPictureResource_allocs = x.DstPictureResource.PassValue() + allocsbbf9d3b8.Borrow(cdstPictureResource_allocs) + + var cpSetupReferenceSlot_allocs *cgoAllocMap + refbbf9d3b8.pSetupReferenceSlot, cpSetupReferenceSlot_allocs = unpackSVideoReferenceSlotInfo(x.PSetupReferenceSlot) + allocsbbf9d3b8.Borrow(cpSetupReferenceSlot_allocs) + + var creferenceSlotCount_allocs *cgoAllocMap + refbbf9d3b8.referenceSlotCount, creferenceSlotCount_allocs = (C.uint32_t)(x.ReferenceSlotCount), cgoAllocsUnknown + allocsbbf9d3b8.Borrow(creferenceSlotCount_allocs) + + var cpReferenceSlots_allocs *cgoAllocMap + refbbf9d3b8.pReferenceSlots, cpReferenceSlots_allocs = unpackSVideoReferenceSlotInfo(x.PReferenceSlots) + allocsbbf9d3b8.Borrow(cpReferenceSlots_allocs) + + x.refbbf9d3b8 = refbbf9d3b8 + x.allocsbbf9d3b8 = allocsbbf9d3b8 + return refbbf9d3b8, allocsbbf9d3b8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorBufferInfo) PassValue() (C.VkDescriptorBufferInfo, *cgoAllocMap) { - if x.refe64bec0e != nil { - return *x.refe64bec0e, nil +func (x VideoDecodeInfo) PassValue() (C.VkVideoDecodeInfoKHR, *cgoAllocMap) { + if x.refbbf9d3b8 != nil { + return *x.refbbf9d3b8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9697,194 +36848,202 @@ func (x DescriptorBufferInfo) PassValue() (C.VkDescriptorBufferInfo, *cgoAllocMa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorBufferInfo) Deref() { - if x.refe64bec0e == nil { +func (x *VideoDecodeInfo) Deref() { + if x.refbbf9d3b8 == nil { return } - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refe64bec0e.buffer)) - x.Offset = (DeviceSize)(x.refe64bec0e.offset) - x.Range = (DeviceSize)(x.refe64bec0e._range) + x.SType = (StructureType)(x.refbbf9d3b8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbbf9d3b8.pNext)) + x.Flags = (VideoDecodeFlags)(x.refbbf9d3b8.flags) + x.SrcBuffer = *(*Buffer)(unsafe.Pointer(&x.refbbf9d3b8.srcBuffer)) + x.SrcBufferOffset = (DeviceSize)(x.refbbf9d3b8.srcBufferOffset) + x.SrcBufferRange = (DeviceSize)(x.refbbf9d3b8.srcBufferRange) + x.DstPictureResource = *NewVideoPictureResourceInfoRef(unsafe.Pointer(&x.refbbf9d3b8.dstPictureResource)) + packSVideoReferenceSlotInfo(x.PSetupReferenceSlot, x.refbbf9d3b8.pSetupReferenceSlot) + x.ReferenceSlotCount = (uint32)(x.refbbf9d3b8.referenceSlotCount) + packSVideoReferenceSlotInfo(x.PReferenceSlots, x.refbbf9d3b8.pReferenceSlots) } -// allocWriteDescriptorSetMemory allocates memory for type C.VkWriteDescriptorSet in C. +// allocRenderingFragmentShadingRateAttachmentInfoMemory allocates memory for type C.VkRenderingFragmentShadingRateAttachmentInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocWriteDescriptorSetMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfWriteDescriptorSetValue)) +func allocRenderingFragmentShadingRateAttachmentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingFragmentShadingRateAttachmentInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfWriteDescriptorSetValue = unsafe.Sizeof([1]C.VkWriteDescriptorSet{}) +const sizeOfRenderingFragmentShadingRateAttachmentInfoValue = unsafe.Sizeof([1]C.VkRenderingFragmentShadingRateAttachmentInfoKHR{}) -// unpackSDescriptorImageInfo transforms a sliced Go data structure into plain C format. -func unpackSDescriptorImageInfo(x []DescriptorImageInfo) (unpacked *C.VkDescriptorImageInfo, allocs *cgoAllocMap) { +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *RenderingFragmentShadingRateAttachmentInfo) Ref() *C.VkRenderingFragmentShadingRateAttachmentInfoKHR { if x == nil { - return nil, nil + return nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorImageInfo) { - go allocs.Free() - }) + return x.ref4d98d68f +} - len0 := len(x) - mem0 := allocDescriptorImageInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *RenderingFragmentShadingRateAttachmentInfo) Free() { + if x != nil && x.allocs4d98d68f != nil { + x.allocs4d98d68f.(*cgoAllocMap).Free() + x.ref4d98d68f = nil } - v0 := *(*[]C.VkDescriptorImageInfo)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) +} + +// NewRenderingFragmentShadingRateAttachmentInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewRenderingFragmentShadingRateAttachmentInfoRef(ref unsafe.Pointer) *RenderingFragmentShadingRateAttachmentInfo { + if ref == nil { + return nil } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkDescriptorImageInfo)(h.Data) - return + obj := new(RenderingFragmentShadingRateAttachmentInfo) + obj.ref4d98d68f = (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR)(unsafe.Pointer(ref)) + return obj } -// unpackSDescriptorBufferInfo transforms a sliced Go data structure into plain C format. -func unpackSDescriptorBufferInfo(x []DescriptorBufferInfo) (unpacked *C.VkDescriptorBufferInfo, allocs *cgoAllocMap) { +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *RenderingFragmentShadingRateAttachmentInfo) PassRef() (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil + } else if x.ref4d98d68f != nil { + return x.ref4d98d68f, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorBufferInfo) { - go allocs.Free() - }) + mem4d98d68f := allocRenderingFragmentShadingRateAttachmentInfoMemory(1) + ref4d98d68f := (*C.VkRenderingFragmentShadingRateAttachmentInfoKHR)(mem4d98d68f) + allocs4d98d68f := new(cgoAllocMap) + allocs4d98d68f.Add(mem4d98d68f) - len0 := len(x) - mem0 := allocDescriptorBufferInfoMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkDescriptorBufferInfo)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) + var csType_allocs *cgoAllocMap + ref4d98d68f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4d98d68f.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref4d98d68f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4d98d68f.Borrow(cpNext_allocs) + + var cimageView_allocs *cgoAllocMap + ref4d98d68f.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocs4d98d68f.Borrow(cimageView_allocs) + + var cimageLayout_allocs *cgoAllocMap + ref4d98d68f.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown + allocs4d98d68f.Borrow(cimageLayout_allocs) + + var cshadingRateAttachmentTexelSize_allocs *cgoAllocMap + ref4d98d68f.shadingRateAttachmentTexelSize, cshadingRateAttachmentTexelSize_allocs = x.ShadingRateAttachmentTexelSize.PassValue() + allocs4d98d68f.Borrow(cshadingRateAttachmentTexelSize_allocs) + + x.ref4d98d68f = ref4d98d68f + x.allocs4d98d68f = allocs4d98d68f + return ref4d98d68f, allocs4d98d68f + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x RenderingFragmentShadingRateAttachmentInfo) PassValue() (C.VkRenderingFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { + if x.ref4d98d68f != nil { + return *x.ref4d98d68f, nil } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkDescriptorBufferInfo)(h.Data) - return + ref, allocs := x.PassRef() + return *ref, allocs } -// packSDescriptorImageInfo reads sliced Go data structure out from plain C format. -func packSDescriptorImageInfo(v []DescriptorImageInfo, ptr0 *C.VkDescriptorImageInfo) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfDescriptorImageInfoValue]C.VkDescriptorImageInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewDescriptorImageInfoRef(unsafe.Pointer(&ptr1)) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *RenderingFragmentShadingRateAttachmentInfo) Deref() { + if x.ref4d98d68f == nil { + return } + x.SType = (StructureType)(x.ref4d98d68f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4d98d68f.pNext)) + x.ImageView = *(*ImageView)(unsafe.Pointer(&x.ref4d98d68f.imageView)) + x.ImageLayout = (ImageLayout)(x.ref4d98d68f.imageLayout) + x.ShadingRateAttachmentTexelSize = *NewExtent2DRef(unsafe.Pointer(&x.ref4d98d68f.shadingRateAttachmentTexelSize)) } -// packSDescriptorBufferInfo reads sliced Go data structure out from plain C format. -func packSDescriptorBufferInfo(v []DescriptorBufferInfo, ptr0 *C.VkDescriptorBufferInfo) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfDescriptorBufferInfoValue]C.VkDescriptorBufferInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewDescriptorBufferInfoRef(unsafe.Pointer(&ptr1)) +// allocRenderingFragmentDensityMapAttachmentInfoMemory allocates memory for type C.VkRenderingFragmentDensityMapAttachmentInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocRenderingFragmentDensityMapAttachmentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderingFragmentDensityMapAttachmentInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) } + return mem } +const sizeOfRenderingFragmentDensityMapAttachmentInfoValue = unsafe.Sizeof([1]C.VkRenderingFragmentDensityMapAttachmentInfoEXT{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *WriteDescriptorSet) Ref() *C.VkWriteDescriptorSet { +func (x *RenderingFragmentDensityMapAttachmentInfo) Ref() *C.VkRenderingFragmentDensityMapAttachmentInfoEXT { if x == nil { return nil } - return x.ref3cec3f3f + return x.ref5a007d48 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *WriteDescriptorSet) Free() { - if x != nil && x.allocs3cec3f3f != nil { - x.allocs3cec3f3f.(*cgoAllocMap).Free() - x.ref3cec3f3f = nil +func (x *RenderingFragmentDensityMapAttachmentInfo) Free() { + if x != nil && x.allocs5a007d48 != nil { + x.allocs5a007d48.(*cgoAllocMap).Free() + x.ref5a007d48 = nil } } -// NewWriteDescriptorSetRef creates a new wrapper struct with underlying reference set to the original C object. +// NewRenderingFragmentDensityMapAttachmentInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewWriteDescriptorSetRef(ref unsafe.Pointer) *WriteDescriptorSet { +func NewRenderingFragmentDensityMapAttachmentInfoRef(ref unsafe.Pointer) *RenderingFragmentDensityMapAttachmentInfo { if ref == nil { return nil } - obj := new(WriteDescriptorSet) - obj.ref3cec3f3f = (*C.VkWriteDescriptorSet)(unsafe.Pointer(ref)) + obj := new(RenderingFragmentDensityMapAttachmentInfo) + obj.ref5a007d48 = (*C.VkRenderingFragmentDensityMapAttachmentInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *WriteDescriptorSet) PassRef() (*C.VkWriteDescriptorSet, *cgoAllocMap) { +func (x *RenderingFragmentDensityMapAttachmentInfo) PassRef() (*C.VkRenderingFragmentDensityMapAttachmentInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3cec3f3f != nil { - return x.ref3cec3f3f, nil + } else if x.ref5a007d48 != nil { + return x.ref5a007d48, nil } - mem3cec3f3f := allocWriteDescriptorSetMemory(1) - ref3cec3f3f := (*C.VkWriteDescriptorSet)(mem3cec3f3f) - allocs3cec3f3f := new(cgoAllocMap) - allocs3cec3f3f.Add(mem3cec3f3f) + mem5a007d48 := allocRenderingFragmentDensityMapAttachmentInfoMemory(1) + ref5a007d48 := (*C.VkRenderingFragmentDensityMapAttachmentInfoEXT)(mem5a007d48) + allocs5a007d48 := new(cgoAllocMap) + allocs5a007d48.Add(mem5a007d48) var csType_allocs *cgoAllocMap - ref3cec3f3f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3cec3f3f.Borrow(csType_allocs) + ref5a007d48.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5a007d48.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3cec3f3f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3cec3f3f.Borrow(cpNext_allocs) - - var cdstSet_allocs *cgoAllocMap - ref3cec3f3f.dstSet, cdstSet_allocs = *(*C.VkDescriptorSet)(unsafe.Pointer(&x.DstSet)), cgoAllocsUnknown - allocs3cec3f3f.Borrow(cdstSet_allocs) - - var cdstBinding_allocs *cgoAllocMap - ref3cec3f3f.dstBinding, cdstBinding_allocs = (C.uint32_t)(x.DstBinding), cgoAllocsUnknown - allocs3cec3f3f.Borrow(cdstBinding_allocs) - - var cdstArrayElement_allocs *cgoAllocMap - ref3cec3f3f.dstArrayElement, cdstArrayElement_allocs = (C.uint32_t)(x.DstArrayElement), cgoAllocsUnknown - allocs3cec3f3f.Borrow(cdstArrayElement_allocs) - - var cdescriptorCount_allocs *cgoAllocMap - ref3cec3f3f.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown - allocs3cec3f3f.Borrow(cdescriptorCount_allocs) - - var cdescriptorType_allocs *cgoAllocMap - ref3cec3f3f.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown - allocs3cec3f3f.Borrow(cdescriptorType_allocs) - - var cpImageInfo_allocs *cgoAllocMap - ref3cec3f3f.pImageInfo, cpImageInfo_allocs = unpackSDescriptorImageInfo(x.PImageInfo) - allocs3cec3f3f.Borrow(cpImageInfo_allocs) + ref5a007d48.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5a007d48.Borrow(cpNext_allocs) - var cpBufferInfo_allocs *cgoAllocMap - ref3cec3f3f.pBufferInfo, cpBufferInfo_allocs = unpackSDescriptorBufferInfo(x.PBufferInfo) - allocs3cec3f3f.Borrow(cpBufferInfo_allocs) + var cimageView_allocs *cgoAllocMap + ref5a007d48.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocs5a007d48.Borrow(cimageView_allocs) - var cpTexelBufferView_allocs *cgoAllocMap - ref3cec3f3f.pTexelBufferView, cpTexelBufferView_allocs = (*C.VkBufferView)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PTexelBufferView)).Data)), cgoAllocsUnknown - allocs3cec3f3f.Borrow(cpTexelBufferView_allocs) + var cimageLayout_allocs *cgoAllocMap + ref5a007d48.imageLayout, cimageLayout_allocs = (C.VkImageLayout)(x.ImageLayout), cgoAllocsUnknown + allocs5a007d48.Borrow(cimageLayout_allocs) - x.ref3cec3f3f = ref3cec3f3f - x.allocs3cec3f3f = allocs3cec3f3f - return ref3cec3f3f, allocs3cec3f3f + x.ref5a007d48 = ref5a007d48 + x.allocs5a007d48 = allocs5a007d48 + return ref5a007d48, allocs5a007d48 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x WriteDescriptorSet) PassValue() (C.VkWriteDescriptorSet, *cgoAllocMap) { - if x.ref3cec3f3f != nil { - return *x.ref3cec3f3f, nil +func (x RenderingFragmentDensityMapAttachmentInfo) PassValue() (C.VkRenderingFragmentDensityMapAttachmentInfoEXT, *cgoAllocMap) { + if x.ref5a007d48 != nil { + return *x.ref5a007d48, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -9892,125 +37051,99 @@ func (x WriteDescriptorSet) PassValue() (C.VkWriteDescriptorSet, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *WriteDescriptorSet) Deref() { - if x.ref3cec3f3f == nil { +func (x *RenderingFragmentDensityMapAttachmentInfo) Deref() { + if x.ref5a007d48 == nil { return } - x.SType = (StructureType)(x.ref3cec3f3f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3cec3f3f.pNext)) - x.DstSet = *(*DescriptorSet)(unsafe.Pointer(&x.ref3cec3f3f.dstSet)) - x.DstBinding = (uint32)(x.ref3cec3f3f.dstBinding) - x.DstArrayElement = (uint32)(x.ref3cec3f3f.dstArrayElement) - x.DescriptorCount = (uint32)(x.ref3cec3f3f.descriptorCount) - x.DescriptorType = (DescriptorType)(x.ref3cec3f3f.descriptorType) - packSDescriptorImageInfo(x.PImageInfo, x.ref3cec3f3f.pImageInfo) - packSDescriptorBufferInfo(x.PBufferInfo, x.ref3cec3f3f.pBufferInfo) - hxff6bc57 := (*sliceHeader)(unsafe.Pointer(&x.PTexelBufferView)) - hxff6bc57.Data = unsafe.Pointer(x.ref3cec3f3f.pTexelBufferView) - hxff6bc57.Cap = 0x7fffffff - // hxff6bc57.Len = ? - + x.SType = (StructureType)(x.ref5a007d48.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5a007d48.pNext)) + x.ImageView = *(*ImageView)(unsafe.Pointer(&x.ref5a007d48.imageView)) + x.ImageLayout = (ImageLayout)(x.ref5a007d48.imageLayout) } -// allocCopyDescriptorSetMemory allocates memory for type C.VkCopyDescriptorSet in C. +// allocAttachmentSampleCountInfoAMDMemory allocates memory for type C.VkAttachmentSampleCountInfoAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocCopyDescriptorSetMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyDescriptorSetValue)) +func allocAttachmentSampleCountInfoAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentSampleCountInfoAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfCopyDescriptorSetValue = unsafe.Sizeof([1]C.VkCopyDescriptorSet{}) +const sizeOfAttachmentSampleCountInfoAMDValue = unsafe.Sizeof([1]C.VkAttachmentSampleCountInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CopyDescriptorSet) Ref() *C.VkCopyDescriptorSet { +func (x *AttachmentSampleCountInfoAMD) Ref() *C.VkAttachmentSampleCountInfoAMD { if x == nil { return nil } - return x.reffe237a3a + return x.refeef56262 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CopyDescriptorSet) Free() { - if x != nil && x.allocsfe237a3a != nil { - x.allocsfe237a3a.(*cgoAllocMap).Free() - x.reffe237a3a = nil +func (x *AttachmentSampleCountInfoAMD) Free() { + if x != nil && x.allocseef56262 != nil { + x.allocseef56262.(*cgoAllocMap).Free() + x.refeef56262 = nil } } -// NewCopyDescriptorSetRef creates a new wrapper struct with underlying reference set to the original C object. +// NewAttachmentSampleCountInfoAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCopyDescriptorSetRef(ref unsafe.Pointer) *CopyDescriptorSet { +func NewAttachmentSampleCountInfoAMDRef(ref unsafe.Pointer) *AttachmentSampleCountInfoAMD { if ref == nil { return nil } - obj := new(CopyDescriptorSet) - obj.reffe237a3a = (*C.VkCopyDescriptorSet)(unsafe.Pointer(ref)) + obj := new(AttachmentSampleCountInfoAMD) + obj.refeef56262 = (*C.VkAttachmentSampleCountInfoAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *CopyDescriptorSet) PassRef() (*C.VkCopyDescriptorSet, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.reffe237a3a != nil { - return x.reffe237a3a, nil - } - memfe237a3a := allocCopyDescriptorSetMemory(1) - reffe237a3a := (*C.VkCopyDescriptorSet)(memfe237a3a) - allocsfe237a3a := new(cgoAllocMap) - allocsfe237a3a.Add(memfe237a3a) - - var csType_allocs *cgoAllocMap - reffe237a3a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfe237a3a.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - reffe237a3a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfe237a3a.Borrow(cpNext_allocs) - - var csrcSet_allocs *cgoAllocMap - reffe237a3a.srcSet, csrcSet_allocs = *(*C.VkDescriptorSet)(unsafe.Pointer(&x.SrcSet)), cgoAllocsUnknown - allocsfe237a3a.Borrow(csrcSet_allocs) - - var csrcBinding_allocs *cgoAllocMap - reffe237a3a.srcBinding, csrcBinding_allocs = (C.uint32_t)(x.SrcBinding), cgoAllocsUnknown - allocsfe237a3a.Borrow(csrcBinding_allocs) +// from this wrapping struct, counting allocations into an allocation map. +func (x *AttachmentSampleCountInfoAMD) PassRef() (*C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refeef56262 != nil { + return x.refeef56262, nil + } + memeef56262 := allocAttachmentSampleCountInfoAMDMemory(1) + refeef56262 := (*C.VkAttachmentSampleCountInfoAMD)(memeef56262) + allocseef56262 := new(cgoAllocMap) + allocseef56262.Add(memeef56262) - var csrcArrayElement_allocs *cgoAllocMap - reffe237a3a.srcArrayElement, csrcArrayElement_allocs = (C.uint32_t)(x.SrcArrayElement), cgoAllocsUnknown - allocsfe237a3a.Borrow(csrcArrayElement_allocs) + var csType_allocs *cgoAllocMap + refeef56262.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseef56262.Borrow(csType_allocs) - var cdstSet_allocs *cgoAllocMap - reffe237a3a.dstSet, cdstSet_allocs = *(*C.VkDescriptorSet)(unsafe.Pointer(&x.DstSet)), cgoAllocsUnknown - allocsfe237a3a.Borrow(cdstSet_allocs) + var cpNext_allocs *cgoAllocMap + refeef56262.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseef56262.Borrow(cpNext_allocs) - var cdstBinding_allocs *cgoAllocMap - reffe237a3a.dstBinding, cdstBinding_allocs = (C.uint32_t)(x.DstBinding), cgoAllocsUnknown - allocsfe237a3a.Borrow(cdstBinding_allocs) + var ccolorAttachmentCount_allocs *cgoAllocMap + refeef56262.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocseef56262.Borrow(ccolorAttachmentCount_allocs) - var cdstArrayElement_allocs *cgoAllocMap - reffe237a3a.dstArrayElement, cdstArrayElement_allocs = (C.uint32_t)(x.DstArrayElement), cgoAllocsUnknown - allocsfe237a3a.Borrow(cdstArrayElement_allocs) + var cpColorAttachmentSamples_allocs *cgoAllocMap + refeef56262.pColorAttachmentSamples, cpColorAttachmentSamples_allocs = (*C.VkSampleCountFlagBits)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)).Data)), cgoAllocsUnknown + allocseef56262.Borrow(cpColorAttachmentSamples_allocs) - var cdescriptorCount_allocs *cgoAllocMap - reffe237a3a.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown - allocsfe237a3a.Borrow(cdescriptorCount_allocs) + var cdepthStencilAttachmentSamples_allocs *cgoAllocMap + refeef56262.depthStencilAttachmentSamples, cdepthStencilAttachmentSamples_allocs = (C.VkSampleCountFlagBits)(x.DepthStencilAttachmentSamples), cgoAllocsUnknown + allocseef56262.Borrow(cdepthStencilAttachmentSamples_allocs) - x.reffe237a3a = reffe237a3a - x.allocsfe237a3a = allocsfe237a3a - return reffe237a3a, allocsfe237a3a + x.refeef56262 = refeef56262 + x.allocseef56262 = allocseef56262 + return refeef56262, allocseef56262 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CopyDescriptorSet) PassValue() (C.VkCopyDescriptorSet, *cgoAllocMap) { - if x.reffe237a3a != nil { - return *x.reffe237a3a, nil +func (x AttachmentSampleCountInfoAMD) PassValue() (C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { + if x.refeef56262 != nil { + return *x.refeef56262, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10018,120 +37151,92 @@ func (x CopyDescriptorSet) PassValue() (C.VkCopyDescriptorSet, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CopyDescriptorSet) Deref() { - if x.reffe237a3a == nil { +func (x *AttachmentSampleCountInfoAMD) Deref() { + if x.refeef56262 == nil { return } - x.SType = (StructureType)(x.reffe237a3a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffe237a3a.pNext)) - x.SrcSet = *(*DescriptorSet)(unsafe.Pointer(&x.reffe237a3a.srcSet)) - x.SrcBinding = (uint32)(x.reffe237a3a.srcBinding) - x.SrcArrayElement = (uint32)(x.reffe237a3a.srcArrayElement) - x.DstSet = *(*DescriptorSet)(unsafe.Pointer(&x.reffe237a3a.dstSet)) - x.DstBinding = (uint32)(x.reffe237a3a.dstBinding) - x.DstArrayElement = (uint32)(x.reffe237a3a.dstArrayElement) - x.DescriptorCount = (uint32)(x.reffe237a3a.descriptorCount) -} + x.SType = (StructureType)(x.refeef56262.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeef56262.pNext)) + x.ColorAttachmentCount = (uint32)(x.refeef56262.colorAttachmentCount) + hxf9aab83 := (*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)) + hxf9aab83.Data = unsafe.Pointer(x.refeef56262.pColorAttachmentSamples) + hxf9aab83.Cap = 0x7fffffff + // hxf9aab83.Len = ? -// allocFramebufferCreateInfoMemory allocates memory for type C.VkFramebufferCreateInfo in C. -// The caller is responsible for freeing the this memory via C.free. -func allocFramebufferCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFramebufferCreateInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem + x.DepthStencilAttachmentSamples = (SampleCountFlagBits)(x.refeef56262.depthStencilAttachmentSamples) } -const sizeOfFramebufferCreateInfoValue = unsafe.Sizeof([1]C.VkFramebufferCreateInfo{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FramebufferCreateInfo) Ref() *C.VkFramebufferCreateInfo { +func (x *AttachmentSampleCountInfoNV) Ref() *C.VkAttachmentSampleCountInfoAMD { if x == nil { return nil } - return x.refa3ad85cc + return x.refeef56262 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *FramebufferCreateInfo) Free() { - if x != nil && x.allocsa3ad85cc != nil { - x.allocsa3ad85cc.(*cgoAllocMap).Free() - x.refa3ad85cc = nil +func (x *AttachmentSampleCountInfoNV) Free() { + if x != nil && x.allocseef56262 != nil { + x.allocseef56262.(*cgoAllocMap).Free() + x.refeef56262 = nil } } -// NewFramebufferCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewAttachmentSampleCountInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewFramebufferCreateInfoRef(ref unsafe.Pointer) *FramebufferCreateInfo { +func NewAttachmentSampleCountInfoNVRef(ref unsafe.Pointer) *AttachmentSampleCountInfoNV { if ref == nil { return nil } - obj := new(FramebufferCreateInfo) - obj.refa3ad85cc = (*C.VkFramebufferCreateInfo)(unsafe.Pointer(ref)) + obj := new(AttachmentSampleCountInfoNV) + obj.refeef56262 = (*C.VkAttachmentSampleCountInfoAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *FramebufferCreateInfo) PassRef() (*C.VkFramebufferCreateInfo, *cgoAllocMap) { +func (x *AttachmentSampleCountInfoNV) PassRef() (*C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa3ad85cc != nil { - return x.refa3ad85cc, nil + } else if x.refeef56262 != nil { + return x.refeef56262, nil } - mema3ad85cc := allocFramebufferCreateInfoMemory(1) - refa3ad85cc := (*C.VkFramebufferCreateInfo)(mema3ad85cc) - allocsa3ad85cc := new(cgoAllocMap) - allocsa3ad85cc.Add(mema3ad85cc) + memeef56262 := allocAttachmentSampleCountInfoAMDMemory(1) + refeef56262 := (*C.VkAttachmentSampleCountInfoAMD)(memeef56262) + allocseef56262 := new(cgoAllocMap) + allocseef56262.Add(memeef56262) var csType_allocs *cgoAllocMap - refa3ad85cc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa3ad85cc.Borrow(csType_allocs) + refeef56262.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseef56262.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa3ad85cc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa3ad85cc.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refa3ad85cc.flags, cflags_allocs = (C.VkFramebufferCreateFlags)(x.Flags), cgoAllocsUnknown - allocsa3ad85cc.Borrow(cflags_allocs) - - var crenderPass_allocs *cgoAllocMap - refa3ad85cc.renderPass, crenderPass_allocs = *(*C.VkRenderPass)(unsafe.Pointer(&x.RenderPass)), cgoAllocsUnknown - allocsa3ad85cc.Borrow(crenderPass_allocs) - - var cattachmentCount_allocs *cgoAllocMap - refa3ad85cc.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown - allocsa3ad85cc.Borrow(cattachmentCount_allocs) - - var cpAttachments_allocs *cgoAllocMap - refa3ad85cc.pAttachments, cpAttachments_allocs = (*C.VkImageView)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PAttachments)).Data)), cgoAllocsUnknown - allocsa3ad85cc.Borrow(cpAttachments_allocs) + refeef56262.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseef56262.Borrow(cpNext_allocs) - var cwidth_allocs *cgoAllocMap - refa3ad85cc.width, cwidth_allocs = (C.uint32_t)(x.Width), cgoAllocsUnknown - allocsa3ad85cc.Borrow(cwidth_allocs) + var ccolorAttachmentCount_allocs *cgoAllocMap + refeef56262.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown + allocseef56262.Borrow(ccolorAttachmentCount_allocs) - var cheight_allocs *cgoAllocMap - refa3ad85cc.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown - allocsa3ad85cc.Borrow(cheight_allocs) + var cpColorAttachmentSamples_allocs *cgoAllocMap + refeef56262.pColorAttachmentSamples, cpColorAttachmentSamples_allocs = (*C.VkSampleCountFlagBits)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)).Data)), cgoAllocsUnknown + allocseef56262.Borrow(cpColorAttachmentSamples_allocs) - var clayers_allocs *cgoAllocMap - refa3ad85cc.layers, clayers_allocs = (C.uint32_t)(x.Layers), cgoAllocsUnknown - allocsa3ad85cc.Borrow(clayers_allocs) + var cdepthStencilAttachmentSamples_allocs *cgoAllocMap + refeef56262.depthStencilAttachmentSamples, cdepthStencilAttachmentSamples_allocs = (C.VkSampleCountFlagBits)(x.DepthStencilAttachmentSamples), cgoAllocsUnknown + allocseef56262.Borrow(cdepthStencilAttachmentSamples_allocs) - x.refa3ad85cc = refa3ad85cc - x.allocsa3ad85cc = allocsa3ad85cc - return refa3ad85cc, allocsa3ad85cc + x.refeef56262 = refeef56262 + x.allocseef56262 = allocseef56262 + return refeef56262, allocseef56262 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x FramebufferCreateInfo) PassValue() (C.VkFramebufferCreateInfo, *cgoAllocMap) { - if x.refa3ad85cc != nil { - return *x.refa3ad85cc, nil +func (x AttachmentSampleCountInfoNV) PassValue() (C.VkAttachmentSampleCountInfoAMD, *cgoAllocMap) { + if x.refeef56262 != nil { + return *x.refeef56262, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10139,124 +37244,100 @@ func (x FramebufferCreateInfo) PassValue() (C.VkFramebufferCreateInfo, *cgoAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *FramebufferCreateInfo) Deref() { - if x.refa3ad85cc == nil { +func (x *AttachmentSampleCountInfoNV) Deref() { + if x.refeef56262 == nil { return } - x.SType = (StructureType)(x.refa3ad85cc.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa3ad85cc.pNext)) - x.Flags = (FramebufferCreateFlags)(x.refa3ad85cc.flags) - x.RenderPass = *(*RenderPass)(unsafe.Pointer(&x.refa3ad85cc.renderPass)) - x.AttachmentCount = (uint32)(x.refa3ad85cc.attachmentCount) - hxf5fa529 := (*sliceHeader)(unsafe.Pointer(&x.PAttachments)) - hxf5fa529.Data = unsafe.Pointer(x.refa3ad85cc.pAttachments) - hxf5fa529.Cap = 0x7fffffff - // hxf5fa529.Len = ? + x.SType = (StructureType)(x.refeef56262.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeef56262.pNext)) + x.ColorAttachmentCount = (uint32)(x.refeef56262.colorAttachmentCount) + hxf8b35a8 := (*sliceHeader)(unsafe.Pointer(&x.PColorAttachmentSamples)) + hxf8b35a8.Data = unsafe.Pointer(x.refeef56262.pColorAttachmentSamples) + hxf8b35a8.Cap = 0x7fffffff + // hxf8b35a8.Len = ? - x.Width = (uint32)(x.refa3ad85cc.width) - x.Height = (uint32)(x.refa3ad85cc.height) - x.Layers = (uint32)(x.refa3ad85cc.layers) + x.DepthStencilAttachmentSamples = (SampleCountFlagBits)(x.refeef56262.depthStencilAttachmentSamples) } -// allocAttachmentDescriptionMemory allocates memory for type C.VkAttachmentDescription in C. +// allocMultiviewPerViewAttributesInfoNVXMemory allocates memory for type C.VkMultiviewPerViewAttributesInfoNVX in C. // The caller is responsible for freeing the this memory via C.free. -func allocAttachmentDescriptionMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentDescriptionValue)) +func allocMultiviewPerViewAttributesInfoNVXMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultiviewPerViewAttributesInfoNVXValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfAttachmentDescriptionValue = unsafe.Sizeof([1]C.VkAttachmentDescription{}) +const sizeOfMultiviewPerViewAttributesInfoNVXValue = unsafe.Sizeof([1]C.VkMultiviewPerViewAttributesInfoNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentDescription) Ref() *C.VkAttachmentDescription { +func (x *MultiviewPerViewAttributesInfoNVX) Ref() *C.VkMultiviewPerViewAttributesInfoNVX { if x == nil { return nil } - return x.refa5d685fc + return x.refc7d79ea0 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *AttachmentDescription) Free() { - if x != nil && x.allocsa5d685fc != nil { - x.allocsa5d685fc.(*cgoAllocMap).Free() - x.refa5d685fc = nil +func (x *MultiviewPerViewAttributesInfoNVX) Free() { + if x != nil && x.allocsc7d79ea0 != nil { + x.allocsc7d79ea0.(*cgoAllocMap).Free() + x.refc7d79ea0 = nil } } -// NewAttachmentDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMultiviewPerViewAttributesInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewAttachmentDescriptionRef(ref unsafe.Pointer) *AttachmentDescription { +func NewMultiviewPerViewAttributesInfoNVXRef(ref unsafe.Pointer) *MultiviewPerViewAttributesInfoNVX { if ref == nil { return nil } - obj := new(AttachmentDescription) - obj.refa5d685fc = (*C.VkAttachmentDescription)(unsafe.Pointer(ref)) + obj := new(MultiviewPerViewAttributesInfoNVX) + obj.refc7d79ea0 = (*C.VkMultiviewPerViewAttributesInfoNVX)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *AttachmentDescription) PassRef() (*C.VkAttachmentDescription, *cgoAllocMap) { +func (x *MultiviewPerViewAttributesInfoNVX) PassRef() (*C.VkMultiviewPerViewAttributesInfoNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa5d685fc != nil { - return x.refa5d685fc, nil + } else if x.refc7d79ea0 != nil { + return x.refc7d79ea0, nil } - mema5d685fc := allocAttachmentDescriptionMemory(1) - refa5d685fc := (*C.VkAttachmentDescription)(mema5d685fc) - allocsa5d685fc := new(cgoAllocMap) - allocsa5d685fc.Add(mema5d685fc) - - var cflags_allocs *cgoAllocMap - refa5d685fc.flags, cflags_allocs = (C.VkAttachmentDescriptionFlags)(x.Flags), cgoAllocsUnknown - allocsa5d685fc.Borrow(cflags_allocs) - - var cformat_allocs *cgoAllocMap - refa5d685fc.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocsa5d685fc.Borrow(cformat_allocs) - - var csamples_allocs *cgoAllocMap - refa5d685fc.samples, csamples_allocs = (C.VkSampleCountFlagBits)(x.Samples), cgoAllocsUnknown - allocsa5d685fc.Borrow(csamples_allocs) - - var cloadOp_allocs *cgoAllocMap - refa5d685fc.loadOp, cloadOp_allocs = (C.VkAttachmentLoadOp)(x.LoadOp), cgoAllocsUnknown - allocsa5d685fc.Borrow(cloadOp_allocs) - - var cstoreOp_allocs *cgoAllocMap - refa5d685fc.storeOp, cstoreOp_allocs = (C.VkAttachmentStoreOp)(x.StoreOp), cgoAllocsUnknown - allocsa5d685fc.Borrow(cstoreOp_allocs) + memc7d79ea0 := allocMultiviewPerViewAttributesInfoNVXMemory(1) + refc7d79ea0 := (*C.VkMultiviewPerViewAttributesInfoNVX)(memc7d79ea0) + allocsc7d79ea0 := new(cgoAllocMap) + allocsc7d79ea0.Add(memc7d79ea0) - var cstencilLoadOp_allocs *cgoAllocMap - refa5d685fc.stencilLoadOp, cstencilLoadOp_allocs = (C.VkAttachmentLoadOp)(x.StencilLoadOp), cgoAllocsUnknown - allocsa5d685fc.Borrow(cstencilLoadOp_allocs) + var csType_allocs *cgoAllocMap + refc7d79ea0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc7d79ea0.Borrow(csType_allocs) - var cstencilStoreOp_allocs *cgoAllocMap - refa5d685fc.stencilStoreOp, cstencilStoreOp_allocs = (C.VkAttachmentStoreOp)(x.StencilStoreOp), cgoAllocsUnknown - allocsa5d685fc.Borrow(cstencilStoreOp_allocs) + var cpNext_allocs *cgoAllocMap + refc7d79ea0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc7d79ea0.Borrow(cpNext_allocs) - var cinitialLayout_allocs *cgoAllocMap - refa5d685fc.initialLayout, cinitialLayout_allocs = (C.VkImageLayout)(x.InitialLayout), cgoAllocsUnknown - allocsa5d685fc.Borrow(cinitialLayout_allocs) + var cperViewAttributes_allocs *cgoAllocMap + refc7d79ea0.perViewAttributes, cperViewAttributes_allocs = (C.VkBool32)(x.PerViewAttributes), cgoAllocsUnknown + allocsc7d79ea0.Borrow(cperViewAttributes_allocs) - var cfinalLayout_allocs *cgoAllocMap - refa5d685fc.finalLayout, cfinalLayout_allocs = (C.VkImageLayout)(x.FinalLayout), cgoAllocsUnknown - allocsa5d685fc.Borrow(cfinalLayout_allocs) + var cperViewAttributesPositionXOnly_allocs *cgoAllocMap + refc7d79ea0.perViewAttributesPositionXOnly, cperViewAttributesPositionXOnly_allocs = (C.VkBool32)(x.PerViewAttributesPositionXOnly), cgoAllocsUnknown + allocsc7d79ea0.Borrow(cperViewAttributesPositionXOnly_allocs) - x.refa5d685fc = refa5d685fc - x.allocsa5d685fc = allocsa5d685fc - return refa5d685fc, allocsa5d685fc + x.refc7d79ea0 = refc7d79ea0 + x.allocsc7d79ea0 = allocsc7d79ea0 + return refc7d79ea0, allocsc7d79ea0 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x AttachmentDescription) PassValue() (C.VkAttachmentDescription, *cgoAllocMap) { - if x.refa5d685fc != nil { - return *x.refa5d685fc, nil +func (x MultiviewPerViewAttributesInfoNVX) PassValue() (C.VkMultiviewPerViewAttributesInfoNVX, *cgoAllocMap) { + if x.refc7d79ea0 != nil { + return *x.refc7d79ea0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10264,92 +37345,95 @@ func (x AttachmentDescription) PassValue() (C.VkAttachmentDescription, *cgoAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AttachmentDescription) Deref() { - if x.refa5d685fc == nil { +func (x *MultiviewPerViewAttributesInfoNVX) Deref() { + if x.refc7d79ea0 == nil { return } - x.Flags = (AttachmentDescriptionFlags)(x.refa5d685fc.flags) - x.Format = (Format)(x.refa5d685fc.format) - x.Samples = (SampleCountFlagBits)(x.refa5d685fc.samples) - x.LoadOp = (AttachmentLoadOp)(x.refa5d685fc.loadOp) - x.StoreOp = (AttachmentStoreOp)(x.refa5d685fc.storeOp) - x.StencilLoadOp = (AttachmentLoadOp)(x.refa5d685fc.stencilLoadOp) - x.StencilStoreOp = (AttachmentStoreOp)(x.refa5d685fc.stencilStoreOp) - x.InitialLayout = (ImageLayout)(x.refa5d685fc.initialLayout) - x.FinalLayout = (ImageLayout)(x.refa5d685fc.finalLayout) + x.SType = (StructureType)(x.refc7d79ea0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc7d79ea0.pNext)) + x.PerViewAttributes = (Bool32)(x.refc7d79ea0.perViewAttributes) + x.PerViewAttributesPositionXOnly = (Bool32)(x.refc7d79ea0.perViewAttributesPositionXOnly) } -// allocAttachmentReferenceMemory allocates memory for type C.VkAttachmentReference in C. +// allocImportMemoryFdInfoMemory allocates memory for type C.VkImportMemoryFdInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocAttachmentReferenceMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentReferenceValue)) +func allocImportMemoryFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportMemoryFdInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfAttachmentReferenceValue = unsafe.Sizeof([1]C.VkAttachmentReference{}) +const sizeOfImportMemoryFdInfoValue = unsafe.Sizeof([1]C.VkImportMemoryFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentReference) Ref() *C.VkAttachmentReference { +func (x *ImportMemoryFdInfo) Ref() *C.VkImportMemoryFdInfoKHR { if x == nil { return nil } - return x.refef4776de + return x.ref73f83287 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *AttachmentReference) Free() { - if x != nil && x.allocsef4776de != nil { - x.allocsef4776de.(*cgoAllocMap).Free() - x.refef4776de = nil +func (x *ImportMemoryFdInfo) Free() { + if x != nil && x.allocs73f83287 != nil { + x.allocs73f83287.(*cgoAllocMap).Free() + x.ref73f83287 = nil } } -// NewAttachmentReferenceRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImportMemoryFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewAttachmentReferenceRef(ref unsafe.Pointer) *AttachmentReference { +func NewImportMemoryFdInfoRef(ref unsafe.Pointer) *ImportMemoryFdInfo { if ref == nil { return nil } - obj := new(AttachmentReference) - obj.refef4776de = (*C.VkAttachmentReference)(unsafe.Pointer(ref)) + obj := new(ImportMemoryFdInfo) + obj.ref73f83287 = (*C.VkImportMemoryFdInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *AttachmentReference) PassRef() (*C.VkAttachmentReference, *cgoAllocMap) { +func (x *ImportMemoryFdInfo) PassRef() (*C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refef4776de != nil { - return x.refef4776de, nil + } else if x.ref73f83287 != nil { + return x.ref73f83287, nil } - memef4776de := allocAttachmentReferenceMemory(1) - refef4776de := (*C.VkAttachmentReference)(memef4776de) - allocsef4776de := new(cgoAllocMap) - allocsef4776de.Add(memef4776de) + mem73f83287 := allocImportMemoryFdInfoMemory(1) + ref73f83287 := (*C.VkImportMemoryFdInfoKHR)(mem73f83287) + allocs73f83287 := new(cgoAllocMap) + allocs73f83287.Add(mem73f83287) - var cattachment_allocs *cgoAllocMap - refef4776de.attachment, cattachment_allocs = (C.uint32_t)(x.Attachment), cgoAllocsUnknown - allocsef4776de.Borrow(cattachment_allocs) + var csType_allocs *cgoAllocMap + ref73f83287.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73f83287.Borrow(csType_allocs) - var clayout_allocs *cgoAllocMap - refef4776de.layout, clayout_allocs = (C.VkImageLayout)(x.Layout), cgoAllocsUnknown - allocsef4776de.Borrow(clayout_allocs) + var cpNext_allocs *cgoAllocMap + ref73f83287.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73f83287.Borrow(cpNext_allocs) - x.refef4776de = refef4776de - x.allocsef4776de = allocsef4776de - return refef4776de, allocsef4776de + var chandleType_allocs *cgoAllocMap + ref73f83287.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs73f83287.Borrow(chandleType_allocs) + + var cfd_allocs *cgoAllocMap + ref73f83287.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown + allocs73f83287.Borrow(cfd_allocs) + + x.ref73f83287 = ref73f83287 + x.allocs73f83287 = allocs73f83287 + return ref73f83287, allocs73f83287 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x AttachmentReference) PassValue() (C.VkAttachmentReference, *cgoAllocMap) { - if x.refef4776de != nil { - return *x.refef4776de, nil +func (x ImportMemoryFdInfo) PassValue() (C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { + if x.ref73f83287 != nil { + return *x.ref73f83287, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10357,155 +37441,91 @@ func (x AttachmentReference) PassValue() (C.VkAttachmentReference, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AttachmentReference) Deref() { - if x.refef4776de == nil { +func (x *ImportMemoryFdInfo) Deref() { + if x.ref73f83287 == nil { return } - x.Attachment = (uint32)(x.refef4776de.attachment) - x.Layout = (ImageLayout)(x.refef4776de.layout) + x.SType = (StructureType)(x.ref73f83287.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73f83287.pNext)) + x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.ref73f83287.handleType) + x.Fd = (int32)(x.ref73f83287.fd) } -// allocSubpassDescriptionMemory allocates memory for type C.VkSubpassDescription in C. +// allocMemoryFdPropertiesMemory allocates memory for type C.VkMemoryFdPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubpassDescriptionMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassDescriptionValue)) +func allocMemoryFdPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryFdPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubpassDescriptionValue = unsafe.Sizeof([1]C.VkSubpassDescription{}) - -// unpackSAttachmentReference transforms a sliced Go data structure into plain C format. -func unpackSAttachmentReference(x []AttachmentReference) (unpacked *C.VkAttachmentReference, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentReference) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocAttachmentReferenceMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkAttachmentReference)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkAttachmentReference)(h.Data) - return -} - -// packSAttachmentReference reads sliced Go data structure out from plain C format. -func packSAttachmentReference(v []AttachmentReference, ptr0 *C.VkAttachmentReference) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfAttachmentReferenceValue]C.VkAttachmentReference)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewAttachmentReferenceRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfMemoryFdPropertiesValue = unsafe.Sizeof([1]C.VkMemoryFdPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassDescription) Ref() *C.VkSubpassDescription { +func (x *MemoryFdProperties) Ref() *C.VkMemoryFdPropertiesKHR { if x == nil { return nil } - return x.refc7bfeda + return x.ref51e16d38 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubpassDescription) Free() { - if x != nil && x.allocsc7bfeda != nil { - x.allocsc7bfeda.(*cgoAllocMap).Free() - x.refc7bfeda = nil +func (x *MemoryFdProperties) Free() { + if x != nil && x.allocs51e16d38 != nil { + x.allocs51e16d38.(*cgoAllocMap).Free() + x.ref51e16d38 = nil } } -// NewSubpassDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMemoryFdPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubpassDescriptionRef(ref unsafe.Pointer) *SubpassDescription { +func NewMemoryFdPropertiesRef(ref unsafe.Pointer) *MemoryFdProperties { if ref == nil { return nil } - obj := new(SubpassDescription) - obj.refc7bfeda = (*C.VkSubpassDescription)(unsafe.Pointer(ref)) + obj := new(MemoryFdProperties) + obj.ref51e16d38 = (*C.VkMemoryFdPropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubpassDescription) PassRef() (*C.VkSubpassDescription, *cgoAllocMap) { +func (x *MemoryFdProperties) PassRef() (*C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc7bfeda != nil { - return x.refc7bfeda, nil + } else if x.ref51e16d38 != nil { + return x.ref51e16d38, nil } - memc7bfeda := allocSubpassDescriptionMemory(1) - refc7bfeda := (*C.VkSubpassDescription)(memc7bfeda) - allocsc7bfeda := new(cgoAllocMap) - allocsc7bfeda.Add(memc7bfeda) - - var cflags_allocs *cgoAllocMap - refc7bfeda.flags, cflags_allocs = (C.VkSubpassDescriptionFlags)(x.Flags), cgoAllocsUnknown - allocsc7bfeda.Borrow(cflags_allocs) - - var cpipelineBindPoint_allocs *cgoAllocMap - refc7bfeda.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown - allocsc7bfeda.Borrow(cpipelineBindPoint_allocs) - - var cinputAttachmentCount_allocs *cgoAllocMap - refc7bfeda.inputAttachmentCount, cinputAttachmentCount_allocs = (C.uint32_t)(x.InputAttachmentCount), cgoAllocsUnknown - allocsc7bfeda.Borrow(cinputAttachmentCount_allocs) - - var cpInputAttachments_allocs *cgoAllocMap - refc7bfeda.pInputAttachments, cpInputAttachments_allocs = unpackSAttachmentReference(x.PInputAttachments) - allocsc7bfeda.Borrow(cpInputAttachments_allocs) - - var ccolorAttachmentCount_allocs *cgoAllocMap - refc7bfeda.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown - allocsc7bfeda.Borrow(ccolorAttachmentCount_allocs) - - var cpColorAttachments_allocs *cgoAllocMap - refc7bfeda.pColorAttachments, cpColorAttachments_allocs = unpackSAttachmentReference(x.PColorAttachments) - allocsc7bfeda.Borrow(cpColorAttachments_allocs) - - var cpResolveAttachments_allocs *cgoAllocMap - refc7bfeda.pResolveAttachments, cpResolveAttachments_allocs = unpackSAttachmentReference(x.PResolveAttachments) - allocsc7bfeda.Borrow(cpResolveAttachments_allocs) + mem51e16d38 := allocMemoryFdPropertiesMemory(1) + ref51e16d38 := (*C.VkMemoryFdPropertiesKHR)(mem51e16d38) + allocs51e16d38 := new(cgoAllocMap) + allocs51e16d38.Add(mem51e16d38) - var cpDepthStencilAttachment_allocs *cgoAllocMap - refc7bfeda.pDepthStencilAttachment, cpDepthStencilAttachment_allocs = x.PDepthStencilAttachment.PassRef() - allocsc7bfeda.Borrow(cpDepthStencilAttachment_allocs) + var csType_allocs *cgoAllocMap + ref51e16d38.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs51e16d38.Borrow(csType_allocs) - var cpreserveAttachmentCount_allocs *cgoAllocMap - refc7bfeda.preserveAttachmentCount, cpreserveAttachmentCount_allocs = (C.uint32_t)(x.PreserveAttachmentCount), cgoAllocsUnknown - allocsc7bfeda.Borrow(cpreserveAttachmentCount_allocs) + var cpNext_allocs *cgoAllocMap + ref51e16d38.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs51e16d38.Borrow(cpNext_allocs) - var cpPreserveAttachments_allocs *cgoAllocMap - refc7bfeda.pPreserveAttachments, cpPreserveAttachments_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments)).Data)), cgoAllocsUnknown - allocsc7bfeda.Borrow(cpPreserveAttachments_allocs) + var cmemoryTypeBits_allocs *cgoAllocMap + ref51e16d38.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown + allocs51e16d38.Borrow(cmemoryTypeBits_allocs) - x.refc7bfeda = refc7bfeda - x.allocsc7bfeda = allocsc7bfeda - return refc7bfeda, allocsc7bfeda + x.ref51e16d38 = ref51e16d38 + x.allocs51e16d38 = allocs51e16d38 + return ref51e16d38, allocs51e16d38 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubpassDescription) PassValue() (C.VkSubpassDescription, *cgoAllocMap) { - if x.refc7bfeda != nil { - return *x.refc7bfeda, nil +func (x MemoryFdProperties) PassValue() (C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { + if x.ref51e16d38 != nil { + return *x.ref51e16d38, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10513,117 +37533,94 @@ func (x SubpassDescription) PassValue() (C.VkSubpassDescription, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubpassDescription) Deref() { - if x.refc7bfeda == nil { +func (x *MemoryFdProperties) Deref() { + if x.ref51e16d38 == nil { return } - x.Flags = (SubpassDescriptionFlags)(x.refc7bfeda.flags) - x.PipelineBindPoint = (PipelineBindPoint)(x.refc7bfeda.pipelineBindPoint) - x.InputAttachmentCount = (uint32)(x.refc7bfeda.inputAttachmentCount) - packSAttachmentReference(x.PInputAttachments, x.refc7bfeda.pInputAttachments) - x.ColorAttachmentCount = (uint32)(x.refc7bfeda.colorAttachmentCount) - packSAttachmentReference(x.PColorAttachments, x.refc7bfeda.pColorAttachments) - packSAttachmentReference(x.PResolveAttachments, x.refc7bfeda.pResolveAttachments) - x.PDepthStencilAttachment = NewAttachmentReferenceRef(unsafe.Pointer(x.refc7bfeda.pDepthStencilAttachment)) - x.PreserveAttachmentCount = (uint32)(x.refc7bfeda.preserveAttachmentCount) - hxf21690b := (*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments)) - hxf21690b.Data = unsafe.Pointer(x.refc7bfeda.pPreserveAttachments) - hxf21690b.Cap = 0x7fffffff - // hxf21690b.Len = ? - + x.SType = (StructureType)(x.ref51e16d38.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref51e16d38.pNext)) + x.MemoryTypeBits = (uint32)(x.ref51e16d38.memoryTypeBits) } -// allocSubpassDependencyMemory allocates memory for type C.VkSubpassDependency in C. +// allocMemoryGetFdInfoMemory allocates memory for type C.VkMemoryGetFdInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubpassDependencyMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassDependencyValue)) +func allocMemoryGetFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryGetFdInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubpassDependencyValue = unsafe.Sizeof([1]C.VkSubpassDependency{}) +const sizeOfMemoryGetFdInfoValue = unsafe.Sizeof([1]C.VkMemoryGetFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassDependency) Ref() *C.VkSubpassDependency { +func (x *MemoryGetFdInfo) Ref() *C.VkMemoryGetFdInfoKHR { if x == nil { return nil } - return x.refdb197adb + return x.ref75a079b1 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubpassDependency) Free() { - if x != nil && x.allocsdb197adb != nil { - x.allocsdb197adb.(*cgoAllocMap).Free() - x.refdb197adb = nil +func (x *MemoryGetFdInfo) Free() { + if x != nil && x.allocs75a079b1 != nil { + x.allocs75a079b1.(*cgoAllocMap).Free() + x.ref75a079b1 = nil } } -// NewSubpassDependencyRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMemoryGetFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubpassDependencyRef(ref unsafe.Pointer) *SubpassDependency { +func NewMemoryGetFdInfoRef(ref unsafe.Pointer) *MemoryGetFdInfo { if ref == nil { return nil } - obj := new(SubpassDependency) - obj.refdb197adb = (*C.VkSubpassDependency)(unsafe.Pointer(ref)) + obj := new(MemoryGetFdInfo) + obj.ref75a079b1 = (*C.VkMemoryGetFdInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubpassDependency) PassRef() (*C.VkSubpassDependency, *cgoAllocMap) { +func (x *MemoryGetFdInfo) PassRef() (*C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdb197adb != nil { - return x.refdb197adb, nil + } else if x.ref75a079b1 != nil { + return x.ref75a079b1, nil } - memdb197adb := allocSubpassDependencyMemory(1) - refdb197adb := (*C.VkSubpassDependency)(memdb197adb) - allocsdb197adb := new(cgoAllocMap) - allocsdb197adb.Add(memdb197adb) - - var csrcSubpass_allocs *cgoAllocMap - refdb197adb.srcSubpass, csrcSubpass_allocs = (C.uint32_t)(x.SrcSubpass), cgoAllocsUnknown - allocsdb197adb.Borrow(csrcSubpass_allocs) - - var cdstSubpass_allocs *cgoAllocMap - refdb197adb.dstSubpass, cdstSubpass_allocs = (C.uint32_t)(x.DstSubpass), cgoAllocsUnknown - allocsdb197adb.Borrow(cdstSubpass_allocs) - - var csrcStageMask_allocs *cgoAllocMap - refdb197adb.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags)(x.SrcStageMask), cgoAllocsUnknown - allocsdb197adb.Borrow(csrcStageMask_allocs) + mem75a079b1 := allocMemoryGetFdInfoMemory(1) + ref75a079b1 := (*C.VkMemoryGetFdInfoKHR)(mem75a079b1) + allocs75a079b1 := new(cgoAllocMap) + allocs75a079b1.Add(mem75a079b1) - var cdstStageMask_allocs *cgoAllocMap - refdb197adb.dstStageMask, cdstStageMask_allocs = (C.VkPipelineStageFlags)(x.DstStageMask), cgoAllocsUnknown - allocsdb197adb.Borrow(cdstStageMask_allocs) + var csType_allocs *cgoAllocMap + ref75a079b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs75a079b1.Borrow(csType_allocs) - var csrcAccessMask_allocs *cgoAllocMap - refdb197adb.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown - allocsdb197adb.Borrow(csrcAccessMask_allocs) + var cpNext_allocs *cgoAllocMap + ref75a079b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs75a079b1.Borrow(cpNext_allocs) - var cdstAccessMask_allocs *cgoAllocMap - refdb197adb.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown - allocsdb197adb.Borrow(cdstAccessMask_allocs) + var cmemory_allocs *cgoAllocMap + ref75a079b1.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown + allocs75a079b1.Borrow(cmemory_allocs) - var cdependencyFlags_allocs *cgoAllocMap - refdb197adb.dependencyFlags, cdependencyFlags_allocs = (C.VkDependencyFlags)(x.DependencyFlags), cgoAllocsUnknown - allocsdb197adb.Borrow(cdependencyFlags_allocs) + var chandleType_allocs *cgoAllocMap + ref75a079b1.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs75a079b1.Borrow(chandleType_allocs) - x.refdb197adb = refdb197adb - x.allocsdb197adb = allocsdb197adb - return refdb197adb, allocsdb197adb + x.ref75a079b1 = ref75a079b1 + x.allocs75a079b1 = allocs75a079b1 + return ref75a079b1, allocs75a079b1 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubpassDependency) PassValue() (C.VkSubpassDependency, *cgoAllocMap) { - if x.refdb197adb != nil { - return *x.refdb197adb, nil +func (x MemoryGetFdInfo) PassValue() (C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { + if x.ref75a079b1 != nil { + return *x.ref75a079b1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10631,232 +37628,201 @@ func (x SubpassDependency) PassValue() (C.VkSubpassDependency, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubpassDependency) Deref() { - if x.refdb197adb == nil { +func (x *MemoryGetFdInfo) Deref() { + if x.ref75a079b1 == nil { return } - x.SrcSubpass = (uint32)(x.refdb197adb.srcSubpass) - x.DstSubpass = (uint32)(x.refdb197adb.dstSubpass) - x.SrcStageMask = (PipelineStageFlags)(x.refdb197adb.srcStageMask) - x.DstStageMask = (PipelineStageFlags)(x.refdb197adb.dstStageMask) - x.SrcAccessMask = (AccessFlags)(x.refdb197adb.srcAccessMask) - x.DstAccessMask = (AccessFlags)(x.refdb197adb.dstAccessMask) - x.DependencyFlags = (DependencyFlags)(x.refdb197adb.dependencyFlags) + x.SType = (StructureType)(x.ref75a079b1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref75a079b1.pNext)) + x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref75a079b1.memory)) + x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.ref75a079b1.handleType) } -// allocRenderPassCreateInfoMemory allocates memory for type C.VkRenderPassCreateInfo in C. +// allocImportSemaphoreFdInfoMemory allocates memory for type C.VkImportSemaphoreFdInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocRenderPassCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassCreateInfoValue)) +func allocImportSemaphoreFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportSemaphoreFdInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfRenderPassCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassCreateInfo{}) +const sizeOfImportSemaphoreFdInfoValue = unsafe.Sizeof([1]C.VkImportSemaphoreFdInfoKHR{}) -// unpackSAttachmentDescription transforms a sliced Go data structure into plain C format. -func unpackSAttachmentDescription(x []AttachmentDescription) (unpacked *C.VkAttachmentDescription, allocs *cgoAllocMap) { +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImportSemaphoreFdInfo) Ref() *C.VkImportSemaphoreFdInfoKHR { if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentDescription) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocAttachmentDescriptionMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkAttachmentDescription)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) + return nil } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkAttachmentDescription)(h.Data) - return + return x.refbc2f829a } -// unpackSSubpassDescription transforms a sliced Go data structure into plain C format. -func unpackSSubpassDescription(x []SubpassDescription) (unpacked *C.VkSubpassDescription, allocs *cgoAllocMap) { - if x == nil { - return nil, nil +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImportSemaphoreFdInfo) Free() { + if x != nil && x.allocsbc2f829a != nil { + x.allocsbc2f829a.(*cgoAllocMap).Free() + x.refbc2f829a = nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDescription) { - go allocs.Free() - }) +} - len0 := len(x) - mem0 := allocSubpassDescriptionMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkSubpassDescription)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) +// NewImportSemaphoreFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImportSemaphoreFdInfoRef(ref unsafe.Pointer) *ImportSemaphoreFdInfo { + if ref == nil { + return nil } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSubpassDescription)(h.Data) - return + obj := new(ImportSemaphoreFdInfo) + obj.refbc2f829a = (*C.VkImportSemaphoreFdInfoKHR)(unsafe.Pointer(ref)) + return obj } -// unpackSSubpassDependency transforms a sliced Go data structure into plain C format. -func unpackSSubpassDependency(x []SubpassDependency) (unpacked *C.VkSubpassDependency, allocs *cgoAllocMap) { +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImportSemaphoreFdInfo) PassRef() (*C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil + } else if x.refbc2f829a != nil { + return x.refbc2f829a, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDependency) { - go allocs.Free() - }) + membc2f829a := allocImportSemaphoreFdInfoMemory(1) + refbc2f829a := (*C.VkImportSemaphoreFdInfoKHR)(membc2f829a) + allocsbc2f829a := new(cgoAllocMap) + allocsbc2f829a.Add(membc2f829a) + + var csType_allocs *cgoAllocMap + refbc2f829a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbc2f829a.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refbc2f829a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbc2f829a.Borrow(cpNext_allocs) + + var csemaphore_allocs *cgoAllocMap + refbc2f829a.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocsbc2f829a.Borrow(csemaphore_allocs) + + var cflags_allocs *cgoAllocMap + refbc2f829a.flags, cflags_allocs = (C.VkSemaphoreImportFlags)(x.Flags), cgoAllocsUnknown + allocsbc2f829a.Borrow(cflags_allocs) + + var chandleType_allocs *cgoAllocMap + refbc2f829a.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsbc2f829a.Borrow(chandleType_allocs) + + var cfd_allocs *cgoAllocMap + refbc2f829a.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown + allocsbc2f829a.Borrow(cfd_allocs) + + x.refbc2f829a = refbc2f829a + x.allocsbc2f829a = allocsbc2f829a + return refbc2f829a, allocsbc2f829a - len0 := len(x) - mem0 := allocSubpassDependencyMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkSubpassDependency)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSubpassDependency)(h.Data) - return } -// packSAttachmentDescription reads sliced Go data structure out from plain C format. -func packSAttachmentDescription(v []AttachmentDescription, ptr0 *C.VkAttachmentDescription) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfAttachmentDescriptionValue]C.VkAttachmentDescription)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewAttachmentDescriptionRef(unsafe.Pointer(&ptr1)) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImportSemaphoreFdInfo) PassValue() (C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { + if x.refbc2f829a != nil { + return *x.refbc2f829a, nil } + ref, allocs := x.PassRef() + return *ref, allocs } -// packSSubpassDescription reads sliced Go data structure out from plain C format. -func packSSubpassDescription(v []SubpassDescription, ptr0 *C.VkSubpassDescription) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSubpassDescriptionValue]C.VkSubpassDescription)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSubpassDescriptionRef(unsafe.Pointer(&ptr1)) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImportSemaphoreFdInfo) Deref() { + if x.refbc2f829a == nil { + return } + x.SType = (StructureType)(x.refbc2f829a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc2f829a.pNext)) + x.Semaphore = *(*Semaphore)(unsafe.Pointer(&x.refbc2f829a.semaphore)) + x.Flags = (SemaphoreImportFlags)(x.refbc2f829a.flags) + x.HandleType = (ExternalSemaphoreHandleTypeFlagBits)(x.refbc2f829a.handleType) + x.Fd = (int32)(x.refbc2f829a.fd) } -// packSSubpassDependency reads sliced Go data structure out from plain C format. -func packSSubpassDependency(v []SubpassDependency, ptr0 *C.VkSubpassDependency) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSubpassDependencyValue]C.VkSubpassDependency)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSubpassDependencyRef(unsafe.Pointer(&ptr1)) +// allocSemaphoreGetFdInfoMemory allocates memory for type C.VkSemaphoreGetFdInfoKHR in C. +// The caller is responsible for freeing the this memory via C.free. +func allocSemaphoreGetFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreGetFdInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) } + return mem } +const sizeOfSemaphoreGetFdInfoValue = unsafe.Sizeof([1]C.VkSemaphoreGetFdInfoKHR{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassCreateInfo) Ref() *C.VkRenderPassCreateInfo { +func (x *SemaphoreGetFdInfo) Ref() *C.VkSemaphoreGetFdInfoKHR { if x == nil { return nil } - return x.ref886d7d86 + return x.refd9bd07cf } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *RenderPassCreateInfo) Free() { - if x != nil && x.allocs886d7d86 != nil { - x.allocs886d7d86.(*cgoAllocMap).Free() - x.ref886d7d86 = nil +func (x *SemaphoreGetFdInfo) Free() { + if x != nil && x.allocsd9bd07cf != nil { + x.allocsd9bd07cf.(*cgoAllocMap).Free() + x.refd9bd07cf = nil } } -// NewRenderPassCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSemaphoreGetFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewRenderPassCreateInfoRef(ref unsafe.Pointer) *RenderPassCreateInfo { +func NewSemaphoreGetFdInfoRef(ref unsafe.Pointer) *SemaphoreGetFdInfo { if ref == nil { return nil } - obj := new(RenderPassCreateInfo) - obj.ref886d7d86 = (*C.VkRenderPassCreateInfo)(unsafe.Pointer(ref)) + obj := new(SemaphoreGetFdInfo) + obj.refd9bd07cf = (*C.VkSemaphoreGetFdInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *RenderPassCreateInfo) PassRef() (*C.VkRenderPassCreateInfo, *cgoAllocMap) { +func (x *SemaphoreGetFdInfo) PassRef() (*C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref886d7d86 != nil { - return x.ref886d7d86, nil + } else if x.refd9bd07cf != nil { + return x.refd9bd07cf, nil } - mem886d7d86 := allocRenderPassCreateInfoMemory(1) - ref886d7d86 := (*C.VkRenderPassCreateInfo)(mem886d7d86) - allocs886d7d86 := new(cgoAllocMap) - allocs886d7d86.Add(mem886d7d86) + memd9bd07cf := allocSemaphoreGetFdInfoMemory(1) + refd9bd07cf := (*C.VkSemaphoreGetFdInfoKHR)(memd9bd07cf) + allocsd9bd07cf := new(cgoAllocMap) + allocsd9bd07cf.Add(memd9bd07cf) var csType_allocs *cgoAllocMap - ref886d7d86.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs886d7d86.Borrow(csType_allocs) + refd9bd07cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd9bd07cf.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref886d7d86.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs886d7d86.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref886d7d86.flags, cflags_allocs = (C.VkRenderPassCreateFlags)(x.Flags), cgoAllocsUnknown - allocs886d7d86.Borrow(cflags_allocs) - - var cattachmentCount_allocs *cgoAllocMap - ref886d7d86.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown - allocs886d7d86.Borrow(cattachmentCount_allocs) - - var cpAttachments_allocs *cgoAllocMap - ref886d7d86.pAttachments, cpAttachments_allocs = unpackSAttachmentDescription(x.PAttachments) - allocs886d7d86.Borrow(cpAttachments_allocs) - - var csubpassCount_allocs *cgoAllocMap - ref886d7d86.subpassCount, csubpassCount_allocs = (C.uint32_t)(x.SubpassCount), cgoAllocsUnknown - allocs886d7d86.Borrow(csubpassCount_allocs) - - var cpSubpasses_allocs *cgoAllocMap - ref886d7d86.pSubpasses, cpSubpasses_allocs = unpackSSubpassDescription(x.PSubpasses) - allocs886d7d86.Borrow(cpSubpasses_allocs) + refd9bd07cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd9bd07cf.Borrow(cpNext_allocs) - var cdependencyCount_allocs *cgoAllocMap - ref886d7d86.dependencyCount, cdependencyCount_allocs = (C.uint32_t)(x.DependencyCount), cgoAllocsUnknown - allocs886d7d86.Borrow(cdependencyCount_allocs) + var csemaphore_allocs *cgoAllocMap + refd9bd07cf.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown + allocsd9bd07cf.Borrow(csemaphore_allocs) - var cpDependencies_allocs *cgoAllocMap - ref886d7d86.pDependencies, cpDependencies_allocs = unpackSSubpassDependency(x.PDependencies) - allocs886d7d86.Borrow(cpDependencies_allocs) + var chandleType_allocs *cgoAllocMap + refd9bd07cf.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsd9bd07cf.Borrow(chandleType_allocs) - x.ref886d7d86 = ref886d7d86 - x.allocs886d7d86 = allocs886d7d86 - return ref886d7d86, allocs886d7d86 + x.refd9bd07cf = refd9bd07cf + x.allocsd9bd07cf = allocsd9bd07cf + return refd9bd07cf, allocsd9bd07cf } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x RenderPassCreateInfo) PassValue() (C.VkRenderPassCreateInfo, *cgoAllocMap) { - if x.ref886d7d86 != nil { - return *x.ref886d7d86, nil +func (x SemaphoreGetFdInfo) PassValue() (C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap) { + if x.refd9bd07cf != nil { + return *x.refd9bd07cf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10864,100 +37830,91 @@ func (x RenderPassCreateInfo) PassValue() (C.VkRenderPassCreateInfo, *cgoAllocMa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RenderPassCreateInfo) Deref() { - if x.ref886d7d86 == nil { +func (x *SemaphoreGetFdInfo) Deref() { + if x.refd9bd07cf == nil { return } - x.SType = (StructureType)(x.ref886d7d86.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref886d7d86.pNext)) - x.Flags = (RenderPassCreateFlags)(x.ref886d7d86.flags) - x.AttachmentCount = (uint32)(x.ref886d7d86.attachmentCount) - packSAttachmentDescription(x.PAttachments, x.ref886d7d86.pAttachments) - x.SubpassCount = (uint32)(x.ref886d7d86.subpassCount) - packSSubpassDescription(x.PSubpasses, x.ref886d7d86.pSubpasses) - x.DependencyCount = (uint32)(x.ref886d7d86.dependencyCount) - packSSubpassDependency(x.PDependencies, x.ref886d7d86.pDependencies) + x.SType = (StructureType)(x.refd9bd07cf.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd9bd07cf.pNext)) + x.Semaphore = *(*Semaphore)(unsafe.Pointer(&x.refd9bd07cf.semaphore)) + x.HandleType = (ExternalSemaphoreHandleTypeFlagBits)(x.refd9bd07cf.handleType) } -// allocCommandPoolCreateInfoMemory allocates memory for type C.VkCommandPoolCreateInfo in C. +// allocPhysicalDevicePushDescriptorPropertiesMemory allocates memory for type C.VkPhysicalDevicePushDescriptorPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocCommandPoolCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandPoolCreateInfoValue)) +func allocPhysicalDevicePushDescriptorPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePushDescriptorPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfCommandPoolCreateInfoValue = unsafe.Sizeof([1]C.VkCommandPoolCreateInfo{}) +const sizeOfPhysicalDevicePushDescriptorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePushDescriptorPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CommandPoolCreateInfo) Ref() *C.VkCommandPoolCreateInfo { +func (x *PhysicalDevicePushDescriptorProperties) Ref() *C.VkPhysicalDevicePushDescriptorPropertiesKHR { if x == nil { return nil } - return x.ref73550de0 + return x.ref8c58a1a5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CommandPoolCreateInfo) Free() { - if x != nil && x.allocs73550de0 != nil { - x.allocs73550de0.(*cgoAllocMap).Free() - x.ref73550de0 = nil +func (x *PhysicalDevicePushDescriptorProperties) Free() { + if x != nil && x.allocs8c58a1a5 != nil { + x.allocs8c58a1a5.(*cgoAllocMap).Free() + x.ref8c58a1a5 = nil } } -// NewCommandPoolCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePushDescriptorPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCommandPoolCreateInfoRef(ref unsafe.Pointer) *CommandPoolCreateInfo { +func NewPhysicalDevicePushDescriptorPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePushDescriptorProperties { if ref == nil { return nil } - obj := new(CommandPoolCreateInfo) - obj.ref73550de0 = (*C.VkCommandPoolCreateInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePushDescriptorProperties) + obj.ref8c58a1a5 = (*C.VkPhysicalDevicePushDescriptorPropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CommandPoolCreateInfo) PassRef() (*C.VkCommandPoolCreateInfo, *cgoAllocMap) { +func (x *PhysicalDevicePushDescriptorProperties) PassRef() (*C.VkPhysicalDevicePushDescriptorPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref73550de0 != nil { - return x.ref73550de0, nil + } else if x.ref8c58a1a5 != nil { + return x.ref8c58a1a5, nil } - mem73550de0 := allocCommandPoolCreateInfoMemory(1) - ref73550de0 := (*C.VkCommandPoolCreateInfo)(mem73550de0) - allocs73550de0 := new(cgoAllocMap) - allocs73550de0.Add(mem73550de0) + mem8c58a1a5 := allocPhysicalDevicePushDescriptorPropertiesMemory(1) + ref8c58a1a5 := (*C.VkPhysicalDevicePushDescriptorPropertiesKHR)(mem8c58a1a5) + allocs8c58a1a5 := new(cgoAllocMap) + allocs8c58a1a5.Add(mem8c58a1a5) var csType_allocs *cgoAllocMap - ref73550de0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs73550de0.Borrow(csType_allocs) + ref8c58a1a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8c58a1a5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref73550de0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs73550de0.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref73550de0.flags, cflags_allocs = (C.VkCommandPoolCreateFlags)(x.Flags), cgoAllocsUnknown - allocs73550de0.Borrow(cflags_allocs) + ref8c58a1a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8c58a1a5.Borrow(cpNext_allocs) - var cqueueFamilyIndex_allocs *cgoAllocMap - ref73550de0.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown - allocs73550de0.Borrow(cqueueFamilyIndex_allocs) + var cmaxPushDescriptors_allocs *cgoAllocMap + ref8c58a1a5.maxPushDescriptors, cmaxPushDescriptors_allocs = (C.uint32_t)(x.MaxPushDescriptors), cgoAllocsUnknown + allocs8c58a1a5.Borrow(cmaxPushDescriptors_allocs) - x.ref73550de0 = ref73550de0 - x.allocs73550de0 = allocs73550de0 - return ref73550de0, allocs73550de0 + x.ref8c58a1a5 = ref8c58a1a5 + x.allocs8c58a1a5 = allocs8c58a1a5 + return ref8c58a1a5, allocs8c58a1a5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CommandPoolCreateInfo) PassValue() (C.VkCommandPoolCreateInfo, *cgoAllocMap) { - if x.ref73550de0 != nil { - return *x.ref73550de0, nil +func (x PhysicalDevicePushDescriptorProperties) PassValue() (C.VkPhysicalDevicePushDescriptorPropertiesKHR, *cgoAllocMap) { + if x.ref8c58a1a5 != nil { + return *x.ref8c58a1a5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -10965,99 +37922,82 @@ func (x CommandPoolCreateInfo) PassValue() (C.VkCommandPoolCreateInfo, *cgoAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CommandPoolCreateInfo) Deref() { - if x.ref73550de0 == nil { +func (x *PhysicalDevicePushDescriptorProperties) Deref() { + if x.ref8c58a1a5 == nil { return } - x.SType = (StructureType)(x.ref73550de0.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73550de0.pNext)) - x.Flags = (CommandPoolCreateFlags)(x.ref73550de0.flags) - x.QueueFamilyIndex = (uint32)(x.ref73550de0.queueFamilyIndex) -} - -// allocCommandBufferAllocateInfoMemory allocates memory for type C.VkCommandBufferAllocateInfo in C. -// The caller is responsible for freeing the this memory via C.free. -func allocCommandBufferAllocateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferAllocateInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem + x.SType = (StructureType)(x.ref8c58a1a5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8c58a1a5.pNext)) + x.MaxPushDescriptors = (uint32)(x.ref8c58a1a5.maxPushDescriptors) } -const sizeOfCommandBufferAllocateInfoValue = unsafe.Sizeof([1]C.VkCommandBufferAllocateInfo{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CommandBufferAllocateInfo) Ref() *C.VkCommandBufferAllocateInfo { +func (x *PhysicalDeviceFloat16Int8Features) Ref() *C.VkPhysicalDeviceShaderFloat16Int8Features { if x == nil { return nil } - return x.refd1a0a7c8 + return x.refc9d315b6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CommandBufferAllocateInfo) Free() { - if x != nil && x.allocsd1a0a7c8 != nil { - x.allocsd1a0a7c8.(*cgoAllocMap).Free() - x.refd1a0a7c8 = nil +func (x *PhysicalDeviceFloat16Int8Features) Free() { + if x != nil && x.allocsc9d315b6 != nil { + x.allocsc9d315b6.(*cgoAllocMap).Free() + x.refc9d315b6 = nil } } -// NewCommandBufferAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFloat16Int8FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCommandBufferAllocateInfoRef(ref unsafe.Pointer) *CommandBufferAllocateInfo { +func NewPhysicalDeviceFloat16Int8FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFloat16Int8Features { if ref == nil { return nil } - obj := new(CommandBufferAllocateInfo) - obj.refd1a0a7c8 = (*C.VkCommandBufferAllocateInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFloat16Int8Features) + obj.refc9d315b6 = (*C.VkPhysicalDeviceShaderFloat16Int8Features)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CommandBufferAllocateInfo) PassRef() (*C.VkCommandBufferAllocateInfo, *cgoAllocMap) { +func (x *PhysicalDeviceFloat16Int8Features) PassRef() (*C.VkPhysicalDeviceShaderFloat16Int8Features, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd1a0a7c8 != nil { - return x.refd1a0a7c8, nil + } else if x.refc9d315b6 != nil { + return x.refc9d315b6, nil } - memd1a0a7c8 := allocCommandBufferAllocateInfoMemory(1) - refd1a0a7c8 := (*C.VkCommandBufferAllocateInfo)(memd1a0a7c8) - allocsd1a0a7c8 := new(cgoAllocMap) - allocsd1a0a7c8.Add(memd1a0a7c8) + memc9d315b6 := allocPhysicalDeviceShaderFloat16Int8FeaturesMemory(1) + refc9d315b6 := (*C.VkPhysicalDeviceShaderFloat16Int8Features)(memc9d315b6) + allocsc9d315b6 := new(cgoAllocMap) + allocsc9d315b6.Add(memc9d315b6) var csType_allocs *cgoAllocMap - refd1a0a7c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd1a0a7c8.Borrow(csType_allocs) + refc9d315b6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc9d315b6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd1a0a7c8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd1a0a7c8.Borrow(cpNext_allocs) - - var ccommandPool_allocs *cgoAllocMap - refd1a0a7c8.commandPool, ccommandPool_allocs = *(*C.VkCommandPool)(unsafe.Pointer(&x.CommandPool)), cgoAllocsUnknown - allocsd1a0a7c8.Borrow(ccommandPool_allocs) + refc9d315b6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc9d315b6.Borrow(cpNext_allocs) - var clevel_allocs *cgoAllocMap - refd1a0a7c8.level, clevel_allocs = (C.VkCommandBufferLevel)(x.Level), cgoAllocsUnknown - allocsd1a0a7c8.Borrow(clevel_allocs) + var cshaderFloat16_allocs *cgoAllocMap + refc9d315b6.shaderFloat16, cshaderFloat16_allocs = (C.VkBool32)(x.ShaderFloat16), cgoAllocsUnknown + allocsc9d315b6.Borrow(cshaderFloat16_allocs) - var ccommandBufferCount_allocs *cgoAllocMap - refd1a0a7c8.commandBufferCount, ccommandBufferCount_allocs = (C.uint32_t)(x.CommandBufferCount), cgoAllocsUnknown - allocsd1a0a7c8.Borrow(ccommandBufferCount_allocs) + var cshaderInt8_allocs *cgoAllocMap + refc9d315b6.shaderInt8, cshaderInt8_allocs = (C.VkBool32)(x.ShaderInt8), cgoAllocsUnknown + allocsc9d315b6.Borrow(cshaderInt8_allocs) - x.refd1a0a7c8 = refd1a0a7c8 - x.allocsd1a0a7c8 = allocsd1a0a7c8 - return refd1a0a7c8, allocsd1a0a7c8 + x.refc9d315b6 = refc9d315b6 + x.allocsc9d315b6 = allocsc9d315b6 + return refc9d315b6, allocsc9d315b6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CommandBufferAllocateInfo) PassValue() (C.VkCommandBufferAllocateInfo, *cgoAllocMap) { - if x.refd1a0a7c8 != nil { - return *x.refd1a0a7c8, nil +func (x PhysicalDeviceFloat16Int8Features) PassValue() (C.VkPhysicalDeviceShaderFloat16Int8Features, *cgoAllocMap) { + if x.refc9d315b6 != nil { + return *x.refc9d315b6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11065,112 +38005,91 @@ func (x CommandBufferAllocateInfo) PassValue() (C.VkCommandBufferAllocateInfo, * // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CommandBufferAllocateInfo) Deref() { - if x.refd1a0a7c8 == nil { +func (x *PhysicalDeviceFloat16Int8Features) Deref() { + if x.refc9d315b6 == nil { return } - x.SType = (StructureType)(x.refd1a0a7c8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd1a0a7c8.pNext)) - x.CommandPool = *(*CommandPool)(unsafe.Pointer(&x.refd1a0a7c8.commandPool)) - x.Level = (CommandBufferLevel)(x.refd1a0a7c8.level) - x.CommandBufferCount = (uint32)(x.refd1a0a7c8.commandBufferCount) + x.SType = (StructureType)(x.refc9d315b6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc9d315b6.pNext)) + x.ShaderFloat16 = (Bool32)(x.refc9d315b6.shaderFloat16) + x.ShaderInt8 = (Bool32)(x.refc9d315b6.shaderInt8) } -// allocCommandBufferInheritanceInfoMemory allocates memory for type C.VkCommandBufferInheritanceInfo in C. +// allocRectLayerMemory allocates memory for type C.VkRectLayerKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocCommandBufferInheritanceInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceInfoValue)) +func allocRectLayerMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRectLayerValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfCommandBufferInheritanceInfoValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceInfo{}) +const sizeOfRectLayerValue = unsafe.Sizeof([1]C.VkRectLayerKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CommandBufferInheritanceInfo) Ref() *C.VkCommandBufferInheritanceInfo { +func (x *RectLayer) Ref() *C.VkRectLayerKHR { if x == nil { return nil } - return x.ref737f8019 + return x.refaf248476 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CommandBufferInheritanceInfo) Free() { - if x != nil && x.allocs737f8019 != nil { - x.allocs737f8019.(*cgoAllocMap).Free() - x.ref737f8019 = nil +func (x *RectLayer) Free() { + if x != nil && x.allocsaf248476 != nil { + x.allocsaf248476.(*cgoAllocMap).Free() + x.refaf248476 = nil } } -// NewCommandBufferInheritanceInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewRectLayerRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCommandBufferInheritanceInfoRef(ref unsafe.Pointer) *CommandBufferInheritanceInfo { +func NewRectLayerRef(ref unsafe.Pointer) *RectLayer { if ref == nil { return nil } - obj := new(CommandBufferInheritanceInfo) - obj.ref737f8019 = (*C.VkCommandBufferInheritanceInfo)(unsafe.Pointer(ref)) + obj := new(RectLayer) + obj.refaf248476 = (*C.VkRectLayerKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CommandBufferInheritanceInfo) PassRef() (*C.VkCommandBufferInheritanceInfo, *cgoAllocMap) { +func (x *RectLayer) PassRef() (*C.VkRectLayerKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref737f8019 != nil { - return x.ref737f8019, nil + } else if x.refaf248476 != nil { + return x.refaf248476, nil } - mem737f8019 := allocCommandBufferInheritanceInfoMemory(1) - ref737f8019 := (*C.VkCommandBufferInheritanceInfo)(mem737f8019) - allocs737f8019 := new(cgoAllocMap) - allocs737f8019.Add(mem737f8019) - - var csType_allocs *cgoAllocMap - ref737f8019.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs737f8019.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref737f8019.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs737f8019.Borrow(cpNext_allocs) - - var crenderPass_allocs *cgoAllocMap - ref737f8019.renderPass, crenderPass_allocs = *(*C.VkRenderPass)(unsafe.Pointer(&x.RenderPass)), cgoAllocsUnknown - allocs737f8019.Borrow(crenderPass_allocs) - - var csubpass_allocs *cgoAllocMap - ref737f8019.subpass, csubpass_allocs = (C.uint32_t)(x.Subpass), cgoAllocsUnknown - allocs737f8019.Borrow(csubpass_allocs) - - var cframebuffer_allocs *cgoAllocMap - ref737f8019.framebuffer, cframebuffer_allocs = *(*C.VkFramebuffer)(unsafe.Pointer(&x.Framebuffer)), cgoAllocsUnknown - allocs737f8019.Borrow(cframebuffer_allocs) + memaf248476 := allocRectLayerMemory(1) + refaf248476 := (*C.VkRectLayerKHR)(memaf248476) + allocsaf248476 := new(cgoAllocMap) + allocsaf248476.Add(memaf248476) - var cocclusionQueryEnable_allocs *cgoAllocMap - ref737f8019.occlusionQueryEnable, cocclusionQueryEnable_allocs = (C.VkBool32)(x.OcclusionQueryEnable), cgoAllocsUnknown - allocs737f8019.Borrow(cocclusionQueryEnable_allocs) + var coffset_allocs *cgoAllocMap + refaf248476.offset, coffset_allocs = x.Offset.PassValue() + allocsaf248476.Borrow(coffset_allocs) - var cqueryFlags_allocs *cgoAllocMap - ref737f8019.queryFlags, cqueryFlags_allocs = (C.VkQueryControlFlags)(x.QueryFlags), cgoAllocsUnknown - allocs737f8019.Borrow(cqueryFlags_allocs) + var cextent_allocs *cgoAllocMap + refaf248476.extent, cextent_allocs = x.Extent.PassValue() + allocsaf248476.Borrow(cextent_allocs) - var cpipelineStatistics_allocs *cgoAllocMap - ref737f8019.pipelineStatistics, cpipelineStatistics_allocs = (C.VkQueryPipelineStatisticFlags)(x.PipelineStatistics), cgoAllocsUnknown - allocs737f8019.Borrow(cpipelineStatistics_allocs) + var clayer_allocs *cgoAllocMap + refaf248476.layer, clayer_allocs = (C.uint32_t)(x.Layer), cgoAllocsUnknown + allocsaf248476.Borrow(clayer_allocs) - x.ref737f8019 = ref737f8019 - x.allocs737f8019 = allocs737f8019 - return ref737f8019, allocs737f8019 + x.refaf248476 = refaf248476 + x.allocsaf248476 = allocsaf248476 + return refaf248476, allocsaf248476 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CommandBufferInheritanceInfo) PassValue() (C.VkCommandBufferInheritanceInfo, *cgoAllocMap) { - if x.ref737f8019 != nil { - return *x.ref737f8019, nil +func (x RectLayer) PassValue() (C.VkRectLayerKHR, *cgoAllocMap) { + if x.refaf248476 != nil { + return *x.refaf248476, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11178,137 +38097,124 @@ func (x CommandBufferInheritanceInfo) PassValue() (C.VkCommandBufferInheritanceI // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CommandBufferInheritanceInfo) Deref() { - if x.ref737f8019 == nil { +func (x *RectLayer) Deref() { + if x.refaf248476 == nil { return } - x.SType = (StructureType)(x.ref737f8019.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref737f8019.pNext)) - x.RenderPass = *(*RenderPass)(unsafe.Pointer(&x.ref737f8019.renderPass)) - x.Subpass = (uint32)(x.ref737f8019.subpass) - x.Framebuffer = *(*Framebuffer)(unsafe.Pointer(&x.ref737f8019.framebuffer)) - x.OcclusionQueryEnable = (Bool32)(x.ref737f8019.occlusionQueryEnable) - x.QueryFlags = (QueryControlFlags)(x.ref737f8019.queryFlags) - x.PipelineStatistics = (QueryPipelineStatisticFlags)(x.ref737f8019.pipelineStatistics) + x.Offset = *NewOffset2DRef(unsafe.Pointer(&x.refaf248476.offset)) + x.Extent = *NewExtent2DRef(unsafe.Pointer(&x.refaf248476.extent)) + x.Layer = (uint32)(x.refaf248476.layer) } -// allocCommandBufferBeginInfoMemory allocates memory for type C.VkCommandBufferBeginInfo in C. +// allocPresentRegionMemory allocates memory for type C.VkPresentRegionKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocCommandBufferBeginInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferBeginInfoValue)) +func allocPresentRegionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentRegionValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfCommandBufferBeginInfoValue = unsafe.Sizeof([1]C.VkCommandBufferBeginInfo{}) +const sizeOfPresentRegionValue = unsafe.Sizeof([1]C.VkPresentRegionKHR{}) -// unpackSCommandBufferInheritanceInfo transforms a sliced Go data structure into plain C format. -func unpackSCommandBufferInheritanceInfo(x []CommandBufferInheritanceInfo) (unpacked *C.VkCommandBufferInheritanceInfo, allocs *cgoAllocMap) { +// unpackSRectLayer transforms a sliced Go data structure into plain C format. +func unpackSRectLayer(x []RectLayer) (unpacked *C.VkRectLayerKHR, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkCommandBufferInheritanceInfo) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkRectLayerKHR) { go allocs.Free() }) len0 := len(x) - mem0 := allocCommandBufferInheritanceInfoMemory(len0) + mem0 := allocRectLayerMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkCommandBufferInheritanceInfo)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkRectLayerKHR)(unsafe.Pointer(h0)) for i0 := range x { allocs0 := new(cgoAllocMap) v0[i0], allocs0 = x[i0].PassValue() allocs.Borrow(allocs0) } h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkCommandBufferInheritanceInfo)(h.Data) + unpacked = (*C.VkRectLayerKHR)(h.Data) return } -// packSCommandBufferInheritanceInfo reads sliced Go data structure out from plain C format. -func packSCommandBufferInheritanceInfo(v []CommandBufferInheritanceInfo, ptr0 *C.VkCommandBufferInheritanceInfo) { +// packSRectLayer reads sliced Go data structure out from plain C format. +func packSRectLayer(v []RectLayer, ptr0 *C.VkRectLayerKHR) { const m = 0x7fffffff for i0 := range v { - ptr1 := (*(*[m / sizeOfCommandBufferInheritanceInfoValue]C.VkCommandBufferInheritanceInfo)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewCommandBufferInheritanceInfoRef(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfRectLayerValue]C.VkRectLayerKHR)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewRectLayerRef(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CommandBufferBeginInfo) Ref() *C.VkCommandBufferBeginInfo { +func (x *PresentRegion) Ref() *C.VkPresentRegionKHR { if x == nil { return nil } - return x.ref266762df + return x.refbbc0d1b9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CommandBufferBeginInfo) Free() { - if x != nil && x.allocs266762df != nil { - x.allocs266762df.(*cgoAllocMap).Free() - x.ref266762df = nil +func (x *PresentRegion) Free() { + if x != nil && x.allocsbbc0d1b9 != nil { + x.allocsbbc0d1b9.(*cgoAllocMap).Free() + x.refbbc0d1b9 = nil } } -// NewCommandBufferBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPresentRegionRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCommandBufferBeginInfoRef(ref unsafe.Pointer) *CommandBufferBeginInfo { +func NewPresentRegionRef(ref unsafe.Pointer) *PresentRegion { if ref == nil { return nil } - obj := new(CommandBufferBeginInfo) - obj.ref266762df = (*C.VkCommandBufferBeginInfo)(unsafe.Pointer(ref)) + obj := new(PresentRegion) + obj.refbbc0d1b9 = (*C.VkPresentRegionKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CommandBufferBeginInfo) PassRef() (*C.VkCommandBufferBeginInfo, *cgoAllocMap) { +func (x *PresentRegion) PassRef() (*C.VkPresentRegionKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref266762df != nil { - return x.ref266762df, nil + } else if x.refbbc0d1b9 != nil { + return x.refbbc0d1b9, nil } - mem266762df := allocCommandBufferBeginInfoMemory(1) - ref266762df := (*C.VkCommandBufferBeginInfo)(mem266762df) - allocs266762df := new(cgoAllocMap) - allocs266762df.Add(mem266762df) - - var csType_allocs *cgoAllocMap - ref266762df.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs266762df.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref266762df.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs266762df.Borrow(cpNext_allocs) + membbc0d1b9 := allocPresentRegionMemory(1) + refbbc0d1b9 := (*C.VkPresentRegionKHR)(membbc0d1b9) + allocsbbc0d1b9 := new(cgoAllocMap) + allocsbbc0d1b9.Add(membbc0d1b9) - var cflags_allocs *cgoAllocMap - ref266762df.flags, cflags_allocs = (C.VkCommandBufferUsageFlags)(x.Flags), cgoAllocsUnknown - allocs266762df.Borrow(cflags_allocs) + var crectangleCount_allocs *cgoAllocMap + refbbc0d1b9.rectangleCount, crectangleCount_allocs = (C.uint32_t)(x.RectangleCount), cgoAllocsUnknown + allocsbbc0d1b9.Borrow(crectangleCount_allocs) - var cpInheritanceInfo_allocs *cgoAllocMap - ref266762df.pInheritanceInfo, cpInheritanceInfo_allocs = unpackSCommandBufferInheritanceInfo(x.PInheritanceInfo) - allocs266762df.Borrow(cpInheritanceInfo_allocs) + var cpRectangles_allocs *cgoAllocMap + refbbc0d1b9.pRectangles, cpRectangles_allocs = unpackSRectLayer(x.PRectangles) + allocsbbc0d1b9.Borrow(cpRectangles_allocs) - x.ref266762df = ref266762df - x.allocs266762df = allocs266762df - return ref266762df, allocs266762df + x.refbbc0d1b9 = refbbc0d1b9 + x.allocsbbc0d1b9 = allocsbbc0d1b9 + return refbbc0d1b9, allocsbbc0d1b9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CommandBufferBeginInfo) PassValue() (C.VkCommandBufferBeginInfo, *cgoAllocMap) { - if x.ref266762df != nil { - return *x.ref266762df, nil +func (x PresentRegion) PassValue() (C.VkPresentRegionKHR, *cgoAllocMap) { + if x.refbbc0d1b9 != nil { + return *x.refbbc0d1b9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11316,91 +38222,131 @@ func (x CommandBufferBeginInfo) PassValue() (C.VkCommandBufferBeginInfo, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CommandBufferBeginInfo) Deref() { - if x.ref266762df == nil { +func (x *PresentRegion) Deref() { + if x.refbbc0d1b9 == nil { return } - x.SType = (StructureType)(x.ref266762df.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref266762df.pNext)) - x.Flags = (CommandBufferUsageFlags)(x.ref266762df.flags) - packSCommandBufferInheritanceInfo(x.PInheritanceInfo, x.ref266762df.pInheritanceInfo) + x.RectangleCount = (uint32)(x.refbbc0d1b9.rectangleCount) + packSRectLayer(x.PRectangles, x.refbbc0d1b9.pRectangles) } -// allocBufferCopyMemory allocates memory for type C.VkBufferCopy in C. +// allocPresentRegionsMemory allocates memory for type C.VkPresentRegionsKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocBufferCopyMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferCopyValue)) +func allocPresentRegionsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentRegionsValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBufferCopyValue = unsafe.Sizeof([1]C.VkBufferCopy{}) +const sizeOfPresentRegionsValue = unsafe.Sizeof([1]C.VkPresentRegionsKHR{}) + +// unpackSPresentRegion transforms a sliced Go data structure into plain C format. +func unpackSPresentRegion(x []PresentRegion) (unpacked *C.VkPresentRegionKHR, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkPresentRegionKHR) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocPresentRegionMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkPresentRegionKHR)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkPresentRegionKHR)(h.Data) + return +} + +// packSPresentRegion reads sliced Go data structure out from plain C format. +func packSPresentRegion(v []PresentRegion, ptr0 *C.VkPresentRegionKHR) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfPresentRegionValue]C.VkPresentRegionKHR)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewPresentRegionRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferCopy) Ref() *C.VkBufferCopy { +func (x *PresentRegions) Ref() *C.VkPresentRegionsKHR { if x == nil { return nil } - return x.ref12184ffd + return x.ref62958060 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BufferCopy) Free() { - if x != nil && x.allocs12184ffd != nil { - x.allocs12184ffd.(*cgoAllocMap).Free() - x.ref12184ffd = nil +func (x *PresentRegions) Free() { + if x != nil && x.allocs62958060 != nil { + x.allocs62958060.(*cgoAllocMap).Free() + x.ref62958060 = nil } } -// NewBufferCopyRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPresentRegionsRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBufferCopyRef(ref unsafe.Pointer) *BufferCopy { +func NewPresentRegionsRef(ref unsafe.Pointer) *PresentRegions { if ref == nil { return nil } - obj := new(BufferCopy) - obj.ref12184ffd = (*C.VkBufferCopy)(unsafe.Pointer(ref)) + obj := new(PresentRegions) + obj.ref62958060 = (*C.VkPresentRegionsKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BufferCopy) PassRef() (*C.VkBufferCopy, *cgoAllocMap) { +func (x *PresentRegions) PassRef() (*C.VkPresentRegionsKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref12184ffd != nil { - return x.ref12184ffd, nil + } else if x.ref62958060 != nil { + return x.ref62958060, nil } - mem12184ffd := allocBufferCopyMemory(1) - ref12184ffd := (*C.VkBufferCopy)(mem12184ffd) - allocs12184ffd := new(cgoAllocMap) - allocs12184ffd.Add(mem12184ffd) + mem62958060 := allocPresentRegionsMemory(1) + ref62958060 := (*C.VkPresentRegionsKHR)(mem62958060) + allocs62958060 := new(cgoAllocMap) + allocs62958060.Add(mem62958060) - var csrcOffset_allocs *cgoAllocMap - ref12184ffd.srcOffset, csrcOffset_allocs = (C.VkDeviceSize)(x.SrcOffset), cgoAllocsUnknown - allocs12184ffd.Borrow(csrcOffset_allocs) + var csType_allocs *cgoAllocMap + ref62958060.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs62958060.Borrow(csType_allocs) - var cdstOffset_allocs *cgoAllocMap - ref12184ffd.dstOffset, cdstOffset_allocs = (C.VkDeviceSize)(x.DstOffset), cgoAllocsUnknown - allocs12184ffd.Borrow(cdstOffset_allocs) + var cpNext_allocs *cgoAllocMap + ref62958060.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs62958060.Borrow(cpNext_allocs) - var csize_allocs *cgoAllocMap - ref12184ffd.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocs12184ffd.Borrow(csize_allocs) + var cswapchainCount_allocs *cgoAllocMap + ref62958060.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs62958060.Borrow(cswapchainCount_allocs) - x.ref12184ffd = ref12184ffd - x.allocs12184ffd = allocs12184ffd - return ref12184ffd, allocs12184ffd + var cpRegions_allocs *cgoAllocMap + ref62958060.pRegions, cpRegions_allocs = unpackSPresentRegion(x.PRegions) + allocs62958060.Borrow(cpRegions_allocs) + + x.ref62958060 = ref62958060 + x.allocs62958060 = allocs62958060 + return ref62958060, allocs62958060 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BufferCopy) PassValue() (C.VkBufferCopy, *cgoAllocMap) { - if x.ref12184ffd != nil { - return *x.ref12184ffd, nil +func (x PresentRegions) PassValue() (C.VkPresentRegionsKHR, *cgoAllocMap) { + if x.ref62958060 != nil { + return *x.ref62958060, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11408,94 +38354,91 @@ func (x BufferCopy) PassValue() (C.VkBufferCopy, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BufferCopy) Deref() { - if x.ref12184ffd == nil { +func (x *PresentRegions) Deref() { + if x.ref62958060 == nil { return } - x.SrcOffset = (DeviceSize)(x.ref12184ffd.srcOffset) - x.DstOffset = (DeviceSize)(x.ref12184ffd.dstOffset) - x.Size = (DeviceSize)(x.ref12184ffd.size) + x.SType = (StructureType)(x.ref62958060.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref62958060.pNext)) + x.SwapchainCount = (uint32)(x.ref62958060.swapchainCount) + packSPresentRegion(x.PRegions, x.ref62958060.pRegions) } -// allocImageSubresourceLayersMemory allocates memory for type C.VkImageSubresourceLayers in C. +// allocSharedPresentSurfaceCapabilitiesMemory allocates memory for type C.VkSharedPresentSurfaceCapabilitiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageSubresourceLayersMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSubresourceLayersValue)) +func allocSharedPresentSurfaceCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSharedPresentSurfaceCapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageSubresourceLayersValue = unsafe.Sizeof([1]C.VkImageSubresourceLayers{}) +const sizeOfSharedPresentSurfaceCapabilitiesValue = unsafe.Sizeof([1]C.VkSharedPresentSurfaceCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageSubresourceLayers) Ref() *C.VkImageSubresourceLayers { +func (x *SharedPresentSurfaceCapabilities) Ref() *C.VkSharedPresentSurfaceCapabilitiesKHR { if x == nil { return nil } - return x.ref3b13bcd2 + return x.ref3f98a814 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageSubresourceLayers) Free() { - if x != nil && x.allocs3b13bcd2 != nil { - x.allocs3b13bcd2.(*cgoAllocMap).Free() - x.ref3b13bcd2 = nil +func (x *SharedPresentSurfaceCapabilities) Free() { + if x != nil && x.allocs3f98a814 != nil { + x.allocs3f98a814.(*cgoAllocMap).Free() + x.ref3f98a814 = nil } } -// NewImageSubresourceLayersRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSharedPresentSurfaceCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageSubresourceLayersRef(ref unsafe.Pointer) *ImageSubresourceLayers { +func NewSharedPresentSurfaceCapabilitiesRef(ref unsafe.Pointer) *SharedPresentSurfaceCapabilities { if ref == nil { return nil } - obj := new(ImageSubresourceLayers) - obj.ref3b13bcd2 = (*C.VkImageSubresourceLayers)(unsafe.Pointer(ref)) + obj := new(SharedPresentSurfaceCapabilities) + obj.ref3f98a814 = (*C.VkSharedPresentSurfaceCapabilitiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageSubresourceLayers) PassRef() (*C.VkImageSubresourceLayers, *cgoAllocMap) { +func (x *SharedPresentSurfaceCapabilities) PassRef() (*C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3b13bcd2 != nil { - return x.ref3b13bcd2, nil + } else if x.ref3f98a814 != nil { + return x.ref3f98a814, nil } - mem3b13bcd2 := allocImageSubresourceLayersMemory(1) - ref3b13bcd2 := (*C.VkImageSubresourceLayers)(mem3b13bcd2) - allocs3b13bcd2 := new(cgoAllocMap) - allocs3b13bcd2.Add(mem3b13bcd2) - - var caspectMask_allocs *cgoAllocMap - ref3b13bcd2.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocs3b13bcd2.Borrow(caspectMask_allocs) + mem3f98a814 := allocSharedPresentSurfaceCapabilitiesMemory(1) + ref3f98a814 := (*C.VkSharedPresentSurfaceCapabilitiesKHR)(mem3f98a814) + allocs3f98a814 := new(cgoAllocMap) + allocs3f98a814.Add(mem3f98a814) - var cmipLevel_allocs *cgoAllocMap - ref3b13bcd2.mipLevel, cmipLevel_allocs = (C.uint32_t)(x.MipLevel), cgoAllocsUnknown - allocs3b13bcd2.Borrow(cmipLevel_allocs) + var csType_allocs *cgoAllocMap + ref3f98a814.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3f98a814.Borrow(csType_allocs) - var cbaseArrayLayer_allocs *cgoAllocMap - ref3b13bcd2.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown - allocs3b13bcd2.Borrow(cbaseArrayLayer_allocs) + var cpNext_allocs *cgoAllocMap + ref3f98a814.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3f98a814.Borrow(cpNext_allocs) - var clayerCount_allocs *cgoAllocMap - ref3b13bcd2.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown - allocs3b13bcd2.Borrow(clayerCount_allocs) + var csharedPresentSupportedUsageFlags_allocs *cgoAllocMap + ref3f98a814.sharedPresentSupportedUsageFlags, csharedPresentSupportedUsageFlags_allocs = (C.VkImageUsageFlags)(x.SharedPresentSupportedUsageFlags), cgoAllocsUnknown + allocs3f98a814.Borrow(csharedPresentSupportedUsageFlags_allocs) - x.ref3b13bcd2 = ref3b13bcd2 - x.allocs3b13bcd2 = allocs3b13bcd2 - return ref3b13bcd2, allocs3b13bcd2 + x.ref3f98a814 = ref3f98a814 + x.allocs3f98a814 = allocs3f98a814 + return ref3f98a814, allocs3f98a814 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageSubresourceLayers) PassValue() (C.VkImageSubresourceLayers, *cgoAllocMap) { - if x.ref3b13bcd2 != nil { - return *x.ref3b13bcd2, nil +func (x SharedPresentSurfaceCapabilities) PassValue() (C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { + if x.ref3f98a814 != nil { + return *x.ref3f98a814, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11503,99 +38446,102 @@ func (x ImageSubresourceLayers) PassValue() (C.VkImageSubresourceLayers, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageSubresourceLayers) Deref() { - if x.ref3b13bcd2 == nil { +func (x *SharedPresentSurfaceCapabilities) Deref() { + if x.ref3f98a814 == nil { return } - x.AspectMask = (ImageAspectFlags)(x.ref3b13bcd2.aspectMask) - x.MipLevel = (uint32)(x.ref3b13bcd2.mipLevel) - x.BaseArrayLayer = (uint32)(x.ref3b13bcd2.baseArrayLayer) - x.LayerCount = (uint32)(x.ref3b13bcd2.layerCount) + x.SType = (StructureType)(x.ref3f98a814.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3f98a814.pNext)) + x.SharedPresentSupportedUsageFlags = (ImageUsageFlags)(x.ref3f98a814.sharedPresentSupportedUsageFlags) } -// allocImageCopyMemory allocates memory for type C.VkImageCopy in C. +// allocImportFenceFdInfoMemory allocates memory for type C.VkImportFenceFdInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageCopyMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageCopyValue)) +func allocImportFenceFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportFenceFdInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageCopyValue = unsafe.Sizeof([1]C.VkImageCopy{}) +const sizeOfImportFenceFdInfoValue = unsafe.Sizeof([1]C.VkImportFenceFdInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageCopy) Ref() *C.VkImageCopy { +func (x *ImportFenceFdInfo) Ref() *C.VkImportFenceFdInfoKHR { if x == nil { return nil } - return x.ref4e7a1214 + return x.ref86ebd28c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageCopy) Free() { - if x != nil && x.allocs4e7a1214 != nil { - x.allocs4e7a1214.(*cgoAllocMap).Free() - x.ref4e7a1214 = nil +func (x *ImportFenceFdInfo) Free() { + if x != nil && x.allocs86ebd28c != nil { + x.allocs86ebd28c.(*cgoAllocMap).Free() + x.ref86ebd28c = nil } } -// NewImageCopyRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImportFenceFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageCopyRef(ref unsafe.Pointer) *ImageCopy { +func NewImportFenceFdInfoRef(ref unsafe.Pointer) *ImportFenceFdInfo { if ref == nil { return nil } - obj := new(ImageCopy) - obj.ref4e7a1214 = (*C.VkImageCopy)(unsafe.Pointer(ref)) + obj := new(ImportFenceFdInfo) + obj.ref86ebd28c = (*C.VkImportFenceFdInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageCopy) PassRef() (*C.VkImageCopy, *cgoAllocMap) { +func (x *ImportFenceFdInfo) PassRef() (*C.VkImportFenceFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4e7a1214 != nil { - return x.ref4e7a1214, nil + } else if x.ref86ebd28c != nil { + return x.ref86ebd28c, nil } - mem4e7a1214 := allocImageCopyMemory(1) - ref4e7a1214 := (*C.VkImageCopy)(mem4e7a1214) - allocs4e7a1214 := new(cgoAllocMap) - allocs4e7a1214.Add(mem4e7a1214) + mem86ebd28c := allocImportFenceFdInfoMemory(1) + ref86ebd28c := (*C.VkImportFenceFdInfoKHR)(mem86ebd28c) + allocs86ebd28c := new(cgoAllocMap) + allocs86ebd28c.Add(mem86ebd28c) - var csrcSubresource_allocs *cgoAllocMap - ref4e7a1214.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() - allocs4e7a1214.Borrow(csrcSubresource_allocs) + var csType_allocs *cgoAllocMap + ref86ebd28c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs86ebd28c.Borrow(csType_allocs) - var csrcOffset_allocs *cgoAllocMap - ref4e7a1214.srcOffset, csrcOffset_allocs = x.SrcOffset.PassValue() - allocs4e7a1214.Borrow(csrcOffset_allocs) + var cpNext_allocs *cgoAllocMap + ref86ebd28c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs86ebd28c.Borrow(cpNext_allocs) - var cdstSubresource_allocs *cgoAllocMap - ref4e7a1214.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() - allocs4e7a1214.Borrow(cdstSubresource_allocs) + var cfence_allocs *cgoAllocMap + ref86ebd28c.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown + allocs86ebd28c.Borrow(cfence_allocs) - var cdstOffset_allocs *cgoAllocMap - ref4e7a1214.dstOffset, cdstOffset_allocs = x.DstOffset.PassValue() - allocs4e7a1214.Borrow(cdstOffset_allocs) + var cflags_allocs *cgoAllocMap + ref86ebd28c.flags, cflags_allocs = (C.VkFenceImportFlags)(x.Flags), cgoAllocsUnknown + allocs86ebd28c.Borrow(cflags_allocs) - var cextent_allocs *cgoAllocMap - ref4e7a1214.extent, cextent_allocs = x.Extent.PassValue() - allocs4e7a1214.Borrow(cextent_allocs) + var chandleType_allocs *cgoAllocMap + ref86ebd28c.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocs86ebd28c.Borrow(chandleType_allocs) - x.ref4e7a1214 = ref4e7a1214 - x.allocs4e7a1214 = allocs4e7a1214 - return ref4e7a1214, allocs4e7a1214 + var cfd_allocs *cgoAllocMap + ref86ebd28c.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown + allocs86ebd28c.Borrow(cfd_allocs) + + x.ref86ebd28c = ref86ebd28c + x.allocs86ebd28c = allocs86ebd28c + return ref86ebd28c, allocs86ebd28c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageCopy) PassValue() (C.VkImageCopy, *cgoAllocMap) { - if x.ref4e7a1214 != nil { - return *x.ref4e7a1214, nil +func (x ImportFenceFdInfo) PassValue() (C.VkImportFenceFdInfoKHR, *cgoAllocMap) { + if x.ref86ebd28c != nil { + return *x.ref86ebd28c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11603,135 +38549,97 @@ func (x ImageCopy) PassValue() (C.VkImageCopy, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageCopy) Deref() { - if x.ref4e7a1214 == nil { +func (x *ImportFenceFdInfo) Deref() { + if x.ref86ebd28c == nil { return } - x.SrcSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref4e7a1214.srcSubresource)) - x.SrcOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref4e7a1214.srcOffset)) - x.DstSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref4e7a1214.dstSubresource)) - x.DstOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref4e7a1214.dstOffset)) - x.Extent = *NewExtent3DRef(unsafe.Pointer(&x.ref4e7a1214.extent)) -} - -// allocImageBlitMemory allocates memory for type C.VkImageBlit in C. -// The caller is responsible for freeing the this memory via C.free. -func allocImageBlitMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageBlitValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem + x.SType = (StructureType)(x.ref86ebd28c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86ebd28c.pNext)) + x.Fence = *(*Fence)(unsafe.Pointer(&x.ref86ebd28c.fence)) + x.Flags = (FenceImportFlags)(x.ref86ebd28c.flags) + x.HandleType = (ExternalFenceHandleTypeFlagBits)(x.ref86ebd28c.handleType) + x.Fd = (int32)(x.ref86ebd28c.fd) } -const sizeOfImageBlitValue = unsafe.Sizeof([1]C.VkImageBlit{}) - -// allocA2Offset3DMemory allocates memory for type [2]C.VkOffset3D in C. +// allocFenceGetFdInfoMemory allocates memory for type C.VkFenceGetFdInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocA2Offset3DMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfA2Offset3DValue)) +func allocFenceGetFdInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFenceGetFdInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfA2Offset3DValue = unsafe.Sizeof([1][2]C.VkOffset3D{}) - -// unpackA2Offset3D transforms a sliced Go data structure into plain C format. -func unpackA2Offset3D(x [2]Offset3D) (unpacked [2]C.VkOffset3D, allocs *cgoAllocMap) { - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(*[2]C.VkOffset3D) { - go allocs.Free() - }) - - mem0 := allocA2Offset3DMemory(1) - allocs.Add(mem0) - v0 := (*[2]C.VkOffset3D)(mem0) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - unpacked = *(*[2]C.VkOffset3D)(mem0) - return -} - -// packA2Offset3D reads sliced Go data structure out from plain C format. -func packA2Offset3D(v *[2]Offset3D, ptr0 *[2]C.VkOffset3D) { - for i0 := range v { - ptr1 := ptr0[i0] - v[i0] = *NewOffset3DRef(unsafe.Pointer(&ptr1)) - } -} - +const sizeOfFenceGetFdInfoValue = unsafe.Sizeof([1]C.VkFenceGetFdInfoKHR{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageBlit) Ref() *C.VkImageBlit { +func (x *FenceGetFdInfo) Ref() *C.VkFenceGetFdInfoKHR { if x == nil { return nil } - return x.ref11311e8d + return x.refc2668bc3 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageBlit) Free() { - if x != nil && x.allocs11311e8d != nil { - x.allocs11311e8d.(*cgoAllocMap).Free() - x.ref11311e8d = nil +func (x *FenceGetFdInfo) Free() { + if x != nil && x.allocsc2668bc3 != nil { + x.allocsc2668bc3.(*cgoAllocMap).Free() + x.refc2668bc3 = nil } } -// NewImageBlitRef creates a new wrapper struct with underlying reference set to the original C object. +// NewFenceGetFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageBlitRef(ref unsafe.Pointer) *ImageBlit { +func NewFenceGetFdInfoRef(ref unsafe.Pointer) *FenceGetFdInfo { if ref == nil { return nil } - obj := new(ImageBlit) - obj.ref11311e8d = (*C.VkImageBlit)(unsafe.Pointer(ref)) + obj := new(FenceGetFdInfo) + obj.refc2668bc3 = (*C.VkFenceGetFdInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageBlit) PassRef() (*C.VkImageBlit, *cgoAllocMap) { +func (x *FenceGetFdInfo) PassRef() (*C.VkFenceGetFdInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref11311e8d != nil { - return x.ref11311e8d, nil + } else if x.refc2668bc3 != nil { + return x.refc2668bc3, nil } - mem11311e8d := allocImageBlitMemory(1) - ref11311e8d := (*C.VkImageBlit)(mem11311e8d) - allocs11311e8d := new(cgoAllocMap) - allocs11311e8d.Add(mem11311e8d) + memc2668bc3 := allocFenceGetFdInfoMemory(1) + refc2668bc3 := (*C.VkFenceGetFdInfoKHR)(memc2668bc3) + allocsc2668bc3 := new(cgoAllocMap) + allocsc2668bc3.Add(memc2668bc3) - var csrcSubresource_allocs *cgoAllocMap - ref11311e8d.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() - allocs11311e8d.Borrow(csrcSubresource_allocs) + var csType_allocs *cgoAllocMap + refc2668bc3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc2668bc3.Borrow(csType_allocs) - var csrcOffsets_allocs *cgoAllocMap - ref11311e8d.srcOffsets, csrcOffsets_allocs = unpackA2Offset3D(x.SrcOffsets) - allocs11311e8d.Borrow(csrcOffsets_allocs) + var cpNext_allocs *cgoAllocMap + refc2668bc3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc2668bc3.Borrow(cpNext_allocs) - var cdstSubresource_allocs *cgoAllocMap - ref11311e8d.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() - allocs11311e8d.Borrow(cdstSubresource_allocs) + var cfence_allocs *cgoAllocMap + refc2668bc3.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown + allocsc2668bc3.Borrow(cfence_allocs) - var cdstOffsets_allocs *cgoAllocMap - ref11311e8d.dstOffsets, cdstOffsets_allocs = unpackA2Offset3D(x.DstOffsets) - allocs11311e8d.Borrow(cdstOffsets_allocs) + var chandleType_allocs *cgoAllocMap + refc2668bc3.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsc2668bc3.Borrow(chandleType_allocs) - x.ref11311e8d = ref11311e8d - x.allocs11311e8d = allocs11311e8d - return ref11311e8d, allocs11311e8d + x.refc2668bc3 = refc2668bc3 + x.allocsc2668bc3 = allocsc2668bc3 + return refc2668bc3, allocsc2668bc3 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageBlit) PassValue() (C.VkImageBlit, *cgoAllocMap) { - if x.ref11311e8d != nil { - return *x.ref11311e8d, nil +func (x FenceGetFdInfo) PassValue() (C.VkFenceGetFdInfoKHR, *cgoAllocMap) { + if x.refc2668bc3 != nil { + return *x.refc2668bc3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11739,103 +38647,95 @@ func (x ImageBlit) PassValue() (C.VkImageBlit, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageBlit) Deref() { - if x.ref11311e8d == nil { +func (x *FenceGetFdInfo) Deref() { + if x.refc2668bc3 == nil { return } - x.SrcSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref11311e8d.srcSubresource)) - packA2Offset3D(&x.SrcOffsets, (*[2]C.VkOffset3D)(unsafe.Pointer(&x.ref11311e8d.srcOffsets))) - x.DstSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref11311e8d.dstSubresource)) - packA2Offset3D(&x.DstOffsets, (*[2]C.VkOffset3D)(unsafe.Pointer(&x.ref11311e8d.dstOffsets))) + x.SType = (StructureType)(x.refc2668bc3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc2668bc3.pNext)) + x.Fence = *(*Fence)(unsafe.Pointer(&x.refc2668bc3.fence)) + x.HandleType = (ExternalFenceHandleTypeFlagBits)(x.refc2668bc3.handleType) } -// allocBufferImageCopyMemory allocates memory for type C.VkBufferImageCopy in C. +// allocPhysicalDevicePerformanceQueryFeaturesMemory allocates memory for type C.VkPhysicalDevicePerformanceQueryFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocBufferImageCopyMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferImageCopyValue)) +func allocPhysicalDevicePerformanceQueryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePerformanceQueryFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBufferImageCopyValue = unsafe.Sizeof([1]C.VkBufferImageCopy{}) +const sizeOfPhysicalDevicePerformanceQueryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePerformanceQueryFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferImageCopy) Ref() *C.VkBufferImageCopy { +func (x *PhysicalDevicePerformanceQueryFeatures) Ref() *C.VkPhysicalDevicePerformanceQueryFeaturesKHR { if x == nil { return nil } - return x.ref6d50e36e + return x.ref8e4527cb } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BufferImageCopy) Free() { - if x != nil && x.allocs6d50e36e != nil { - x.allocs6d50e36e.(*cgoAllocMap).Free() - x.ref6d50e36e = nil +func (x *PhysicalDevicePerformanceQueryFeatures) Free() { + if x != nil && x.allocs8e4527cb != nil { + x.allocs8e4527cb.(*cgoAllocMap).Free() + x.ref8e4527cb = nil } } -// NewBufferImageCopyRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePerformanceQueryFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBufferImageCopyRef(ref unsafe.Pointer) *BufferImageCopy { +func NewPhysicalDevicePerformanceQueryFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePerformanceQueryFeatures { if ref == nil { return nil } - obj := new(BufferImageCopy) - obj.ref6d50e36e = (*C.VkBufferImageCopy)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePerformanceQueryFeatures) + obj.ref8e4527cb = (*C.VkPhysicalDevicePerformanceQueryFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BufferImageCopy) PassRef() (*C.VkBufferImageCopy, *cgoAllocMap) { +func (x *PhysicalDevicePerformanceQueryFeatures) PassRef() (*C.VkPhysicalDevicePerformanceQueryFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6d50e36e != nil { - return x.ref6d50e36e, nil + } else if x.ref8e4527cb != nil { + return x.ref8e4527cb, nil } - mem6d50e36e := allocBufferImageCopyMemory(1) - ref6d50e36e := (*C.VkBufferImageCopy)(mem6d50e36e) - allocs6d50e36e := new(cgoAllocMap) - allocs6d50e36e.Add(mem6d50e36e) - - var cbufferOffset_allocs *cgoAllocMap - ref6d50e36e.bufferOffset, cbufferOffset_allocs = (C.VkDeviceSize)(x.BufferOffset), cgoAllocsUnknown - allocs6d50e36e.Borrow(cbufferOffset_allocs) - - var cbufferRowLength_allocs *cgoAllocMap - ref6d50e36e.bufferRowLength, cbufferRowLength_allocs = (C.uint32_t)(x.BufferRowLength), cgoAllocsUnknown - allocs6d50e36e.Borrow(cbufferRowLength_allocs) + mem8e4527cb := allocPhysicalDevicePerformanceQueryFeaturesMemory(1) + ref8e4527cb := (*C.VkPhysicalDevicePerformanceQueryFeaturesKHR)(mem8e4527cb) + allocs8e4527cb := new(cgoAllocMap) + allocs8e4527cb.Add(mem8e4527cb) - var cbufferImageHeight_allocs *cgoAllocMap - ref6d50e36e.bufferImageHeight, cbufferImageHeight_allocs = (C.uint32_t)(x.BufferImageHeight), cgoAllocsUnknown - allocs6d50e36e.Borrow(cbufferImageHeight_allocs) + var csType_allocs *cgoAllocMap + ref8e4527cb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8e4527cb.Borrow(csType_allocs) - var cimageSubresource_allocs *cgoAllocMap - ref6d50e36e.imageSubresource, cimageSubresource_allocs = x.ImageSubresource.PassValue() - allocs6d50e36e.Borrow(cimageSubresource_allocs) + var cpNext_allocs *cgoAllocMap + ref8e4527cb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8e4527cb.Borrow(cpNext_allocs) - var cimageOffset_allocs *cgoAllocMap - ref6d50e36e.imageOffset, cimageOffset_allocs = x.ImageOffset.PassValue() - allocs6d50e36e.Borrow(cimageOffset_allocs) + var cperformanceCounterQueryPools_allocs *cgoAllocMap + ref8e4527cb.performanceCounterQueryPools, cperformanceCounterQueryPools_allocs = (C.VkBool32)(x.PerformanceCounterQueryPools), cgoAllocsUnknown + allocs8e4527cb.Borrow(cperformanceCounterQueryPools_allocs) - var cimageExtent_allocs *cgoAllocMap - ref6d50e36e.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() - allocs6d50e36e.Borrow(cimageExtent_allocs) + var cperformanceCounterMultipleQueryPools_allocs *cgoAllocMap + ref8e4527cb.performanceCounterMultipleQueryPools, cperformanceCounterMultipleQueryPools_allocs = (C.VkBool32)(x.PerformanceCounterMultipleQueryPools), cgoAllocsUnknown + allocs8e4527cb.Borrow(cperformanceCounterMultipleQueryPools_allocs) - x.ref6d50e36e = ref6d50e36e - x.allocs6d50e36e = allocs6d50e36e - return ref6d50e36e, allocs6d50e36e + x.ref8e4527cb = ref8e4527cb + x.allocs8e4527cb = allocs8e4527cb + return ref8e4527cb, allocs8e4527cb } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BufferImageCopy) PassValue() (C.VkBufferImageCopy, *cgoAllocMap) { - if x.ref6d50e36e != nil { - return *x.ref6d50e36e, nil +func (x PhysicalDevicePerformanceQueryFeatures) PassValue() (C.VkPhysicalDevicePerformanceQueryFeaturesKHR, *cgoAllocMap) { + if x.ref8e4527cb != nil { + return *x.ref8e4527cb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11843,89 +38743,91 @@ func (x BufferImageCopy) PassValue() (C.VkBufferImageCopy, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BufferImageCopy) Deref() { - if x.ref6d50e36e == nil { +func (x *PhysicalDevicePerformanceQueryFeatures) Deref() { + if x.ref8e4527cb == nil { return } - x.BufferOffset = (DeviceSize)(x.ref6d50e36e.bufferOffset) - x.BufferRowLength = (uint32)(x.ref6d50e36e.bufferRowLength) - x.BufferImageHeight = (uint32)(x.ref6d50e36e.bufferImageHeight) - x.ImageSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref6d50e36e.imageSubresource)) - x.ImageOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref6d50e36e.imageOffset)) - x.ImageExtent = *NewExtent3DRef(unsafe.Pointer(&x.ref6d50e36e.imageExtent)) + x.SType = (StructureType)(x.ref8e4527cb.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8e4527cb.pNext)) + x.PerformanceCounterQueryPools = (Bool32)(x.ref8e4527cb.performanceCounterQueryPools) + x.PerformanceCounterMultipleQueryPools = (Bool32)(x.ref8e4527cb.performanceCounterMultipleQueryPools) } -// allocClearDepthStencilValueMemory allocates memory for type C.VkClearDepthStencilValue in C. +// allocPhysicalDevicePerformanceQueryPropertiesMemory allocates memory for type C.VkPhysicalDevicePerformanceQueryPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocClearDepthStencilValueMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfClearDepthStencilValueValue)) +func allocPhysicalDevicePerformanceQueryPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePerformanceQueryPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfClearDepthStencilValueValue = unsafe.Sizeof([1]C.VkClearDepthStencilValue{}) +const sizeOfPhysicalDevicePerformanceQueryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePerformanceQueryPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ClearDepthStencilValue) Ref() *C.VkClearDepthStencilValue { +func (x *PhysicalDevicePerformanceQueryProperties) Ref() *C.VkPhysicalDevicePerformanceQueryPropertiesKHR { if x == nil { return nil } - return x.refa7d07c03 + return x.refc3efa645 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ClearDepthStencilValue) Free() { - if x != nil && x.allocsa7d07c03 != nil { - x.allocsa7d07c03.(*cgoAllocMap).Free() - x.refa7d07c03 = nil +func (x *PhysicalDevicePerformanceQueryProperties) Free() { + if x != nil && x.allocsc3efa645 != nil { + x.allocsc3efa645.(*cgoAllocMap).Free() + x.refc3efa645 = nil } } -// NewClearDepthStencilValueRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePerformanceQueryPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewClearDepthStencilValueRef(ref unsafe.Pointer) *ClearDepthStencilValue { +func NewPhysicalDevicePerformanceQueryPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePerformanceQueryProperties { if ref == nil { return nil } - obj := new(ClearDepthStencilValue) - obj.refa7d07c03 = (*C.VkClearDepthStencilValue)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePerformanceQueryProperties) + obj.refc3efa645 = (*C.VkPhysicalDevicePerformanceQueryPropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ClearDepthStencilValue) PassRef() (*C.VkClearDepthStencilValue, *cgoAllocMap) { +func (x *PhysicalDevicePerformanceQueryProperties) PassRef() (*C.VkPhysicalDevicePerformanceQueryPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa7d07c03 != nil { - return x.refa7d07c03, nil + } else if x.refc3efa645 != nil { + return x.refc3efa645, nil } - mema7d07c03 := allocClearDepthStencilValueMemory(1) - refa7d07c03 := (*C.VkClearDepthStencilValue)(mema7d07c03) - allocsa7d07c03 := new(cgoAllocMap) - allocsa7d07c03.Add(mema7d07c03) + memc3efa645 := allocPhysicalDevicePerformanceQueryPropertiesMemory(1) + refc3efa645 := (*C.VkPhysicalDevicePerformanceQueryPropertiesKHR)(memc3efa645) + allocsc3efa645 := new(cgoAllocMap) + allocsc3efa645.Add(memc3efa645) - var cdepth_allocs *cgoAllocMap - refa7d07c03.depth, cdepth_allocs = (C.float)(x.Depth), cgoAllocsUnknown - allocsa7d07c03.Borrow(cdepth_allocs) + var csType_allocs *cgoAllocMap + refc3efa645.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc3efa645.Borrow(csType_allocs) - var cstencil_allocs *cgoAllocMap - refa7d07c03.stencil, cstencil_allocs = (C.uint32_t)(x.Stencil), cgoAllocsUnknown - allocsa7d07c03.Borrow(cstencil_allocs) + var cpNext_allocs *cgoAllocMap + refc3efa645.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc3efa645.Borrow(cpNext_allocs) - x.refa7d07c03 = refa7d07c03 - x.allocsa7d07c03 = allocsa7d07c03 - return refa7d07c03, allocsa7d07c03 + var callowCommandBufferQueryCopies_allocs *cgoAllocMap + refc3efa645.allowCommandBufferQueryCopies, callowCommandBufferQueryCopies_allocs = (C.VkBool32)(x.AllowCommandBufferQueryCopies), cgoAllocsUnknown + allocsc3efa645.Borrow(callowCommandBufferQueryCopies_allocs) + + x.refc3efa645 = refc3efa645 + x.allocsc3efa645 = allocsc3efa645 + return refc3efa645, allocsc3efa645 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ClearDepthStencilValue) PassValue() (C.VkClearDepthStencilValue, *cgoAllocMap) { - if x.refa7d07c03 != nil { - return *x.refa7d07c03, nil +func (x PhysicalDevicePerformanceQueryProperties) PassValue() (C.VkPhysicalDevicePerformanceQueryPropertiesKHR, *cgoAllocMap) { + if x.refc3efa645 != nil { + return *x.refc3efa645, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -11933,89 +38835,102 @@ func (x ClearDepthStencilValue) PassValue() (C.VkClearDepthStencilValue, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ClearDepthStencilValue) Deref() { - if x.refa7d07c03 == nil { +func (x *PhysicalDevicePerformanceQueryProperties) Deref() { + if x.refc3efa645 == nil { return } - x.Depth = (float32)(x.refa7d07c03.depth) - x.Stencil = (uint32)(x.refa7d07c03.stencil) + x.SType = (StructureType)(x.refc3efa645.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc3efa645.pNext)) + x.AllowCommandBufferQueryCopies = (Bool32)(x.refc3efa645.allowCommandBufferQueryCopies) } -// allocClearAttachmentMemory allocates memory for type C.VkClearAttachment in C. +// allocPerformanceCounterMemory allocates memory for type C.VkPerformanceCounterKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocClearAttachmentMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfClearAttachmentValue)) +func allocPerformanceCounterMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceCounterValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfClearAttachmentValue = unsafe.Sizeof([1]C.VkClearAttachment{}) +const sizeOfPerformanceCounterValue = unsafe.Sizeof([1]C.VkPerformanceCounterKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ClearAttachment) Ref() *C.VkClearAttachment { +func (x *PerformanceCounter) Ref() *C.VkPerformanceCounterKHR { if x == nil { return nil } - return x.refe9150303 + return x.refc754b4e5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ClearAttachment) Free() { - if x != nil && x.allocse9150303 != nil { - x.allocse9150303.(*cgoAllocMap).Free() - x.refe9150303 = nil +func (x *PerformanceCounter) Free() { + if x != nil && x.allocsc754b4e5 != nil { + x.allocsc754b4e5.(*cgoAllocMap).Free() + x.refc754b4e5 = nil } } -// NewClearAttachmentRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPerformanceCounterRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewClearAttachmentRef(ref unsafe.Pointer) *ClearAttachment { +func NewPerformanceCounterRef(ref unsafe.Pointer) *PerformanceCounter { if ref == nil { return nil } - obj := new(ClearAttachment) - obj.refe9150303 = (*C.VkClearAttachment)(unsafe.Pointer(ref)) + obj := new(PerformanceCounter) + obj.refc754b4e5 = (*C.VkPerformanceCounterKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ClearAttachment) PassRef() (*C.VkClearAttachment, *cgoAllocMap) { +func (x *PerformanceCounter) PassRef() (*C.VkPerformanceCounterKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe9150303 != nil { - return x.refe9150303, nil + } else if x.refc754b4e5 != nil { + return x.refc754b4e5, nil } - meme9150303 := allocClearAttachmentMemory(1) - refe9150303 := (*C.VkClearAttachment)(meme9150303) - allocse9150303 := new(cgoAllocMap) - allocse9150303.Add(meme9150303) + memc754b4e5 := allocPerformanceCounterMemory(1) + refc754b4e5 := (*C.VkPerformanceCounterKHR)(memc754b4e5) + allocsc754b4e5 := new(cgoAllocMap) + allocsc754b4e5.Add(memc754b4e5) - var caspectMask_allocs *cgoAllocMap - refe9150303.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocse9150303.Borrow(caspectMask_allocs) + var csType_allocs *cgoAllocMap + refc754b4e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc754b4e5.Borrow(csType_allocs) - var ccolorAttachment_allocs *cgoAllocMap - refe9150303.colorAttachment, ccolorAttachment_allocs = (C.uint32_t)(x.ColorAttachment), cgoAllocsUnknown - allocse9150303.Borrow(ccolorAttachment_allocs) + var cpNext_allocs *cgoAllocMap + refc754b4e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc754b4e5.Borrow(cpNext_allocs) - var cclearValue_allocs *cgoAllocMap - refe9150303.clearValue, cclearValue_allocs = *(*C.VkClearValue)(unsafe.Pointer(&x.ClearValue)), cgoAllocsUnknown - allocse9150303.Borrow(cclearValue_allocs) + var cunit_allocs *cgoAllocMap + refc754b4e5.unit, cunit_allocs = (C.VkPerformanceCounterUnitKHR)(x.Unit), cgoAllocsUnknown + allocsc754b4e5.Borrow(cunit_allocs) - x.refe9150303 = refe9150303 - x.allocse9150303 = allocse9150303 - return refe9150303, allocse9150303 + var cscope_allocs *cgoAllocMap + refc754b4e5.scope, cscope_allocs = (C.VkPerformanceCounterScopeKHR)(x.Scope), cgoAllocsUnknown + allocsc754b4e5.Borrow(cscope_allocs) + + var cstorage_allocs *cgoAllocMap + refc754b4e5.storage, cstorage_allocs = (C.VkPerformanceCounterStorageKHR)(x.Storage), cgoAllocsUnknown + allocsc754b4e5.Borrow(cstorage_allocs) + + var cuuid_allocs *cgoAllocMap + refc754b4e5.uuid, cuuid_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.Uuid)), cgoAllocsUnknown + allocsc754b4e5.Borrow(cuuid_allocs) + + x.refc754b4e5 = refc754b4e5 + x.allocsc754b4e5 = allocsc754b4e5 + return refc754b4e5, allocsc754b4e5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ClearAttachment) PassValue() (C.VkClearAttachment, *cgoAllocMap) { - if x.refe9150303 != nil { - return *x.refe9150303, nil +func (x PerformanceCounter) PassValue() (C.VkPerformanceCounterKHR, *cgoAllocMap) { + if x.refc754b4e5 != nil { + return *x.refc754b4e5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12023,90 +38938,105 @@ func (x ClearAttachment) PassValue() (C.VkClearAttachment, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ClearAttachment) Deref() { - if x.refe9150303 == nil { +func (x *PerformanceCounter) Deref() { + if x.refc754b4e5 == nil { return } - x.AspectMask = (ImageAspectFlags)(x.refe9150303.aspectMask) - x.ColorAttachment = (uint32)(x.refe9150303.colorAttachment) - x.ClearValue = *(*ClearValue)(unsafe.Pointer(&x.refe9150303.clearValue)) + x.SType = (StructureType)(x.refc754b4e5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc754b4e5.pNext)) + x.Unit = (PerformanceCounterUnit)(x.refc754b4e5.unit) + x.Scope = (PerformanceCounterScope)(x.refc754b4e5.scope) + x.Storage = (PerformanceCounterStorage)(x.refc754b4e5.storage) + x.Uuid = *(*[16]byte)(unsafe.Pointer(&x.refc754b4e5.uuid)) } -// allocClearRectMemory allocates memory for type C.VkClearRect in C. +// allocPerformanceCounterDescriptionMemory allocates memory for type C.VkPerformanceCounterDescriptionKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocClearRectMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfClearRectValue)) +func allocPerformanceCounterDescriptionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceCounterDescriptionValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfClearRectValue = unsafe.Sizeof([1]C.VkClearRect{}) +const sizeOfPerformanceCounterDescriptionValue = unsafe.Sizeof([1]C.VkPerformanceCounterDescriptionKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ClearRect) Ref() *C.VkClearRect { +func (x *PerformanceCounterDescription) Ref() *C.VkPerformanceCounterDescriptionKHR { if x == nil { return nil } - return x.ref1d449c8b + return x.ref95209df5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ClearRect) Free() { - if x != nil && x.allocs1d449c8b != nil { - x.allocs1d449c8b.(*cgoAllocMap).Free() - x.ref1d449c8b = nil +func (x *PerformanceCounterDescription) Free() { + if x != nil && x.allocs95209df5 != nil { + x.allocs95209df5.(*cgoAllocMap).Free() + x.ref95209df5 = nil } } -// NewClearRectRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPerformanceCounterDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewClearRectRef(ref unsafe.Pointer) *ClearRect { +func NewPerformanceCounterDescriptionRef(ref unsafe.Pointer) *PerformanceCounterDescription { if ref == nil { return nil } - obj := new(ClearRect) - obj.ref1d449c8b = (*C.VkClearRect)(unsafe.Pointer(ref)) + obj := new(PerformanceCounterDescription) + obj.ref95209df5 = (*C.VkPerformanceCounterDescriptionKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ClearRect) PassRef() (*C.VkClearRect, *cgoAllocMap) { +func (x *PerformanceCounterDescription) PassRef() (*C.VkPerformanceCounterDescriptionKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1d449c8b != nil { - return x.ref1d449c8b, nil + } else if x.ref95209df5 != nil { + return x.ref95209df5, nil } - mem1d449c8b := allocClearRectMemory(1) - ref1d449c8b := (*C.VkClearRect)(mem1d449c8b) - allocs1d449c8b := new(cgoAllocMap) - allocs1d449c8b.Add(mem1d449c8b) + mem95209df5 := allocPerformanceCounterDescriptionMemory(1) + ref95209df5 := (*C.VkPerformanceCounterDescriptionKHR)(mem95209df5) + allocs95209df5 := new(cgoAllocMap) + allocs95209df5.Add(mem95209df5) - var crect_allocs *cgoAllocMap - ref1d449c8b.rect, crect_allocs = x.Rect.PassValue() - allocs1d449c8b.Borrow(crect_allocs) + var csType_allocs *cgoAllocMap + ref95209df5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs95209df5.Borrow(csType_allocs) - var cbaseArrayLayer_allocs *cgoAllocMap - ref1d449c8b.baseArrayLayer, cbaseArrayLayer_allocs = (C.uint32_t)(x.BaseArrayLayer), cgoAllocsUnknown - allocs1d449c8b.Borrow(cbaseArrayLayer_allocs) + var cpNext_allocs *cgoAllocMap + ref95209df5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs95209df5.Borrow(cpNext_allocs) - var clayerCount_allocs *cgoAllocMap - ref1d449c8b.layerCount, clayerCount_allocs = (C.uint32_t)(x.LayerCount), cgoAllocsUnknown - allocs1d449c8b.Borrow(clayerCount_allocs) + var cflags_allocs *cgoAllocMap + ref95209df5.flags, cflags_allocs = (C.VkPerformanceCounterDescriptionFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs95209df5.Borrow(cflags_allocs) - x.ref1d449c8b = ref1d449c8b - x.allocs1d449c8b = allocs1d449c8b - return ref1d449c8b, allocs1d449c8b + var cname_allocs *cgoAllocMap + ref95209df5.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs95209df5.Borrow(cname_allocs) + + var ccategory_allocs *cgoAllocMap + ref95209df5.category, ccategory_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Category)), cgoAllocsUnknown + allocs95209df5.Borrow(ccategory_allocs) + + var cdescription_allocs *cgoAllocMap + ref95209df5.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown + allocs95209df5.Borrow(cdescription_allocs) + + x.ref95209df5 = ref95209df5 + x.allocs95209df5 = allocs95209df5 + return ref95209df5, allocs95209df5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ClearRect) PassValue() (C.VkClearRect, *cgoAllocMap) { - if x.ref1d449c8b != nil { - return *x.ref1d449c8b, nil +func (x PerformanceCounterDescription) PassValue() (C.VkPerformanceCounterDescriptionKHR, *cgoAllocMap) { + if x.ref95209df5 != nil { + return *x.ref95209df5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12114,98 +39044,101 @@ func (x ClearRect) PassValue() (C.VkClearRect, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ClearRect) Deref() { - if x.ref1d449c8b == nil { +func (x *PerformanceCounterDescription) Deref() { + if x.ref95209df5 == nil { return } - x.Rect = *NewRect2DRef(unsafe.Pointer(&x.ref1d449c8b.rect)) - x.BaseArrayLayer = (uint32)(x.ref1d449c8b.baseArrayLayer) - x.LayerCount = (uint32)(x.ref1d449c8b.layerCount) + x.SType = (StructureType)(x.ref95209df5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref95209df5.pNext)) + x.Flags = (PerformanceCounterDescriptionFlags)(x.ref95209df5.flags) + x.Name = *(*[256]byte)(unsafe.Pointer(&x.ref95209df5.name)) + x.Category = *(*[256]byte)(unsafe.Pointer(&x.ref95209df5.category)) + x.Description = *(*[256]byte)(unsafe.Pointer(&x.ref95209df5.description)) } -// allocImageResolveMemory allocates memory for type C.VkImageResolve in C. +// allocQueryPoolPerformanceCreateInfoMemory allocates memory for type C.VkQueryPoolPerformanceCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageResolveMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageResolveValue)) +func allocQueryPoolPerformanceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueryPoolPerformanceCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageResolveValue = unsafe.Sizeof([1]C.VkImageResolve{}) +const sizeOfQueryPoolPerformanceCreateInfoValue = unsafe.Sizeof([1]C.VkQueryPoolPerformanceCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageResolve) Ref() *C.VkImageResolve { +func (x *QueryPoolPerformanceCreateInfo) Ref() *C.VkQueryPoolPerformanceCreateInfoKHR { if x == nil { return nil } - return x.ref7bda856d + return x.ref55afa561 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageResolve) Free() { - if x != nil && x.allocs7bda856d != nil { - x.allocs7bda856d.(*cgoAllocMap).Free() - x.ref7bda856d = nil +func (x *QueryPoolPerformanceCreateInfo) Free() { + if x != nil && x.allocs55afa561 != nil { + x.allocs55afa561.(*cgoAllocMap).Free() + x.ref55afa561 = nil } } -// NewImageResolveRef creates a new wrapper struct with underlying reference set to the original C object. +// NewQueryPoolPerformanceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageResolveRef(ref unsafe.Pointer) *ImageResolve { +func NewQueryPoolPerformanceCreateInfoRef(ref unsafe.Pointer) *QueryPoolPerformanceCreateInfo { if ref == nil { return nil } - obj := new(ImageResolve) - obj.ref7bda856d = (*C.VkImageResolve)(unsafe.Pointer(ref)) + obj := new(QueryPoolPerformanceCreateInfo) + obj.ref55afa561 = (*C.VkQueryPoolPerformanceCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageResolve) PassRef() (*C.VkImageResolve, *cgoAllocMap) { +func (x *QueryPoolPerformanceCreateInfo) PassRef() (*C.VkQueryPoolPerformanceCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7bda856d != nil { - return x.ref7bda856d, nil + } else if x.ref55afa561 != nil { + return x.ref55afa561, nil } - mem7bda856d := allocImageResolveMemory(1) - ref7bda856d := (*C.VkImageResolve)(mem7bda856d) - allocs7bda856d := new(cgoAllocMap) - allocs7bda856d.Add(mem7bda856d) + mem55afa561 := allocQueryPoolPerformanceCreateInfoMemory(1) + ref55afa561 := (*C.VkQueryPoolPerformanceCreateInfoKHR)(mem55afa561) + allocs55afa561 := new(cgoAllocMap) + allocs55afa561.Add(mem55afa561) - var csrcSubresource_allocs *cgoAllocMap - ref7bda856d.srcSubresource, csrcSubresource_allocs = x.SrcSubresource.PassValue() - allocs7bda856d.Borrow(csrcSubresource_allocs) + var csType_allocs *cgoAllocMap + ref55afa561.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs55afa561.Borrow(csType_allocs) - var csrcOffset_allocs *cgoAllocMap - ref7bda856d.srcOffset, csrcOffset_allocs = x.SrcOffset.PassValue() - allocs7bda856d.Borrow(csrcOffset_allocs) + var cpNext_allocs *cgoAllocMap + ref55afa561.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs55afa561.Borrow(cpNext_allocs) - var cdstSubresource_allocs *cgoAllocMap - ref7bda856d.dstSubresource, cdstSubresource_allocs = x.DstSubresource.PassValue() - allocs7bda856d.Borrow(cdstSubresource_allocs) + var cqueueFamilyIndex_allocs *cgoAllocMap + ref55afa561.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown + allocs55afa561.Borrow(cqueueFamilyIndex_allocs) - var cdstOffset_allocs *cgoAllocMap - ref7bda856d.dstOffset, cdstOffset_allocs = x.DstOffset.PassValue() - allocs7bda856d.Borrow(cdstOffset_allocs) + var ccounterIndexCount_allocs *cgoAllocMap + ref55afa561.counterIndexCount, ccounterIndexCount_allocs = (C.uint32_t)(x.CounterIndexCount), cgoAllocsUnknown + allocs55afa561.Borrow(ccounterIndexCount_allocs) - var cextent_allocs *cgoAllocMap - ref7bda856d.extent, cextent_allocs = x.Extent.PassValue() - allocs7bda856d.Borrow(cextent_allocs) + var cpCounterIndices_allocs *cgoAllocMap + ref55afa561.pCounterIndices, cpCounterIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCounterIndices)).Data)), cgoAllocsUnknown + allocs55afa561.Borrow(cpCounterIndices_allocs) - x.ref7bda856d = ref7bda856d - x.allocs7bda856d = allocs7bda856d - return ref7bda856d, allocs7bda856d + x.ref55afa561 = ref55afa561 + x.allocs55afa561 = allocs55afa561 + return ref55afa561, allocs55afa561 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageResolve) PassValue() (C.VkImageResolve, *cgoAllocMap) { - if x.ref7bda856d != nil { - return *x.ref7bda856d, nil +func (x QueryPoolPerformanceCreateInfo) PassValue() (C.VkQueryPoolPerformanceCreateInfoKHR, *cgoAllocMap) { + if x.ref55afa561 != nil { + return *x.ref55afa561, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12213,96 +39146,100 @@ func (x ImageResolve) PassValue() (C.VkImageResolve, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageResolve) Deref() { - if x.ref7bda856d == nil { +func (x *QueryPoolPerformanceCreateInfo) Deref() { + if x.ref55afa561 == nil { return } - x.SrcSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref7bda856d.srcSubresource)) - x.SrcOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref7bda856d.srcOffset)) - x.DstSubresource = *NewImageSubresourceLayersRef(unsafe.Pointer(&x.ref7bda856d.dstSubresource)) - x.DstOffset = *NewOffset3DRef(unsafe.Pointer(&x.ref7bda856d.dstOffset)) - x.Extent = *NewExtent3DRef(unsafe.Pointer(&x.ref7bda856d.extent)) + x.SType = (StructureType)(x.ref55afa561.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref55afa561.pNext)) + x.QueueFamilyIndex = (uint32)(x.ref55afa561.queueFamilyIndex) + x.CounterIndexCount = (uint32)(x.ref55afa561.counterIndexCount) + hxf8959c2 := (*sliceHeader)(unsafe.Pointer(&x.PCounterIndices)) + hxf8959c2.Data = unsafe.Pointer(x.ref55afa561.pCounterIndices) + hxf8959c2.Cap = 0x7fffffff + // hxf8959c2.Len = ? + } -// allocMemoryBarrierMemory allocates memory for type C.VkMemoryBarrier in C. +// allocAcquireProfilingLockInfoMemory allocates memory for type C.VkAcquireProfilingLockInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryBarrierMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryBarrierValue)) +func allocAcquireProfilingLockInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAcquireProfilingLockInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryBarrierValue = unsafe.Sizeof([1]C.VkMemoryBarrier{}) +const sizeOfAcquireProfilingLockInfoValue = unsafe.Sizeof([1]C.VkAcquireProfilingLockInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryBarrier) Ref() *C.VkMemoryBarrier { +func (x *AcquireProfilingLockInfo) Ref() *C.VkAcquireProfilingLockInfoKHR { if x == nil { return nil } - return x.ref977c944e + return x.ref73cbb121 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryBarrier) Free() { - if x != nil && x.allocs977c944e != nil { - x.allocs977c944e.(*cgoAllocMap).Free() - x.ref977c944e = nil +func (x *AcquireProfilingLockInfo) Free() { + if x != nil && x.allocs73cbb121 != nil { + x.allocs73cbb121.(*cgoAllocMap).Free() + x.ref73cbb121 = nil } } -// NewMemoryBarrierRef creates a new wrapper struct with underlying reference set to the original C object. +// NewAcquireProfilingLockInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryBarrierRef(ref unsafe.Pointer) *MemoryBarrier { +func NewAcquireProfilingLockInfoRef(ref unsafe.Pointer) *AcquireProfilingLockInfo { if ref == nil { return nil } - obj := new(MemoryBarrier) - obj.ref977c944e = (*C.VkMemoryBarrier)(unsafe.Pointer(ref)) + obj := new(AcquireProfilingLockInfo) + obj.ref73cbb121 = (*C.VkAcquireProfilingLockInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryBarrier) PassRef() (*C.VkMemoryBarrier, *cgoAllocMap) { +func (x *AcquireProfilingLockInfo) PassRef() (*C.VkAcquireProfilingLockInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref977c944e != nil { - return x.ref977c944e, nil + } else if x.ref73cbb121 != nil { + return x.ref73cbb121, nil } - mem977c944e := allocMemoryBarrierMemory(1) - ref977c944e := (*C.VkMemoryBarrier)(mem977c944e) - allocs977c944e := new(cgoAllocMap) - allocs977c944e.Add(mem977c944e) + mem73cbb121 := allocAcquireProfilingLockInfoMemory(1) + ref73cbb121 := (*C.VkAcquireProfilingLockInfoKHR)(mem73cbb121) + allocs73cbb121 := new(cgoAllocMap) + allocs73cbb121.Add(mem73cbb121) var csType_allocs *cgoAllocMap - ref977c944e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs977c944e.Borrow(csType_allocs) + ref73cbb121.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs73cbb121.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref977c944e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs977c944e.Borrow(cpNext_allocs) + ref73cbb121.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs73cbb121.Borrow(cpNext_allocs) - var csrcAccessMask_allocs *cgoAllocMap - ref977c944e.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown - allocs977c944e.Borrow(csrcAccessMask_allocs) + var cflags_allocs *cgoAllocMap + ref73cbb121.flags, cflags_allocs = (C.VkAcquireProfilingLockFlagsKHR)(x.Flags), cgoAllocsUnknown + allocs73cbb121.Borrow(cflags_allocs) - var cdstAccessMask_allocs *cgoAllocMap - ref977c944e.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown - allocs977c944e.Borrow(cdstAccessMask_allocs) + var ctimeout_allocs *cgoAllocMap + ref73cbb121.timeout, ctimeout_allocs = (C.uint64_t)(x.Timeout), cgoAllocsUnknown + allocs73cbb121.Borrow(ctimeout_allocs) - x.ref977c944e = ref977c944e - x.allocs977c944e = allocs977c944e - return ref977c944e, allocs977c944e + x.ref73cbb121 = ref73cbb121 + x.allocs73cbb121 = allocs73cbb121 + return ref73cbb121, allocs73cbb121 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryBarrier) PassValue() (C.VkMemoryBarrier, *cgoAllocMap) { - if x.ref977c944e != nil { - return *x.ref977c944e, nil +func (x AcquireProfilingLockInfo) PassValue() (C.VkAcquireProfilingLockInfoKHR, *cgoAllocMap) { + if x.ref73cbb121 != nil { + return *x.ref73cbb121, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12310,115 +39247,91 @@ func (x MemoryBarrier) PassValue() (C.VkMemoryBarrier, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryBarrier) Deref() { - if x.ref977c944e == nil { +func (x *AcquireProfilingLockInfo) Deref() { + if x.ref73cbb121 == nil { return } - x.SType = (StructureType)(x.ref977c944e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref977c944e.pNext)) - x.SrcAccessMask = (AccessFlags)(x.ref977c944e.srcAccessMask) - x.DstAccessMask = (AccessFlags)(x.ref977c944e.dstAccessMask) + x.SType = (StructureType)(x.ref73cbb121.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73cbb121.pNext)) + x.Flags = (AcquireProfilingLockFlags)(x.ref73cbb121.flags) + x.Timeout = (uint64)(x.ref73cbb121.timeout) } -// allocBufferMemoryBarrierMemory allocates memory for type C.VkBufferMemoryBarrier in C. +// allocPerformanceQuerySubmitInfoMemory allocates memory for type C.VkPerformanceQuerySubmitInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocBufferMemoryBarrierMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferMemoryBarrierValue)) +func allocPerformanceQuerySubmitInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceQuerySubmitInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBufferMemoryBarrierValue = unsafe.Sizeof([1]C.VkBufferMemoryBarrier{}) +const sizeOfPerformanceQuerySubmitInfoValue = unsafe.Sizeof([1]C.VkPerformanceQuerySubmitInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferMemoryBarrier) Ref() *C.VkBufferMemoryBarrier { +func (x *PerformanceQuerySubmitInfo) Ref() *C.VkPerformanceQuerySubmitInfoKHR { if x == nil { return nil } - return x.refeaf4700b + return x.refbccd2736 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BufferMemoryBarrier) Free() { - if x != nil && x.allocseaf4700b != nil { - x.allocseaf4700b.(*cgoAllocMap).Free() - x.refeaf4700b = nil +func (x *PerformanceQuerySubmitInfo) Free() { + if x != nil && x.allocsbccd2736 != nil { + x.allocsbccd2736.(*cgoAllocMap).Free() + x.refbccd2736 = nil } } -// NewBufferMemoryBarrierRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPerformanceQuerySubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBufferMemoryBarrierRef(ref unsafe.Pointer) *BufferMemoryBarrier { +func NewPerformanceQuerySubmitInfoRef(ref unsafe.Pointer) *PerformanceQuerySubmitInfo { if ref == nil { return nil } - obj := new(BufferMemoryBarrier) - obj.refeaf4700b = (*C.VkBufferMemoryBarrier)(unsafe.Pointer(ref)) + obj := new(PerformanceQuerySubmitInfo) + obj.refbccd2736 = (*C.VkPerformanceQuerySubmitInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BufferMemoryBarrier) PassRef() (*C.VkBufferMemoryBarrier, *cgoAllocMap) { +func (x *PerformanceQuerySubmitInfo) PassRef() (*C.VkPerformanceQuerySubmitInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refeaf4700b != nil { - return x.refeaf4700b, nil + } else if x.refbccd2736 != nil { + return x.refbccd2736, nil } - memeaf4700b := allocBufferMemoryBarrierMemory(1) - refeaf4700b := (*C.VkBufferMemoryBarrier)(memeaf4700b) - allocseaf4700b := new(cgoAllocMap) - allocseaf4700b.Add(memeaf4700b) + membccd2736 := allocPerformanceQuerySubmitInfoMemory(1) + refbccd2736 := (*C.VkPerformanceQuerySubmitInfoKHR)(membccd2736) + allocsbccd2736 := new(cgoAllocMap) + allocsbccd2736.Add(membccd2736) var csType_allocs *cgoAllocMap - refeaf4700b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocseaf4700b.Borrow(csType_allocs) + refbccd2736.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbccd2736.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refeaf4700b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocseaf4700b.Borrow(cpNext_allocs) - - var csrcAccessMask_allocs *cgoAllocMap - refeaf4700b.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown - allocseaf4700b.Borrow(csrcAccessMask_allocs) - - var cdstAccessMask_allocs *cgoAllocMap - refeaf4700b.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown - allocseaf4700b.Borrow(cdstAccessMask_allocs) - - var csrcQueueFamilyIndex_allocs *cgoAllocMap - refeaf4700b.srcQueueFamilyIndex, csrcQueueFamilyIndex_allocs = (C.uint32_t)(x.SrcQueueFamilyIndex), cgoAllocsUnknown - allocseaf4700b.Borrow(csrcQueueFamilyIndex_allocs) - - var cdstQueueFamilyIndex_allocs *cgoAllocMap - refeaf4700b.dstQueueFamilyIndex, cdstQueueFamilyIndex_allocs = (C.uint32_t)(x.DstQueueFamilyIndex), cgoAllocsUnknown - allocseaf4700b.Borrow(cdstQueueFamilyIndex_allocs) + refbccd2736.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbccd2736.Borrow(cpNext_allocs) - var cbuffer_allocs *cgoAllocMap - refeaf4700b.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocseaf4700b.Borrow(cbuffer_allocs) - - var coffset_allocs *cgoAllocMap - refeaf4700b.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocseaf4700b.Borrow(coffset_allocs) - - var csize_allocs *cgoAllocMap - refeaf4700b.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown - allocseaf4700b.Borrow(csize_allocs) + var ccounterPassIndex_allocs *cgoAllocMap + refbccd2736.counterPassIndex, ccounterPassIndex_allocs = (C.uint32_t)(x.CounterPassIndex), cgoAllocsUnknown + allocsbccd2736.Borrow(ccounterPassIndex_allocs) - x.refeaf4700b = refeaf4700b - x.allocseaf4700b = allocseaf4700b - return refeaf4700b, allocseaf4700b + x.refbccd2736 = refbccd2736 + x.allocsbccd2736 = allocsbccd2736 + return refbccd2736, allocsbccd2736 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BufferMemoryBarrier) PassValue() (C.VkBufferMemoryBarrier, *cgoAllocMap) { - if x.refeaf4700b != nil { - return *x.refeaf4700b, nil +func (x PerformanceQuerySubmitInfo) PassValue() (C.VkPerformanceQuerySubmitInfoKHR, *cgoAllocMap) { + if x.refbccd2736 != nil { + return *x.refbccd2736, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12426,124 +39339,90 @@ func (x BufferMemoryBarrier) PassValue() (C.VkBufferMemoryBarrier, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BufferMemoryBarrier) Deref() { - if x.refeaf4700b == nil { +func (x *PerformanceQuerySubmitInfo) Deref() { + if x.refbccd2736 == nil { return } - x.SType = (StructureType)(x.refeaf4700b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeaf4700b.pNext)) - x.SrcAccessMask = (AccessFlags)(x.refeaf4700b.srcAccessMask) - x.DstAccessMask = (AccessFlags)(x.refeaf4700b.dstAccessMask) - x.SrcQueueFamilyIndex = (uint32)(x.refeaf4700b.srcQueueFamilyIndex) - x.DstQueueFamilyIndex = (uint32)(x.refeaf4700b.dstQueueFamilyIndex) - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refeaf4700b.buffer)) - x.Offset = (DeviceSize)(x.refeaf4700b.offset) - x.Size = (DeviceSize)(x.refeaf4700b.size) + x.SType = (StructureType)(x.refbccd2736.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbccd2736.pNext)) + x.CounterPassIndex = (uint32)(x.refbccd2736.counterPassIndex) } -// allocImageMemoryBarrierMemory allocates memory for type C.VkImageMemoryBarrier in C. +// allocPhysicalDeviceSurfaceInfo2Memory allocates memory for type C.VkPhysicalDeviceSurfaceInfo2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageMemoryBarrierMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageMemoryBarrierValue)) +func allocPhysicalDeviceSurfaceInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSurfaceInfo2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageMemoryBarrierValue = unsafe.Sizeof([1]C.VkImageMemoryBarrier{}) +const sizeOfPhysicalDeviceSurfaceInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceSurfaceInfo2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageMemoryBarrier) Ref() *C.VkImageMemoryBarrier { +func (x *PhysicalDeviceSurfaceInfo2) Ref() *C.VkPhysicalDeviceSurfaceInfo2KHR { if x == nil { return nil } - return x.refd52734ec + return x.refd22370ae } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageMemoryBarrier) Free() { - if x != nil && x.allocsd52734ec != nil { - x.allocsd52734ec.(*cgoAllocMap).Free() - x.refd52734ec = nil +func (x *PhysicalDeviceSurfaceInfo2) Free() { + if x != nil && x.allocsd22370ae != nil { + x.allocsd22370ae.(*cgoAllocMap).Free() + x.refd22370ae = nil } } -// NewImageMemoryBarrierRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceSurfaceInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageMemoryBarrierRef(ref unsafe.Pointer) *ImageMemoryBarrier { - if ref == nil { - return nil - } - obj := new(ImageMemoryBarrier) - obj.refd52734ec = (*C.VkImageMemoryBarrier)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *ImageMemoryBarrier) PassRef() (*C.VkImageMemoryBarrier, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refd52734ec != nil { - return x.refd52734ec, nil - } - memd52734ec := allocImageMemoryBarrierMemory(1) - refd52734ec := (*C.VkImageMemoryBarrier)(memd52734ec) - allocsd52734ec := new(cgoAllocMap) - allocsd52734ec.Add(memd52734ec) - - var csType_allocs *cgoAllocMap - refd52734ec.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd52734ec.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refd52734ec.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd52734ec.Borrow(cpNext_allocs) - - var csrcAccessMask_allocs *cgoAllocMap - refd52734ec.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown - allocsd52734ec.Borrow(csrcAccessMask_allocs) - - var cdstAccessMask_allocs *cgoAllocMap - refd52734ec.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown - allocsd52734ec.Borrow(cdstAccessMask_allocs) - - var coldLayout_allocs *cgoAllocMap - refd52734ec.oldLayout, coldLayout_allocs = (C.VkImageLayout)(x.OldLayout), cgoAllocsUnknown - allocsd52734ec.Borrow(coldLayout_allocs) - - var cnewLayout_allocs *cgoAllocMap - refd52734ec.newLayout, cnewLayout_allocs = (C.VkImageLayout)(x.NewLayout), cgoAllocsUnknown - allocsd52734ec.Borrow(cnewLayout_allocs) +func NewPhysicalDeviceSurfaceInfo2Ref(ref unsafe.Pointer) *PhysicalDeviceSurfaceInfo2 { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceSurfaceInfo2) + obj.refd22370ae = (*C.VkPhysicalDeviceSurfaceInfo2KHR)(unsafe.Pointer(ref)) + return obj +} - var csrcQueueFamilyIndex_allocs *cgoAllocMap - refd52734ec.srcQueueFamilyIndex, csrcQueueFamilyIndex_allocs = (C.uint32_t)(x.SrcQueueFamilyIndex), cgoAllocsUnknown - allocsd52734ec.Borrow(csrcQueueFamilyIndex_allocs) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceSurfaceInfo2) PassRef() (*C.VkPhysicalDeviceSurfaceInfo2KHR, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.refd22370ae != nil { + return x.refd22370ae, nil + } + memd22370ae := allocPhysicalDeviceSurfaceInfo2Memory(1) + refd22370ae := (*C.VkPhysicalDeviceSurfaceInfo2KHR)(memd22370ae) + allocsd22370ae := new(cgoAllocMap) + allocsd22370ae.Add(memd22370ae) - var cdstQueueFamilyIndex_allocs *cgoAllocMap - refd52734ec.dstQueueFamilyIndex, cdstQueueFamilyIndex_allocs = (C.uint32_t)(x.DstQueueFamilyIndex), cgoAllocsUnknown - allocsd52734ec.Borrow(cdstQueueFamilyIndex_allocs) + var csType_allocs *cgoAllocMap + refd22370ae.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd22370ae.Borrow(csType_allocs) - var cimage_allocs *cgoAllocMap - refd52734ec.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocsd52734ec.Borrow(cimage_allocs) + var cpNext_allocs *cgoAllocMap + refd22370ae.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd22370ae.Borrow(cpNext_allocs) - var csubresourceRange_allocs *cgoAllocMap - refd52734ec.subresourceRange, csubresourceRange_allocs = x.SubresourceRange.PassValue() - allocsd52734ec.Borrow(csubresourceRange_allocs) + var csurface_allocs *cgoAllocMap + refd22370ae.surface, csurface_allocs = *(*C.VkSurfaceKHR)(unsafe.Pointer(&x.Surface)), cgoAllocsUnknown + allocsd22370ae.Borrow(csurface_allocs) - x.refd52734ec = refd52734ec - x.allocsd52734ec = allocsd52734ec - return refd52734ec, allocsd52734ec + x.refd22370ae = refd22370ae + x.allocsd22370ae = allocsd22370ae + return refd22370ae, allocsd22370ae } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageMemoryBarrier) PassValue() (C.VkImageMemoryBarrier, *cgoAllocMap) { - if x.refd52734ec != nil { - return *x.refd52734ec, nil +func (x PhysicalDeviceSurfaceInfo2) PassValue() (C.VkPhysicalDeviceSurfaceInfo2KHR, *cgoAllocMap) { + if x.refd22370ae != nil { + return *x.refd22370ae, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12551,113 +39430,90 @@ func (x ImageMemoryBarrier) PassValue() (C.VkImageMemoryBarrier, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageMemoryBarrier) Deref() { - if x.refd52734ec == nil { +func (x *PhysicalDeviceSurfaceInfo2) Deref() { + if x.refd22370ae == nil { return } - x.SType = (StructureType)(x.refd52734ec.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd52734ec.pNext)) - x.SrcAccessMask = (AccessFlags)(x.refd52734ec.srcAccessMask) - x.DstAccessMask = (AccessFlags)(x.refd52734ec.dstAccessMask) - x.OldLayout = (ImageLayout)(x.refd52734ec.oldLayout) - x.NewLayout = (ImageLayout)(x.refd52734ec.newLayout) - x.SrcQueueFamilyIndex = (uint32)(x.refd52734ec.srcQueueFamilyIndex) - x.DstQueueFamilyIndex = (uint32)(x.refd52734ec.dstQueueFamilyIndex) - x.Image = *(*Image)(unsafe.Pointer(&x.refd52734ec.image)) - x.SubresourceRange = *NewImageSubresourceRangeRef(unsafe.Pointer(&x.refd52734ec.subresourceRange)) + x.SType = (StructureType)(x.refd22370ae.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd22370ae.pNext)) + x.Surface = *(*Surface)(unsafe.Pointer(&x.refd22370ae.surface)) } -// allocRenderPassBeginInfoMemory allocates memory for type C.VkRenderPassBeginInfo in C. +// allocSurfaceCapabilities2Memory allocates memory for type C.VkSurfaceCapabilities2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocRenderPassBeginInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassBeginInfoValue)) +func allocSurfaceCapabilities2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceCapabilities2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfRenderPassBeginInfoValue = unsafe.Sizeof([1]C.VkRenderPassBeginInfo{}) +const sizeOfSurfaceCapabilities2Value = unsafe.Sizeof([1]C.VkSurfaceCapabilities2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassBeginInfo) Ref() *C.VkRenderPassBeginInfo { +func (x *SurfaceCapabilities2) Ref() *C.VkSurfaceCapabilities2KHR { if x == nil { return nil } - return x.ref3c3752c8 + return x.refea469745 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *RenderPassBeginInfo) Free() { - if x != nil && x.allocs3c3752c8 != nil { - x.allocs3c3752c8.(*cgoAllocMap).Free() - x.ref3c3752c8 = nil +func (x *SurfaceCapabilities2) Free() { + if x != nil && x.allocsea469745 != nil { + x.allocsea469745.(*cgoAllocMap).Free() + x.refea469745 = nil } } -// NewRenderPassBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSurfaceCapabilities2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewRenderPassBeginInfoRef(ref unsafe.Pointer) *RenderPassBeginInfo { +func NewSurfaceCapabilities2Ref(ref unsafe.Pointer) *SurfaceCapabilities2 { if ref == nil { return nil } - obj := new(RenderPassBeginInfo) - obj.ref3c3752c8 = (*C.VkRenderPassBeginInfo)(unsafe.Pointer(ref)) + obj := new(SurfaceCapabilities2) + obj.refea469745 = (*C.VkSurfaceCapabilities2KHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *RenderPassBeginInfo) PassRef() (*C.VkRenderPassBeginInfo, *cgoAllocMap) { +func (x *SurfaceCapabilities2) PassRef() (*C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3c3752c8 != nil { - return x.ref3c3752c8, nil + } else if x.refea469745 != nil { + return x.refea469745, nil } - mem3c3752c8 := allocRenderPassBeginInfoMemory(1) - ref3c3752c8 := (*C.VkRenderPassBeginInfo)(mem3c3752c8) - allocs3c3752c8 := new(cgoAllocMap) - allocs3c3752c8.Add(mem3c3752c8) + memea469745 := allocSurfaceCapabilities2Memory(1) + refea469745 := (*C.VkSurfaceCapabilities2KHR)(memea469745) + allocsea469745 := new(cgoAllocMap) + allocsea469745.Add(memea469745) var csType_allocs *cgoAllocMap - ref3c3752c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3c3752c8.Borrow(csType_allocs) + refea469745.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsea469745.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3c3752c8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3c3752c8.Borrow(cpNext_allocs) - - var crenderPass_allocs *cgoAllocMap - ref3c3752c8.renderPass, crenderPass_allocs = *(*C.VkRenderPass)(unsafe.Pointer(&x.RenderPass)), cgoAllocsUnknown - allocs3c3752c8.Borrow(crenderPass_allocs) - - var cframebuffer_allocs *cgoAllocMap - ref3c3752c8.framebuffer, cframebuffer_allocs = *(*C.VkFramebuffer)(unsafe.Pointer(&x.Framebuffer)), cgoAllocsUnknown - allocs3c3752c8.Borrow(cframebuffer_allocs) - - var crenderArea_allocs *cgoAllocMap - ref3c3752c8.renderArea, crenderArea_allocs = x.RenderArea.PassValue() - allocs3c3752c8.Borrow(crenderArea_allocs) - - var cclearValueCount_allocs *cgoAllocMap - ref3c3752c8.clearValueCount, cclearValueCount_allocs = (C.uint32_t)(x.ClearValueCount), cgoAllocsUnknown - allocs3c3752c8.Borrow(cclearValueCount_allocs) + refea469745.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsea469745.Borrow(cpNext_allocs) - var cpClearValues_allocs *cgoAllocMap - ref3c3752c8.pClearValues, cpClearValues_allocs = (*C.VkClearValue)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PClearValues)).Data)), cgoAllocsUnknown - allocs3c3752c8.Borrow(cpClearValues_allocs) + var csurfaceCapabilities_allocs *cgoAllocMap + refea469745.surfaceCapabilities, csurfaceCapabilities_allocs = x.SurfaceCapabilities.PassValue() + allocsea469745.Borrow(csurfaceCapabilities_allocs) - x.ref3c3752c8 = ref3c3752c8 - x.allocs3c3752c8 = allocs3c3752c8 - return ref3c3752c8, allocs3c3752c8 + x.refea469745 = refea469745 + x.allocsea469745 = allocsea469745 + return refea469745, allocsea469745 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x RenderPassBeginInfo) PassValue() (C.VkRenderPassBeginInfo, *cgoAllocMap) { - if x.ref3c3752c8 != nil { - return *x.ref3c3752c8, nil +func (x SurfaceCapabilities2) PassValue() (C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { + if x.refea469745 != nil { + return *x.refea469745, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12665,98 +39521,90 @@ func (x RenderPassBeginInfo) PassValue() (C.VkRenderPassBeginInfo, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RenderPassBeginInfo) Deref() { - if x.ref3c3752c8 == nil { +func (x *SurfaceCapabilities2) Deref() { + if x.refea469745 == nil { return } - x.SType = (StructureType)(x.ref3c3752c8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3c3752c8.pNext)) - x.RenderPass = *(*RenderPass)(unsafe.Pointer(&x.ref3c3752c8.renderPass)) - x.Framebuffer = *(*Framebuffer)(unsafe.Pointer(&x.ref3c3752c8.framebuffer)) - x.RenderArea = *NewRect2DRef(unsafe.Pointer(&x.ref3c3752c8.renderArea)) - x.ClearValueCount = (uint32)(x.ref3c3752c8.clearValueCount) - hxf1231c9 := (*sliceHeader)(unsafe.Pointer(&x.PClearValues)) - hxf1231c9.Data = unsafe.Pointer(x.ref3c3752c8.pClearValues) - hxf1231c9.Cap = 0x7fffffff - // hxf1231c9.Len = ? - + x.SType = (StructureType)(x.refea469745.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refea469745.pNext)) + x.SurfaceCapabilities = *NewSurfaceCapabilitiesRef(unsafe.Pointer(&x.refea469745.surfaceCapabilities)) } -// allocDispatchIndirectCommandMemory allocates memory for type C.VkDispatchIndirectCommand in C. +// allocSurfaceFormat2Memory allocates memory for type C.VkSurfaceFormat2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDispatchIndirectCommandMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDispatchIndirectCommandValue)) +func allocSurfaceFormat2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceFormat2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDispatchIndirectCommandValue = unsafe.Sizeof([1]C.VkDispatchIndirectCommand{}) +const sizeOfSurfaceFormat2Value = unsafe.Sizeof([1]C.VkSurfaceFormat2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DispatchIndirectCommand) Ref() *C.VkDispatchIndirectCommand { +func (x *SurfaceFormat2) Ref() *C.VkSurfaceFormat2KHR { if x == nil { return nil } - return x.refd298ba27 + return x.ref8867f0ed } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DispatchIndirectCommand) Free() { - if x != nil && x.allocsd298ba27 != nil { - x.allocsd298ba27.(*cgoAllocMap).Free() - x.refd298ba27 = nil +func (x *SurfaceFormat2) Free() { + if x != nil && x.allocs8867f0ed != nil { + x.allocs8867f0ed.(*cgoAllocMap).Free() + x.ref8867f0ed = nil } } -// NewDispatchIndirectCommandRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSurfaceFormat2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDispatchIndirectCommandRef(ref unsafe.Pointer) *DispatchIndirectCommand { +func NewSurfaceFormat2Ref(ref unsafe.Pointer) *SurfaceFormat2 { if ref == nil { return nil } - obj := new(DispatchIndirectCommand) - obj.refd298ba27 = (*C.VkDispatchIndirectCommand)(unsafe.Pointer(ref)) + obj := new(SurfaceFormat2) + obj.ref8867f0ed = (*C.VkSurfaceFormat2KHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DispatchIndirectCommand) PassRef() (*C.VkDispatchIndirectCommand, *cgoAllocMap) { +func (x *SurfaceFormat2) PassRef() (*C.VkSurfaceFormat2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd298ba27 != nil { - return x.refd298ba27, nil + } else if x.ref8867f0ed != nil { + return x.ref8867f0ed, nil } - memd298ba27 := allocDispatchIndirectCommandMemory(1) - refd298ba27 := (*C.VkDispatchIndirectCommand)(memd298ba27) - allocsd298ba27 := new(cgoAllocMap) - allocsd298ba27.Add(memd298ba27) + mem8867f0ed := allocSurfaceFormat2Memory(1) + ref8867f0ed := (*C.VkSurfaceFormat2KHR)(mem8867f0ed) + allocs8867f0ed := new(cgoAllocMap) + allocs8867f0ed.Add(mem8867f0ed) - var cx_allocs *cgoAllocMap - refd298ba27.x, cx_allocs = (C.uint32_t)(x.X), cgoAllocsUnknown - allocsd298ba27.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + ref8867f0ed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8867f0ed.Borrow(csType_allocs) - var cy_allocs *cgoAllocMap - refd298ba27.y, cy_allocs = (C.uint32_t)(x.Y), cgoAllocsUnknown - allocsd298ba27.Borrow(cy_allocs) + var cpNext_allocs *cgoAllocMap + ref8867f0ed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8867f0ed.Borrow(cpNext_allocs) - var cz_allocs *cgoAllocMap - refd298ba27.z, cz_allocs = (C.uint32_t)(x.Z), cgoAllocsUnknown - allocsd298ba27.Borrow(cz_allocs) + var csurfaceFormat_allocs *cgoAllocMap + ref8867f0ed.surfaceFormat, csurfaceFormat_allocs = x.SurfaceFormat.PassValue() + allocs8867f0ed.Borrow(csurfaceFormat_allocs) - x.refd298ba27 = refd298ba27 - x.allocsd298ba27 = allocsd298ba27 - return refd298ba27, allocsd298ba27 + x.ref8867f0ed = ref8867f0ed + x.allocs8867f0ed = allocs8867f0ed + return ref8867f0ed, allocs8867f0ed } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DispatchIndirectCommand) PassValue() (C.VkDispatchIndirectCommand, *cgoAllocMap) { - if x.refd298ba27 != nil { - return *x.refd298ba27, nil +func (x SurfaceFormat2) PassValue() (C.VkSurfaceFormat2KHR, *cgoAllocMap) { + if x.ref8867f0ed != nil { + return *x.ref8867f0ed, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12764,98 +39612,90 @@ func (x DispatchIndirectCommand) PassValue() (C.VkDispatchIndirectCommand, *cgoA // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DispatchIndirectCommand) Deref() { - if x.refd298ba27 == nil { +func (x *SurfaceFormat2) Deref() { + if x.ref8867f0ed == nil { return } - x.X = (uint32)(x.refd298ba27.x) - x.Y = (uint32)(x.refd298ba27.y) - x.Z = (uint32)(x.refd298ba27.z) + x.SType = (StructureType)(x.ref8867f0ed.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8867f0ed.pNext)) + x.SurfaceFormat = *NewSurfaceFormatRef(unsafe.Pointer(&x.ref8867f0ed.surfaceFormat)) } -// allocDrawIndexedIndirectCommandMemory allocates memory for type C.VkDrawIndexedIndirectCommand in C. +// allocDisplayProperties2Memory allocates memory for type C.VkDisplayProperties2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDrawIndexedIndirectCommandMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrawIndexedIndirectCommandValue)) +func allocDisplayProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayProperties2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDrawIndexedIndirectCommandValue = unsafe.Sizeof([1]C.VkDrawIndexedIndirectCommand{}) +const sizeOfDisplayProperties2Value = unsafe.Sizeof([1]C.VkDisplayProperties2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrawIndexedIndirectCommand) Ref() *C.VkDrawIndexedIndirectCommand { +func (x *DisplayProperties2) Ref() *C.VkDisplayProperties2KHR { if x == nil { return nil } - return x.ref4c78b5c3 + return x.ref80194833 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DrawIndexedIndirectCommand) Free() { - if x != nil && x.allocs4c78b5c3 != nil { - x.allocs4c78b5c3.(*cgoAllocMap).Free() - x.ref4c78b5c3 = nil +func (x *DisplayProperties2) Free() { + if x != nil && x.allocs80194833 != nil { + x.allocs80194833.(*cgoAllocMap).Free() + x.ref80194833 = nil } } -// NewDrawIndexedIndirectCommandRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDrawIndexedIndirectCommandRef(ref unsafe.Pointer) *DrawIndexedIndirectCommand { +func NewDisplayProperties2Ref(ref unsafe.Pointer) *DisplayProperties2 { if ref == nil { return nil } - obj := new(DrawIndexedIndirectCommand) - obj.ref4c78b5c3 = (*C.VkDrawIndexedIndirectCommand)(unsafe.Pointer(ref)) + obj := new(DisplayProperties2) + obj.ref80194833 = (*C.VkDisplayProperties2KHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DrawIndexedIndirectCommand) PassRef() (*C.VkDrawIndexedIndirectCommand, *cgoAllocMap) { +func (x *DisplayProperties2) PassRef() (*C.VkDisplayProperties2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4c78b5c3 != nil { - return x.ref4c78b5c3, nil + } else if x.ref80194833 != nil { + return x.ref80194833, nil } - mem4c78b5c3 := allocDrawIndexedIndirectCommandMemory(1) - ref4c78b5c3 := (*C.VkDrawIndexedIndirectCommand)(mem4c78b5c3) - allocs4c78b5c3 := new(cgoAllocMap) - allocs4c78b5c3.Add(mem4c78b5c3) - - var cindexCount_allocs *cgoAllocMap - ref4c78b5c3.indexCount, cindexCount_allocs = (C.uint32_t)(x.IndexCount), cgoAllocsUnknown - allocs4c78b5c3.Borrow(cindexCount_allocs) - - var cinstanceCount_allocs *cgoAllocMap - ref4c78b5c3.instanceCount, cinstanceCount_allocs = (C.uint32_t)(x.InstanceCount), cgoAllocsUnknown - allocs4c78b5c3.Borrow(cinstanceCount_allocs) + mem80194833 := allocDisplayProperties2Memory(1) + ref80194833 := (*C.VkDisplayProperties2KHR)(mem80194833) + allocs80194833 := new(cgoAllocMap) + allocs80194833.Add(mem80194833) - var cfirstIndex_allocs *cgoAllocMap - ref4c78b5c3.firstIndex, cfirstIndex_allocs = (C.uint32_t)(x.FirstIndex), cgoAllocsUnknown - allocs4c78b5c3.Borrow(cfirstIndex_allocs) + var csType_allocs *cgoAllocMap + ref80194833.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs80194833.Borrow(csType_allocs) - var cvertexOffset_allocs *cgoAllocMap - ref4c78b5c3.vertexOffset, cvertexOffset_allocs = (C.int32_t)(x.VertexOffset), cgoAllocsUnknown - allocs4c78b5c3.Borrow(cvertexOffset_allocs) + var cpNext_allocs *cgoAllocMap + ref80194833.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs80194833.Borrow(cpNext_allocs) - var cfirstInstance_allocs *cgoAllocMap - ref4c78b5c3.firstInstance, cfirstInstance_allocs = (C.uint32_t)(x.FirstInstance), cgoAllocsUnknown - allocs4c78b5c3.Borrow(cfirstInstance_allocs) + var cdisplayProperties_allocs *cgoAllocMap + ref80194833.displayProperties, cdisplayProperties_allocs = x.DisplayProperties.PassValue() + allocs80194833.Borrow(cdisplayProperties_allocs) - x.ref4c78b5c3 = ref4c78b5c3 - x.allocs4c78b5c3 = allocs4c78b5c3 - return ref4c78b5c3, allocs4c78b5c3 + x.ref80194833 = ref80194833 + x.allocs80194833 = allocs80194833 + return ref80194833, allocs80194833 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DrawIndexedIndirectCommand) PassValue() (C.VkDrawIndexedIndirectCommand, *cgoAllocMap) { - if x.ref4c78b5c3 != nil { - return *x.ref4c78b5c3, nil +func (x DisplayProperties2) PassValue() (C.VkDisplayProperties2KHR, *cgoAllocMap) { + if x.ref80194833 != nil { + return *x.ref80194833, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12863,96 +39703,90 @@ func (x DrawIndexedIndirectCommand) PassValue() (C.VkDrawIndexedIndirectCommand, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DrawIndexedIndirectCommand) Deref() { - if x.ref4c78b5c3 == nil { +func (x *DisplayProperties2) Deref() { + if x.ref80194833 == nil { return } - x.IndexCount = (uint32)(x.ref4c78b5c3.indexCount) - x.InstanceCount = (uint32)(x.ref4c78b5c3.instanceCount) - x.FirstIndex = (uint32)(x.ref4c78b5c3.firstIndex) - x.VertexOffset = (int32)(x.ref4c78b5c3.vertexOffset) - x.FirstInstance = (uint32)(x.ref4c78b5c3.firstInstance) + x.SType = (StructureType)(x.ref80194833.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref80194833.pNext)) + x.DisplayProperties = *NewDisplayPropertiesRef(unsafe.Pointer(&x.ref80194833.displayProperties)) } -// allocDrawIndirectCommandMemory allocates memory for type C.VkDrawIndirectCommand in C. +// allocDisplayPlaneProperties2Memory allocates memory for type C.VkDisplayPlaneProperties2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDrawIndirectCommandMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrawIndirectCommandValue)) +func allocDisplayPlaneProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneProperties2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDrawIndirectCommandValue = unsafe.Sizeof([1]C.VkDrawIndirectCommand{}) +const sizeOfDisplayPlaneProperties2Value = unsafe.Sizeof([1]C.VkDisplayPlaneProperties2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrawIndirectCommand) Ref() *C.VkDrawIndirectCommand { +func (x *DisplayPlaneProperties2) Ref() *C.VkDisplayPlaneProperties2KHR { if x == nil { return nil } - return x.ref2b5b67c4 + return x.refa72b1e5b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DrawIndirectCommand) Free() { - if x != nil && x.allocs2b5b67c4 != nil { - x.allocs2b5b67c4.(*cgoAllocMap).Free() - x.ref2b5b67c4 = nil +func (x *DisplayPlaneProperties2) Free() { + if x != nil && x.allocsa72b1e5b != nil { + x.allocsa72b1e5b.(*cgoAllocMap).Free() + x.refa72b1e5b = nil } } -// NewDrawIndirectCommandRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayPlaneProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDrawIndirectCommandRef(ref unsafe.Pointer) *DrawIndirectCommand { +func NewDisplayPlaneProperties2Ref(ref unsafe.Pointer) *DisplayPlaneProperties2 { if ref == nil { return nil } - obj := new(DrawIndirectCommand) - obj.ref2b5b67c4 = (*C.VkDrawIndirectCommand)(unsafe.Pointer(ref)) + obj := new(DisplayPlaneProperties2) + obj.refa72b1e5b = (*C.VkDisplayPlaneProperties2KHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DrawIndirectCommand) PassRef() (*C.VkDrawIndirectCommand, *cgoAllocMap) { +func (x *DisplayPlaneProperties2) PassRef() (*C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2b5b67c4 != nil { - return x.ref2b5b67c4, nil + } else if x.refa72b1e5b != nil { + return x.refa72b1e5b, nil } - mem2b5b67c4 := allocDrawIndirectCommandMemory(1) - ref2b5b67c4 := (*C.VkDrawIndirectCommand)(mem2b5b67c4) - allocs2b5b67c4 := new(cgoAllocMap) - allocs2b5b67c4.Add(mem2b5b67c4) - - var cvertexCount_allocs *cgoAllocMap - ref2b5b67c4.vertexCount, cvertexCount_allocs = (C.uint32_t)(x.VertexCount), cgoAllocsUnknown - allocs2b5b67c4.Borrow(cvertexCount_allocs) + mema72b1e5b := allocDisplayPlaneProperties2Memory(1) + refa72b1e5b := (*C.VkDisplayPlaneProperties2KHR)(mema72b1e5b) + allocsa72b1e5b := new(cgoAllocMap) + allocsa72b1e5b.Add(mema72b1e5b) - var cinstanceCount_allocs *cgoAllocMap - ref2b5b67c4.instanceCount, cinstanceCount_allocs = (C.uint32_t)(x.InstanceCount), cgoAllocsUnknown - allocs2b5b67c4.Borrow(cinstanceCount_allocs) + var csType_allocs *cgoAllocMap + refa72b1e5b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa72b1e5b.Borrow(csType_allocs) - var cfirstVertex_allocs *cgoAllocMap - ref2b5b67c4.firstVertex, cfirstVertex_allocs = (C.uint32_t)(x.FirstVertex), cgoAllocsUnknown - allocs2b5b67c4.Borrow(cfirstVertex_allocs) + var cpNext_allocs *cgoAllocMap + refa72b1e5b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa72b1e5b.Borrow(cpNext_allocs) - var cfirstInstance_allocs *cgoAllocMap - ref2b5b67c4.firstInstance, cfirstInstance_allocs = (C.uint32_t)(x.FirstInstance), cgoAllocsUnknown - allocs2b5b67c4.Borrow(cfirstInstance_allocs) + var cdisplayPlaneProperties_allocs *cgoAllocMap + refa72b1e5b.displayPlaneProperties, cdisplayPlaneProperties_allocs = x.DisplayPlaneProperties.PassValue() + allocsa72b1e5b.Borrow(cdisplayPlaneProperties_allocs) - x.ref2b5b67c4 = ref2b5b67c4 - x.allocs2b5b67c4 = allocs2b5b67c4 - return ref2b5b67c4, allocs2b5b67c4 + x.refa72b1e5b = refa72b1e5b + x.allocsa72b1e5b = allocsa72b1e5b + return refa72b1e5b, allocsa72b1e5b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DrawIndirectCommand) PassValue() (C.VkDrawIndirectCommand, *cgoAllocMap) { - if x.ref2b5b67c4 != nil { - return *x.ref2b5b67c4, nil +func (x DisplayPlaneProperties2) PassValue() (C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { + if x.refa72b1e5b != nil { + return *x.refa72b1e5b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -12960,137 +39794,185 @@ func (x DrawIndirectCommand) PassValue() (C.VkDrawIndirectCommand, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DrawIndirectCommand) Deref() { - if x.ref2b5b67c4 == nil { +func (x *DisplayPlaneProperties2) Deref() { + if x.refa72b1e5b == nil { return } - x.VertexCount = (uint32)(x.ref2b5b67c4.vertexCount) - x.InstanceCount = (uint32)(x.ref2b5b67c4.instanceCount) - x.FirstVertex = (uint32)(x.ref2b5b67c4.firstVertex) - x.FirstInstance = (uint32)(x.ref2b5b67c4.firstInstance) + x.SType = (StructureType)(x.refa72b1e5b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa72b1e5b.pNext)) + x.DisplayPlaneProperties = *NewDisplayPlanePropertiesRef(unsafe.Pointer(&x.refa72b1e5b.displayPlaneProperties)) } -// allocBaseOutStructureMemory allocates memory for type C.VkBaseOutStructure in C. +// allocDisplayModeProperties2Memory allocates memory for type C.VkDisplayModeProperties2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocBaseOutStructureMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBaseOutStructureValue)) +func allocDisplayModeProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModeProperties2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBaseOutStructureValue = unsafe.Sizeof([1]C.VkBaseOutStructure{}) +const sizeOfDisplayModeProperties2Value = unsafe.Sizeof([1]C.VkDisplayModeProperties2KHR{}) -// allocStruct_VkBaseOutStructureMemory allocates memory for type C.struct_VkBaseOutStructure in C. -// The caller is responsible for freeing the this memory via C.free. -func allocStruct_VkBaseOutStructureMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfStruct_VkBaseOutStructureValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DisplayModeProperties2) Ref() *C.VkDisplayModeProperties2KHR { + if x == nil { + return nil } - return mem + return x.refc566048d } -const sizeOfStruct_VkBaseOutStructureValue = unsafe.Sizeof([1]C.struct_VkBaseOutStructure{}) +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DisplayModeProperties2) Free() { + if x != nil && x.allocsc566048d != nil { + x.allocsc566048d.(*cgoAllocMap).Free() + x.refc566048d = nil + } +} -// unpackSBaseOutStructure transforms a sliced Go data structure into plain C format. -func unpackSBaseOutStructure(x []BaseOutStructure) (unpacked *C.struct_VkBaseOutStructure, allocs *cgoAllocMap) { +// NewDisplayModeProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDisplayModeProperties2Ref(ref unsafe.Pointer) *DisplayModeProperties2 { + if ref == nil { + return nil + } + obj := new(DisplayModeProperties2) + obj.refc566048d = (*C.VkDisplayModeProperties2KHR)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DisplayModeProperties2) PassRef() (*C.VkDisplayModeProperties2KHR, *cgoAllocMap) { if x == nil { return nil, nil + } else if x.refc566048d != nil { + return x.refc566048d, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.struct_VkBaseOutStructure) { - go allocs.Free() - }) + memc566048d := allocDisplayModeProperties2Memory(1) + refc566048d := (*C.VkDisplayModeProperties2KHR)(memc566048d) + allocsc566048d := new(cgoAllocMap) + allocsc566048d.Add(memc566048d) - len0 := len(x) - mem0 := allocStruct_VkBaseOutStructureMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, + var csType_allocs *cgoAllocMap + refc566048d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc566048d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refc566048d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc566048d.Borrow(cpNext_allocs) + + var cdisplayModeProperties_allocs *cgoAllocMap + refc566048d.displayModeProperties, cdisplayModeProperties_allocs = x.DisplayModeProperties.PassValue() + allocsc566048d.Borrow(cdisplayModeProperties_allocs) + + x.refc566048d = refc566048d + x.allocsc566048d = allocsc566048d + return refc566048d, allocsc566048d + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DisplayModeProperties2) PassValue() (C.VkDisplayModeProperties2KHR, *cgoAllocMap) { + if x.refc566048d != nil { + return *x.refc566048d, nil } - v0 := *(*[]C.struct_VkBaseOutStructure)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DisplayModeProperties2) Deref() { + if x.refc566048d == nil { + return } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.struct_VkBaseOutStructure)(h.Data) - return + x.SType = (StructureType)(x.refc566048d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc566048d.pNext)) + x.DisplayModeProperties = *NewDisplayModePropertiesRef(unsafe.Pointer(&x.refc566048d.displayModeProperties)) } -// packSBaseOutStructure reads sliced Go data structure out from plain C format. -func packSBaseOutStructure(v []BaseOutStructure, ptr0 *C.struct_VkBaseOutStructure) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfStruct_VkBaseOutStructureValue]C.struct_VkBaseOutStructure)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewBaseOutStructureRef(unsafe.Pointer(&ptr1)) +// allocDisplayPlaneInfo2Memory allocates memory for type C.VkDisplayPlaneInfo2KHR in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDisplayPlaneInfo2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneInfo2Value)) + if err != nil { + panic("memory alloc error: " + err.Error()) } + return mem } +const sizeOfDisplayPlaneInfo2Value = unsafe.Sizeof([1]C.VkDisplayPlaneInfo2KHR{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BaseOutStructure) Ref() *C.VkBaseOutStructure { +func (x *DisplayPlaneInfo2) Ref() *C.VkDisplayPlaneInfo2KHR { if x == nil { return nil } - return x.refd536fcd0 + return x.reff355ccbf } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BaseOutStructure) Free() { - if x != nil && x.allocsd536fcd0 != nil { - x.allocsd536fcd0.(*cgoAllocMap).Free() - x.refd536fcd0 = nil +func (x *DisplayPlaneInfo2) Free() { + if x != nil && x.allocsf355ccbf != nil { + x.allocsf355ccbf.(*cgoAllocMap).Free() + x.reff355ccbf = nil } } -// NewBaseOutStructureRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayPlaneInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBaseOutStructureRef(ref unsafe.Pointer) *BaseOutStructure { +func NewDisplayPlaneInfo2Ref(ref unsafe.Pointer) *DisplayPlaneInfo2 { if ref == nil { return nil } - obj := new(BaseOutStructure) - obj.refd536fcd0 = (*C.VkBaseOutStructure)(unsafe.Pointer(ref)) + obj := new(DisplayPlaneInfo2) + obj.reff355ccbf = (*C.VkDisplayPlaneInfo2KHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BaseOutStructure) PassRef() (*C.VkBaseOutStructure, *cgoAllocMap) { +func (x *DisplayPlaneInfo2) PassRef() (*C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd536fcd0 != nil { - return x.refd536fcd0, nil + } else if x.reff355ccbf != nil { + return x.reff355ccbf, nil } - memd536fcd0 := allocBaseOutStructureMemory(1) - refd536fcd0 := (*C.VkBaseOutStructure)(memd536fcd0) - allocsd536fcd0 := new(cgoAllocMap) - allocsd536fcd0.Add(memd536fcd0) + memf355ccbf := allocDisplayPlaneInfo2Memory(1) + reff355ccbf := (*C.VkDisplayPlaneInfo2KHR)(memf355ccbf) + allocsf355ccbf := new(cgoAllocMap) + allocsf355ccbf.Add(memf355ccbf) var csType_allocs *cgoAllocMap - refd536fcd0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd536fcd0.Borrow(csType_allocs) + reff355ccbf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf355ccbf.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd536fcd0.pNext, cpNext_allocs = unpackSBaseOutStructure(x.PNext) - allocsd536fcd0.Borrow(cpNext_allocs) + reff355ccbf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf355ccbf.Borrow(cpNext_allocs) - x.refd536fcd0 = refd536fcd0 - x.allocsd536fcd0 = allocsd536fcd0 - return refd536fcd0, allocsd536fcd0 + var cmode_allocs *cgoAllocMap + reff355ccbf.mode, cmode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.Mode)), cgoAllocsUnknown + allocsf355ccbf.Borrow(cmode_allocs) + + var cplaneIndex_allocs *cgoAllocMap + reff355ccbf.planeIndex, cplaneIndex_allocs = (C.uint32_t)(x.PlaneIndex), cgoAllocsUnknown + allocsf355ccbf.Borrow(cplaneIndex_allocs) + + x.reff355ccbf = reff355ccbf + x.allocsf355ccbf = allocsf355ccbf + return reff355ccbf, allocsf355ccbf } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BaseOutStructure) PassValue() (C.VkBaseOutStructure, *cgoAllocMap) { - if x.refd536fcd0 != nil { - return *x.refd536fcd0, nil +func (x DisplayPlaneInfo2) PassValue() (C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { + if x.reff355ccbf != nil { + return *x.reff355ccbf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13098,135 +39980,91 @@ func (x BaseOutStructure) PassValue() (C.VkBaseOutStructure, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BaseOutStructure) Deref() { - if x.refd536fcd0 == nil { +func (x *DisplayPlaneInfo2) Deref() { + if x.reff355ccbf == nil { return } - x.SType = (StructureType)(x.refd536fcd0.sType) - packSBaseOutStructure(x.PNext, x.refd536fcd0.pNext) -} - -// allocBaseInStructureMemory allocates memory for type C.VkBaseInStructure in C. -// The caller is responsible for freeing the this memory via C.free. -func allocBaseInStructureMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBaseInStructureValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem + x.SType = (StructureType)(x.reff355ccbf.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff355ccbf.pNext)) + x.Mode = *(*DisplayMode)(unsafe.Pointer(&x.reff355ccbf.mode)) + x.PlaneIndex = (uint32)(x.reff355ccbf.planeIndex) } -const sizeOfBaseInStructureValue = unsafe.Sizeof([1]C.VkBaseInStructure{}) - -// allocStruct_VkBaseInStructureMemory allocates memory for type C.struct_VkBaseInStructure in C. +// allocDisplayPlaneCapabilities2Memory allocates memory for type C.VkDisplayPlaneCapabilities2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocStruct_VkBaseInStructureMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfStruct_VkBaseInStructureValue)) +func allocDisplayPlaneCapabilities2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneCapabilities2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfStruct_VkBaseInStructureValue = unsafe.Sizeof([1]C.struct_VkBaseInStructure{}) - -// unpackSBaseInStructure transforms a sliced Go data structure into plain C format. -func unpackSBaseInStructure(x []BaseInStructure) (unpacked *C.struct_VkBaseInStructure, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.struct_VkBaseInStructure) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocStruct_VkBaseInStructureMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.struct_VkBaseInStructure)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.struct_VkBaseInStructure)(h.Data) - return -} - -// packSBaseInStructure reads sliced Go data structure out from plain C format. -func packSBaseInStructure(v []BaseInStructure, ptr0 *C.struct_VkBaseInStructure) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfStruct_VkBaseInStructureValue]C.struct_VkBaseInStructure)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewBaseInStructureRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfDisplayPlaneCapabilities2Value = unsafe.Sizeof([1]C.VkDisplayPlaneCapabilities2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BaseInStructure) Ref() *C.VkBaseInStructure { +func (x *DisplayPlaneCapabilities2) Ref() *C.VkDisplayPlaneCapabilities2KHR { if x == nil { return nil } - return x.refeae401a9 + return x.refb53dfb44 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BaseInStructure) Free() { - if x != nil && x.allocseae401a9 != nil { - x.allocseae401a9.(*cgoAllocMap).Free() - x.refeae401a9 = nil +func (x *DisplayPlaneCapabilities2) Free() { + if x != nil && x.allocsb53dfb44 != nil { + x.allocsb53dfb44.(*cgoAllocMap).Free() + x.refb53dfb44 = nil } } -// NewBaseInStructureRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayPlaneCapabilities2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBaseInStructureRef(ref unsafe.Pointer) *BaseInStructure { +func NewDisplayPlaneCapabilities2Ref(ref unsafe.Pointer) *DisplayPlaneCapabilities2 { if ref == nil { return nil } - obj := new(BaseInStructure) - obj.refeae401a9 = (*C.VkBaseInStructure)(unsafe.Pointer(ref)) + obj := new(DisplayPlaneCapabilities2) + obj.refb53dfb44 = (*C.VkDisplayPlaneCapabilities2KHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BaseInStructure) PassRef() (*C.VkBaseInStructure, *cgoAllocMap) { +func (x *DisplayPlaneCapabilities2) PassRef() (*C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refeae401a9 != nil { - return x.refeae401a9, nil + } else if x.refb53dfb44 != nil { + return x.refb53dfb44, nil } - memeae401a9 := allocBaseInStructureMemory(1) - refeae401a9 := (*C.VkBaseInStructure)(memeae401a9) - allocseae401a9 := new(cgoAllocMap) - allocseae401a9.Add(memeae401a9) + memb53dfb44 := allocDisplayPlaneCapabilities2Memory(1) + refb53dfb44 := (*C.VkDisplayPlaneCapabilities2KHR)(memb53dfb44) + allocsb53dfb44 := new(cgoAllocMap) + allocsb53dfb44.Add(memb53dfb44) var csType_allocs *cgoAllocMap - refeae401a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocseae401a9.Borrow(csType_allocs) + refb53dfb44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb53dfb44.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refeae401a9.pNext, cpNext_allocs = unpackSBaseInStructure(x.PNext) - allocseae401a9.Borrow(cpNext_allocs) + refb53dfb44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb53dfb44.Borrow(cpNext_allocs) - x.refeae401a9 = refeae401a9 - x.allocseae401a9 = allocseae401a9 - return refeae401a9, allocseae401a9 + var ccapabilities_allocs *cgoAllocMap + refb53dfb44.capabilities, ccapabilities_allocs = x.Capabilities.PassValue() + allocsb53dfb44.Borrow(ccapabilities_allocs) + + x.refb53dfb44 = refb53dfb44 + x.allocsb53dfb44 = allocsb53dfb44 + return refb53dfb44, allocsb53dfb44 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BaseInStructure) PassValue() (C.VkBaseInStructure, *cgoAllocMap) { - if x.refeae401a9 != nil { - return *x.refeae401a9, nil +func (x DisplayPlaneCapabilities2) PassValue() (C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { + if x.refb53dfb44 != nil { + return *x.refb53dfb44, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13234,101 +40072,94 @@ func (x BaseInStructure) PassValue() (C.VkBaseInStructure, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BaseInStructure) Deref() { - if x.refeae401a9 == nil { +func (x *DisplayPlaneCapabilities2) Deref() { + if x.refb53dfb44 == nil { return } - x.SType = (StructureType)(x.refeae401a9.sType) - packSBaseInStructure(x.PNext, x.refeae401a9.pNext) + x.SType = (StructureType)(x.refb53dfb44.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb53dfb44.pNext)) + x.Capabilities = *NewDisplayPlaneCapabilitiesRef(unsafe.Pointer(&x.refb53dfb44.capabilities)) } -// allocPhysicalDeviceSubgroupPropertiesMemory allocates memory for type C.VkPhysicalDeviceSubgroupProperties in C. +// allocPhysicalDeviceShaderClockFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderClockFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceSubgroupPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSubgroupPropertiesValue)) +func allocPhysicalDeviceShaderClockFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderClockFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceSubgroupPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSubgroupProperties{}) +const sizeOfPhysicalDeviceShaderClockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderClockFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSubgroupProperties) Ref() *C.VkPhysicalDeviceSubgroupProperties { +func (x *PhysicalDeviceShaderClockFeatures) Ref() *C.VkPhysicalDeviceShaderClockFeaturesKHR { if x == nil { return nil } - return x.refb019c29f + return x.refab512283 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceSubgroupProperties) Free() { - if x != nil && x.allocsb019c29f != nil { - x.allocsb019c29f.(*cgoAllocMap).Free() - x.refb019c29f = nil +func (x *PhysicalDeviceShaderClockFeatures) Free() { + if x != nil && x.allocsab512283 != nil { + x.allocsab512283.(*cgoAllocMap).Free() + x.refab512283 = nil } } -// NewPhysicalDeviceSubgroupPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderClockFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceSubgroupPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSubgroupProperties { +func NewPhysicalDeviceShaderClockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderClockFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceSubgroupProperties) - obj.refb019c29f = (*C.VkPhysicalDeviceSubgroupProperties)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderClockFeatures) + obj.refab512283 = (*C.VkPhysicalDeviceShaderClockFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceSubgroupProperties) PassRef() (*C.VkPhysicalDeviceSubgroupProperties, *cgoAllocMap) { +func (x *PhysicalDeviceShaderClockFeatures) PassRef() (*C.VkPhysicalDeviceShaderClockFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb019c29f != nil { - return x.refb019c29f, nil + } else if x.refab512283 != nil { + return x.refab512283, nil } - memb019c29f := allocPhysicalDeviceSubgroupPropertiesMemory(1) - refb019c29f := (*C.VkPhysicalDeviceSubgroupProperties)(memb019c29f) - allocsb019c29f := new(cgoAllocMap) - allocsb019c29f.Add(memb019c29f) + memab512283 := allocPhysicalDeviceShaderClockFeaturesMemory(1) + refab512283 := (*C.VkPhysicalDeviceShaderClockFeaturesKHR)(memab512283) + allocsab512283 := new(cgoAllocMap) + allocsab512283.Add(memab512283) var csType_allocs *cgoAllocMap - refb019c29f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb019c29f.Borrow(csType_allocs) + refab512283.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsab512283.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb019c29f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb019c29f.Borrow(cpNext_allocs) - - var csubgroupSize_allocs *cgoAllocMap - refb019c29f.subgroupSize, csubgroupSize_allocs = (C.uint32_t)(x.SubgroupSize), cgoAllocsUnknown - allocsb019c29f.Borrow(csubgroupSize_allocs) - - var csupportedStages_allocs *cgoAllocMap - refb019c29f.supportedStages, csupportedStages_allocs = (C.VkShaderStageFlags)(x.SupportedStages), cgoAllocsUnknown - allocsb019c29f.Borrow(csupportedStages_allocs) + refab512283.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsab512283.Borrow(cpNext_allocs) - var csupportedOperations_allocs *cgoAllocMap - refb019c29f.supportedOperations, csupportedOperations_allocs = (C.VkSubgroupFeatureFlags)(x.SupportedOperations), cgoAllocsUnknown - allocsb019c29f.Borrow(csupportedOperations_allocs) + var cshaderSubgroupClock_allocs *cgoAllocMap + refab512283.shaderSubgroupClock, cshaderSubgroupClock_allocs = (C.VkBool32)(x.ShaderSubgroupClock), cgoAllocsUnknown + allocsab512283.Borrow(cshaderSubgroupClock_allocs) - var cquadOperationsInAllStages_allocs *cgoAllocMap - refb019c29f.quadOperationsInAllStages, cquadOperationsInAllStages_allocs = (C.VkBool32)(x.QuadOperationsInAllStages), cgoAllocsUnknown - allocsb019c29f.Borrow(cquadOperationsInAllStages_allocs) + var cshaderDeviceClock_allocs *cgoAllocMap + refab512283.shaderDeviceClock, cshaderDeviceClock_allocs = (C.VkBool32)(x.ShaderDeviceClock), cgoAllocsUnknown + allocsab512283.Borrow(cshaderDeviceClock_allocs) - x.refb019c29f = refb019c29f - x.allocsb019c29f = allocsb019c29f - return refb019c29f, allocsb019c29f + x.refab512283 = refab512283 + x.allocsab512283 = allocsab512283 + return refab512283, allocsab512283 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceSubgroupProperties) PassValue() (C.VkPhysicalDeviceSubgroupProperties, *cgoAllocMap) { - if x.refb019c29f != nil { - return *x.refb019c29f, nil +func (x PhysicalDeviceShaderClockFeatures) PassValue() (C.VkPhysicalDeviceShaderClockFeaturesKHR, *cgoAllocMap) { + if x.refab512283 != nil { + return *x.refab512283, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13336,101 +40167,91 @@ func (x PhysicalDeviceSubgroupProperties) PassValue() (C.VkPhysicalDeviceSubgrou // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceSubgroupProperties) Deref() { - if x.refb019c29f == nil { +func (x *PhysicalDeviceShaderClockFeatures) Deref() { + if x.refab512283 == nil { return } - x.SType = (StructureType)(x.refb019c29f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb019c29f.pNext)) - x.SubgroupSize = (uint32)(x.refb019c29f.subgroupSize) - x.SupportedStages = (ShaderStageFlags)(x.refb019c29f.supportedStages) - x.SupportedOperations = (SubgroupFeatureFlags)(x.refb019c29f.supportedOperations) - x.QuadOperationsInAllStages = (Bool32)(x.refb019c29f.quadOperationsInAllStages) + x.SType = (StructureType)(x.refab512283.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refab512283.pNext)) + x.ShaderSubgroupClock = (Bool32)(x.refab512283.shaderSubgroupClock) + x.ShaderDeviceClock = (Bool32)(x.refab512283.shaderDeviceClock) } -// allocBindBufferMemoryInfoMemory allocates memory for type C.VkBindBufferMemoryInfo in C. +// allocDeviceQueueGlobalPriorityCreateInfoMemory allocates memory for type C.VkDeviceQueueGlobalPriorityCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocBindBufferMemoryInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindBufferMemoryInfoValue)) +func allocDeviceQueueGlobalPriorityCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceQueueGlobalPriorityCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBindBufferMemoryInfoValue = unsafe.Sizeof([1]C.VkBindBufferMemoryInfo{}) +const sizeOfDeviceQueueGlobalPriorityCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueGlobalPriorityCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindBufferMemoryInfo) Ref() *C.VkBindBufferMemoryInfo { +func (x *DeviceQueueGlobalPriorityCreateInfo) Ref() *C.VkDeviceQueueGlobalPriorityCreateInfoKHR { if x == nil { return nil } - return x.refd392322d + return x.refdf0afc28 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BindBufferMemoryInfo) Free() { - if x != nil && x.allocsd392322d != nil { - x.allocsd392322d.(*cgoAllocMap).Free() - x.refd392322d = nil +func (x *DeviceQueueGlobalPriorityCreateInfo) Free() { + if x != nil && x.allocsdf0afc28 != nil { + x.allocsdf0afc28.(*cgoAllocMap).Free() + x.refdf0afc28 = nil } } -// NewBindBufferMemoryInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceQueueGlobalPriorityCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBindBufferMemoryInfoRef(ref unsafe.Pointer) *BindBufferMemoryInfo { +func NewDeviceQueueGlobalPriorityCreateInfoRef(ref unsafe.Pointer) *DeviceQueueGlobalPriorityCreateInfo { if ref == nil { return nil } - obj := new(BindBufferMemoryInfo) - obj.refd392322d = (*C.VkBindBufferMemoryInfo)(unsafe.Pointer(ref)) + obj := new(DeviceQueueGlobalPriorityCreateInfo) + obj.refdf0afc28 = (*C.VkDeviceQueueGlobalPriorityCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BindBufferMemoryInfo) PassRef() (*C.VkBindBufferMemoryInfo, *cgoAllocMap) { +func (x *DeviceQueueGlobalPriorityCreateInfo) PassRef() (*C.VkDeviceQueueGlobalPriorityCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd392322d != nil { - return x.refd392322d, nil + } else if x.refdf0afc28 != nil { + return x.refdf0afc28, nil } - memd392322d := allocBindBufferMemoryInfoMemory(1) - refd392322d := (*C.VkBindBufferMemoryInfo)(memd392322d) - allocsd392322d := new(cgoAllocMap) - allocsd392322d.Add(memd392322d) + memdf0afc28 := allocDeviceQueueGlobalPriorityCreateInfoMemory(1) + refdf0afc28 := (*C.VkDeviceQueueGlobalPriorityCreateInfoKHR)(memdf0afc28) + allocsdf0afc28 := new(cgoAllocMap) + allocsdf0afc28.Add(memdf0afc28) var csType_allocs *cgoAllocMap - refd392322d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd392322d.Borrow(csType_allocs) + refdf0afc28.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdf0afc28.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd392322d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd392322d.Borrow(cpNext_allocs) + refdf0afc28.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdf0afc28.Borrow(cpNext_allocs) - var cbuffer_allocs *cgoAllocMap - refd392322d.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocsd392322d.Borrow(cbuffer_allocs) - - var cmemory_allocs *cgoAllocMap - refd392322d.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocsd392322d.Borrow(cmemory_allocs) - - var cmemoryOffset_allocs *cgoAllocMap - refd392322d.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown - allocsd392322d.Borrow(cmemoryOffset_allocs) + var cglobalPriority_allocs *cgoAllocMap + refdf0afc28.globalPriority, cglobalPriority_allocs = (C.VkQueueGlobalPriorityKHR)(x.GlobalPriority), cgoAllocsUnknown + allocsdf0afc28.Borrow(cglobalPriority_allocs) - x.refd392322d = refd392322d - x.allocsd392322d = allocsd392322d - return refd392322d, allocsd392322d + x.refdf0afc28 = refdf0afc28 + x.allocsdf0afc28 = allocsdf0afc28 + return refdf0afc28, allocsdf0afc28 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BindBufferMemoryInfo) PassValue() (C.VkBindBufferMemoryInfo, *cgoAllocMap) { - if x.refd392322d != nil { - return *x.refd392322d, nil +func (x DeviceQueueGlobalPriorityCreateInfo) PassValue() (C.VkDeviceQueueGlobalPriorityCreateInfoKHR, *cgoAllocMap) { + if x.refdf0afc28 != nil { + return *x.refdf0afc28, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13438,100 +40259,90 @@ func (x BindBufferMemoryInfo) PassValue() (C.VkBindBufferMemoryInfo, *cgoAllocMa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindBufferMemoryInfo) Deref() { - if x.refd392322d == nil { +func (x *DeviceQueueGlobalPriorityCreateInfo) Deref() { + if x.refdf0afc28 == nil { return } - x.SType = (StructureType)(x.refd392322d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd392322d.pNext)) - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refd392322d.buffer)) - x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.refd392322d.memory)) - x.MemoryOffset = (DeviceSize)(x.refd392322d.memoryOffset) + x.SType = (StructureType)(x.refdf0afc28.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdf0afc28.pNext)) + x.GlobalPriority = (QueueGlobalPriority)(x.refdf0afc28.globalPriority) } -// allocBindImageMemoryInfoMemory allocates memory for type C.VkBindImageMemoryInfo in C. +// allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory allocates memory for type C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocBindImageMemoryInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindImageMemoryInfoValue)) +func allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGlobalPriorityQueryFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBindImageMemoryInfoValue = unsafe.Sizeof([1]C.VkBindImageMemoryInfo{}) +const sizeOfPhysicalDeviceGlobalPriorityQueryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindImageMemoryInfo) Ref() *C.VkBindImageMemoryInfo { +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) Ref() *C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR { if x == nil { return nil } - return x.ref767a2113 + return x.refa6f56699 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BindImageMemoryInfo) Free() { - if x != nil && x.allocs767a2113 != nil { - x.allocs767a2113.(*cgoAllocMap).Free() - x.ref767a2113 = nil +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) Free() { + if x != nil && x.allocsa6f56699 != nil { + x.allocsa6f56699.(*cgoAllocMap).Free() + x.refa6f56699 = nil } } -// NewBindImageMemoryInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceGlobalPriorityQueryFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBindImageMemoryInfoRef(ref unsafe.Pointer) *BindImageMemoryInfo { +func NewPhysicalDeviceGlobalPriorityQueryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceGlobalPriorityQueryFeatures { if ref == nil { return nil } - obj := new(BindImageMemoryInfo) - obj.ref767a2113 = (*C.VkBindImageMemoryInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceGlobalPriorityQueryFeatures) + obj.refa6f56699 = (*C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BindImageMemoryInfo) PassRef() (*C.VkBindImageMemoryInfo, *cgoAllocMap) { +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) PassRef() (*C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref767a2113 != nil { - return x.ref767a2113, nil + } else if x.refa6f56699 != nil { + return x.refa6f56699, nil } - mem767a2113 := allocBindImageMemoryInfoMemory(1) - ref767a2113 := (*C.VkBindImageMemoryInfo)(mem767a2113) - allocs767a2113 := new(cgoAllocMap) - allocs767a2113.Add(mem767a2113) + mema6f56699 := allocPhysicalDeviceGlobalPriorityQueryFeaturesMemory(1) + refa6f56699 := (*C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR)(mema6f56699) + allocsa6f56699 := new(cgoAllocMap) + allocsa6f56699.Add(mema6f56699) var csType_allocs *cgoAllocMap - ref767a2113.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs767a2113.Borrow(csType_allocs) + refa6f56699.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa6f56699.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref767a2113.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs767a2113.Borrow(cpNext_allocs) - - var cimage_allocs *cgoAllocMap - ref767a2113.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs767a2113.Borrow(cimage_allocs) - - var cmemory_allocs *cgoAllocMap - ref767a2113.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocs767a2113.Borrow(cmemory_allocs) + refa6f56699.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa6f56699.Borrow(cpNext_allocs) - var cmemoryOffset_allocs *cgoAllocMap - ref767a2113.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown - allocs767a2113.Borrow(cmemoryOffset_allocs) + var cglobalPriorityQuery_allocs *cgoAllocMap + refa6f56699.globalPriorityQuery, cglobalPriorityQuery_allocs = (C.VkBool32)(x.GlobalPriorityQuery), cgoAllocsUnknown + allocsa6f56699.Borrow(cglobalPriorityQuery_allocs) - x.ref767a2113 = ref767a2113 - x.allocs767a2113 = allocs767a2113 - return ref767a2113, allocs767a2113 + x.refa6f56699 = refa6f56699 + x.allocsa6f56699 = allocsa6f56699 + return refa6f56699, allocsa6f56699 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BindImageMemoryInfo) PassValue() (C.VkBindImageMemoryInfo, *cgoAllocMap) { - if x.ref767a2113 != nil { - return *x.ref767a2113, nil +func (x PhysicalDeviceGlobalPriorityQueryFeatures) PassValue() (C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, *cgoAllocMap) { + if x.refa6f56699 != nil { + return *x.refa6f56699, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13539,104 +40350,94 @@ func (x BindImageMemoryInfo) PassValue() (C.VkBindImageMemoryInfo, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindImageMemoryInfo) Deref() { - if x.ref767a2113 == nil { +func (x *PhysicalDeviceGlobalPriorityQueryFeatures) Deref() { + if x.refa6f56699 == nil { return } - x.SType = (StructureType)(x.ref767a2113.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref767a2113.pNext)) - x.Image = *(*Image)(unsafe.Pointer(&x.ref767a2113.image)) - x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref767a2113.memory)) - x.MemoryOffset = (DeviceSize)(x.ref767a2113.memoryOffset) + x.SType = (StructureType)(x.refa6f56699.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa6f56699.pNext)) + x.GlobalPriorityQuery = (Bool32)(x.refa6f56699.globalPriorityQuery) } -// allocPhysicalDevice16BitStorageFeaturesMemory allocates memory for type C.VkPhysicalDevice16BitStorageFeatures in C. +// allocQueueFamilyGlobalPriorityPropertiesMemory allocates memory for type C.VkQueueFamilyGlobalPriorityPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevice16BitStorageFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevice16BitStorageFeaturesValue)) +func allocQueueFamilyGlobalPriorityPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyGlobalPriorityPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDevice16BitStorageFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevice16BitStorageFeatures{}) +const sizeOfQueueFamilyGlobalPriorityPropertiesValue = unsafe.Sizeof([1]C.VkQueueFamilyGlobalPriorityPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevice16BitStorageFeatures) Ref() *C.VkPhysicalDevice16BitStorageFeatures { +func (x *QueueFamilyGlobalPriorityProperties) Ref() *C.VkQueueFamilyGlobalPriorityPropertiesKHR { if x == nil { return nil } - return x.refa90fed14 + return x.reff5bb6c4d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDevice16BitStorageFeatures) Free() { - if x != nil && x.allocsa90fed14 != nil { - x.allocsa90fed14.(*cgoAllocMap).Free() - x.refa90fed14 = nil +func (x *QueueFamilyGlobalPriorityProperties) Free() { + if x != nil && x.allocsf5bb6c4d != nil { + x.allocsf5bb6c4d.(*cgoAllocMap).Free() + x.reff5bb6c4d = nil } } -// NewPhysicalDevice16BitStorageFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewQueueFamilyGlobalPriorityPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDevice16BitStorageFeaturesRef(ref unsafe.Pointer) *PhysicalDevice16BitStorageFeatures { +func NewQueueFamilyGlobalPriorityPropertiesRef(ref unsafe.Pointer) *QueueFamilyGlobalPriorityProperties { if ref == nil { return nil } - obj := new(PhysicalDevice16BitStorageFeatures) - obj.refa90fed14 = (*C.VkPhysicalDevice16BitStorageFeatures)(unsafe.Pointer(ref)) + obj := new(QueueFamilyGlobalPriorityProperties) + obj.reff5bb6c4d = (*C.VkQueueFamilyGlobalPriorityPropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDevice16BitStorageFeatures) PassRef() (*C.VkPhysicalDevice16BitStorageFeatures, *cgoAllocMap) { +func (x *QueueFamilyGlobalPriorityProperties) PassRef() (*C.VkQueueFamilyGlobalPriorityPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa90fed14 != nil { - return x.refa90fed14, nil + } else if x.reff5bb6c4d != nil { + return x.reff5bb6c4d, nil } - mema90fed14 := allocPhysicalDevice16BitStorageFeaturesMemory(1) - refa90fed14 := (*C.VkPhysicalDevice16BitStorageFeatures)(mema90fed14) - allocsa90fed14 := new(cgoAllocMap) - allocsa90fed14.Add(mema90fed14) + memf5bb6c4d := allocQueueFamilyGlobalPriorityPropertiesMemory(1) + reff5bb6c4d := (*C.VkQueueFamilyGlobalPriorityPropertiesKHR)(memf5bb6c4d) + allocsf5bb6c4d := new(cgoAllocMap) + allocsf5bb6c4d.Add(memf5bb6c4d) var csType_allocs *cgoAllocMap - refa90fed14.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa90fed14.Borrow(csType_allocs) + reff5bb6c4d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa90fed14.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa90fed14.Borrow(cpNext_allocs) - - var cstorageBuffer16BitAccess_allocs *cgoAllocMap - refa90fed14.storageBuffer16BitAccess, cstorageBuffer16BitAccess_allocs = (C.VkBool32)(x.StorageBuffer16BitAccess), cgoAllocsUnknown - allocsa90fed14.Borrow(cstorageBuffer16BitAccess_allocs) + reff5bb6c4d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(cpNext_allocs) - var cuniformAndStorageBuffer16BitAccess_allocs *cgoAllocMap - refa90fed14.uniformAndStorageBuffer16BitAccess, cuniformAndStorageBuffer16BitAccess_allocs = (C.VkBool32)(x.UniformAndStorageBuffer16BitAccess), cgoAllocsUnknown - allocsa90fed14.Borrow(cuniformAndStorageBuffer16BitAccess_allocs) - - var cstoragePushConstant16_allocs *cgoAllocMap - refa90fed14.storagePushConstant16, cstoragePushConstant16_allocs = (C.VkBool32)(x.StoragePushConstant16), cgoAllocsUnknown - allocsa90fed14.Borrow(cstoragePushConstant16_allocs) + var cpriorityCount_allocs *cgoAllocMap + reff5bb6c4d.priorityCount, cpriorityCount_allocs = (C.uint32_t)(x.PriorityCount), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(cpriorityCount_allocs) - var cstorageInputOutput16_allocs *cgoAllocMap - refa90fed14.storageInputOutput16, cstorageInputOutput16_allocs = (C.VkBool32)(x.StorageInputOutput16), cgoAllocsUnknown - allocsa90fed14.Borrow(cstorageInputOutput16_allocs) + var cpriorities_allocs *cgoAllocMap + reff5bb6c4d.priorities, cpriorities_allocs = *(*[16]C.VkQueueGlobalPriorityKHR)(unsafe.Pointer(&x.Priorities)), cgoAllocsUnknown + allocsf5bb6c4d.Borrow(cpriorities_allocs) - x.refa90fed14 = refa90fed14 - x.allocsa90fed14 = allocsa90fed14 - return refa90fed14, allocsa90fed14 + x.reff5bb6c4d = reff5bb6c4d + x.allocsf5bb6c4d = allocsf5bb6c4d + return reff5bb6c4d, allocsf5bb6c4d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDevice16BitStorageFeatures) PassValue() (C.VkPhysicalDevice16BitStorageFeatures, *cgoAllocMap) { - if x.refa90fed14 != nil { - return *x.refa90fed14, nil +func (x QueueFamilyGlobalPriorityProperties) PassValue() (C.VkQueueFamilyGlobalPriorityPropertiesKHR, *cgoAllocMap) { + if x.reff5bb6c4d != nil { + return *x.reff5bb6c4d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13644,97 +40445,95 @@ func (x PhysicalDevice16BitStorageFeatures) PassValue() (C.VkPhysicalDevice16Bit // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDevice16BitStorageFeatures) Deref() { - if x.refa90fed14 == nil { +func (x *QueueFamilyGlobalPriorityProperties) Deref() { + if x.reff5bb6c4d == nil { return } - x.SType = (StructureType)(x.refa90fed14.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa90fed14.pNext)) - x.StorageBuffer16BitAccess = (Bool32)(x.refa90fed14.storageBuffer16BitAccess) - x.UniformAndStorageBuffer16BitAccess = (Bool32)(x.refa90fed14.uniformAndStorageBuffer16BitAccess) - x.StoragePushConstant16 = (Bool32)(x.refa90fed14.storagePushConstant16) - x.StorageInputOutput16 = (Bool32)(x.refa90fed14.storageInputOutput16) + x.SType = (StructureType)(x.reff5bb6c4d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff5bb6c4d.pNext)) + x.PriorityCount = (uint32)(x.reff5bb6c4d.priorityCount) + x.Priorities = *(*[16]QueueGlobalPriority)(unsafe.Pointer(&x.reff5bb6c4d.priorities)) } -// allocMemoryDedicatedRequirementsMemory allocates memory for type C.VkMemoryDedicatedRequirements in C. +// allocFragmentShadingRateAttachmentInfoMemory allocates memory for type C.VkFragmentShadingRateAttachmentInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryDedicatedRequirementsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryDedicatedRequirementsValue)) +func allocFragmentShadingRateAttachmentInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFragmentShadingRateAttachmentInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryDedicatedRequirementsValue = unsafe.Sizeof([1]C.VkMemoryDedicatedRequirements{}) +const sizeOfFragmentShadingRateAttachmentInfoValue = unsafe.Sizeof([1]C.VkFragmentShadingRateAttachmentInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryDedicatedRequirements) Ref() *C.VkMemoryDedicatedRequirements { +func (x *FragmentShadingRateAttachmentInfo) Ref() *C.VkFragmentShadingRateAttachmentInfoKHR { if x == nil { return nil } - return x.refaa924122 + return x.refd9f9d390 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryDedicatedRequirements) Free() { - if x != nil && x.allocsaa924122 != nil { - x.allocsaa924122.(*cgoAllocMap).Free() - x.refaa924122 = nil +func (x *FragmentShadingRateAttachmentInfo) Free() { + if x != nil && x.allocsd9f9d390 != nil { + x.allocsd9f9d390.(*cgoAllocMap).Free() + x.refd9f9d390 = nil } } -// NewMemoryDedicatedRequirementsRef creates a new wrapper struct with underlying reference set to the original C object. +// NewFragmentShadingRateAttachmentInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryDedicatedRequirementsRef(ref unsafe.Pointer) *MemoryDedicatedRequirements { +func NewFragmentShadingRateAttachmentInfoRef(ref unsafe.Pointer) *FragmentShadingRateAttachmentInfo { if ref == nil { return nil } - obj := new(MemoryDedicatedRequirements) - obj.refaa924122 = (*C.VkMemoryDedicatedRequirements)(unsafe.Pointer(ref)) + obj := new(FragmentShadingRateAttachmentInfo) + obj.refd9f9d390 = (*C.VkFragmentShadingRateAttachmentInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryDedicatedRequirements) PassRef() (*C.VkMemoryDedicatedRequirements, *cgoAllocMap) { +func (x *FragmentShadingRateAttachmentInfo) PassRef() (*C.VkFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaa924122 != nil { - return x.refaa924122, nil + } else if x.refd9f9d390 != nil { + return x.refd9f9d390, nil } - memaa924122 := allocMemoryDedicatedRequirementsMemory(1) - refaa924122 := (*C.VkMemoryDedicatedRequirements)(memaa924122) - allocsaa924122 := new(cgoAllocMap) - allocsaa924122.Add(memaa924122) + memd9f9d390 := allocFragmentShadingRateAttachmentInfoMemory(1) + refd9f9d390 := (*C.VkFragmentShadingRateAttachmentInfoKHR)(memd9f9d390) + allocsd9f9d390 := new(cgoAllocMap) + allocsd9f9d390.Add(memd9f9d390) var csType_allocs *cgoAllocMap - refaa924122.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsaa924122.Borrow(csType_allocs) + refd9f9d390.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd9f9d390.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refaa924122.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsaa924122.Borrow(cpNext_allocs) + refd9f9d390.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd9f9d390.Borrow(cpNext_allocs) - var cprefersDedicatedAllocation_allocs *cgoAllocMap - refaa924122.prefersDedicatedAllocation, cprefersDedicatedAllocation_allocs = (C.VkBool32)(x.PrefersDedicatedAllocation), cgoAllocsUnknown - allocsaa924122.Borrow(cprefersDedicatedAllocation_allocs) + var cpFragmentShadingRateAttachment_allocs *cgoAllocMap + refd9f9d390.pFragmentShadingRateAttachment, cpFragmentShadingRateAttachment_allocs = unpackSAttachmentReference2(x.PFragmentShadingRateAttachment) + allocsd9f9d390.Borrow(cpFragmentShadingRateAttachment_allocs) - var crequiresDedicatedAllocation_allocs *cgoAllocMap - refaa924122.requiresDedicatedAllocation, crequiresDedicatedAllocation_allocs = (C.VkBool32)(x.RequiresDedicatedAllocation), cgoAllocsUnknown - allocsaa924122.Borrow(crequiresDedicatedAllocation_allocs) + var cshadingRateAttachmentTexelSize_allocs *cgoAllocMap + refd9f9d390.shadingRateAttachmentTexelSize, cshadingRateAttachmentTexelSize_allocs = x.ShadingRateAttachmentTexelSize.PassValue() + allocsd9f9d390.Borrow(cshadingRateAttachmentTexelSize_allocs) - x.refaa924122 = refaa924122 - x.allocsaa924122 = allocsaa924122 - return refaa924122, allocsaa924122 + x.refd9f9d390 = refd9f9d390 + x.allocsd9f9d390 = allocsd9f9d390 + return refd9f9d390, allocsd9f9d390 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryDedicatedRequirements) PassValue() (C.VkMemoryDedicatedRequirements, *cgoAllocMap) { - if x.refaa924122 != nil { - return *x.refaa924122, nil +func (x FragmentShadingRateAttachmentInfo) PassValue() (C.VkFragmentShadingRateAttachmentInfoKHR, *cgoAllocMap) { + if x.refd9f9d390 != nil { + return *x.refd9f9d390, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13742,95 +40541,95 @@ func (x MemoryDedicatedRequirements) PassValue() (C.VkMemoryDedicatedRequirement // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryDedicatedRequirements) Deref() { - if x.refaa924122 == nil { +func (x *FragmentShadingRateAttachmentInfo) Deref() { + if x.refd9f9d390 == nil { return } - x.SType = (StructureType)(x.refaa924122.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaa924122.pNext)) - x.PrefersDedicatedAllocation = (Bool32)(x.refaa924122.prefersDedicatedAllocation) - x.RequiresDedicatedAllocation = (Bool32)(x.refaa924122.requiresDedicatedAllocation) + x.SType = (StructureType)(x.refd9f9d390.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd9f9d390.pNext)) + packSAttachmentReference2(x.PFragmentShadingRateAttachment, x.refd9f9d390.pFragmentShadingRateAttachment) + x.ShadingRateAttachmentTexelSize = *NewExtent2DRef(unsafe.Pointer(&x.refd9f9d390.shadingRateAttachmentTexelSize)) } -// allocMemoryDedicatedAllocateInfoMemory allocates memory for type C.VkMemoryDedicatedAllocateInfo in C. +// allocPipelineFragmentShadingRateStateCreateInfoMemory allocates memory for type C.VkPipelineFragmentShadingRateStateCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryDedicatedAllocateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryDedicatedAllocateInfoValue)) +func allocPipelineFragmentShadingRateStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineFragmentShadingRateStateCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryDedicatedAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryDedicatedAllocateInfo{}) +const sizeOfPipelineFragmentShadingRateStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineFragmentShadingRateStateCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryDedicatedAllocateInfo) Ref() *C.VkMemoryDedicatedAllocateInfo { +func (x *PipelineFragmentShadingRateStateCreateInfo) Ref() *C.VkPipelineFragmentShadingRateStateCreateInfoKHR { if x == nil { return nil } - return x.reff8fabe62 + return x.ref47a79f27 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryDedicatedAllocateInfo) Free() { - if x != nil && x.allocsf8fabe62 != nil { - x.allocsf8fabe62.(*cgoAllocMap).Free() - x.reff8fabe62 = nil +func (x *PipelineFragmentShadingRateStateCreateInfo) Free() { + if x != nil && x.allocs47a79f27 != nil { + x.allocs47a79f27.(*cgoAllocMap).Free() + x.ref47a79f27 = nil } } -// NewMemoryDedicatedAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineFragmentShadingRateStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryDedicatedAllocateInfoRef(ref unsafe.Pointer) *MemoryDedicatedAllocateInfo { +func NewPipelineFragmentShadingRateStateCreateInfoRef(ref unsafe.Pointer) *PipelineFragmentShadingRateStateCreateInfo { if ref == nil { return nil } - obj := new(MemoryDedicatedAllocateInfo) - obj.reff8fabe62 = (*C.VkMemoryDedicatedAllocateInfo)(unsafe.Pointer(ref)) + obj := new(PipelineFragmentShadingRateStateCreateInfo) + obj.ref47a79f27 = (*C.VkPipelineFragmentShadingRateStateCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryDedicatedAllocateInfo) PassRef() (*C.VkMemoryDedicatedAllocateInfo, *cgoAllocMap) { +func (x *PipelineFragmentShadingRateStateCreateInfo) PassRef() (*C.VkPipelineFragmentShadingRateStateCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff8fabe62 != nil { - return x.reff8fabe62, nil + } else if x.ref47a79f27 != nil { + return x.ref47a79f27, nil } - memf8fabe62 := allocMemoryDedicatedAllocateInfoMemory(1) - reff8fabe62 := (*C.VkMemoryDedicatedAllocateInfo)(memf8fabe62) - allocsf8fabe62 := new(cgoAllocMap) - allocsf8fabe62.Add(memf8fabe62) + mem47a79f27 := allocPipelineFragmentShadingRateStateCreateInfoMemory(1) + ref47a79f27 := (*C.VkPipelineFragmentShadingRateStateCreateInfoKHR)(mem47a79f27) + allocs47a79f27 := new(cgoAllocMap) + allocs47a79f27.Add(mem47a79f27) var csType_allocs *cgoAllocMap - reff8fabe62.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf8fabe62.Borrow(csType_allocs) + ref47a79f27.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs47a79f27.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff8fabe62.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf8fabe62.Borrow(cpNext_allocs) + ref47a79f27.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs47a79f27.Borrow(cpNext_allocs) - var cimage_allocs *cgoAllocMap - reff8fabe62.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocsf8fabe62.Borrow(cimage_allocs) + var cfragmentSize_allocs *cgoAllocMap + ref47a79f27.fragmentSize, cfragmentSize_allocs = x.FragmentSize.PassValue() + allocs47a79f27.Borrow(cfragmentSize_allocs) - var cbuffer_allocs *cgoAllocMap - reff8fabe62.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocsf8fabe62.Borrow(cbuffer_allocs) + var ccombinerOps_allocs *cgoAllocMap + ref47a79f27.combinerOps, ccombinerOps_allocs = *(*[2]C.VkFragmentShadingRateCombinerOpKHR)(unsafe.Pointer(&x.CombinerOps)), cgoAllocsUnknown + allocs47a79f27.Borrow(ccombinerOps_allocs) - x.reff8fabe62 = reff8fabe62 - x.allocsf8fabe62 = allocsf8fabe62 - return reff8fabe62, allocsf8fabe62 + x.ref47a79f27 = ref47a79f27 + x.allocs47a79f27 = allocs47a79f27 + return ref47a79f27, allocs47a79f27 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryDedicatedAllocateInfo) PassValue() (C.VkMemoryDedicatedAllocateInfo, *cgoAllocMap) { - if x.reff8fabe62 != nil { - return *x.reff8fabe62, nil +func (x PipelineFragmentShadingRateStateCreateInfo) PassValue() (C.VkPipelineFragmentShadingRateStateCreateInfoKHR, *cgoAllocMap) { + if x.ref47a79f27 != nil { + return *x.ref47a79f27, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13838,95 +40637,99 @@ func (x MemoryDedicatedAllocateInfo) PassValue() (C.VkMemoryDedicatedAllocateInf // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryDedicatedAllocateInfo) Deref() { - if x.reff8fabe62 == nil { +func (x *PipelineFragmentShadingRateStateCreateInfo) Deref() { + if x.ref47a79f27 == nil { return } - x.SType = (StructureType)(x.reff8fabe62.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff8fabe62.pNext)) - x.Image = *(*Image)(unsafe.Pointer(&x.reff8fabe62.image)) - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.reff8fabe62.buffer)) + x.SType = (StructureType)(x.ref47a79f27.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref47a79f27.pNext)) + x.FragmentSize = *NewExtent2DRef(unsafe.Pointer(&x.ref47a79f27.fragmentSize)) + x.CombinerOps = *(*[2]FragmentShadingRateCombinerOp)(unsafe.Pointer(&x.ref47a79f27.combinerOps)) } -// allocMemoryAllocateFlagsInfoMemory allocates memory for type C.VkMemoryAllocateFlagsInfo in C. +// allocPhysicalDeviceFragmentShadingRateFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryAllocateFlagsInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryAllocateFlagsInfoValue)) +func allocPhysicalDeviceFragmentShadingRateFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryAllocateFlagsInfoValue = unsafe.Sizeof([1]C.VkMemoryAllocateFlagsInfo{}) +const sizeOfPhysicalDeviceFragmentShadingRateFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryAllocateFlagsInfo) Ref() *C.VkMemoryAllocateFlagsInfo { +func (x *PhysicalDeviceFragmentShadingRateFeatures) Ref() *C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR { if x == nil { return nil } - return x.ref7ca6664 + return x.ref9041f272 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryAllocateFlagsInfo) Free() { - if x != nil && x.allocs7ca6664 != nil { - x.allocs7ca6664.(*cgoAllocMap).Free() - x.ref7ca6664 = nil +func (x *PhysicalDeviceFragmentShadingRateFeatures) Free() { + if x != nil && x.allocs9041f272 != nil { + x.allocs9041f272.(*cgoAllocMap).Free() + x.ref9041f272 = nil } } -// NewMemoryAllocateFlagsInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentShadingRateFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryAllocateFlagsInfoRef(ref unsafe.Pointer) *MemoryAllocateFlagsInfo { +func NewPhysicalDeviceFragmentShadingRateFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateFeatures { if ref == nil { return nil } - obj := new(MemoryAllocateFlagsInfo) - obj.ref7ca6664 = (*C.VkMemoryAllocateFlagsInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentShadingRateFeatures) + obj.ref9041f272 = (*C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryAllocateFlagsInfo) PassRef() (*C.VkMemoryAllocateFlagsInfo, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRateFeatures) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7ca6664 != nil { - return x.ref7ca6664, nil + } else if x.ref9041f272 != nil { + return x.ref9041f272, nil } - mem7ca6664 := allocMemoryAllocateFlagsInfoMemory(1) - ref7ca6664 := (*C.VkMemoryAllocateFlagsInfo)(mem7ca6664) - allocs7ca6664 := new(cgoAllocMap) - allocs7ca6664.Add(mem7ca6664) + mem9041f272 := allocPhysicalDeviceFragmentShadingRateFeaturesMemory(1) + ref9041f272 := (*C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR)(mem9041f272) + allocs9041f272 := new(cgoAllocMap) + allocs9041f272.Add(mem9041f272) var csType_allocs *cgoAllocMap - ref7ca6664.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7ca6664.Borrow(csType_allocs) + ref9041f272.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9041f272.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7ca6664.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7ca6664.Borrow(cpNext_allocs) + ref9041f272.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9041f272.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref7ca6664.flags, cflags_allocs = (C.VkMemoryAllocateFlags)(x.Flags), cgoAllocsUnknown - allocs7ca6664.Borrow(cflags_allocs) + var cpipelineFragmentShadingRate_allocs *cgoAllocMap + ref9041f272.pipelineFragmentShadingRate, cpipelineFragmentShadingRate_allocs = (C.VkBool32)(x.PipelineFragmentShadingRate), cgoAllocsUnknown + allocs9041f272.Borrow(cpipelineFragmentShadingRate_allocs) - var cdeviceMask_allocs *cgoAllocMap - ref7ca6664.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown - allocs7ca6664.Borrow(cdeviceMask_allocs) + var cprimitiveFragmentShadingRate_allocs *cgoAllocMap + ref9041f272.primitiveFragmentShadingRate, cprimitiveFragmentShadingRate_allocs = (C.VkBool32)(x.PrimitiveFragmentShadingRate), cgoAllocsUnknown + allocs9041f272.Borrow(cprimitiveFragmentShadingRate_allocs) - x.ref7ca6664 = ref7ca6664 - x.allocs7ca6664 = allocs7ca6664 - return ref7ca6664, allocs7ca6664 + var cattachmentFragmentShadingRate_allocs *cgoAllocMap + ref9041f272.attachmentFragmentShadingRate, cattachmentFragmentShadingRate_allocs = (C.VkBool32)(x.AttachmentFragmentShadingRate), cgoAllocsUnknown + allocs9041f272.Borrow(cattachmentFragmentShadingRate_allocs) + + x.ref9041f272 = ref9041f272 + x.allocs9041f272 = allocs9041f272 + return ref9041f272, allocs9041f272 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryAllocateFlagsInfo) PassValue() (C.VkMemoryAllocateFlagsInfo, *cgoAllocMap) { - if x.ref7ca6664 != nil { - return *x.ref7ca6664, nil +func (x PhysicalDeviceFragmentShadingRateFeatures) PassValue() (C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR, *cgoAllocMap) { + if x.ref9041f272 != nil { + return *x.ref9041f272, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -13934,99 +40737,156 @@ func (x MemoryAllocateFlagsInfo) PassValue() (C.VkMemoryAllocateFlagsInfo, *cgoA // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryAllocateFlagsInfo) Deref() { - if x.ref7ca6664 == nil { +func (x *PhysicalDeviceFragmentShadingRateFeatures) Deref() { + if x.ref9041f272 == nil { return } - x.SType = (StructureType)(x.ref7ca6664.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7ca6664.pNext)) - x.Flags = (MemoryAllocateFlags)(x.ref7ca6664.flags) - x.DeviceMask = (uint32)(x.ref7ca6664.deviceMask) + x.SType = (StructureType)(x.ref9041f272.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9041f272.pNext)) + x.PipelineFragmentShadingRate = (Bool32)(x.ref9041f272.pipelineFragmentShadingRate) + x.PrimitiveFragmentShadingRate = (Bool32)(x.ref9041f272.primitiveFragmentShadingRate) + x.AttachmentFragmentShadingRate = (Bool32)(x.ref9041f272.attachmentFragmentShadingRate) } -// allocDeviceGroupRenderPassBeginInfoMemory allocates memory for type C.VkDeviceGroupRenderPassBeginInfo in C. +// allocPhysicalDeviceFragmentShadingRatePropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceGroupRenderPassBeginInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupRenderPassBeginInfoValue)) +func allocPhysicalDeviceFragmentShadingRatePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRatePropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceGroupRenderPassBeginInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupRenderPassBeginInfo{}) +const sizeOfPhysicalDeviceFragmentShadingRatePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupRenderPassBeginInfo) Ref() *C.VkDeviceGroupRenderPassBeginInfo { +func (x *PhysicalDeviceFragmentShadingRateProperties) Ref() *C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR { if x == nil { return nil } - return x.ref139f3599 + return x.ref518beb } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceGroupRenderPassBeginInfo) Free() { - if x != nil && x.allocs139f3599 != nil { - x.allocs139f3599.(*cgoAllocMap).Free() - x.ref139f3599 = nil +func (x *PhysicalDeviceFragmentShadingRateProperties) Free() { + if x != nil && x.allocs518beb != nil { + x.allocs518beb.(*cgoAllocMap).Free() + x.ref518beb = nil } } -// NewDeviceGroupRenderPassBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentShadingRatePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceGroupRenderPassBeginInfoRef(ref unsafe.Pointer) *DeviceGroupRenderPassBeginInfo { +func NewPhysicalDeviceFragmentShadingRatePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateProperties { if ref == nil { return nil } - obj := new(DeviceGroupRenderPassBeginInfo) - obj.ref139f3599 = (*C.VkDeviceGroupRenderPassBeginInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentShadingRateProperties) + obj.ref518beb = (*C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceGroupRenderPassBeginInfo) PassRef() (*C.VkDeviceGroupRenderPassBeginInfo, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRateProperties) PassRef() (*C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref139f3599 != nil { - return x.ref139f3599, nil + } else if x.ref518beb != nil { + return x.ref518beb, nil } - mem139f3599 := allocDeviceGroupRenderPassBeginInfoMemory(1) - ref139f3599 := (*C.VkDeviceGroupRenderPassBeginInfo)(mem139f3599) - allocs139f3599 := new(cgoAllocMap) - allocs139f3599.Add(mem139f3599) + mem518beb := allocPhysicalDeviceFragmentShadingRatePropertiesMemory(1) + ref518beb := (*C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR)(mem518beb) + allocs518beb := new(cgoAllocMap) + allocs518beb.Add(mem518beb) var csType_allocs *cgoAllocMap - ref139f3599.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs139f3599.Borrow(csType_allocs) + ref518beb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs518beb.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref139f3599.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs139f3599.Borrow(cpNext_allocs) + ref518beb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs518beb.Borrow(cpNext_allocs) - var cdeviceMask_allocs *cgoAllocMap - ref139f3599.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown - allocs139f3599.Borrow(cdeviceMask_allocs) + var cminFragmentShadingRateAttachmentTexelSize_allocs *cgoAllocMap + ref518beb.minFragmentShadingRateAttachmentTexelSize, cminFragmentShadingRateAttachmentTexelSize_allocs = x.MinFragmentShadingRateAttachmentTexelSize.PassValue() + allocs518beb.Borrow(cminFragmentShadingRateAttachmentTexelSize_allocs) - var cdeviceRenderAreaCount_allocs *cgoAllocMap - ref139f3599.deviceRenderAreaCount, cdeviceRenderAreaCount_allocs = (C.uint32_t)(x.DeviceRenderAreaCount), cgoAllocsUnknown - allocs139f3599.Borrow(cdeviceRenderAreaCount_allocs) + var cmaxFragmentShadingRateAttachmentTexelSize_allocs *cgoAllocMap + ref518beb.maxFragmentShadingRateAttachmentTexelSize, cmaxFragmentShadingRateAttachmentTexelSize_allocs = x.MaxFragmentShadingRateAttachmentTexelSize.PassValue() + allocs518beb.Borrow(cmaxFragmentShadingRateAttachmentTexelSize_allocs) - var cpDeviceRenderAreas_allocs *cgoAllocMap - ref139f3599.pDeviceRenderAreas, cpDeviceRenderAreas_allocs = unpackSRect2D(x.PDeviceRenderAreas) - allocs139f3599.Borrow(cpDeviceRenderAreas_allocs) + var cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs *cgoAllocMap + ref518beb.maxFragmentShadingRateAttachmentTexelSizeAspectRatio, cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs = (C.uint32_t)(x.MaxFragmentShadingRateAttachmentTexelSizeAspectRatio), cgoAllocsUnknown + allocs518beb.Borrow(cmaxFragmentShadingRateAttachmentTexelSizeAspectRatio_allocs) - x.ref139f3599 = ref139f3599 - x.allocs139f3599 = allocs139f3599 - return ref139f3599, allocs139f3599 + var cprimitiveFragmentShadingRateWithMultipleViewports_allocs *cgoAllocMap + ref518beb.primitiveFragmentShadingRateWithMultipleViewports, cprimitiveFragmentShadingRateWithMultipleViewports_allocs = (C.VkBool32)(x.PrimitiveFragmentShadingRateWithMultipleViewports), cgoAllocsUnknown + allocs518beb.Borrow(cprimitiveFragmentShadingRateWithMultipleViewports_allocs) + + var clayeredShadingRateAttachments_allocs *cgoAllocMap + ref518beb.layeredShadingRateAttachments, clayeredShadingRateAttachments_allocs = (C.VkBool32)(x.LayeredShadingRateAttachments), cgoAllocsUnknown + allocs518beb.Borrow(clayeredShadingRateAttachments_allocs) + + var cfragmentShadingRateNonTrivialCombinerOps_allocs *cgoAllocMap + ref518beb.fragmentShadingRateNonTrivialCombinerOps, cfragmentShadingRateNonTrivialCombinerOps_allocs = (C.VkBool32)(x.FragmentShadingRateNonTrivialCombinerOps), cgoAllocsUnknown + allocs518beb.Borrow(cfragmentShadingRateNonTrivialCombinerOps_allocs) + + var cmaxFragmentSize_allocs *cgoAllocMap + ref518beb.maxFragmentSize, cmaxFragmentSize_allocs = x.MaxFragmentSize.PassValue() + allocs518beb.Borrow(cmaxFragmentSize_allocs) + + var cmaxFragmentSizeAspectRatio_allocs *cgoAllocMap + ref518beb.maxFragmentSizeAspectRatio, cmaxFragmentSizeAspectRatio_allocs = (C.uint32_t)(x.MaxFragmentSizeAspectRatio), cgoAllocsUnknown + allocs518beb.Borrow(cmaxFragmentSizeAspectRatio_allocs) + + var cmaxFragmentShadingRateCoverageSamples_allocs *cgoAllocMap + ref518beb.maxFragmentShadingRateCoverageSamples, cmaxFragmentShadingRateCoverageSamples_allocs = (C.uint32_t)(x.MaxFragmentShadingRateCoverageSamples), cgoAllocsUnknown + allocs518beb.Borrow(cmaxFragmentShadingRateCoverageSamples_allocs) + + var cmaxFragmentShadingRateRasterizationSamples_allocs *cgoAllocMap + ref518beb.maxFragmentShadingRateRasterizationSamples, cmaxFragmentShadingRateRasterizationSamples_allocs = (C.VkSampleCountFlagBits)(x.MaxFragmentShadingRateRasterizationSamples), cgoAllocsUnknown + allocs518beb.Borrow(cmaxFragmentShadingRateRasterizationSamples_allocs) + + var cfragmentShadingRateWithShaderDepthStencilWrites_allocs *cgoAllocMap + ref518beb.fragmentShadingRateWithShaderDepthStencilWrites, cfragmentShadingRateWithShaderDepthStencilWrites_allocs = (C.VkBool32)(x.FragmentShadingRateWithShaderDepthStencilWrites), cgoAllocsUnknown + allocs518beb.Borrow(cfragmentShadingRateWithShaderDepthStencilWrites_allocs) + + var cfragmentShadingRateWithSampleMask_allocs *cgoAllocMap + ref518beb.fragmentShadingRateWithSampleMask, cfragmentShadingRateWithSampleMask_allocs = (C.VkBool32)(x.FragmentShadingRateWithSampleMask), cgoAllocsUnknown + allocs518beb.Borrow(cfragmentShadingRateWithSampleMask_allocs) + + var cfragmentShadingRateWithShaderSampleMask_allocs *cgoAllocMap + ref518beb.fragmentShadingRateWithShaderSampleMask, cfragmentShadingRateWithShaderSampleMask_allocs = (C.VkBool32)(x.FragmentShadingRateWithShaderSampleMask), cgoAllocsUnknown + allocs518beb.Borrow(cfragmentShadingRateWithShaderSampleMask_allocs) + + var cfragmentShadingRateWithConservativeRasterization_allocs *cgoAllocMap + ref518beb.fragmentShadingRateWithConservativeRasterization, cfragmentShadingRateWithConservativeRasterization_allocs = (C.VkBool32)(x.FragmentShadingRateWithConservativeRasterization), cgoAllocsUnknown + allocs518beb.Borrow(cfragmentShadingRateWithConservativeRasterization_allocs) + + var cfragmentShadingRateWithFragmentShaderInterlock_allocs *cgoAllocMap + ref518beb.fragmentShadingRateWithFragmentShaderInterlock, cfragmentShadingRateWithFragmentShaderInterlock_allocs = (C.VkBool32)(x.FragmentShadingRateWithFragmentShaderInterlock), cgoAllocsUnknown + allocs518beb.Borrow(cfragmentShadingRateWithFragmentShaderInterlock_allocs) + + var cfragmentShadingRateWithCustomSampleLocations_allocs *cgoAllocMap + ref518beb.fragmentShadingRateWithCustomSampleLocations, cfragmentShadingRateWithCustomSampleLocations_allocs = (C.VkBool32)(x.FragmentShadingRateWithCustomSampleLocations), cgoAllocsUnknown + allocs518beb.Borrow(cfragmentShadingRateWithCustomSampleLocations_allocs) + + var cfragmentShadingRateStrictMultiplyCombiner_allocs *cgoAllocMap + ref518beb.fragmentShadingRateStrictMultiplyCombiner, cfragmentShadingRateStrictMultiplyCombiner_allocs = (C.VkBool32)(x.FragmentShadingRateStrictMultiplyCombiner), cgoAllocsUnknown + allocs518beb.Borrow(cfragmentShadingRateStrictMultiplyCombiner_allocs) + + x.ref518beb = ref518beb + x.allocs518beb = allocs518beb + return ref518beb, allocs518beb } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceGroupRenderPassBeginInfo) PassValue() (C.VkDeviceGroupRenderPassBeginInfo, *cgoAllocMap) { - if x.ref139f3599 != nil { - return *x.ref139f3599, nil +func (x PhysicalDeviceFragmentShadingRateProperties) PassValue() (C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR, *cgoAllocMap) { + if x.ref518beb != nil { + return *x.ref518beb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14034,92 +40894,110 @@ func (x DeviceGroupRenderPassBeginInfo) PassValue() (C.VkDeviceGroupRenderPassBe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceGroupRenderPassBeginInfo) Deref() { - if x.ref139f3599 == nil { +func (x *PhysicalDeviceFragmentShadingRateProperties) Deref() { + if x.ref518beb == nil { return } - x.SType = (StructureType)(x.ref139f3599.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref139f3599.pNext)) - x.DeviceMask = (uint32)(x.ref139f3599.deviceMask) - x.DeviceRenderAreaCount = (uint32)(x.ref139f3599.deviceRenderAreaCount) - packSRect2D(x.PDeviceRenderAreas, x.ref139f3599.pDeviceRenderAreas) -} - -// allocDeviceGroupCommandBufferBeginInfoMemory allocates memory for type C.VkDeviceGroupCommandBufferBeginInfo in C. + x.SType = (StructureType)(x.ref518beb.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref518beb.pNext)) + x.MinFragmentShadingRateAttachmentTexelSize = *NewExtent2DRef(unsafe.Pointer(&x.ref518beb.minFragmentShadingRateAttachmentTexelSize)) + x.MaxFragmentShadingRateAttachmentTexelSize = *NewExtent2DRef(unsafe.Pointer(&x.ref518beb.maxFragmentShadingRateAttachmentTexelSize)) + x.MaxFragmentShadingRateAttachmentTexelSizeAspectRatio = (uint32)(x.ref518beb.maxFragmentShadingRateAttachmentTexelSizeAspectRatio) + x.PrimitiveFragmentShadingRateWithMultipleViewports = (Bool32)(x.ref518beb.primitiveFragmentShadingRateWithMultipleViewports) + x.LayeredShadingRateAttachments = (Bool32)(x.ref518beb.layeredShadingRateAttachments) + x.FragmentShadingRateNonTrivialCombinerOps = (Bool32)(x.ref518beb.fragmentShadingRateNonTrivialCombinerOps) + x.MaxFragmentSize = *NewExtent2DRef(unsafe.Pointer(&x.ref518beb.maxFragmentSize)) + x.MaxFragmentSizeAspectRatio = (uint32)(x.ref518beb.maxFragmentSizeAspectRatio) + x.MaxFragmentShadingRateCoverageSamples = (uint32)(x.ref518beb.maxFragmentShadingRateCoverageSamples) + x.MaxFragmentShadingRateRasterizationSamples = (SampleCountFlagBits)(x.ref518beb.maxFragmentShadingRateRasterizationSamples) + x.FragmentShadingRateWithShaderDepthStencilWrites = (Bool32)(x.ref518beb.fragmentShadingRateWithShaderDepthStencilWrites) + x.FragmentShadingRateWithSampleMask = (Bool32)(x.ref518beb.fragmentShadingRateWithSampleMask) + x.FragmentShadingRateWithShaderSampleMask = (Bool32)(x.ref518beb.fragmentShadingRateWithShaderSampleMask) + x.FragmentShadingRateWithConservativeRasterization = (Bool32)(x.ref518beb.fragmentShadingRateWithConservativeRasterization) + x.FragmentShadingRateWithFragmentShaderInterlock = (Bool32)(x.ref518beb.fragmentShadingRateWithFragmentShaderInterlock) + x.FragmentShadingRateWithCustomSampleLocations = (Bool32)(x.ref518beb.fragmentShadingRateWithCustomSampleLocations) + x.FragmentShadingRateStrictMultiplyCombiner = (Bool32)(x.ref518beb.fragmentShadingRateStrictMultiplyCombiner) +} + +// allocPhysicalDeviceFragmentShadingRateMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceGroupCommandBufferBeginInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupCommandBufferBeginInfoValue)) +func allocPhysicalDeviceFragmentShadingRateMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceGroupCommandBufferBeginInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupCommandBufferBeginInfo{}) +const sizeOfPhysicalDeviceFragmentShadingRateValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupCommandBufferBeginInfo) Ref() *C.VkDeviceGroupCommandBufferBeginInfo { +func (x *PhysicalDeviceFragmentShadingRate) Ref() *C.VkPhysicalDeviceFragmentShadingRateKHR { if x == nil { return nil } - return x.refb9a8f0cd + return x.ref17914e16 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceGroupCommandBufferBeginInfo) Free() { - if x != nil && x.allocsb9a8f0cd != nil { - x.allocsb9a8f0cd.(*cgoAllocMap).Free() - x.refb9a8f0cd = nil +func (x *PhysicalDeviceFragmentShadingRate) Free() { + if x != nil && x.allocs17914e16 != nil { + x.allocs17914e16.(*cgoAllocMap).Free() + x.ref17914e16 = nil } } -// NewDeviceGroupCommandBufferBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentShadingRateRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceGroupCommandBufferBeginInfoRef(ref unsafe.Pointer) *DeviceGroupCommandBufferBeginInfo { +func NewPhysicalDeviceFragmentShadingRateRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRate { if ref == nil { return nil } - obj := new(DeviceGroupCommandBufferBeginInfo) - obj.refb9a8f0cd = (*C.VkDeviceGroupCommandBufferBeginInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentShadingRate) + obj.ref17914e16 = (*C.VkPhysicalDeviceFragmentShadingRateKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceGroupCommandBufferBeginInfo) PassRef() (*C.VkDeviceGroupCommandBufferBeginInfo, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRate) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb9a8f0cd != nil { - return x.refb9a8f0cd, nil + } else if x.ref17914e16 != nil { + return x.ref17914e16, nil } - memb9a8f0cd := allocDeviceGroupCommandBufferBeginInfoMemory(1) - refb9a8f0cd := (*C.VkDeviceGroupCommandBufferBeginInfo)(memb9a8f0cd) - allocsb9a8f0cd := new(cgoAllocMap) - allocsb9a8f0cd.Add(memb9a8f0cd) + mem17914e16 := allocPhysicalDeviceFragmentShadingRateMemory(1) + ref17914e16 := (*C.VkPhysicalDeviceFragmentShadingRateKHR)(mem17914e16) + allocs17914e16 := new(cgoAllocMap) + allocs17914e16.Add(mem17914e16) var csType_allocs *cgoAllocMap - refb9a8f0cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb9a8f0cd.Borrow(csType_allocs) + ref17914e16.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs17914e16.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb9a8f0cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb9a8f0cd.Borrow(cpNext_allocs) + ref17914e16.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs17914e16.Borrow(cpNext_allocs) - var cdeviceMask_allocs *cgoAllocMap - refb9a8f0cd.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown - allocsb9a8f0cd.Borrow(cdeviceMask_allocs) + var csampleCounts_allocs *cgoAllocMap + ref17914e16.sampleCounts, csampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleCounts), cgoAllocsUnknown + allocs17914e16.Borrow(csampleCounts_allocs) - x.refb9a8f0cd = refb9a8f0cd - x.allocsb9a8f0cd = allocsb9a8f0cd - return refb9a8f0cd, allocsb9a8f0cd + var cfragmentSize_allocs *cgoAllocMap + ref17914e16.fragmentSize, cfragmentSize_allocs = x.FragmentSize.PassValue() + allocs17914e16.Borrow(cfragmentSize_allocs) + + x.ref17914e16 = ref17914e16 + x.allocs17914e16 = allocs17914e16 + return ref17914e16, allocs17914e16 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceGroupCommandBufferBeginInfo) PassValue() (C.VkDeviceGroupCommandBufferBeginInfo, *cgoAllocMap) { - if x.refb9a8f0cd != nil { - return *x.refb9a8f0cd, nil +func (x PhysicalDeviceFragmentShadingRate) PassValue() (C.VkPhysicalDeviceFragmentShadingRateKHR, *cgoAllocMap) { + if x.ref17914e16 != nil { + return *x.ref17914e16, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14127,110 +41005,91 @@ func (x DeviceGroupCommandBufferBeginInfo) PassValue() (C.VkDeviceGroupCommandBu // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceGroupCommandBufferBeginInfo) Deref() { - if x.refb9a8f0cd == nil { +func (x *PhysicalDeviceFragmentShadingRate) Deref() { + if x.ref17914e16 == nil { return } - x.SType = (StructureType)(x.refb9a8f0cd.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb9a8f0cd.pNext)) - x.DeviceMask = (uint32)(x.refb9a8f0cd.deviceMask) + x.SType = (StructureType)(x.ref17914e16.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref17914e16.pNext)) + x.SampleCounts = (SampleCountFlags)(x.ref17914e16.sampleCounts) + x.FragmentSize = *NewExtent2DRef(unsafe.Pointer(&x.ref17914e16.fragmentSize)) } -// allocDeviceGroupSubmitInfoMemory allocates memory for type C.VkDeviceGroupSubmitInfo in C. +// allocSurfaceProtectedCapabilitiesMemory allocates memory for type C.VkSurfaceProtectedCapabilitiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceGroupSubmitInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupSubmitInfoValue)) +func allocSurfaceProtectedCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceProtectedCapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceGroupSubmitInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupSubmitInfo{}) +const sizeOfSurfaceProtectedCapabilitiesValue = unsafe.Sizeof([1]C.VkSurfaceProtectedCapabilitiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupSubmitInfo) Ref() *C.VkDeviceGroupSubmitInfo { +func (x *SurfaceProtectedCapabilities) Ref() *C.VkSurfaceProtectedCapabilitiesKHR { if x == nil { return nil } - return x.refea4e7ce4 + return x.refa5f4111 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceGroupSubmitInfo) Free() { - if x != nil && x.allocsea4e7ce4 != nil { - x.allocsea4e7ce4.(*cgoAllocMap).Free() - x.refea4e7ce4 = nil +func (x *SurfaceProtectedCapabilities) Free() { + if x != nil && x.allocsa5f4111 != nil { + x.allocsa5f4111.(*cgoAllocMap).Free() + x.refa5f4111 = nil } } -// NewDeviceGroupSubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSurfaceProtectedCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceGroupSubmitInfoRef(ref unsafe.Pointer) *DeviceGroupSubmitInfo { +func NewSurfaceProtectedCapabilitiesRef(ref unsafe.Pointer) *SurfaceProtectedCapabilities { if ref == nil { return nil } - obj := new(DeviceGroupSubmitInfo) - obj.refea4e7ce4 = (*C.VkDeviceGroupSubmitInfo)(unsafe.Pointer(ref)) + obj := new(SurfaceProtectedCapabilities) + obj.refa5f4111 = (*C.VkSurfaceProtectedCapabilitiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceGroupSubmitInfo) PassRef() (*C.VkDeviceGroupSubmitInfo, *cgoAllocMap) { +func (x *SurfaceProtectedCapabilities) PassRef() (*C.VkSurfaceProtectedCapabilitiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refea4e7ce4 != nil { - return x.refea4e7ce4, nil + } else if x.refa5f4111 != nil { + return x.refa5f4111, nil } - memea4e7ce4 := allocDeviceGroupSubmitInfoMemory(1) - refea4e7ce4 := (*C.VkDeviceGroupSubmitInfo)(memea4e7ce4) - allocsea4e7ce4 := new(cgoAllocMap) - allocsea4e7ce4.Add(memea4e7ce4) + mema5f4111 := allocSurfaceProtectedCapabilitiesMemory(1) + refa5f4111 := (*C.VkSurfaceProtectedCapabilitiesKHR)(mema5f4111) + allocsa5f4111 := new(cgoAllocMap) + allocsa5f4111.Add(mema5f4111) var csType_allocs *cgoAllocMap - refea4e7ce4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsea4e7ce4.Borrow(csType_allocs) + refa5f4111.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa5f4111.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refea4e7ce4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsea4e7ce4.Borrow(cpNext_allocs) - - var cwaitSemaphoreCount_allocs *cgoAllocMap - refea4e7ce4.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown - allocsea4e7ce4.Borrow(cwaitSemaphoreCount_allocs) - - var cpWaitSemaphoreDeviceIndices_allocs *cgoAllocMap - refea4e7ce4.pWaitSemaphoreDeviceIndices, cpWaitSemaphoreDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreDeviceIndices)).Data)), cgoAllocsUnknown - allocsea4e7ce4.Borrow(cpWaitSemaphoreDeviceIndices_allocs) - - var ccommandBufferCount_allocs *cgoAllocMap - refea4e7ce4.commandBufferCount, ccommandBufferCount_allocs = (C.uint32_t)(x.CommandBufferCount), cgoAllocsUnknown - allocsea4e7ce4.Borrow(ccommandBufferCount_allocs) - - var cpCommandBufferDeviceMasks_allocs *cgoAllocMap - refea4e7ce4.pCommandBufferDeviceMasks, cpCommandBufferDeviceMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCommandBufferDeviceMasks)).Data)), cgoAllocsUnknown - allocsea4e7ce4.Borrow(cpCommandBufferDeviceMasks_allocs) - - var csignalSemaphoreCount_allocs *cgoAllocMap - refea4e7ce4.signalSemaphoreCount, csignalSemaphoreCount_allocs = (C.uint32_t)(x.SignalSemaphoreCount), cgoAllocsUnknown - allocsea4e7ce4.Borrow(csignalSemaphoreCount_allocs) + refa5f4111.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa5f4111.Borrow(cpNext_allocs) - var cpSignalSemaphoreDeviceIndices_allocs *cgoAllocMap - refea4e7ce4.pSignalSemaphoreDeviceIndices, cpSignalSemaphoreDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreDeviceIndices)).Data)), cgoAllocsUnknown - allocsea4e7ce4.Borrow(cpSignalSemaphoreDeviceIndices_allocs) + var csupportsProtected_allocs *cgoAllocMap + refa5f4111.supportsProtected, csupportsProtected_allocs = (C.VkBool32)(x.SupportsProtected), cgoAllocsUnknown + allocsa5f4111.Borrow(csupportsProtected_allocs) - x.refea4e7ce4 = refea4e7ce4 - x.allocsea4e7ce4 = allocsea4e7ce4 - return refea4e7ce4, allocsea4e7ce4 + x.refa5f4111 = refa5f4111 + x.allocsa5f4111 = allocsa5f4111 + return refa5f4111, allocsa5f4111 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceGroupSubmitInfo) PassValue() (C.VkDeviceGroupSubmitInfo, *cgoAllocMap) { - if x.refea4e7ce4 != nil { - return *x.refea4e7ce4, nil +func (x SurfaceProtectedCapabilities) PassValue() (C.VkSurfaceProtectedCapabilitiesKHR, *cgoAllocMap) { + if x.refa5f4111 != nil { + return *x.refa5f4111, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14238,111 +41097,90 @@ func (x DeviceGroupSubmitInfo) PassValue() (C.VkDeviceGroupSubmitInfo, *cgoAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceGroupSubmitInfo) Deref() { - if x.refea4e7ce4 == nil { +func (x *SurfaceProtectedCapabilities) Deref() { + if x.refa5f4111 == nil { return } - x.SType = (StructureType)(x.refea4e7ce4.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refea4e7ce4.pNext)) - x.WaitSemaphoreCount = (uint32)(x.refea4e7ce4.waitSemaphoreCount) - hxf04b15b := (*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphoreDeviceIndices)) - hxf04b15b.Data = unsafe.Pointer(x.refea4e7ce4.pWaitSemaphoreDeviceIndices) - hxf04b15b.Cap = 0x7fffffff - // hxf04b15b.Len = ? - - x.CommandBufferCount = (uint32)(x.refea4e7ce4.commandBufferCount) - hxf2f888b := (*sliceHeader)(unsafe.Pointer(&x.PCommandBufferDeviceMasks)) - hxf2f888b.Data = unsafe.Pointer(x.refea4e7ce4.pCommandBufferDeviceMasks) - hxf2f888b.Cap = 0x7fffffff - // hxf2f888b.Len = ? - - x.SignalSemaphoreCount = (uint32)(x.refea4e7ce4.signalSemaphoreCount) - hxf5d1de2 := (*sliceHeader)(unsafe.Pointer(&x.PSignalSemaphoreDeviceIndices)) - hxf5d1de2.Data = unsafe.Pointer(x.refea4e7ce4.pSignalSemaphoreDeviceIndices) - hxf5d1de2.Cap = 0x7fffffff - // hxf5d1de2.Len = ? - + x.SType = (StructureType)(x.refa5f4111.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa5f4111.pNext)) + x.SupportsProtected = (Bool32)(x.refa5f4111.supportsProtected) } -// allocDeviceGroupBindSparseInfoMemory allocates memory for type C.VkDeviceGroupBindSparseInfo in C. +// allocPhysicalDevicePresentWaitFeaturesMemory allocates memory for type C.VkPhysicalDevicePresentWaitFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceGroupBindSparseInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupBindSparseInfoValue)) +func allocPhysicalDevicePresentWaitFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePresentWaitFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceGroupBindSparseInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupBindSparseInfo{}) +const sizeOfPhysicalDevicePresentWaitFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePresentWaitFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupBindSparseInfo) Ref() *C.VkDeviceGroupBindSparseInfo { +func (x *PhysicalDevicePresentWaitFeatures) Ref() *C.VkPhysicalDevicePresentWaitFeaturesKHR { if x == nil { return nil } - return x.ref5b5446cd + return x.ref1cd9c482 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceGroupBindSparseInfo) Free() { - if x != nil && x.allocs5b5446cd != nil { - x.allocs5b5446cd.(*cgoAllocMap).Free() - x.ref5b5446cd = nil +func (x *PhysicalDevicePresentWaitFeatures) Free() { + if x != nil && x.allocs1cd9c482 != nil { + x.allocs1cd9c482.(*cgoAllocMap).Free() + x.ref1cd9c482 = nil } } -// NewDeviceGroupBindSparseInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePresentWaitFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceGroupBindSparseInfoRef(ref unsafe.Pointer) *DeviceGroupBindSparseInfo { +func NewPhysicalDevicePresentWaitFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePresentWaitFeatures { if ref == nil { return nil } - obj := new(DeviceGroupBindSparseInfo) - obj.ref5b5446cd = (*C.VkDeviceGroupBindSparseInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePresentWaitFeatures) + obj.ref1cd9c482 = (*C.VkPhysicalDevicePresentWaitFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceGroupBindSparseInfo) PassRef() (*C.VkDeviceGroupBindSparseInfo, *cgoAllocMap) { +func (x *PhysicalDevicePresentWaitFeatures) PassRef() (*C.VkPhysicalDevicePresentWaitFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5b5446cd != nil { - return x.ref5b5446cd, nil + } else if x.ref1cd9c482 != nil { + return x.ref1cd9c482, nil } - mem5b5446cd := allocDeviceGroupBindSparseInfoMemory(1) - ref5b5446cd := (*C.VkDeviceGroupBindSparseInfo)(mem5b5446cd) - allocs5b5446cd := new(cgoAllocMap) - allocs5b5446cd.Add(mem5b5446cd) + mem1cd9c482 := allocPhysicalDevicePresentWaitFeaturesMemory(1) + ref1cd9c482 := (*C.VkPhysicalDevicePresentWaitFeaturesKHR)(mem1cd9c482) + allocs1cd9c482 := new(cgoAllocMap) + allocs1cd9c482.Add(mem1cd9c482) var csType_allocs *cgoAllocMap - ref5b5446cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5b5446cd.Borrow(csType_allocs) + ref1cd9c482.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1cd9c482.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5b5446cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5b5446cd.Borrow(cpNext_allocs) - - var cresourceDeviceIndex_allocs *cgoAllocMap - ref5b5446cd.resourceDeviceIndex, cresourceDeviceIndex_allocs = (C.uint32_t)(x.ResourceDeviceIndex), cgoAllocsUnknown - allocs5b5446cd.Borrow(cresourceDeviceIndex_allocs) + ref1cd9c482.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1cd9c482.Borrow(cpNext_allocs) - var cmemoryDeviceIndex_allocs *cgoAllocMap - ref5b5446cd.memoryDeviceIndex, cmemoryDeviceIndex_allocs = (C.uint32_t)(x.MemoryDeviceIndex), cgoAllocsUnknown - allocs5b5446cd.Borrow(cmemoryDeviceIndex_allocs) + var cpresentWait_allocs *cgoAllocMap + ref1cd9c482.presentWait, cpresentWait_allocs = (C.VkBool32)(x.PresentWait), cgoAllocsUnknown + allocs1cd9c482.Borrow(cpresentWait_allocs) - x.ref5b5446cd = ref5b5446cd - x.allocs5b5446cd = allocs5b5446cd - return ref5b5446cd, allocs5b5446cd + x.ref1cd9c482 = ref1cd9c482 + x.allocs1cd9c482 = allocs1cd9c482 + return ref1cd9c482, allocs1cd9c482 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceGroupBindSparseInfo) PassValue() (C.VkDeviceGroupBindSparseInfo, *cgoAllocMap) { - if x.ref5b5446cd != nil { - return *x.ref5b5446cd, nil +func (x PhysicalDevicePresentWaitFeatures) PassValue() (C.VkPhysicalDevicePresentWaitFeaturesKHR, *cgoAllocMap) { + if x.ref1cd9c482 != nil { + return *x.ref1cd9c482, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14350,95 +41188,90 @@ func (x DeviceGroupBindSparseInfo) PassValue() (C.VkDeviceGroupBindSparseInfo, * // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceGroupBindSparseInfo) Deref() { - if x.ref5b5446cd == nil { +func (x *PhysicalDevicePresentWaitFeatures) Deref() { + if x.ref1cd9c482 == nil { return } - x.SType = (StructureType)(x.ref5b5446cd.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5b5446cd.pNext)) - x.ResourceDeviceIndex = (uint32)(x.ref5b5446cd.resourceDeviceIndex) - x.MemoryDeviceIndex = (uint32)(x.ref5b5446cd.memoryDeviceIndex) + x.SType = (StructureType)(x.ref1cd9c482.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1cd9c482.pNext)) + x.PresentWait = (Bool32)(x.ref1cd9c482.presentWait) } -// allocBindBufferMemoryDeviceGroupInfoMemory allocates memory for type C.VkBindBufferMemoryDeviceGroupInfo in C. +// allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory allocates memory for type C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocBindBufferMemoryDeviceGroupInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindBufferMemoryDeviceGroupInfoValue)) +func allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePipelineExecutablePropertiesFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBindBufferMemoryDeviceGroupInfoValue = unsafe.Sizeof([1]C.VkBindBufferMemoryDeviceGroupInfo{}) +const sizeOfPhysicalDevicePipelineExecutablePropertiesFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindBufferMemoryDeviceGroupInfo) Ref() *C.VkBindBufferMemoryDeviceGroupInfo { +func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) Ref() *C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { if x == nil { return nil } - return x.reff136b64f + return x.ref84acf0e1 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BindBufferMemoryDeviceGroupInfo) Free() { - if x != nil && x.allocsf136b64f != nil { - x.allocsf136b64f.(*cgoAllocMap).Free() - x.reff136b64f = nil +func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) Free() { + if x != nil && x.allocs84acf0e1 != nil { + x.allocs84acf0e1.(*cgoAllocMap).Free() + x.ref84acf0e1 = nil } } -// NewBindBufferMemoryDeviceGroupInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePipelineExecutablePropertiesFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBindBufferMemoryDeviceGroupInfoRef(ref unsafe.Pointer) *BindBufferMemoryDeviceGroupInfo { +func NewPhysicalDevicePipelineExecutablePropertiesFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePipelineExecutablePropertiesFeatures { if ref == nil { return nil } - obj := new(BindBufferMemoryDeviceGroupInfo) - obj.reff136b64f = (*C.VkBindBufferMemoryDeviceGroupInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePipelineExecutablePropertiesFeatures) + obj.ref84acf0e1 = (*C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BindBufferMemoryDeviceGroupInfo) PassRef() (*C.VkBindBufferMemoryDeviceGroupInfo, *cgoAllocMap) { +func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) PassRef() (*C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff136b64f != nil { - return x.reff136b64f, nil + } else if x.ref84acf0e1 != nil { + return x.ref84acf0e1, nil } - memf136b64f := allocBindBufferMemoryDeviceGroupInfoMemory(1) - reff136b64f := (*C.VkBindBufferMemoryDeviceGroupInfo)(memf136b64f) - allocsf136b64f := new(cgoAllocMap) - allocsf136b64f.Add(memf136b64f) + mem84acf0e1 := allocPhysicalDevicePipelineExecutablePropertiesFeaturesMemory(1) + ref84acf0e1 := (*C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR)(mem84acf0e1) + allocs84acf0e1 := new(cgoAllocMap) + allocs84acf0e1.Add(mem84acf0e1) var csType_allocs *cgoAllocMap - reff136b64f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf136b64f.Borrow(csType_allocs) + ref84acf0e1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs84acf0e1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff136b64f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf136b64f.Borrow(cpNext_allocs) - - var cdeviceIndexCount_allocs *cgoAllocMap - reff136b64f.deviceIndexCount, cdeviceIndexCount_allocs = (C.uint32_t)(x.DeviceIndexCount), cgoAllocsUnknown - allocsf136b64f.Borrow(cdeviceIndexCount_allocs) + ref84acf0e1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs84acf0e1.Borrow(cpNext_allocs) - var cpDeviceIndices_allocs *cgoAllocMap - reff136b64f.pDeviceIndices, cpDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)).Data)), cgoAllocsUnknown - allocsf136b64f.Borrow(cpDeviceIndices_allocs) + var cpipelineExecutableInfo_allocs *cgoAllocMap + ref84acf0e1.pipelineExecutableInfo, cpipelineExecutableInfo_allocs = (C.VkBool32)(x.PipelineExecutableInfo), cgoAllocsUnknown + allocs84acf0e1.Borrow(cpipelineExecutableInfo_allocs) - x.reff136b64f = reff136b64f - x.allocsf136b64f = allocsf136b64f - return reff136b64f, allocsf136b64f + x.ref84acf0e1 = ref84acf0e1 + x.allocs84acf0e1 = allocs84acf0e1 + return ref84acf0e1, allocs84acf0e1 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BindBufferMemoryDeviceGroupInfo) PassValue() (C.VkBindBufferMemoryDeviceGroupInfo, *cgoAllocMap) { - if x.reff136b64f != nil { - return *x.reff136b64f, nil +func (x PhysicalDevicePipelineExecutablePropertiesFeatures) PassValue() (C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, *cgoAllocMap) { + if x.ref84acf0e1 != nil { + return *x.ref84acf0e1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14446,107 +41279,90 @@ func (x BindBufferMemoryDeviceGroupInfo) PassValue() (C.VkBindBufferMemoryDevice // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindBufferMemoryDeviceGroupInfo) Deref() { - if x.reff136b64f == nil { +func (x *PhysicalDevicePipelineExecutablePropertiesFeatures) Deref() { + if x.ref84acf0e1 == nil { return } - x.SType = (StructureType)(x.reff136b64f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff136b64f.pNext)) - x.DeviceIndexCount = (uint32)(x.reff136b64f.deviceIndexCount) - hxfe53d34 := (*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)) - hxfe53d34.Data = unsafe.Pointer(x.reff136b64f.pDeviceIndices) - hxfe53d34.Cap = 0x7fffffff - // hxfe53d34.Len = ? - + x.SType = (StructureType)(x.ref84acf0e1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref84acf0e1.pNext)) + x.PipelineExecutableInfo = (Bool32)(x.ref84acf0e1.pipelineExecutableInfo) } -// allocBindImageMemoryDeviceGroupInfoMemory allocates memory for type C.VkBindImageMemoryDeviceGroupInfo in C. +// allocPipelineInfoMemory allocates memory for type C.VkPipelineInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocBindImageMemoryDeviceGroupInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindImageMemoryDeviceGroupInfoValue)) +func allocPipelineInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBindImageMemoryDeviceGroupInfoValue = unsafe.Sizeof([1]C.VkBindImageMemoryDeviceGroupInfo{}) +const sizeOfPipelineInfoValue = unsafe.Sizeof([1]C.VkPipelineInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindImageMemoryDeviceGroupInfo) Ref() *C.VkBindImageMemoryDeviceGroupInfo { +func (x *PipelineInfo) Ref() *C.VkPipelineInfoKHR { if x == nil { return nil } - return x.ref24f026a5 + return x.refcd879ca1 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BindImageMemoryDeviceGroupInfo) Free() { - if x != nil && x.allocs24f026a5 != nil { - x.allocs24f026a5.(*cgoAllocMap).Free() - x.ref24f026a5 = nil +func (x *PipelineInfo) Free() { + if x != nil && x.allocscd879ca1 != nil { + x.allocscd879ca1.(*cgoAllocMap).Free() + x.refcd879ca1 = nil } } -// NewBindImageMemoryDeviceGroupInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBindImageMemoryDeviceGroupInfoRef(ref unsafe.Pointer) *BindImageMemoryDeviceGroupInfo { +func NewPipelineInfoRef(ref unsafe.Pointer) *PipelineInfo { if ref == nil { return nil } - obj := new(BindImageMemoryDeviceGroupInfo) - obj.ref24f026a5 = (*C.VkBindImageMemoryDeviceGroupInfo)(unsafe.Pointer(ref)) + obj := new(PipelineInfo) + obj.refcd879ca1 = (*C.VkPipelineInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BindImageMemoryDeviceGroupInfo) PassRef() (*C.VkBindImageMemoryDeviceGroupInfo, *cgoAllocMap) { +func (x *PipelineInfo) PassRef() (*C.VkPipelineInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref24f026a5 != nil { - return x.ref24f026a5, nil + } else if x.refcd879ca1 != nil { + return x.refcd879ca1, nil } - mem24f026a5 := allocBindImageMemoryDeviceGroupInfoMemory(1) - ref24f026a5 := (*C.VkBindImageMemoryDeviceGroupInfo)(mem24f026a5) - allocs24f026a5 := new(cgoAllocMap) - allocs24f026a5.Add(mem24f026a5) + memcd879ca1 := allocPipelineInfoMemory(1) + refcd879ca1 := (*C.VkPipelineInfoKHR)(memcd879ca1) + allocscd879ca1 := new(cgoAllocMap) + allocscd879ca1.Add(memcd879ca1) var csType_allocs *cgoAllocMap - ref24f026a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs24f026a5.Borrow(csType_allocs) + refcd879ca1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscd879ca1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref24f026a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs24f026a5.Borrow(cpNext_allocs) - - var cdeviceIndexCount_allocs *cgoAllocMap - ref24f026a5.deviceIndexCount, cdeviceIndexCount_allocs = (C.uint32_t)(x.DeviceIndexCount), cgoAllocsUnknown - allocs24f026a5.Borrow(cdeviceIndexCount_allocs) - - var cpDeviceIndices_allocs *cgoAllocMap - ref24f026a5.pDeviceIndices, cpDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)).Data)), cgoAllocsUnknown - allocs24f026a5.Borrow(cpDeviceIndices_allocs) - - var csplitInstanceBindRegionCount_allocs *cgoAllocMap - ref24f026a5.splitInstanceBindRegionCount, csplitInstanceBindRegionCount_allocs = (C.uint32_t)(x.SplitInstanceBindRegionCount), cgoAllocsUnknown - allocs24f026a5.Borrow(csplitInstanceBindRegionCount_allocs) + refcd879ca1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscd879ca1.Borrow(cpNext_allocs) - var cpSplitInstanceBindRegions_allocs *cgoAllocMap - ref24f026a5.pSplitInstanceBindRegions, cpSplitInstanceBindRegions_allocs = unpackSRect2D(x.PSplitInstanceBindRegions) - allocs24f026a5.Borrow(cpSplitInstanceBindRegions_allocs) + var cpipeline_allocs *cgoAllocMap + refcd879ca1.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown + allocscd879ca1.Borrow(cpipeline_allocs) - x.ref24f026a5 = ref24f026a5 - x.allocs24f026a5 = allocs24f026a5 - return ref24f026a5, allocs24f026a5 + x.refcd879ca1 = refcd879ca1 + x.allocscd879ca1 = allocscd879ca1 + return refcd879ca1, allocscd879ca1 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BindImageMemoryDeviceGroupInfo) PassValue() (C.VkBindImageMemoryDeviceGroupInfo, *cgoAllocMap) { - if x.ref24f026a5 != nil { - return *x.ref24f026a5, nil +func (x PipelineInfo) PassValue() (C.VkPipelineInfoKHR, *cgoAllocMap) { + if x.refcd879ca1 != nil { + return *x.refcd879ca1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14554,105 +41370,102 @@ func (x BindImageMemoryDeviceGroupInfo) PassValue() (C.VkBindImageMemoryDeviceGr // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindImageMemoryDeviceGroupInfo) Deref() { - if x.ref24f026a5 == nil { +func (x *PipelineInfo) Deref() { + if x.refcd879ca1 == nil { return } - x.SType = (StructureType)(x.ref24f026a5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref24f026a5.pNext)) - x.DeviceIndexCount = (uint32)(x.ref24f026a5.deviceIndexCount) - hxf547023 := (*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)) - hxf547023.Data = unsafe.Pointer(x.ref24f026a5.pDeviceIndices) - hxf547023.Cap = 0x7fffffff - // hxf547023.Len = ? - - x.SplitInstanceBindRegionCount = (uint32)(x.ref24f026a5.splitInstanceBindRegionCount) - packSRect2D(x.PSplitInstanceBindRegions, x.ref24f026a5.pSplitInstanceBindRegions) + x.SType = (StructureType)(x.refcd879ca1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd879ca1.pNext)) + x.Pipeline = *(*Pipeline)(unsafe.Pointer(&x.refcd879ca1.pipeline)) } -// allocPhysicalDeviceGroupPropertiesMemory allocates memory for type C.VkPhysicalDeviceGroupProperties in C. +// allocPipelineExecutablePropertiesMemory allocates memory for type C.VkPipelineExecutablePropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceGroupPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGroupPropertiesValue)) +func allocPipelineExecutablePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutablePropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceGroupPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGroupProperties{}) +const sizeOfPipelineExecutablePropertiesValue = unsafe.Sizeof([1]C.VkPipelineExecutablePropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceGroupProperties) Ref() *C.VkPhysicalDeviceGroupProperties { +func (x *PipelineExecutableProperties) Ref() *C.VkPipelineExecutablePropertiesKHR { if x == nil { return nil } - return x.ref2aa9a663 + return x.ref4eb592a4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceGroupProperties) Free() { - if x != nil && x.allocs2aa9a663 != nil { - x.allocs2aa9a663.(*cgoAllocMap).Free() - x.ref2aa9a663 = nil +func (x *PipelineExecutableProperties) Free() { + if x != nil && x.allocs4eb592a4 != nil { + x.allocs4eb592a4.(*cgoAllocMap).Free() + x.ref4eb592a4 = nil } } -// NewPhysicalDeviceGroupPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineExecutablePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceGroupPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceGroupProperties { +func NewPipelineExecutablePropertiesRef(ref unsafe.Pointer) *PipelineExecutableProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceGroupProperties) - obj.ref2aa9a663 = (*C.VkPhysicalDeviceGroupProperties)(unsafe.Pointer(ref)) + obj := new(PipelineExecutableProperties) + obj.ref4eb592a4 = (*C.VkPipelineExecutablePropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceGroupProperties) PassRef() (*C.VkPhysicalDeviceGroupProperties, *cgoAllocMap) { +func (x *PipelineExecutableProperties) PassRef() (*C.VkPipelineExecutablePropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2aa9a663 != nil { - return x.ref2aa9a663, nil + } else if x.ref4eb592a4 != nil { + return x.ref4eb592a4, nil } - mem2aa9a663 := allocPhysicalDeviceGroupPropertiesMemory(1) - ref2aa9a663 := (*C.VkPhysicalDeviceGroupProperties)(mem2aa9a663) - allocs2aa9a663 := new(cgoAllocMap) - allocs2aa9a663.Add(mem2aa9a663) + mem4eb592a4 := allocPipelineExecutablePropertiesMemory(1) + ref4eb592a4 := (*C.VkPipelineExecutablePropertiesKHR)(mem4eb592a4) + allocs4eb592a4 := new(cgoAllocMap) + allocs4eb592a4.Add(mem4eb592a4) var csType_allocs *cgoAllocMap - ref2aa9a663.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2aa9a663.Borrow(csType_allocs) + ref4eb592a4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4eb592a4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2aa9a663.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2aa9a663.Borrow(cpNext_allocs) + ref4eb592a4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4eb592a4.Borrow(cpNext_allocs) - var cphysicalDeviceCount_allocs *cgoAllocMap - ref2aa9a663.physicalDeviceCount, cphysicalDeviceCount_allocs = (C.uint32_t)(x.PhysicalDeviceCount), cgoAllocsUnknown - allocs2aa9a663.Borrow(cphysicalDeviceCount_allocs) + var cstages_allocs *cgoAllocMap + ref4eb592a4.stages, cstages_allocs = (C.VkShaderStageFlags)(x.Stages), cgoAllocsUnknown + allocs4eb592a4.Borrow(cstages_allocs) - var cphysicalDevices_allocs *cgoAllocMap - ref2aa9a663.physicalDevices, cphysicalDevices_allocs = *(*[32]C.VkPhysicalDevice)(unsafe.Pointer(&x.PhysicalDevices)), cgoAllocsUnknown - allocs2aa9a663.Borrow(cphysicalDevices_allocs) + var cname_allocs *cgoAllocMap + ref4eb592a4.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs4eb592a4.Borrow(cname_allocs) - var csubsetAllocation_allocs *cgoAllocMap - ref2aa9a663.subsetAllocation, csubsetAllocation_allocs = (C.VkBool32)(x.SubsetAllocation), cgoAllocsUnknown - allocs2aa9a663.Borrow(csubsetAllocation_allocs) + var cdescription_allocs *cgoAllocMap + ref4eb592a4.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown + allocs4eb592a4.Borrow(cdescription_allocs) - x.ref2aa9a663 = ref2aa9a663 - x.allocs2aa9a663 = allocs2aa9a663 - return ref2aa9a663, allocs2aa9a663 + var csubgroupSize_allocs *cgoAllocMap + ref4eb592a4.subgroupSize, csubgroupSize_allocs = (C.uint32_t)(x.SubgroupSize), cgoAllocsUnknown + allocs4eb592a4.Borrow(csubgroupSize_allocs) + + x.ref4eb592a4 = ref4eb592a4 + x.allocs4eb592a4 = allocs4eb592a4 + return ref4eb592a4, allocs4eb592a4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceGroupProperties) PassValue() (C.VkPhysicalDeviceGroupProperties, *cgoAllocMap) { - if x.ref2aa9a663 != nil { - return *x.ref2aa9a663, nil +func (x PipelineExecutableProperties) PassValue() (C.VkPipelineExecutablePropertiesKHR, *cgoAllocMap) { + if x.ref4eb592a4 != nil { + return *x.ref4eb592a4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14660,96 +41473,97 @@ func (x PhysicalDeviceGroupProperties) PassValue() (C.VkPhysicalDeviceGroupPrope // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceGroupProperties) Deref() { - if x.ref2aa9a663 == nil { +func (x *PipelineExecutableProperties) Deref() { + if x.ref4eb592a4 == nil { return } - x.SType = (StructureType)(x.ref2aa9a663.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2aa9a663.pNext)) - x.PhysicalDeviceCount = (uint32)(x.ref2aa9a663.physicalDeviceCount) - x.PhysicalDevices = *(*[32]PhysicalDevice)(unsafe.Pointer(&x.ref2aa9a663.physicalDevices)) - x.SubsetAllocation = (Bool32)(x.ref2aa9a663.subsetAllocation) + x.SType = (StructureType)(x.ref4eb592a4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4eb592a4.pNext)) + x.Stages = (ShaderStageFlags)(x.ref4eb592a4.stages) + x.Name = *(*[256]byte)(unsafe.Pointer(&x.ref4eb592a4.name)) + x.Description = *(*[256]byte)(unsafe.Pointer(&x.ref4eb592a4.description)) + x.SubgroupSize = (uint32)(x.ref4eb592a4.subgroupSize) } -// allocDeviceGroupDeviceCreateInfoMemory allocates memory for type C.VkDeviceGroupDeviceCreateInfo in C. +// allocPipelineExecutableInfoMemory allocates memory for type C.VkPipelineExecutableInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceGroupDeviceCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupDeviceCreateInfoValue)) +func allocPipelineExecutableInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceGroupDeviceCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupDeviceCreateInfo{}) +const sizeOfPipelineExecutableInfoValue = unsafe.Sizeof([1]C.VkPipelineExecutableInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupDeviceCreateInfo) Ref() *C.VkDeviceGroupDeviceCreateInfo { +func (x *PipelineExecutableInfo) Ref() *C.VkPipelineExecutableInfoKHR { if x == nil { return nil } - return x.refb2275723 + return x.ref9b891dad } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceGroupDeviceCreateInfo) Free() { - if x != nil && x.allocsb2275723 != nil { - x.allocsb2275723.(*cgoAllocMap).Free() - x.refb2275723 = nil +func (x *PipelineExecutableInfo) Free() { + if x != nil && x.allocs9b891dad != nil { + x.allocs9b891dad.(*cgoAllocMap).Free() + x.ref9b891dad = nil } } -// NewDeviceGroupDeviceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineExecutableInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceGroupDeviceCreateInfoRef(ref unsafe.Pointer) *DeviceGroupDeviceCreateInfo { +func NewPipelineExecutableInfoRef(ref unsafe.Pointer) *PipelineExecutableInfo { if ref == nil { return nil } - obj := new(DeviceGroupDeviceCreateInfo) - obj.refb2275723 = (*C.VkDeviceGroupDeviceCreateInfo)(unsafe.Pointer(ref)) + obj := new(PipelineExecutableInfo) + obj.ref9b891dad = (*C.VkPipelineExecutableInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceGroupDeviceCreateInfo) PassRef() (*C.VkDeviceGroupDeviceCreateInfo, *cgoAllocMap) { +func (x *PipelineExecutableInfo) PassRef() (*C.VkPipelineExecutableInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb2275723 != nil { - return x.refb2275723, nil + } else if x.ref9b891dad != nil { + return x.ref9b891dad, nil } - memb2275723 := allocDeviceGroupDeviceCreateInfoMemory(1) - refb2275723 := (*C.VkDeviceGroupDeviceCreateInfo)(memb2275723) - allocsb2275723 := new(cgoAllocMap) - allocsb2275723.Add(memb2275723) + mem9b891dad := allocPipelineExecutableInfoMemory(1) + ref9b891dad := (*C.VkPipelineExecutableInfoKHR)(mem9b891dad) + allocs9b891dad := new(cgoAllocMap) + allocs9b891dad.Add(mem9b891dad) var csType_allocs *cgoAllocMap - refb2275723.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb2275723.Borrow(csType_allocs) + ref9b891dad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9b891dad.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb2275723.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb2275723.Borrow(cpNext_allocs) + ref9b891dad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9b891dad.Borrow(cpNext_allocs) - var cphysicalDeviceCount_allocs *cgoAllocMap - refb2275723.physicalDeviceCount, cphysicalDeviceCount_allocs = (C.uint32_t)(x.PhysicalDeviceCount), cgoAllocsUnknown - allocsb2275723.Borrow(cphysicalDeviceCount_allocs) + var cpipeline_allocs *cgoAllocMap + ref9b891dad.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown + allocs9b891dad.Borrow(cpipeline_allocs) - var cpPhysicalDevices_allocs *cgoAllocMap - refb2275723.pPhysicalDevices, cpPhysicalDevices_allocs = (*C.VkPhysicalDevice)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPhysicalDevices)).Data)), cgoAllocsUnknown - allocsb2275723.Borrow(cpPhysicalDevices_allocs) + var cexecutableIndex_allocs *cgoAllocMap + ref9b891dad.executableIndex, cexecutableIndex_allocs = (C.uint32_t)(x.ExecutableIndex), cgoAllocsUnknown + allocs9b891dad.Borrow(cexecutableIndex_allocs) - x.refb2275723 = refb2275723 - x.allocsb2275723 = allocsb2275723 - return refb2275723, allocsb2275723 + x.ref9b891dad = ref9b891dad + x.allocs9b891dad = allocs9b891dad + return ref9b891dad, allocs9b891dad } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceGroupDeviceCreateInfo) PassValue() (C.VkDeviceGroupDeviceCreateInfo, *cgoAllocMap) { - if x.refb2275723 != nil { - return *x.refb2275723, nil +func (x PipelineExecutableInfo) PassValue() (C.VkPipelineExecutableInfoKHR, *cgoAllocMap) { + if x.ref9b891dad != nil { + return *x.ref9b891dad, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14757,95 +41571,103 @@ func (x DeviceGroupDeviceCreateInfo) PassValue() (C.VkDeviceGroupDeviceCreateInf // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceGroupDeviceCreateInfo) Deref() { - if x.refb2275723 == nil { +func (x *PipelineExecutableInfo) Deref() { + if x.ref9b891dad == nil { return } - x.SType = (StructureType)(x.refb2275723.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb2275723.pNext)) - x.PhysicalDeviceCount = (uint32)(x.refb2275723.physicalDeviceCount) - hxf5ebb88 := (*sliceHeader)(unsafe.Pointer(&x.PPhysicalDevices)) - hxf5ebb88.Data = unsafe.Pointer(x.refb2275723.pPhysicalDevices) - hxf5ebb88.Cap = 0x7fffffff - // hxf5ebb88.Len = ? - + x.SType = (StructureType)(x.ref9b891dad.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9b891dad.pNext)) + x.Pipeline = *(*Pipeline)(unsafe.Pointer(&x.ref9b891dad.pipeline)) + x.ExecutableIndex = (uint32)(x.ref9b891dad.executableIndex) } -// allocBufferMemoryRequirementsInfo2Memory allocates memory for type C.VkBufferMemoryRequirementsInfo2 in C. +// allocPipelineExecutableStatisticMemory allocates memory for type C.VkPipelineExecutableStatisticKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocBufferMemoryRequirementsInfo2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferMemoryRequirementsInfo2Value)) +func allocPipelineExecutableStatisticMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableStatisticValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBufferMemoryRequirementsInfo2Value = unsafe.Sizeof([1]C.VkBufferMemoryRequirementsInfo2{}) +const sizeOfPipelineExecutableStatisticValue = unsafe.Sizeof([1]C.VkPipelineExecutableStatisticKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BufferMemoryRequirementsInfo2) Ref() *C.VkBufferMemoryRequirementsInfo2 { +func (x *PipelineExecutableStatistic) Ref() *C.VkPipelineExecutableStatisticKHR { if x == nil { return nil } - return x.reff54a2a42 + return x.ref4af1a62c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BufferMemoryRequirementsInfo2) Free() { - if x != nil && x.allocsf54a2a42 != nil { - x.allocsf54a2a42.(*cgoAllocMap).Free() - x.reff54a2a42 = nil +func (x *PipelineExecutableStatistic) Free() { + if x != nil && x.allocs4af1a62c != nil { + x.allocs4af1a62c.(*cgoAllocMap).Free() + x.ref4af1a62c = nil } } -// NewBufferMemoryRequirementsInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineExecutableStatisticRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBufferMemoryRequirementsInfo2Ref(ref unsafe.Pointer) *BufferMemoryRequirementsInfo2 { +func NewPipelineExecutableStatisticRef(ref unsafe.Pointer) *PipelineExecutableStatistic { if ref == nil { return nil } - obj := new(BufferMemoryRequirementsInfo2) - obj.reff54a2a42 = (*C.VkBufferMemoryRequirementsInfo2)(unsafe.Pointer(ref)) + obj := new(PipelineExecutableStatistic) + obj.ref4af1a62c = (*C.VkPipelineExecutableStatisticKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BufferMemoryRequirementsInfo2) PassRef() (*C.VkBufferMemoryRequirementsInfo2, *cgoAllocMap) { +func (x *PipelineExecutableStatistic) PassRef() (*C.VkPipelineExecutableStatisticKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff54a2a42 != nil { - return x.reff54a2a42, nil + } else if x.ref4af1a62c != nil { + return x.ref4af1a62c, nil } - memf54a2a42 := allocBufferMemoryRequirementsInfo2Memory(1) - reff54a2a42 := (*C.VkBufferMemoryRequirementsInfo2)(memf54a2a42) - allocsf54a2a42 := new(cgoAllocMap) - allocsf54a2a42.Add(memf54a2a42) + mem4af1a62c := allocPipelineExecutableStatisticMemory(1) + ref4af1a62c := (*C.VkPipelineExecutableStatisticKHR)(mem4af1a62c) + allocs4af1a62c := new(cgoAllocMap) + allocs4af1a62c.Add(mem4af1a62c) var csType_allocs *cgoAllocMap - reff54a2a42.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf54a2a42.Borrow(csType_allocs) + ref4af1a62c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4af1a62c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff54a2a42.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf54a2a42.Borrow(cpNext_allocs) + ref4af1a62c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4af1a62c.Borrow(cpNext_allocs) - var cbuffer_allocs *cgoAllocMap - reff54a2a42.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocsf54a2a42.Borrow(cbuffer_allocs) + var cname_allocs *cgoAllocMap + ref4af1a62c.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs4af1a62c.Borrow(cname_allocs) - x.reff54a2a42 = reff54a2a42 - x.allocsf54a2a42 = allocsf54a2a42 - return reff54a2a42, allocsf54a2a42 + var cdescription_allocs *cgoAllocMap + ref4af1a62c.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown + allocs4af1a62c.Borrow(cdescription_allocs) + + var cformat_allocs *cgoAllocMap + ref4af1a62c.format, cformat_allocs = (C.VkPipelineExecutableStatisticFormatKHR)(x.Format), cgoAllocsUnknown + allocs4af1a62c.Borrow(cformat_allocs) + + var cvalue_allocs *cgoAllocMap + ref4af1a62c.value, cvalue_allocs = *(*C.VkPipelineExecutableStatisticValueKHR)(unsafe.Pointer(&x.Value)), cgoAllocsUnknown + allocs4af1a62c.Borrow(cvalue_allocs) + + x.ref4af1a62c = ref4af1a62c + x.allocs4af1a62c = allocs4af1a62c + return ref4af1a62c, allocs4af1a62c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BufferMemoryRequirementsInfo2) PassValue() (C.VkBufferMemoryRequirementsInfo2, *cgoAllocMap) { - if x.reff54a2a42 != nil { - return *x.reff54a2a42, nil +func (x PipelineExecutableStatistic) PassValue() (C.VkPipelineExecutableStatisticKHR, *cgoAllocMap) { + if x.ref4af1a62c != nil { + return *x.ref4af1a62c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14853,90 +41675,109 @@ func (x BufferMemoryRequirementsInfo2) PassValue() (C.VkBufferMemoryRequirements // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BufferMemoryRequirementsInfo2) Deref() { - if x.reff54a2a42 == nil { +func (x *PipelineExecutableStatistic) Deref() { + if x.ref4af1a62c == nil { return } - x.SType = (StructureType)(x.reff54a2a42.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff54a2a42.pNext)) - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.reff54a2a42.buffer)) + x.SType = (StructureType)(x.ref4af1a62c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4af1a62c.pNext)) + x.Name = *(*[256]byte)(unsafe.Pointer(&x.ref4af1a62c.name)) + x.Description = *(*[256]byte)(unsafe.Pointer(&x.ref4af1a62c.description)) + x.Format = (PipelineExecutableStatisticFormat)(x.ref4af1a62c.format) + x.Value = *(*PipelineExecutableStatisticValue)(unsafe.Pointer(&x.ref4af1a62c.value)) } -// allocImageMemoryRequirementsInfo2Memory allocates memory for type C.VkImageMemoryRequirementsInfo2 in C. +// allocPipelineExecutableInternalRepresentationMemory allocates memory for type C.VkPipelineExecutableInternalRepresentationKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageMemoryRequirementsInfo2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageMemoryRequirementsInfo2Value)) +func allocPipelineExecutableInternalRepresentationMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineExecutableInternalRepresentationValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageMemoryRequirementsInfo2Value = unsafe.Sizeof([1]C.VkImageMemoryRequirementsInfo2{}) +const sizeOfPipelineExecutableInternalRepresentationValue = unsafe.Sizeof([1]C.VkPipelineExecutableInternalRepresentationKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageMemoryRequirementsInfo2) Ref() *C.VkImageMemoryRequirementsInfo2 { +func (x *PipelineExecutableInternalRepresentation) Ref() *C.VkPipelineExecutableInternalRepresentationKHR { if x == nil { return nil } - return x.ref75b3ca05 + return x.ref20e334f7 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageMemoryRequirementsInfo2) Free() { - if x != nil && x.allocs75b3ca05 != nil { - x.allocs75b3ca05.(*cgoAllocMap).Free() - x.ref75b3ca05 = nil +func (x *PipelineExecutableInternalRepresentation) Free() { + if x != nil && x.allocs20e334f7 != nil { + x.allocs20e334f7.(*cgoAllocMap).Free() + x.ref20e334f7 = nil } } -// NewImageMemoryRequirementsInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineExecutableInternalRepresentationRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageMemoryRequirementsInfo2Ref(ref unsafe.Pointer) *ImageMemoryRequirementsInfo2 { +func NewPipelineExecutableInternalRepresentationRef(ref unsafe.Pointer) *PipelineExecutableInternalRepresentation { if ref == nil { return nil } - obj := new(ImageMemoryRequirementsInfo2) - obj.ref75b3ca05 = (*C.VkImageMemoryRequirementsInfo2)(unsafe.Pointer(ref)) + obj := new(PipelineExecutableInternalRepresentation) + obj.ref20e334f7 = (*C.VkPipelineExecutableInternalRepresentationKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageMemoryRequirementsInfo2) PassRef() (*C.VkImageMemoryRequirementsInfo2, *cgoAllocMap) { +func (x *PipelineExecutableInternalRepresentation) PassRef() (*C.VkPipelineExecutableInternalRepresentationKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref75b3ca05 != nil { - return x.ref75b3ca05, nil + } else if x.ref20e334f7 != nil { + return x.ref20e334f7, nil } - mem75b3ca05 := allocImageMemoryRequirementsInfo2Memory(1) - ref75b3ca05 := (*C.VkImageMemoryRequirementsInfo2)(mem75b3ca05) - allocs75b3ca05 := new(cgoAllocMap) - allocs75b3ca05.Add(mem75b3ca05) + mem20e334f7 := allocPipelineExecutableInternalRepresentationMemory(1) + ref20e334f7 := (*C.VkPipelineExecutableInternalRepresentationKHR)(mem20e334f7) + allocs20e334f7 := new(cgoAllocMap) + allocs20e334f7.Add(mem20e334f7) var csType_allocs *cgoAllocMap - ref75b3ca05.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs75b3ca05.Borrow(csType_allocs) + ref20e334f7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs20e334f7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref75b3ca05.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs75b3ca05.Borrow(cpNext_allocs) + ref20e334f7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs20e334f7.Borrow(cpNext_allocs) - var cimage_allocs *cgoAllocMap - ref75b3ca05.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs75b3ca05.Borrow(cimage_allocs) + var cname_allocs *cgoAllocMap + ref20e334f7.name, cname_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Name)), cgoAllocsUnknown + allocs20e334f7.Borrow(cname_allocs) - x.ref75b3ca05 = ref75b3ca05 - x.allocs75b3ca05 = allocs75b3ca05 - return ref75b3ca05, allocs75b3ca05 + var cdescription_allocs *cgoAllocMap + ref20e334f7.description, cdescription_allocs = *(*[256]C.char)(unsafe.Pointer(&x.Description)), cgoAllocsUnknown + allocs20e334f7.Borrow(cdescription_allocs) + + var cisText_allocs *cgoAllocMap + ref20e334f7.isText, cisText_allocs = (C.VkBool32)(x.IsText), cgoAllocsUnknown + allocs20e334f7.Borrow(cisText_allocs) + + var cdataSize_allocs *cgoAllocMap + ref20e334f7.dataSize, cdataSize_allocs = (C.size_t)(x.DataSize), cgoAllocsUnknown + allocs20e334f7.Borrow(cdataSize_allocs) + + var cpData_allocs *cgoAllocMap + ref20e334f7.pData, cpData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PData)), cgoAllocsUnknown + allocs20e334f7.Borrow(cpData_allocs) + + x.ref20e334f7 = ref20e334f7 + x.allocs20e334f7 = allocs20e334f7 + return ref20e334f7, allocs20e334f7 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageMemoryRequirementsInfo2) PassValue() (C.VkImageMemoryRequirementsInfo2, *cgoAllocMap) { - if x.ref75b3ca05 != nil { - return *x.ref75b3ca05, nil +func (x PipelineExecutableInternalRepresentation) PassValue() (C.VkPipelineExecutableInternalRepresentationKHR, *cgoAllocMap) { + if x.ref20e334f7 != nil { + return *x.ref20e334f7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -14944,90 +41785,98 @@ func (x ImageMemoryRequirementsInfo2) PassValue() (C.VkImageMemoryRequirementsIn // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageMemoryRequirementsInfo2) Deref() { - if x.ref75b3ca05 == nil { +func (x *PipelineExecutableInternalRepresentation) Deref() { + if x.ref20e334f7 == nil { return } - x.SType = (StructureType)(x.ref75b3ca05.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref75b3ca05.pNext)) - x.Image = *(*Image)(unsafe.Pointer(&x.ref75b3ca05.image)) + x.SType = (StructureType)(x.ref20e334f7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref20e334f7.pNext)) + x.Name = *(*[256]byte)(unsafe.Pointer(&x.ref20e334f7.name)) + x.Description = *(*[256]byte)(unsafe.Pointer(&x.ref20e334f7.description)) + x.IsText = (Bool32)(x.ref20e334f7.isText) + x.DataSize = (uint64)(x.ref20e334f7.dataSize) + x.PData = (unsafe.Pointer)(unsafe.Pointer(x.ref20e334f7.pData)) } -// allocImageSparseMemoryRequirementsInfo2Memory allocates memory for type C.VkImageSparseMemoryRequirementsInfo2 in C. +// allocPipelineLibraryCreateInfoMemory allocates memory for type C.VkPipelineLibraryCreateInfoKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageSparseMemoryRequirementsInfo2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSparseMemoryRequirementsInfo2Value)) +func allocPipelineLibraryCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineLibraryCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageSparseMemoryRequirementsInfo2Value = unsafe.Sizeof([1]C.VkImageSparseMemoryRequirementsInfo2{}) +const sizeOfPipelineLibraryCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineLibraryCreateInfoKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageSparseMemoryRequirementsInfo2) Ref() *C.VkImageSparseMemoryRequirementsInfo2 { +func (x *PipelineLibraryCreateInfo) Ref() *C.VkPipelineLibraryCreateInfoKHR { if x == nil { return nil } - return x.ref878956f7 + return x.ref6bb7541b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageSparseMemoryRequirementsInfo2) Free() { - if x != nil && x.allocs878956f7 != nil { - x.allocs878956f7.(*cgoAllocMap).Free() - x.ref878956f7 = nil +func (x *PipelineLibraryCreateInfo) Free() { + if x != nil && x.allocs6bb7541b != nil { + x.allocs6bb7541b.(*cgoAllocMap).Free() + x.ref6bb7541b = nil } } -// NewImageSparseMemoryRequirementsInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineLibraryCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageSparseMemoryRequirementsInfo2Ref(ref unsafe.Pointer) *ImageSparseMemoryRequirementsInfo2 { +func NewPipelineLibraryCreateInfoRef(ref unsafe.Pointer) *PipelineLibraryCreateInfo { if ref == nil { return nil } - obj := new(ImageSparseMemoryRequirementsInfo2) - obj.ref878956f7 = (*C.VkImageSparseMemoryRequirementsInfo2)(unsafe.Pointer(ref)) + obj := new(PipelineLibraryCreateInfo) + obj.ref6bb7541b = (*C.VkPipelineLibraryCreateInfoKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageSparseMemoryRequirementsInfo2) PassRef() (*C.VkImageSparseMemoryRequirementsInfo2, *cgoAllocMap) { +func (x *PipelineLibraryCreateInfo) PassRef() (*C.VkPipelineLibraryCreateInfoKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref878956f7 != nil { - return x.ref878956f7, nil + } else if x.ref6bb7541b != nil { + return x.ref6bb7541b, nil } - mem878956f7 := allocImageSparseMemoryRequirementsInfo2Memory(1) - ref878956f7 := (*C.VkImageSparseMemoryRequirementsInfo2)(mem878956f7) - allocs878956f7 := new(cgoAllocMap) - allocs878956f7.Add(mem878956f7) + mem6bb7541b := allocPipelineLibraryCreateInfoMemory(1) + ref6bb7541b := (*C.VkPipelineLibraryCreateInfoKHR)(mem6bb7541b) + allocs6bb7541b := new(cgoAllocMap) + allocs6bb7541b.Add(mem6bb7541b) var csType_allocs *cgoAllocMap - ref878956f7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs878956f7.Borrow(csType_allocs) + ref6bb7541b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6bb7541b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref878956f7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs878956f7.Borrow(cpNext_allocs) + ref6bb7541b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6bb7541b.Borrow(cpNext_allocs) - var cimage_allocs *cgoAllocMap - ref878956f7.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs878956f7.Borrow(cimage_allocs) + var clibraryCount_allocs *cgoAllocMap + ref6bb7541b.libraryCount, clibraryCount_allocs = (C.uint32_t)(x.LibraryCount), cgoAllocsUnknown + allocs6bb7541b.Borrow(clibraryCount_allocs) - x.ref878956f7 = ref878956f7 - x.allocs878956f7 = allocs878956f7 - return ref878956f7, allocs878956f7 + var cpLibraries_allocs *cgoAllocMap + ref6bb7541b.pLibraries, cpLibraries_allocs = (*C.VkPipeline)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PLibraries)).Data)), cgoAllocsUnknown + allocs6bb7541b.Borrow(cpLibraries_allocs) + + x.ref6bb7541b = ref6bb7541b + x.allocs6bb7541b = allocs6bb7541b + return ref6bb7541b, allocs6bb7541b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageSparseMemoryRequirementsInfo2) PassValue() (C.VkImageSparseMemoryRequirementsInfo2, *cgoAllocMap) { - if x.ref878956f7 != nil { - return *x.ref878956f7, nil +func (x PipelineLibraryCreateInfo) PassValue() (C.VkPipelineLibraryCreateInfoKHR, *cgoAllocMap) { + if x.ref6bb7541b != nil { + return *x.ref6bb7541b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15035,90 +41884,99 @@ func (x ImageSparseMemoryRequirementsInfo2) PassValue() (C.VkImageSparseMemoryRe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageSparseMemoryRequirementsInfo2) Deref() { - if x.ref878956f7 == nil { +func (x *PipelineLibraryCreateInfo) Deref() { + if x.ref6bb7541b == nil { return } - x.SType = (StructureType)(x.ref878956f7.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref878956f7.pNext)) - x.Image = *(*Image)(unsafe.Pointer(&x.ref878956f7.image)) + x.SType = (StructureType)(x.ref6bb7541b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6bb7541b.pNext)) + x.LibraryCount = (uint32)(x.ref6bb7541b.libraryCount) + hxfb029a7 := (*sliceHeader)(unsafe.Pointer(&x.PLibraries)) + hxfb029a7.Data = unsafe.Pointer(x.ref6bb7541b.pLibraries) + hxfb029a7.Cap = 0x7fffffff + // hxfb029a7.Len = ? + } -// allocMemoryRequirements2Memory allocates memory for type C.VkMemoryRequirements2 in C. +// allocPresentIdMemory allocates memory for type C.VkPresentIdKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryRequirements2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryRequirements2Value)) +func allocPresentIdMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentIdValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryRequirements2Value = unsafe.Sizeof([1]C.VkMemoryRequirements2{}) +const sizeOfPresentIdValue = unsafe.Sizeof([1]C.VkPresentIdKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryRequirements2) Ref() *C.VkMemoryRequirements2 { +func (x *PresentId) Ref() *C.VkPresentIdKHR { if x == nil { return nil } - return x.refc0e75f21 + return x.ref70010623 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryRequirements2) Free() { - if x != nil && x.allocsc0e75f21 != nil { - x.allocsc0e75f21.(*cgoAllocMap).Free() - x.refc0e75f21 = nil +func (x *PresentId) Free() { + if x != nil && x.allocs70010623 != nil { + x.allocs70010623.(*cgoAllocMap).Free() + x.ref70010623 = nil } } -// NewMemoryRequirements2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPresentIdRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryRequirements2Ref(ref unsafe.Pointer) *MemoryRequirements2 { +func NewPresentIdRef(ref unsafe.Pointer) *PresentId { if ref == nil { return nil } - obj := new(MemoryRequirements2) - obj.refc0e75f21 = (*C.VkMemoryRequirements2)(unsafe.Pointer(ref)) + obj := new(PresentId) + obj.ref70010623 = (*C.VkPresentIdKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryRequirements2) PassRef() (*C.VkMemoryRequirements2, *cgoAllocMap) { +func (x *PresentId) PassRef() (*C.VkPresentIdKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc0e75f21 != nil { - return x.refc0e75f21, nil + } else if x.ref70010623 != nil { + return x.ref70010623, nil } - memc0e75f21 := allocMemoryRequirements2Memory(1) - refc0e75f21 := (*C.VkMemoryRequirements2)(memc0e75f21) - allocsc0e75f21 := new(cgoAllocMap) - allocsc0e75f21.Add(memc0e75f21) + mem70010623 := allocPresentIdMemory(1) + ref70010623 := (*C.VkPresentIdKHR)(mem70010623) + allocs70010623 := new(cgoAllocMap) + allocs70010623.Add(mem70010623) var csType_allocs *cgoAllocMap - refc0e75f21.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc0e75f21.Borrow(csType_allocs) + ref70010623.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs70010623.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc0e75f21.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc0e75f21.Borrow(cpNext_allocs) + ref70010623.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs70010623.Borrow(cpNext_allocs) - var cmemoryRequirements_allocs *cgoAllocMap - refc0e75f21.memoryRequirements, cmemoryRequirements_allocs = x.MemoryRequirements.PassValue() - allocsc0e75f21.Borrow(cmemoryRequirements_allocs) + var cswapchainCount_allocs *cgoAllocMap + ref70010623.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs70010623.Borrow(cswapchainCount_allocs) - x.refc0e75f21 = refc0e75f21 - x.allocsc0e75f21 = allocsc0e75f21 - return refc0e75f21, allocsc0e75f21 + var cpPresentIds_allocs *cgoAllocMap + ref70010623.pPresentIds, cpPresentIds_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPresentIds)).Data)), cgoAllocsUnknown + allocs70010623.Borrow(cpPresentIds_allocs) + + x.ref70010623 = ref70010623 + x.allocs70010623 = allocs70010623 + return ref70010623, allocs70010623 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryRequirements2) PassValue() (C.VkMemoryRequirements2, *cgoAllocMap) { - if x.refc0e75f21 != nil { - return *x.refc0e75f21, nil +func (x PresentId) PassValue() (C.VkPresentIdKHR, *cgoAllocMap) { + if x.ref70010623 != nil { + return *x.ref70010623, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15126,90 +41984,95 @@ func (x MemoryRequirements2) PassValue() (C.VkMemoryRequirements2, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryRequirements2) Deref() { - if x.refc0e75f21 == nil { +func (x *PresentId) Deref() { + if x.ref70010623 == nil { return } - x.SType = (StructureType)(x.refc0e75f21.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc0e75f21.pNext)) - x.MemoryRequirements = *NewMemoryRequirementsRef(unsafe.Pointer(&x.refc0e75f21.memoryRequirements)) + x.SType = (StructureType)(x.ref70010623.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref70010623.pNext)) + x.SwapchainCount = (uint32)(x.ref70010623.swapchainCount) + hxf7d15a2 := (*sliceHeader)(unsafe.Pointer(&x.PPresentIds)) + hxf7d15a2.Data = unsafe.Pointer(x.ref70010623.pPresentIds) + hxf7d15a2.Cap = 0x7fffffff + // hxf7d15a2.Len = ? + } -// allocSparseImageMemoryRequirements2Memory allocates memory for type C.VkSparseImageMemoryRequirements2 in C. +// allocPhysicalDevicePresentIdFeaturesMemory allocates memory for type C.VkPhysicalDevicePresentIdFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocSparseImageMemoryRequirements2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageMemoryRequirements2Value)) +func allocPhysicalDevicePresentIdFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePresentIdFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSparseImageMemoryRequirements2Value = unsafe.Sizeof([1]C.VkSparseImageMemoryRequirements2{}) +const sizeOfPhysicalDevicePresentIdFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePresentIdFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageMemoryRequirements2) Ref() *C.VkSparseImageMemoryRequirements2 { +func (x *PhysicalDevicePresentIdFeatures) Ref() *C.VkPhysicalDevicePresentIdFeaturesKHR { if x == nil { return nil } - return x.refb8da955c + return x.refba9945cd } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SparseImageMemoryRequirements2) Free() { - if x != nil && x.allocsb8da955c != nil { - x.allocsb8da955c.(*cgoAllocMap).Free() - x.refb8da955c = nil +func (x *PhysicalDevicePresentIdFeatures) Free() { + if x != nil && x.allocsba9945cd != nil { + x.allocsba9945cd.(*cgoAllocMap).Free() + x.refba9945cd = nil } } -// NewSparseImageMemoryRequirements2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePresentIdFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSparseImageMemoryRequirements2Ref(ref unsafe.Pointer) *SparseImageMemoryRequirements2 { +func NewPhysicalDevicePresentIdFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePresentIdFeatures { if ref == nil { return nil } - obj := new(SparseImageMemoryRequirements2) - obj.refb8da955c = (*C.VkSparseImageMemoryRequirements2)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePresentIdFeatures) + obj.refba9945cd = (*C.VkPhysicalDevicePresentIdFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SparseImageMemoryRequirements2) PassRef() (*C.VkSparseImageMemoryRequirements2, *cgoAllocMap) { +func (x *PhysicalDevicePresentIdFeatures) PassRef() (*C.VkPhysicalDevicePresentIdFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8da955c != nil { - return x.refb8da955c, nil + } else if x.refba9945cd != nil { + return x.refba9945cd, nil } - memb8da955c := allocSparseImageMemoryRequirements2Memory(1) - refb8da955c := (*C.VkSparseImageMemoryRequirements2)(memb8da955c) - allocsb8da955c := new(cgoAllocMap) - allocsb8da955c.Add(memb8da955c) + memba9945cd := allocPhysicalDevicePresentIdFeaturesMemory(1) + refba9945cd := (*C.VkPhysicalDevicePresentIdFeaturesKHR)(memba9945cd) + allocsba9945cd := new(cgoAllocMap) + allocsba9945cd.Add(memba9945cd) var csType_allocs *cgoAllocMap - refb8da955c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb8da955c.Borrow(csType_allocs) + refba9945cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsba9945cd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb8da955c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb8da955c.Borrow(cpNext_allocs) + refba9945cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsba9945cd.Borrow(cpNext_allocs) - var cmemoryRequirements_allocs *cgoAllocMap - refb8da955c.memoryRequirements, cmemoryRequirements_allocs = x.MemoryRequirements.PassValue() - allocsb8da955c.Borrow(cmemoryRequirements_allocs) + var cpresentId_allocs *cgoAllocMap + refba9945cd.presentId, cpresentId_allocs = (C.VkBool32)(x.PresentId), cgoAllocsUnknown + allocsba9945cd.Borrow(cpresentId_allocs) - x.refb8da955c = refb8da955c - x.allocsb8da955c = allocsb8da955c - return refb8da955c, allocsb8da955c + x.refba9945cd = refba9945cd + x.allocsba9945cd = allocsba9945cd + return refba9945cd, allocsba9945cd } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SparseImageMemoryRequirements2) PassValue() (C.VkSparseImageMemoryRequirements2, *cgoAllocMap) { - if x.refb8da955c != nil { - return *x.refb8da955c, nil +func (x PhysicalDevicePresentIdFeatures) PassValue() (C.VkPhysicalDevicePresentIdFeaturesKHR, *cgoAllocMap) { + if x.refba9945cd != nil { + return *x.refba9945cd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15217,90 +42080,90 @@ func (x SparseImageMemoryRequirements2) PassValue() (C.VkSparseImageMemoryRequir // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SparseImageMemoryRequirements2) Deref() { - if x.refb8da955c == nil { +func (x *PhysicalDevicePresentIdFeatures) Deref() { + if x.refba9945cd == nil { return } - x.SType = (StructureType)(x.refb8da955c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8da955c.pNext)) - x.MemoryRequirements = *NewSparseImageMemoryRequirementsRef(unsafe.Pointer(&x.refb8da955c.memoryRequirements)) + x.SType = (StructureType)(x.refba9945cd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refba9945cd.pNext)) + x.PresentId = (Bool32)(x.refba9945cd.presentId) } -// allocPhysicalDeviceFeatures2Memory allocates memory for type C.VkPhysicalDeviceFeatures2 in C. +// allocQueueFamilyCheckpointProperties2NVMemory allocates memory for type C.VkQueueFamilyCheckpointProperties2NV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceFeatures2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFeatures2Value)) +func allocQueueFamilyCheckpointProperties2NVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyCheckpointProperties2NVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceFeatures2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceFeatures2{}) +const sizeOfQueueFamilyCheckpointProperties2NVValue = unsafe.Sizeof([1]C.VkQueueFamilyCheckpointProperties2NV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFeatures2) Ref() *C.VkPhysicalDeviceFeatures2 { +func (x *QueueFamilyCheckpointProperties2NV) Ref() *C.VkQueueFamilyCheckpointProperties2NV { if x == nil { return nil } - return x.refff6ed04 + return x.reffdc86afc } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceFeatures2) Free() { - if x != nil && x.allocsff6ed04 != nil { - x.allocsff6ed04.(*cgoAllocMap).Free() - x.refff6ed04 = nil +func (x *QueueFamilyCheckpointProperties2NV) Free() { + if x != nil && x.allocsfdc86afc != nil { + x.allocsfdc86afc.(*cgoAllocMap).Free() + x.reffdc86afc = nil } } -// NewPhysicalDeviceFeatures2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewQueueFamilyCheckpointProperties2NVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceFeatures2Ref(ref unsafe.Pointer) *PhysicalDeviceFeatures2 { +func NewQueueFamilyCheckpointProperties2NVRef(ref unsafe.Pointer) *QueueFamilyCheckpointProperties2NV { if ref == nil { return nil } - obj := new(PhysicalDeviceFeatures2) - obj.refff6ed04 = (*C.VkPhysicalDeviceFeatures2)(unsafe.Pointer(ref)) + obj := new(QueueFamilyCheckpointProperties2NV) + obj.reffdc86afc = (*C.VkQueueFamilyCheckpointProperties2NV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceFeatures2) PassRef() (*C.VkPhysicalDeviceFeatures2, *cgoAllocMap) { +func (x *QueueFamilyCheckpointProperties2NV) PassRef() (*C.VkQueueFamilyCheckpointProperties2NV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refff6ed04 != nil { - return x.refff6ed04, nil + } else if x.reffdc86afc != nil { + return x.reffdc86afc, nil } - memff6ed04 := allocPhysicalDeviceFeatures2Memory(1) - refff6ed04 := (*C.VkPhysicalDeviceFeatures2)(memff6ed04) - allocsff6ed04 := new(cgoAllocMap) - allocsff6ed04.Add(memff6ed04) + memfdc86afc := allocQueueFamilyCheckpointProperties2NVMemory(1) + reffdc86afc := (*C.VkQueueFamilyCheckpointProperties2NV)(memfdc86afc) + allocsfdc86afc := new(cgoAllocMap) + allocsfdc86afc.Add(memfdc86afc) var csType_allocs *cgoAllocMap - refff6ed04.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsff6ed04.Borrow(csType_allocs) + reffdc86afc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfdc86afc.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refff6ed04.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsff6ed04.Borrow(cpNext_allocs) + reffdc86afc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfdc86afc.Borrow(cpNext_allocs) - var cfeatures_allocs *cgoAllocMap - refff6ed04.features, cfeatures_allocs = x.Features.PassValue() - allocsff6ed04.Borrow(cfeatures_allocs) + var ccheckpointExecutionStageMask_allocs *cgoAllocMap + reffdc86afc.checkpointExecutionStageMask, ccheckpointExecutionStageMask_allocs = (C.VkPipelineStageFlags2)(x.CheckpointExecutionStageMask), cgoAllocsUnknown + allocsfdc86afc.Borrow(ccheckpointExecutionStageMask_allocs) - x.refff6ed04 = refff6ed04 - x.allocsff6ed04 = allocsff6ed04 - return refff6ed04, allocsff6ed04 + x.reffdc86afc = reffdc86afc + x.allocsfdc86afc = allocsfdc86afc + return reffdc86afc, allocsfdc86afc } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceFeatures2) PassValue() (C.VkPhysicalDeviceFeatures2, *cgoAllocMap) { - if x.refff6ed04 != nil { - return *x.refff6ed04, nil +func (x QueueFamilyCheckpointProperties2NV) PassValue() (C.VkQueueFamilyCheckpointProperties2NV, *cgoAllocMap) { + if x.reffdc86afc != nil { + return *x.reffdc86afc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15308,90 +42171,94 @@ func (x PhysicalDeviceFeatures2) PassValue() (C.VkPhysicalDeviceFeatures2, *cgoA // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceFeatures2) Deref() { - if x.refff6ed04 == nil { +func (x *QueueFamilyCheckpointProperties2NV) Deref() { + if x.reffdc86afc == nil { return } - x.SType = (StructureType)(x.refff6ed04.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refff6ed04.pNext)) - x.Features = *NewPhysicalDeviceFeaturesRef(unsafe.Pointer(&x.refff6ed04.features)) + x.SType = (StructureType)(x.reffdc86afc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffdc86afc.pNext)) + x.CheckpointExecutionStageMask = (PipelineStageFlags2)(x.reffdc86afc.checkpointExecutionStageMask) } -// allocPhysicalDeviceProperties2Memory allocates memory for type C.VkPhysicalDeviceProperties2 in C. +// allocCheckpointData2NVMemory allocates memory for type C.VkCheckpointData2NV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceProperties2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProperties2Value)) +func allocCheckpointData2NVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCheckpointData2NVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceProperties2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceProperties2{}) +const sizeOfCheckpointData2NVValue = unsafe.Sizeof([1]C.VkCheckpointData2NV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceProperties2) Ref() *C.VkPhysicalDeviceProperties2 { +func (x *CheckpointData2NV) Ref() *C.VkCheckpointData2NV { if x == nil { return nil } - return x.ref947bd13e + return x.ref6e25431b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceProperties2) Free() { - if x != nil && x.allocs947bd13e != nil { - x.allocs947bd13e.(*cgoAllocMap).Free() - x.ref947bd13e = nil +func (x *CheckpointData2NV) Free() { + if x != nil && x.allocs6e25431b != nil { + x.allocs6e25431b.(*cgoAllocMap).Free() + x.ref6e25431b = nil } } -// NewPhysicalDeviceProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewCheckpointData2NVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceProperties2Ref(ref unsafe.Pointer) *PhysicalDeviceProperties2 { +func NewCheckpointData2NVRef(ref unsafe.Pointer) *CheckpointData2NV { if ref == nil { return nil } - obj := new(PhysicalDeviceProperties2) - obj.ref947bd13e = (*C.VkPhysicalDeviceProperties2)(unsafe.Pointer(ref)) + obj := new(CheckpointData2NV) + obj.ref6e25431b = (*C.VkCheckpointData2NV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceProperties2) PassRef() (*C.VkPhysicalDeviceProperties2, *cgoAllocMap) { +func (x *CheckpointData2NV) PassRef() (*C.VkCheckpointData2NV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref947bd13e != nil { - return x.ref947bd13e, nil + } else if x.ref6e25431b != nil { + return x.ref6e25431b, nil } - mem947bd13e := allocPhysicalDeviceProperties2Memory(1) - ref947bd13e := (*C.VkPhysicalDeviceProperties2)(mem947bd13e) - allocs947bd13e := new(cgoAllocMap) - allocs947bd13e.Add(mem947bd13e) + mem6e25431b := allocCheckpointData2NVMemory(1) + ref6e25431b := (*C.VkCheckpointData2NV)(mem6e25431b) + allocs6e25431b := new(cgoAllocMap) + allocs6e25431b.Add(mem6e25431b) var csType_allocs *cgoAllocMap - ref947bd13e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs947bd13e.Borrow(csType_allocs) + ref6e25431b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6e25431b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref947bd13e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs947bd13e.Borrow(cpNext_allocs) + ref6e25431b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6e25431b.Borrow(cpNext_allocs) - var cproperties_allocs *cgoAllocMap - ref947bd13e.properties, cproperties_allocs = x.Properties.PassValue() - allocs947bd13e.Borrow(cproperties_allocs) + var cstage_allocs *cgoAllocMap + ref6e25431b.stage, cstage_allocs = (C.VkPipelineStageFlags2)(x.Stage), cgoAllocsUnknown + allocs6e25431b.Borrow(cstage_allocs) - x.ref947bd13e = ref947bd13e - x.allocs947bd13e = allocs947bd13e - return ref947bd13e, allocs947bd13e + var cpCheckpointMarker_allocs *cgoAllocMap + ref6e25431b.pCheckpointMarker, cpCheckpointMarker_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PCheckpointMarker)), cgoAllocsUnknown + allocs6e25431b.Borrow(cpCheckpointMarker_allocs) + + x.ref6e25431b = ref6e25431b + x.allocs6e25431b = allocs6e25431b + return ref6e25431b, allocs6e25431b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceProperties2) PassValue() (C.VkPhysicalDeviceProperties2, *cgoAllocMap) { - if x.ref947bd13e != nil { - return *x.ref947bd13e, nil +func (x CheckpointData2NV) PassValue() (C.VkCheckpointData2NV, *cgoAllocMap) { + if x.ref6e25431b != nil { + return *x.ref6e25431b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15399,90 +42266,91 @@ func (x PhysicalDeviceProperties2) PassValue() (C.VkPhysicalDeviceProperties2, * // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceProperties2) Deref() { - if x.ref947bd13e == nil { +func (x *CheckpointData2NV) Deref() { + if x.ref6e25431b == nil { return } - x.SType = (StructureType)(x.ref947bd13e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref947bd13e.pNext)) - x.Properties = *NewPhysicalDevicePropertiesRef(unsafe.Pointer(&x.ref947bd13e.properties)) + x.SType = (StructureType)(x.ref6e25431b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6e25431b.pNext)) + x.Stage = (PipelineStageFlags2)(x.ref6e25431b.stage) + x.PCheckpointMarker = (unsafe.Pointer)(unsafe.Pointer(x.ref6e25431b.pCheckpointMarker)) } -// allocFormatProperties2Memory allocates memory for type C.VkFormatProperties2 in C. +// allocPhysicalDeviceFragmentShaderBarycentricFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocFormatProperties2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFormatProperties2Value)) +func allocPhysicalDeviceFragmentShaderBarycentricFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShaderBarycentricFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfFormatProperties2Value = unsafe.Sizeof([1]C.VkFormatProperties2{}) +const sizeOfPhysicalDeviceFragmentShaderBarycentricFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FormatProperties2) Ref() *C.VkFormatProperties2 { +func (x *PhysicalDeviceFragmentShaderBarycentricFeatures) Ref() *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR { if x == nil { return nil } - return x.refddc6af2a + return x.reff7f35e73 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *FormatProperties2) Free() { - if x != nil && x.allocsddc6af2a != nil { - x.allocsddc6af2a.(*cgoAllocMap).Free() - x.refddc6af2a = nil +func (x *PhysicalDeviceFragmentShaderBarycentricFeatures) Free() { + if x != nil && x.allocsf7f35e73 != nil { + x.allocsf7f35e73.(*cgoAllocMap).Free() + x.reff7f35e73 = nil } } -// NewFormatProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentShaderBarycentricFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewFormatProperties2Ref(ref unsafe.Pointer) *FormatProperties2 { +func NewPhysicalDeviceFragmentShaderBarycentricFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderBarycentricFeatures { if ref == nil { return nil } - obj := new(FormatProperties2) - obj.refddc6af2a = (*C.VkFormatProperties2)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentShaderBarycentricFeatures) + obj.reff7f35e73 = (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *FormatProperties2) PassRef() (*C.VkFormatProperties2, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShaderBarycentricFeatures) PassRef() (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refddc6af2a != nil { - return x.refddc6af2a, nil + } else if x.reff7f35e73 != nil { + return x.reff7f35e73, nil } - memddc6af2a := allocFormatProperties2Memory(1) - refddc6af2a := (*C.VkFormatProperties2)(memddc6af2a) - allocsddc6af2a := new(cgoAllocMap) - allocsddc6af2a.Add(memddc6af2a) + memf7f35e73 := allocPhysicalDeviceFragmentShaderBarycentricFeaturesMemory(1) + reff7f35e73 := (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR)(memf7f35e73) + allocsf7f35e73 := new(cgoAllocMap) + allocsf7f35e73.Add(memf7f35e73) var csType_allocs *cgoAllocMap - refddc6af2a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsddc6af2a.Borrow(csType_allocs) + reff7f35e73.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf7f35e73.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refddc6af2a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsddc6af2a.Borrow(cpNext_allocs) + reff7f35e73.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf7f35e73.Borrow(cpNext_allocs) - var cformatProperties_allocs *cgoAllocMap - refddc6af2a.formatProperties, cformatProperties_allocs = x.FormatProperties.PassValue() - allocsddc6af2a.Borrow(cformatProperties_allocs) + var cfragmentShaderBarycentric_allocs *cgoAllocMap + reff7f35e73.fragmentShaderBarycentric, cfragmentShaderBarycentric_allocs = (C.VkBool32)(x.FragmentShaderBarycentric), cgoAllocsUnknown + allocsf7f35e73.Borrow(cfragmentShaderBarycentric_allocs) - x.refddc6af2a = refddc6af2a - x.allocsddc6af2a = allocsddc6af2a - return refddc6af2a, allocsddc6af2a + x.reff7f35e73 = reff7f35e73 + x.allocsf7f35e73 = allocsf7f35e73 + return reff7f35e73, allocsf7f35e73 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x FormatProperties2) PassValue() (C.VkFormatProperties2, *cgoAllocMap) { - if x.refddc6af2a != nil { - return *x.refddc6af2a, nil +func (x PhysicalDeviceFragmentShaderBarycentricFeatures) PassValue() (C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, *cgoAllocMap) { + if x.reff7f35e73 != nil { + return *x.reff7f35e73, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15490,90 +42358,90 @@ func (x FormatProperties2) PassValue() (C.VkFormatProperties2, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *FormatProperties2) Deref() { - if x.refddc6af2a == nil { +func (x *PhysicalDeviceFragmentShaderBarycentricFeatures) Deref() { + if x.reff7f35e73 == nil { return } - x.SType = (StructureType)(x.refddc6af2a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refddc6af2a.pNext)) - x.FormatProperties = *NewFormatPropertiesRef(unsafe.Pointer(&x.refddc6af2a.formatProperties)) + x.SType = (StructureType)(x.reff7f35e73.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff7f35e73.pNext)) + x.FragmentShaderBarycentric = (Bool32)(x.reff7f35e73.fragmentShaderBarycentric) } -// allocImageFormatProperties2Memory allocates memory for type C.VkImageFormatProperties2 in C. +// allocPhysicalDeviceFragmentShaderBarycentricPropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageFormatProperties2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageFormatProperties2Value)) +func allocPhysicalDeviceFragmentShaderBarycentricPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShaderBarycentricPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageFormatProperties2Value = unsafe.Sizeof([1]C.VkImageFormatProperties2{}) +const sizeOfPhysicalDeviceFragmentShaderBarycentricPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageFormatProperties2) Ref() *C.VkImageFormatProperties2 { +func (x *PhysicalDeviceFragmentShaderBarycentricProperties) Ref() *C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR { if x == nil { return nil } - return x.ref224187e7 + return x.refc62a32db } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageFormatProperties2) Free() { - if x != nil && x.allocs224187e7 != nil { - x.allocs224187e7.(*cgoAllocMap).Free() - x.ref224187e7 = nil +func (x *PhysicalDeviceFragmentShaderBarycentricProperties) Free() { + if x != nil && x.allocsc62a32db != nil { + x.allocsc62a32db.(*cgoAllocMap).Free() + x.refc62a32db = nil } } -// NewImageFormatProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentShaderBarycentricPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageFormatProperties2Ref(ref unsafe.Pointer) *ImageFormatProperties2 { +func NewPhysicalDeviceFragmentShaderBarycentricPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderBarycentricProperties { if ref == nil { return nil } - obj := new(ImageFormatProperties2) - obj.ref224187e7 = (*C.VkImageFormatProperties2)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentShaderBarycentricProperties) + obj.refc62a32db = (*C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageFormatProperties2) PassRef() (*C.VkImageFormatProperties2, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShaderBarycentricProperties) PassRef() (*C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref224187e7 != nil { - return x.ref224187e7, nil + } else if x.refc62a32db != nil { + return x.refc62a32db, nil } - mem224187e7 := allocImageFormatProperties2Memory(1) - ref224187e7 := (*C.VkImageFormatProperties2)(mem224187e7) - allocs224187e7 := new(cgoAllocMap) - allocs224187e7.Add(mem224187e7) + memc62a32db := allocPhysicalDeviceFragmentShaderBarycentricPropertiesMemory(1) + refc62a32db := (*C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR)(memc62a32db) + allocsc62a32db := new(cgoAllocMap) + allocsc62a32db.Add(memc62a32db) var csType_allocs *cgoAllocMap - ref224187e7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs224187e7.Borrow(csType_allocs) + refc62a32db.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc62a32db.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref224187e7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs224187e7.Borrow(cpNext_allocs) + refc62a32db.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc62a32db.Borrow(cpNext_allocs) - var cimageFormatProperties_allocs *cgoAllocMap - ref224187e7.imageFormatProperties, cimageFormatProperties_allocs = x.ImageFormatProperties.PassValue() - allocs224187e7.Borrow(cimageFormatProperties_allocs) + var ctriStripVertexOrderIndependentOfProvokingVertex_allocs *cgoAllocMap + refc62a32db.triStripVertexOrderIndependentOfProvokingVertex, ctriStripVertexOrderIndependentOfProvokingVertex_allocs = (C.VkBool32)(x.TriStripVertexOrderIndependentOfProvokingVertex), cgoAllocsUnknown + allocsc62a32db.Borrow(ctriStripVertexOrderIndependentOfProvokingVertex_allocs) - x.ref224187e7 = ref224187e7 - x.allocs224187e7 = allocs224187e7 - return ref224187e7, allocs224187e7 + x.refc62a32db = refc62a32db + x.allocsc62a32db = allocsc62a32db + return refc62a32db, allocsc62a32db } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageFormatProperties2) PassValue() (C.VkImageFormatProperties2, *cgoAllocMap) { - if x.ref224187e7 != nil { - return *x.ref224187e7, nil +func (x PhysicalDeviceFragmentShaderBarycentricProperties) PassValue() (C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, *cgoAllocMap) { + if x.refc62a32db != nil { + return *x.refc62a32db, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15581,106 +42449,90 @@ func (x ImageFormatProperties2) PassValue() (C.VkImageFormatProperties2, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageFormatProperties2) Deref() { - if x.ref224187e7 == nil { +func (x *PhysicalDeviceFragmentShaderBarycentricProperties) Deref() { + if x.refc62a32db == nil { return } - x.SType = (StructureType)(x.ref224187e7.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref224187e7.pNext)) - x.ImageFormatProperties = *NewImageFormatPropertiesRef(unsafe.Pointer(&x.ref224187e7.imageFormatProperties)) + x.SType = (StructureType)(x.refc62a32db.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc62a32db.pNext)) + x.TriStripVertexOrderIndependentOfProvokingVertex = (Bool32)(x.refc62a32db.triStripVertexOrderIndependentOfProvokingVertex) } -// allocPhysicalDeviceImageFormatInfo2Memory allocates memory for type C.VkPhysicalDeviceImageFormatInfo2 in C. +// allocPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceImageFormatInfo2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageFormatInfo2Value)) +func allocPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceImageFormatInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceImageFormatInfo2{}) +const sizeOfPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceImageFormatInfo2) Ref() *C.VkPhysicalDeviceImageFormatInfo2 { +func (x *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) Ref() *C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR { if x == nil { return nil } - return x.ref5934b445 + return x.refadc1f19 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceImageFormatInfo2) Free() { - if x != nil && x.allocs5934b445 != nil { - x.allocs5934b445.(*cgoAllocMap).Free() - x.ref5934b445 = nil +func (x *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) Free() { + if x != nil && x.allocsadc1f19 != nil { + x.allocsadc1f19.(*cgoAllocMap).Free() + x.refadc1f19 = nil } } -// NewPhysicalDeviceImageFormatInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceImageFormatInfo2Ref(ref unsafe.Pointer) *PhysicalDeviceImageFormatInfo2 { +func NewPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceImageFormatInfo2) - obj.ref5934b445 = (*C.VkPhysicalDeviceImageFormatInfo2)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) + obj.refadc1f19 = (*C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceImageFormatInfo2) PassRef() (*C.VkPhysicalDeviceImageFormatInfo2, *cgoAllocMap) { +func (x *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) PassRef() (*C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5934b445 != nil { - return x.ref5934b445, nil + } else if x.refadc1f19 != nil { + return x.refadc1f19, nil } - mem5934b445 := allocPhysicalDeviceImageFormatInfo2Memory(1) - ref5934b445 := (*C.VkPhysicalDeviceImageFormatInfo2)(mem5934b445) - allocs5934b445 := new(cgoAllocMap) - allocs5934b445.Add(mem5934b445) + memadc1f19 := allocPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesMemory(1) + refadc1f19 := (*C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)(memadc1f19) + allocsadc1f19 := new(cgoAllocMap) + allocsadc1f19.Add(memadc1f19) var csType_allocs *cgoAllocMap - ref5934b445.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5934b445.Borrow(csType_allocs) + refadc1f19.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsadc1f19.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5934b445.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5934b445.Borrow(cpNext_allocs) - - var cformat_allocs *cgoAllocMap - ref5934b445.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocs5934b445.Borrow(cformat_allocs) - - var c_type_allocs *cgoAllocMap - ref5934b445._type, c_type_allocs = (C.VkImageType)(x.Type), cgoAllocsUnknown - allocs5934b445.Borrow(c_type_allocs) - - var ctiling_allocs *cgoAllocMap - ref5934b445.tiling, ctiling_allocs = (C.VkImageTiling)(x.Tiling), cgoAllocsUnknown - allocs5934b445.Borrow(ctiling_allocs) - - var cusage_allocs *cgoAllocMap - ref5934b445.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown - allocs5934b445.Borrow(cusage_allocs) + refadc1f19.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsadc1f19.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref5934b445.flags, cflags_allocs = (C.VkImageCreateFlags)(x.Flags), cgoAllocsUnknown - allocs5934b445.Borrow(cflags_allocs) + var cshaderSubgroupUniformControlFlow_allocs *cgoAllocMap + refadc1f19.shaderSubgroupUniformControlFlow, cshaderSubgroupUniformControlFlow_allocs = (C.VkBool32)(x.ShaderSubgroupUniformControlFlow), cgoAllocsUnknown + allocsadc1f19.Borrow(cshaderSubgroupUniformControlFlow_allocs) - x.ref5934b445 = ref5934b445 - x.allocs5934b445 = allocs5934b445 - return ref5934b445, allocs5934b445 + x.refadc1f19 = refadc1f19 + x.allocsadc1f19 = allocsadc1f19 + return refadc1f19, allocsadc1f19 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceImageFormatInfo2) PassValue() (C.VkPhysicalDeviceImageFormatInfo2, *cgoAllocMap) { - if x.ref5934b445 != nil { - return *x.ref5934b445, nil +func (x PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) PassValue() (C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, *cgoAllocMap) { + if x.refadc1f19 != nil { + return *x.refadc1f19, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15688,94 +42540,102 @@ func (x PhysicalDeviceImageFormatInfo2) PassValue() (C.VkPhysicalDeviceImageForm // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceImageFormatInfo2) Deref() { - if x.ref5934b445 == nil { +func (x *PhysicalDeviceShaderSubgroupUniformControlFlowFeatures) Deref() { + if x.refadc1f19 == nil { return } - x.SType = (StructureType)(x.ref5934b445.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5934b445.pNext)) - x.Format = (Format)(x.ref5934b445.format) - x.Type = (ImageType)(x.ref5934b445._type) - x.Tiling = (ImageTiling)(x.ref5934b445.tiling) - x.Usage = (ImageUsageFlags)(x.ref5934b445.usage) - x.Flags = (ImageCreateFlags)(x.ref5934b445.flags) + x.SType = (StructureType)(x.refadc1f19.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refadc1f19.pNext)) + x.ShaderSubgroupUniformControlFlow = (Bool32)(x.refadc1f19.shaderSubgroupUniformControlFlow) } -// allocQueueFamilyProperties2Memory allocates memory for type C.VkQueueFamilyProperties2 in C. +// allocPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesMemory allocates memory for type C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocQueueFamilyProperties2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyProperties2Value)) +func allocPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfQueueFamilyProperties2Value = unsafe.Sizeof([1]C.VkQueueFamilyProperties2{}) +const sizeOfPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueueFamilyProperties2) Ref() *C.VkQueueFamilyProperties2 { +func (x *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) Ref() *C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { if x == nil { return nil } - return x.ref85bf626c + return x.ref288a691 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *QueueFamilyProperties2) Free() { - if x != nil && x.allocs85bf626c != nil { - x.allocs85bf626c.(*cgoAllocMap).Free() - x.ref85bf626c = nil +func (x *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) Free() { + if x != nil && x.allocs288a691 != nil { + x.allocs288a691.(*cgoAllocMap).Free() + x.ref288a691 = nil } } -// NewQueueFamilyProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewQueueFamilyProperties2Ref(ref unsafe.Pointer) *QueueFamilyProperties2 { +func NewPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures { if ref == nil { return nil } - obj := new(QueueFamilyProperties2) - obj.ref85bf626c = (*C.VkQueueFamilyProperties2)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) + obj.ref288a691 = (*C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *QueueFamilyProperties2) PassRef() (*C.VkQueueFamilyProperties2, *cgoAllocMap) { +func (x *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) PassRef() (*C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref85bf626c != nil { - return x.ref85bf626c, nil + } else if x.ref288a691 != nil { + return x.ref288a691, nil } - mem85bf626c := allocQueueFamilyProperties2Memory(1) - ref85bf626c := (*C.VkQueueFamilyProperties2)(mem85bf626c) - allocs85bf626c := new(cgoAllocMap) - allocs85bf626c.Add(mem85bf626c) + mem288a691 := allocPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesMemory(1) + ref288a691 := (*C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)(mem288a691) + allocs288a691 := new(cgoAllocMap) + allocs288a691.Add(mem288a691) var csType_allocs *cgoAllocMap - ref85bf626c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs85bf626c.Borrow(csType_allocs) + ref288a691.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs288a691.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref85bf626c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs85bf626c.Borrow(cpNext_allocs) + ref288a691.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs288a691.Borrow(cpNext_allocs) - var cqueueFamilyProperties_allocs *cgoAllocMap - ref85bf626c.queueFamilyProperties, cqueueFamilyProperties_allocs = x.QueueFamilyProperties.PassValue() - allocs85bf626c.Borrow(cqueueFamilyProperties_allocs) + var cworkgroupMemoryExplicitLayout_allocs *cgoAllocMap + ref288a691.workgroupMemoryExplicitLayout, cworkgroupMemoryExplicitLayout_allocs = (C.VkBool32)(x.WorkgroupMemoryExplicitLayout), cgoAllocsUnknown + allocs288a691.Borrow(cworkgroupMemoryExplicitLayout_allocs) - x.ref85bf626c = ref85bf626c - x.allocs85bf626c = allocs85bf626c - return ref85bf626c, allocs85bf626c + var cworkgroupMemoryExplicitLayoutScalarBlockLayout_allocs *cgoAllocMap + ref288a691.workgroupMemoryExplicitLayoutScalarBlockLayout, cworkgroupMemoryExplicitLayoutScalarBlockLayout_allocs = (C.VkBool32)(x.WorkgroupMemoryExplicitLayoutScalarBlockLayout), cgoAllocsUnknown + allocs288a691.Borrow(cworkgroupMemoryExplicitLayoutScalarBlockLayout_allocs) + + var cworkgroupMemoryExplicitLayout8BitAccess_allocs *cgoAllocMap + ref288a691.workgroupMemoryExplicitLayout8BitAccess, cworkgroupMemoryExplicitLayout8BitAccess_allocs = (C.VkBool32)(x.WorkgroupMemoryExplicitLayout8BitAccess), cgoAllocsUnknown + allocs288a691.Borrow(cworkgroupMemoryExplicitLayout8BitAccess_allocs) + + var cworkgroupMemoryExplicitLayout16BitAccess_allocs *cgoAllocMap + ref288a691.workgroupMemoryExplicitLayout16BitAccess, cworkgroupMemoryExplicitLayout16BitAccess_allocs = (C.VkBool32)(x.WorkgroupMemoryExplicitLayout16BitAccess), cgoAllocsUnknown + allocs288a691.Borrow(cworkgroupMemoryExplicitLayout16BitAccess_allocs) + + x.ref288a691 = ref288a691 + x.allocs288a691 = allocs288a691 + return ref288a691, allocs288a691 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x QueueFamilyProperties2) PassValue() (C.VkQueueFamilyProperties2, *cgoAllocMap) { - if x.ref85bf626c != nil { - return *x.ref85bf626c, nil +func (x PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) PassValue() (C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, *cgoAllocMap) { + if x.ref288a691 != nil { + return *x.ref288a691, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15783,90 +42643,97 @@ func (x QueueFamilyProperties2) PassValue() (C.VkQueueFamilyProperties2, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *QueueFamilyProperties2) Deref() { - if x.ref85bf626c == nil { +func (x *PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures) Deref() { + if x.ref288a691 == nil { return } - x.SType = (StructureType)(x.ref85bf626c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref85bf626c.pNext)) - x.QueueFamilyProperties = *NewQueueFamilyPropertiesRef(unsafe.Pointer(&x.ref85bf626c.queueFamilyProperties)) + x.SType = (StructureType)(x.ref288a691.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref288a691.pNext)) + x.WorkgroupMemoryExplicitLayout = (Bool32)(x.ref288a691.workgroupMemoryExplicitLayout) + x.WorkgroupMemoryExplicitLayoutScalarBlockLayout = (Bool32)(x.ref288a691.workgroupMemoryExplicitLayoutScalarBlockLayout) + x.WorkgroupMemoryExplicitLayout8BitAccess = (Bool32)(x.ref288a691.workgroupMemoryExplicitLayout8BitAccess) + x.WorkgroupMemoryExplicitLayout16BitAccess = (Bool32)(x.ref288a691.workgroupMemoryExplicitLayout16BitAccess) } -// allocPhysicalDeviceMemoryProperties2Memory allocates memory for type C.VkPhysicalDeviceMemoryProperties2 in C. +// allocPhysicalDeviceRayTracingMaintenance1FeaturesMemory allocates memory for type C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMemoryProperties2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryProperties2Value)) +func allocPhysicalDeviceRayTracingMaintenance1FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRayTracingMaintenance1FeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceMemoryProperties2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryProperties2{}) +const sizeOfPhysicalDeviceRayTracingMaintenance1FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMemoryProperties2) Ref() *C.VkPhysicalDeviceMemoryProperties2 { +func (x *PhysicalDeviceRayTracingMaintenance1Features) Ref() *C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR { if x == nil { return nil } - return x.refd9e39b19 + return x.ref799fe16 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceMemoryProperties2) Free() { - if x != nil && x.allocsd9e39b19 != nil { - x.allocsd9e39b19.(*cgoAllocMap).Free() - x.refd9e39b19 = nil +func (x *PhysicalDeviceRayTracingMaintenance1Features) Free() { + if x != nil && x.allocs799fe16 != nil { + x.allocs799fe16.(*cgoAllocMap).Free() + x.ref799fe16 = nil } } -// NewPhysicalDeviceMemoryProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceRayTracingMaintenance1FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceMemoryProperties2Ref(ref unsafe.Pointer) *PhysicalDeviceMemoryProperties2 { +func NewPhysicalDeviceRayTracingMaintenance1FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceRayTracingMaintenance1Features { if ref == nil { return nil } - obj := new(PhysicalDeviceMemoryProperties2) - obj.refd9e39b19 = (*C.VkPhysicalDeviceMemoryProperties2)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceRayTracingMaintenance1Features) + obj.ref799fe16 = (*C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceMemoryProperties2) PassRef() (*C.VkPhysicalDeviceMemoryProperties2, *cgoAllocMap) { +func (x *PhysicalDeviceRayTracingMaintenance1Features) PassRef() (*C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd9e39b19 != nil { - return x.refd9e39b19, nil + } else if x.ref799fe16 != nil { + return x.ref799fe16, nil } - memd9e39b19 := allocPhysicalDeviceMemoryProperties2Memory(1) - refd9e39b19 := (*C.VkPhysicalDeviceMemoryProperties2)(memd9e39b19) - allocsd9e39b19 := new(cgoAllocMap) - allocsd9e39b19.Add(memd9e39b19) + mem799fe16 := allocPhysicalDeviceRayTracingMaintenance1FeaturesMemory(1) + ref799fe16 := (*C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR)(mem799fe16) + allocs799fe16 := new(cgoAllocMap) + allocs799fe16.Add(mem799fe16) var csType_allocs *cgoAllocMap - refd9e39b19.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd9e39b19.Borrow(csType_allocs) + ref799fe16.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs799fe16.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd9e39b19.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd9e39b19.Borrow(cpNext_allocs) + ref799fe16.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs799fe16.Borrow(cpNext_allocs) - var cmemoryProperties_allocs *cgoAllocMap - refd9e39b19.memoryProperties, cmemoryProperties_allocs = x.MemoryProperties.PassValue() - allocsd9e39b19.Borrow(cmemoryProperties_allocs) + var crayTracingMaintenance1_allocs *cgoAllocMap + ref799fe16.rayTracingMaintenance1, crayTracingMaintenance1_allocs = (C.VkBool32)(x.RayTracingMaintenance1), cgoAllocsUnknown + allocs799fe16.Borrow(crayTracingMaintenance1_allocs) - x.refd9e39b19 = refd9e39b19 - x.allocsd9e39b19 = allocsd9e39b19 - return refd9e39b19, allocsd9e39b19 + var crayTracingPipelineTraceRaysIndirect2_allocs *cgoAllocMap + ref799fe16.rayTracingPipelineTraceRaysIndirect2, crayTracingPipelineTraceRaysIndirect2_allocs = (C.VkBool32)(x.RayTracingPipelineTraceRaysIndirect2), cgoAllocsUnknown + allocs799fe16.Borrow(crayTracingPipelineTraceRaysIndirect2_allocs) + + x.ref799fe16 = ref799fe16 + x.allocs799fe16 = allocs799fe16 + return ref799fe16, allocs799fe16 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceMemoryProperties2) PassValue() (C.VkPhysicalDeviceMemoryProperties2, *cgoAllocMap) { - if x.refd9e39b19 != nil { - return *x.refd9e39b19, nil +func (x PhysicalDeviceRayTracingMaintenance1Features) PassValue() (C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, *cgoAllocMap) { + if x.ref799fe16 != nil { + return *x.ref799fe16, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15874,90 +42741,135 @@ func (x PhysicalDeviceMemoryProperties2) PassValue() (C.VkPhysicalDeviceMemoryPr // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMemoryProperties2) Deref() { - if x.refd9e39b19 == nil { +func (x *PhysicalDeviceRayTracingMaintenance1Features) Deref() { + if x.ref799fe16 == nil { return } - x.SType = (StructureType)(x.refd9e39b19.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd9e39b19.pNext)) - x.MemoryProperties = *NewPhysicalDeviceMemoryPropertiesRef(unsafe.Pointer(&x.refd9e39b19.memoryProperties)) + x.SType = (StructureType)(x.ref799fe16.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref799fe16.pNext)) + x.RayTracingMaintenance1 = (Bool32)(x.ref799fe16.rayTracingMaintenance1) + x.RayTracingPipelineTraceRaysIndirect2 = (Bool32)(x.ref799fe16.rayTracingPipelineTraceRaysIndirect2) } -// allocSparseImageFormatProperties2Memory allocates memory for type C.VkSparseImageFormatProperties2 in C. +// allocTraceRaysIndirectCommand2Memory allocates memory for type C.VkTraceRaysIndirectCommand2KHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocSparseImageFormatProperties2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSparseImageFormatProperties2Value)) +func allocTraceRaysIndirectCommand2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfTraceRaysIndirectCommand2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSparseImageFormatProperties2Value = unsafe.Sizeof([1]C.VkSparseImageFormatProperties2{}) +const sizeOfTraceRaysIndirectCommand2Value = unsafe.Sizeof([1]C.VkTraceRaysIndirectCommand2KHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SparseImageFormatProperties2) Ref() *C.VkSparseImageFormatProperties2 { +func (x *TraceRaysIndirectCommand2) Ref() *C.VkTraceRaysIndirectCommand2KHR { if x == nil { return nil } - return x.ref6b48294b + return x.ref9139d02e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SparseImageFormatProperties2) Free() { - if x != nil && x.allocs6b48294b != nil { - x.allocs6b48294b.(*cgoAllocMap).Free() - x.ref6b48294b = nil +func (x *TraceRaysIndirectCommand2) Free() { + if x != nil && x.allocs9139d02e != nil { + x.allocs9139d02e.(*cgoAllocMap).Free() + x.ref9139d02e = nil } } -// NewSparseImageFormatProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewTraceRaysIndirectCommand2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSparseImageFormatProperties2Ref(ref unsafe.Pointer) *SparseImageFormatProperties2 { +func NewTraceRaysIndirectCommand2Ref(ref unsafe.Pointer) *TraceRaysIndirectCommand2 { if ref == nil { return nil } - obj := new(SparseImageFormatProperties2) - obj.ref6b48294b = (*C.VkSparseImageFormatProperties2)(unsafe.Pointer(ref)) + obj := new(TraceRaysIndirectCommand2) + obj.ref9139d02e = (*C.VkTraceRaysIndirectCommand2KHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SparseImageFormatProperties2) PassRef() (*C.VkSparseImageFormatProperties2, *cgoAllocMap) { +func (x *TraceRaysIndirectCommand2) PassRef() (*C.VkTraceRaysIndirectCommand2KHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6b48294b != nil { - return x.ref6b48294b, nil + } else if x.ref9139d02e != nil { + return x.ref9139d02e, nil } - mem6b48294b := allocSparseImageFormatProperties2Memory(1) - ref6b48294b := (*C.VkSparseImageFormatProperties2)(mem6b48294b) - allocs6b48294b := new(cgoAllocMap) - allocs6b48294b.Add(mem6b48294b) + mem9139d02e := allocTraceRaysIndirectCommand2Memory(1) + ref9139d02e := (*C.VkTraceRaysIndirectCommand2KHR)(mem9139d02e) + allocs9139d02e := new(cgoAllocMap) + allocs9139d02e.Add(mem9139d02e) - var csType_allocs *cgoAllocMap - ref6b48294b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6b48294b.Borrow(csType_allocs) + var craygenShaderRecordAddress_allocs *cgoAllocMap + ref9139d02e.raygenShaderRecordAddress, craygenShaderRecordAddress_allocs = (C.VkDeviceAddress)(x.RaygenShaderRecordAddress), cgoAllocsUnknown + allocs9139d02e.Borrow(craygenShaderRecordAddress_allocs) - var cpNext_allocs *cgoAllocMap - ref6b48294b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6b48294b.Borrow(cpNext_allocs) + var craygenShaderRecordSize_allocs *cgoAllocMap + ref9139d02e.raygenShaderRecordSize, craygenShaderRecordSize_allocs = (C.VkDeviceSize)(x.RaygenShaderRecordSize), cgoAllocsUnknown + allocs9139d02e.Borrow(craygenShaderRecordSize_allocs) - var cproperties_allocs *cgoAllocMap - ref6b48294b.properties, cproperties_allocs = x.Properties.PassValue() - allocs6b48294b.Borrow(cproperties_allocs) + var cmissShaderBindingTableAddress_allocs *cgoAllocMap + ref9139d02e.missShaderBindingTableAddress, cmissShaderBindingTableAddress_allocs = (C.VkDeviceAddress)(x.MissShaderBindingTableAddress), cgoAllocsUnknown + allocs9139d02e.Borrow(cmissShaderBindingTableAddress_allocs) - x.ref6b48294b = ref6b48294b - x.allocs6b48294b = allocs6b48294b - return ref6b48294b, allocs6b48294b + var cmissShaderBindingTableSize_allocs *cgoAllocMap + ref9139d02e.missShaderBindingTableSize, cmissShaderBindingTableSize_allocs = (C.VkDeviceSize)(x.MissShaderBindingTableSize), cgoAllocsUnknown + allocs9139d02e.Borrow(cmissShaderBindingTableSize_allocs) + + var cmissShaderBindingTableStride_allocs *cgoAllocMap + ref9139d02e.missShaderBindingTableStride, cmissShaderBindingTableStride_allocs = (C.VkDeviceSize)(x.MissShaderBindingTableStride), cgoAllocsUnknown + allocs9139d02e.Borrow(cmissShaderBindingTableStride_allocs) + + var chitShaderBindingTableAddress_allocs *cgoAllocMap + ref9139d02e.hitShaderBindingTableAddress, chitShaderBindingTableAddress_allocs = (C.VkDeviceAddress)(x.HitShaderBindingTableAddress), cgoAllocsUnknown + allocs9139d02e.Borrow(chitShaderBindingTableAddress_allocs) + + var chitShaderBindingTableSize_allocs *cgoAllocMap + ref9139d02e.hitShaderBindingTableSize, chitShaderBindingTableSize_allocs = (C.VkDeviceSize)(x.HitShaderBindingTableSize), cgoAllocsUnknown + allocs9139d02e.Borrow(chitShaderBindingTableSize_allocs) + + var chitShaderBindingTableStride_allocs *cgoAllocMap + ref9139d02e.hitShaderBindingTableStride, chitShaderBindingTableStride_allocs = (C.VkDeviceSize)(x.HitShaderBindingTableStride), cgoAllocsUnknown + allocs9139d02e.Borrow(chitShaderBindingTableStride_allocs) + + var ccallableShaderBindingTableAddress_allocs *cgoAllocMap + ref9139d02e.callableShaderBindingTableAddress, ccallableShaderBindingTableAddress_allocs = (C.VkDeviceAddress)(x.CallableShaderBindingTableAddress), cgoAllocsUnknown + allocs9139d02e.Borrow(ccallableShaderBindingTableAddress_allocs) + + var ccallableShaderBindingTableSize_allocs *cgoAllocMap + ref9139d02e.callableShaderBindingTableSize, ccallableShaderBindingTableSize_allocs = (C.VkDeviceSize)(x.CallableShaderBindingTableSize), cgoAllocsUnknown + allocs9139d02e.Borrow(ccallableShaderBindingTableSize_allocs) + + var ccallableShaderBindingTableStride_allocs *cgoAllocMap + ref9139d02e.callableShaderBindingTableStride, ccallableShaderBindingTableStride_allocs = (C.VkDeviceSize)(x.CallableShaderBindingTableStride), cgoAllocsUnknown + allocs9139d02e.Borrow(ccallableShaderBindingTableStride_allocs) + + var cwidth_allocs *cgoAllocMap + ref9139d02e.width, cwidth_allocs = (C.uint32_t)(x.Width), cgoAllocsUnknown + allocs9139d02e.Borrow(cwidth_allocs) + + var cheight_allocs *cgoAllocMap + ref9139d02e.height, cheight_allocs = (C.uint32_t)(x.Height), cgoAllocsUnknown + allocs9139d02e.Borrow(cheight_allocs) + + var cdepth_allocs *cgoAllocMap + ref9139d02e.depth, cdepth_allocs = (C.uint32_t)(x.Depth), cgoAllocsUnknown + allocs9139d02e.Borrow(cdepth_allocs) + + x.ref9139d02e = ref9139d02e + x.allocs9139d02e = allocs9139d02e + return ref9139d02e, allocs9139d02e } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SparseImageFormatProperties2) PassValue() (C.VkSparseImageFormatProperties2, *cgoAllocMap) { - if x.ref6b48294b != nil { - return *x.ref6b48294b, nil +func (x TraceRaysIndirectCommand2) PassValue() (C.VkTraceRaysIndirectCommand2KHR, *cgoAllocMap) { + if x.ref9139d02e != nil { + return *x.ref9139d02e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -15965,106 +42877,153 @@ func (x SparseImageFormatProperties2) PassValue() (C.VkSparseImageFormatProperti // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SparseImageFormatProperties2) Deref() { - if x.ref6b48294b == nil { +func (x *TraceRaysIndirectCommand2) Deref() { + if x.ref9139d02e == nil { return } - x.SType = (StructureType)(x.ref6b48294b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6b48294b.pNext)) - x.Properties = *NewSparseImageFormatPropertiesRef(unsafe.Pointer(&x.ref6b48294b.properties)) + x.RaygenShaderRecordAddress = (DeviceAddress)(x.ref9139d02e.raygenShaderRecordAddress) + x.RaygenShaderRecordSize = (DeviceSize)(x.ref9139d02e.raygenShaderRecordSize) + x.MissShaderBindingTableAddress = (DeviceAddress)(x.ref9139d02e.missShaderBindingTableAddress) + x.MissShaderBindingTableSize = (DeviceSize)(x.ref9139d02e.missShaderBindingTableSize) + x.MissShaderBindingTableStride = (DeviceSize)(x.ref9139d02e.missShaderBindingTableStride) + x.HitShaderBindingTableAddress = (DeviceAddress)(x.ref9139d02e.hitShaderBindingTableAddress) + x.HitShaderBindingTableSize = (DeviceSize)(x.ref9139d02e.hitShaderBindingTableSize) + x.HitShaderBindingTableStride = (DeviceSize)(x.ref9139d02e.hitShaderBindingTableStride) + x.CallableShaderBindingTableAddress = (DeviceAddress)(x.ref9139d02e.callableShaderBindingTableAddress) + x.CallableShaderBindingTableSize = (DeviceSize)(x.ref9139d02e.callableShaderBindingTableSize) + x.CallableShaderBindingTableStride = (DeviceSize)(x.ref9139d02e.callableShaderBindingTableStride) + x.Width = (uint32)(x.ref9139d02e.width) + x.Height = (uint32)(x.ref9139d02e.height) + x.Depth = (uint32)(x.ref9139d02e.depth) } -// allocPhysicalDeviceSparseImageFormatInfo2Memory allocates memory for type C.VkPhysicalDeviceSparseImageFormatInfo2 in C. +func (x DebugReportCallbackFunc) PassRef() (ref *C.PFN_vkDebugReportCallbackEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + if debugReportCallbackFuncC918AAC4Func == nil { + debugReportCallbackFuncC918AAC4Func = x + } + return (*C.PFN_vkDebugReportCallbackEXT)(C.PFN_vkDebugReportCallbackEXT_c918aac4), nil +} + +func (x DebugReportCallbackFunc) PassValue() (ref C.PFN_vkDebugReportCallbackEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + if debugReportCallbackFuncC918AAC4Func == nil { + debugReportCallbackFuncC918AAC4Func = x + } + return (C.PFN_vkDebugReportCallbackEXT)(C.PFN_vkDebugReportCallbackEXT_c918aac4), nil +} + +func NewDebugReportCallbackFuncRef(ref unsafe.Pointer) *DebugReportCallbackFunc { + return (*DebugReportCallbackFunc)(ref) +} + +//export debugReportCallbackFuncC918AAC4 +func debugReportCallbackFuncC918AAC4(cflags C.VkDebugReportFlagsEXT, cobjectType C.VkDebugReportObjectTypeEXT, cobject C.uint64_t, clocation C.size_t, cmessageCode C.int32_t, cpLayerPrefix *C.char, cpMessage *C.char, cpUserData unsafe.Pointer) C.VkBool32 { + if debugReportCallbackFuncC918AAC4Func != nil { + flagsc918aac4 := (DebugReportFlags)(cflags) + objectTypec918aac4 := (DebugReportObjectType)(cobjectType) + objectc918aac4 := (uint64)(cobject) + locationc918aac4 := (uint64)(clocation) + messageCodec918aac4 := (int32)(cmessageCode) + pLayerPrefixc918aac4 := packPCharString(cpLayerPrefix) + pMessagec918aac4 := packPCharString(cpMessage) + pUserDatac918aac4 := (unsafe.Pointer)(unsafe.Pointer(cpUserData)) + retc918aac4 := debugReportCallbackFuncC918AAC4Func(flagsc918aac4, objectTypec918aac4, objectc918aac4, locationc918aac4, messageCodec918aac4, pLayerPrefixc918aac4, pMessagec918aac4, pUserDatac918aac4) + ret, _ := (C.VkBool32)(retc918aac4), cgoAllocsUnknown + return ret + } + panic("callback func has not been set (race?)") +} + +var debugReportCallbackFuncC918AAC4Func DebugReportCallbackFunc + +// allocDebugReportCallbackCreateInfoMemory allocates memory for type C.VkDebugReportCallbackCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceSparseImageFormatInfo2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSparseImageFormatInfo2Value)) +func allocDebugReportCallbackCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugReportCallbackCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceSparseImageFormatInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceSparseImageFormatInfo2{}) +const sizeOfDebugReportCallbackCreateInfoValue = unsafe.Sizeof([1]C.VkDebugReportCallbackCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSparseImageFormatInfo2) Ref() *C.VkPhysicalDeviceSparseImageFormatInfo2 { +func (x *DebugReportCallbackCreateInfo) Ref() *C.VkDebugReportCallbackCreateInfoEXT { if x == nil { return nil } - return x.ref566d5513 + return x.refc8238563 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceSparseImageFormatInfo2) Free() { - if x != nil && x.allocs566d5513 != nil { - x.allocs566d5513.(*cgoAllocMap).Free() - x.ref566d5513 = nil +func (x *DebugReportCallbackCreateInfo) Free() { + if x != nil && x.allocsc8238563 != nil { + x.allocsc8238563.(*cgoAllocMap).Free() + x.refc8238563 = nil } } -// NewPhysicalDeviceSparseImageFormatInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewDebugReportCallbackCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceSparseImageFormatInfo2Ref(ref unsafe.Pointer) *PhysicalDeviceSparseImageFormatInfo2 { +func NewDebugReportCallbackCreateInfoRef(ref unsafe.Pointer) *DebugReportCallbackCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceSparseImageFormatInfo2) - obj.ref566d5513 = (*C.VkPhysicalDeviceSparseImageFormatInfo2)(unsafe.Pointer(ref)) + obj := new(DebugReportCallbackCreateInfo) + obj.refc8238563 = (*C.VkDebugReportCallbackCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceSparseImageFormatInfo2) PassRef() (*C.VkPhysicalDeviceSparseImageFormatInfo2, *cgoAllocMap) { +func (x *DebugReportCallbackCreateInfo) PassRef() (*C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref566d5513 != nil { - return x.ref566d5513, nil + } else if x.refc8238563 != nil { + return x.refc8238563, nil } - mem566d5513 := allocPhysicalDeviceSparseImageFormatInfo2Memory(1) - ref566d5513 := (*C.VkPhysicalDeviceSparseImageFormatInfo2)(mem566d5513) - allocs566d5513 := new(cgoAllocMap) - allocs566d5513.Add(mem566d5513) + memc8238563 := allocDebugReportCallbackCreateInfoMemory(1) + refc8238563 := (*C.VkDebugReportCallbackCreateInfoEXT)(memc8238563) + allocsc8238563 := new(cgoAllocMap) + allocsc8238563.Add(memc8238563) var csType_allocs *cgoAllocMap - ref566d5513.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs566d5513.Borrow(csType_allocs) + refc8238563.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc8238563.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref566d5513.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs566d5513.Borrow(cpNext_allocs) - - var cformat_allocs *cgoAllocMap - ref566d5513.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocs566d5513.Borrow(cformat_allocs) - - var c_type_allocs *cgoAllocMap - ref566d5513._type, c_type_allocs = (C.VkImageType)(x.Type), cgoAllocsUnknown - allocs566d5513.Borrow(c_type_allocs) + refc8238563.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc8238563.Borrow(cpNext_allocs) - var csamples_allocs *cgoAllocMap - ref566d5513.samples, csamples_allocs = (C.VkSampleCountFlagBits)(x.Samples), cgoAllocsUnknown - allocs566d5513.Borrow(csamples_allocs) + var cflags_allocs *cgoAllocMap + refc8238563.flags, cflags_allocs = (C.VkDebugReportFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsc8238563.Borrow(cflags_allocs) - var cusage_allocs *cgoAllocMap - ref566d5513.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown - allocs566d5513.Borrow(cusage_allocs) + var cpfnCallback_allocs *cgoAllocMap + refc8238563.pfnCallback, cpfnCallback_allocs = x.PfnCallback.PassValue() + allocsc8238563.Borrow(cpfnCallback_allocs) - var ctiling_allocs *cgoAllocMap - ref566d5513.tiling, ctiling_allocs = (C.VkImageTiling)(x.Tiling), cgoAllocsUnknown - allocs566d5513.Borrow(ctiling_allocs) + var cpUserData_allocs *cgoAllocMap + refc8238563.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown + allocsc8238563.Borrow(cpUserData_allocs) - x.ref566d5513 = ref566d5513 - x.allocs566d5513 = allocs566d5513 - return ref566d5513, allocs566d5513 + x.refc8238563 = refc8238563 + x.allocsc8238563 = allocsc8238563 + return refc8238563, allocsc8238563 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceSparseImageFormatInfo2) PassValue() (C.VkPhysicalDeviceSparseImageFormatInfo2, *cgoAllocMap) { - if x.ref566d5513 != nil { - return *x.ref566d5513, nil +func (x DebugReportCallbackCreateInfo) PassValue() (C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { + if x.refc8238563 != nil { + return *x.refc8238563, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16072,94 +43031,92 @@ func (x PhysicalDeviceSparseImageFormatInfo2) PassValue() (C.VkPhysicalDeviceSpa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceSparseImageFormatInfo2) Deref() { - if x.ref566d5513 == nil { +func (x *DebugReportCallbackCreateInfo) Deref() { + if x.refc8238563 == nil { return } - x.SType = (StructureType)(x.ref566d5513.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref566d5513.pNext)) - x.Format = (Format)(x.ref566d5513.format) - x.Type = (ImageType)(x.ref566d5513._type) - x.Samples = (SampleCountFlagBits)(x.ref566d5513.samples) - x.Usage = (ImageUsageFlags)(x.ref566d5513.usage) - x.Tiling = (ImageTiling)(x.ref566d5513.tiling) + x.SType = (StructureType)(x.refc8238563.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc8238563.pNext)) + x.Flags = (DebugReportFlags)(x.refc8238563.flags) + x.PfnCallback = *NewDebugReportCallbackFuncRef(unsafe.Pointer(&x.refc8238563.pfnCallback)) + x.PUserData = (unsafe.Pointer)(unsafe.Pointer(x.refc8238563.pUserData)) } -// allocPhysicalDevicePointClippingPropertiesMemory allocates memory for type C.VkPhysicalDevicePointClippingProperties in C. +// allocPipelineRasterizationStateRasterizationOrderAMDMemory allocates memory for type C.VkPipelineRasterizationStateRasterizationOrderAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePointClippingPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePointClippingPropertiesValue)) +func allocPipelineRasterizationStateRasterizationOrderAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationStateRasterizationOrderAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDevicePointClippingPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePointClippingProperties{}) +const sizeOfPipelineRasterizationStateRasterizationOrderAMDValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateRasterizationOrderAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePointClippingProperties) Ref() *C.VkPhysicalDevicePointClippingProperties { +func (x *PipelineRasterizationStateRasterizationOrderAMD) Ref() *C.VkPipelineRasterizationStateRasterizationOrderAMD { if x == nil { return nil } - return x.ref5afbd22f + return x.ref5098cf82 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDevicePointClippingProperties) Free() { - if x != nil && x.allocs5afbd22f != nil { - x.allocs5afbd22f.(*cgoAllocMap).Free() - x.ref5afbd22f = nil +func (x *PipelineRasterizationStateRasterizationOrderAMD) Free() { + if x != nil && x.allocs5098cf82 != nil { + x.allocs5098cf82.(*cgoAllocMap).Free() + x.ref5098cf82 = nil } } -// NewPhysicalDevicePointClippingPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineRasterizationStateRasterizationOrderAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDevicePointClippingPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePointClippingProperties { +func NewPipelineRasterizationStateRasterizationOrderAMDRef(ref unsafe.Pointer) *PipelineRasterizationStateRasterizationOrderAMD { if ref == nil { return nil } - obj := new(PhysicalDevicePointClippingProperties) - obj.ref5afbd22f = (*C.VkPhysicalDevicePointClippingProperties)(unsafe.Pointer(ref)) + obj := new(PipelineRasterizationStateRasterizationOrderAMD) + obj.ref5098cf82 = (*C.VkPipelineRasterizationStateRasterizationOrderAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDevicePointClippingProperties) PassRef() (*C.VkPhysicalDevicePointClippingProperties, *cgoAllocMap) { +func (x *PipelineRasterizationStateRasterizationOrderAMD) PassRef() (*C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5afbd22f != nil { - return x.ref5afbd22f, nil + } else if x.ref5098cf82 != nil { + return x.ref5098cf82, nil } - mem5afbd22f := allocPhysicalDevicePointClippingPropertiesMemory(1) - ref5afbd22f := (*C.VkPhysicalDevicePointClippingProperties)(mem5afbd22f) - allocs5afbd22f := new(cgoAllocMap) - allocs5afbd22f.Add(mem5afbd22f) + mem5098cf82 := allocPipelineRasterizationStateRasterizationOrderAMDMemory(1) + ref5098cf82 := (*C.VkPipelineRasterizationStateRasterizationOrderAMD)(mem5098cf82) + allocs5098cf82 := new(cgoAllocMap) + allocs5098cf82.Add(mem5098cf82) var csType_allocs *cgoAllocMap - ref5afbd22f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5afbd22f.Borrow(csType_allocs) + ref5098cf82.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5098cf82.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5afbd22f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5afbd22f.Borrow(cpNext_allocs) + ref5098cf82.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5098cf82.Borrow(cpNext_allocs) - var cpointClippingBehavior_allocs *cgoAllocMap - ref5afbd22f.pointClippingBehavior, cpointClippingBehavior_allocs = (C.VkPointClippingBehavior)(x.PointClippingBehavior), cgoAllocsUnknown - allocs5afbd22f.Borrow(cpointClippingBehavior_allocs) + var crasterizationOrder_allocs *cgoAllocMap + ref5098cf82.rasterizationOrder, crasterizationOrder_allocs = (C.VkRasterizationOrderAMD)(x.RasterizationOrder), cgoAllocsUnknown + allocs5098cf82.Borrow(crasterizationOrder_allocs) - x.ref5afbd22f = ref5afbd22f - x.allocs5afbd22f = allocs5afbd22f - return ref5afbd22f, allocs5afbd22f + x.ref5098cf82 = ref5098cf82 + x.allocs5098cf82 = allocs5098cf82 + return ref5098cf82, allocs5098cf82 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDevicePointClippingProperties) PassValue() (C.VkPhysicalDevicePointClippingProperties, *cgoAllocMap) { - if x.ref5afbd22f != nil { - return *x.ref5afbd22f, nil +func (x PipelineRasterizationStateRasterizationOrderAMD) PassValue() (C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { + if x.ref5098cf82 != nil { + return *x.ref5098cf82, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16167,90 +43124,98 @@ func (x PhysicalDevicePointClippingProperties) PassValue() (C.VkPhysicalDevicePo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDevicePointClippingProperties) Deref() { - if x.ref5afbd22f == nil { +func (x *PipelineRasterizationStateRasterizationOrderAMD) Deref() { + if x.ref5098cf82 == nil { return } - x.SType = (StructureType)(x.ref5afbd22f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5afbd22f.pNext)) - x.PointClippingBehavior = (PointClippingBehavior)(x.ref5afbd22f.pointClippingBehavior) + x.SType = (StructureType)(x.ref5098cf82.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5098cf82.pNext)) + x.RasterizationOrder = (RasterizationOrderAMD)(x.ref5098cf82.rasterizationOrder) } -// allocInputAttachmentAspectReferenceMemory allocates memory for type C.VkInputAttachmentAspectReference in C. +// allocDebugMarkerObjectNameInfoMemory allocates memory for type C.VkDebugMarkerObjectNameInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocInputAttachmentAspectReferenceMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfInputAttachmentAspectReferenceValue)) +func allocDebugMarkerObjectNameInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugMarkerObjectNameInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfInputAttachmentAspectReferenceValue = unsafe.Sizeof([1]C.VkInputAttachmentAspectReference{}) +const sizeOfDebugMarkerObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectNameInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *InputAttachmentAspectReference) Ref() *C.VkInputAttachmentAspectReference { +func (x *DebugMarkerObjectNameInfo) Ref() *C.VkDebugMarkerObjectNameInfoEXT { if x == nil { return nil } - return x.ref4f7194e6 + return x.refe4983fab } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *InputAttachmentAspectReference) Free() { - if x != nil && x.allocs4f7194e6 != nil { - x.allocs4f7194e6.(*cgoAllocMap).Free() - x.ref4f7194e6 = nil +func (x *DebugMarkerObjectNameInfo) Free() { + if x != nil && x.allocse4983fab != nil { + x.allocse4983fab.(*cgoAllocMap).Free() + x.refe4983fab = nil } } -// NewInputAttachmentAspectReferenceRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDebugMarkerObjectNameInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewInputAttachmentAspectReferenceRef(ref unsafe.Pointer) *InputAttachmentAspectReference { +func NewDebugMarkerObjectNameInfoRef(ref unsafe.Pointer) *DebugMarkerObjectNameInfo { if ref == nil { return nil } - obj := new(InputAttachmentAspectReference) - obj.ref4f7194e6 = (*C.VkInputAttachmentAspectReference)(unsafe.Pointer(ref)) + obj := new(DebugMarkerObjectNameInfo) + obj.refe4983fab = (*C.VkDebugMarkerObjectNameInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *InputAttachmentAspectReference) PassRef() (*C.VkInputAttachmentAspectReference, *cgoAllocMap) { +func (x *DebugMarkerObjectNameInfo) PassRef() (*C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4f7194e6 != nil { - return x.ref4f7194e6, nil + } else if x.refe4983fab != nil { + return x.refe4983fab, nil } - mem4f7194e6 := allocInputAttachmentAspectReferenceMemory(1) - ref4f7194e6 := (*C.VkInputAttachmentAspectReference)(mem4f7194e6) - allocs4f7194e6 := new(cgoAllocMap) - allocs4f7194e6.Add(mem4f7194e6) + meme4983fab := allocDebugMarkerObjectNameInfoMemory(1) + refe4983fab := (*C.VkDebugMarkerObjectNameInfoEXT)(meme4983fab) + allocse4983fab := new(cgoAllocMap) + allocse4983fab.Add(meme4983fab) - var csubpass_allocs *cgoAllocMap - ref4f7194e6.subpass, csubpass_allocs = (C.uint32_t)(x.Subpass), cgoAllocsUnknown - allocs4f7194e6.Borrow(csubpass_allocs) + var csType_allocs *cgoAllocMap + refe4983fab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse4983fab.Borrow(csType_allocs) - var cinputAttachmentIndex_allocs *cgoAllocMap - ref4f7194e6.inputAttachmentIndex, cinputAttachmentIndex_allocs = (C.uint32_t)(x.InputAttachmentIndex), cgoAllocsUnknown - allocs4f7194e6.Borrow(cinputAttachmentIndex_allocs) + var cpNext_allocs *cgoAllocMap + refe4983fab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse4983fab.Borrow(cpNext_allocs) - var caspectMask_allocs *cgoAllocMap - ref4f7194e6.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocs4f7194e6.Borrow(caspectMask_allocs) + var cobjectType_allocs *cgoAllocMap + refe4983fab.objectType, cobjectType_allocs = (C.VkDebugReportObjectTypeEXT)(x.ObjectType), cgoAllocsUnknown + allocse4983fab.Borrow(cobjectType_allocs) - x.ref4f7194e6 = ref4f7194e6 - x.allocs4f7194e6 = allocs4f7194e6 - return ref4f7194e6, allocs4f7194e6 + var cobject_allocs *cgoAllocMap + refe4983fab.object, cobject_allocs = (C.uint64_t)(x.Object), cgoAllocsUnknown + allocse4983fab.Borrow(cobject_allocs) + + var cpObjectName_allocs *cgoAllocMap + refe4983fab.pObjectName, cpObjectName_allocs = unpackPCharString(x.PObjectName) + allocse4983fab.Borrow(cpObjectName_allocs) + + x.refe4983fab = refe4983fab + x.allocse4983fab = allocse4983fab + return refe4983fab, allocse4983fab } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x InputAttachmentAspectReference) PassValue() (C.VkInputAttachmentAspectReference, *cgoAllocMap) { - if x.ref4f7194e6 != nil { - return *x.ref4f7194e6, nil +func (x DebugMarkerObjectNameInfo) PassValue() (C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { + if x.refe4983fab != nil { + return *x.refe4983fab, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16258,132 +43223,108 @@ func (x InputAttachmentAspectReference) PassValue() (C.VkInputAttachmentAspectRe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *InputAttachmentAspectReference) Deref() { - if x.ref4f7194e6 == nil { +func (x *DebugMarkerObjectNameInfo) Deref() { + if x.refe4983fab == nil { return } - x.Subpass = (uint32)(x.ref4f7194e6.subpass) - x.InputAttachmentIndex = (uint32)(x.ref4f7194e6.inputAttachmentIndex) - x.AspectMask = (ImageAspectFlags)(x.ref4f7194e6.aspectMask) + x.SType = (StructureType)(x.refe4983fab.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe4983fab.pNext)) + x.ObjectType = (DebugReportObjectType)(x.refe4983fab.objectType) + x.Object = (uint64)(x.refe4983fab.object) + x.PObjectName = packPCharString(x.refe4983fab.pObjectName) } -// allocRenderPassInputAttachmentAspectCreateInfoMemory allocates memory for type C.VkRenderPassInputAttachmentAspectCreateInfo in C. +// allocDebugMarkerObjectTagInfoMemory allocates memory for type C.VkDebugMarkerObjectTagInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocRenderPassInputAttachmentAspectCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassInputAttachmentAspectCreateInfoValue)) +func allocDebugMarkerObjectTagInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugMarkerObjectTagInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfRenderPassInputAttachmentAspectCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassInputAttachmentAspectCreateInfo{}) - -// unpackSInputAttachmentAspectReference transforms a sliced Go data structure into plain C format. -func unpackSInputAttachmentAspectReference(x []InputAttachmentAspectReference) (unpacked *C.VkInputAttachmentAspectReference, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkInputAttachmentAspectReference) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocInputAttachmentAspectReferenceMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkInputAttachmentAspectReference)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkInputAttachmentAspectReference)(h.Data) - return -} - -// packSInputAttachmentAspectReference reads sliced Go data structure out from plain C format. -func packSInputAttachmentAspectReference(v []InputAttachmentAspectReference, ptr0 *C.VkInputAttachmentAspectReference) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfInputAttachmentAspectReferenceValue]C.VkInputAttachmentAspectReference)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewInputAttachmentAspectReferenceRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfDebugMarkerObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectTagInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassInputAttachmentAspectCreateInfo) Ref() *C.VkRenderPassInputAttachmentAspectCreateInfo { +func (x *DebugMarkerObjectTagInfo) Ref() *C.VkDebugMarkerObjectTagInfoEXT { if x == nil { return nil } - return x.ref34eaa5c7 + return x.refa41a5c3b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *RenderPassInputAttachmentAspectCreateInfo) Free() { - if x != nil && x.allocs34eaa5c7 != nil { - x.allocs34eaa5c7.(*cgoAllocMap).Free() - x.ref34eaa5c7 = nil +func (x *DebugMarkerObjectTagInfo) Free() { + if x != nil && x.allocsa41a5c3b != nil { + x.allocsa41a5c3b.(*cgoAllocMap).Free() + x.refa41a5c3b = nil } } -// NewRenderPassInputAttachmentAspectCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDebugMarkerObjectTagInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewRenderPassInputAttachmentAspectCreateInfoRef(ref unsafe.Pointer) *RenderPassInputAttachmentAspectCreateInfo { +func NewDebugMarkerObjectTagInfoRef(ref unsafe.Pointer) *DebugMarkerObjectTagInfo { if ref == nil { return nil } - obj := new(RenderPassInputAttachmentAspectCreateInfo) - obj.ref34eaa5c7 = (*C.VkRenderPassInputAttachmentAspectCreateInfo)(unsafe.Pointer(ref)) + obj := new(DebugMarkerObjectTagInfo) + obj.refa41a5c3b = (*C.VkDebugMarkerObjectTagInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *RenderPassInputAttachmentAspectCreateInfo) PassRef() (*C.VkRenderPassInputAttachmentAspectCreateInfo, *cgoAllocMap) { +func (x *DebugMarkerObjectTagInfo) PassRef() (*C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref34eaa5c7 != nil { - return x.ref34eaa5c7, nil + } else if x.refa41a5c3b != nil { + return x.refa41a5c3b, nil } - mem34eaa5c7 := allocRenderPassInputAttachmentAspectCreateInfoMemory(1) - ref34eaa5c7 := (*C.VkRenderPassInputAttachmentAspectCreateInfo)(mem34eaa5c7) - allocs34eaa5c7 := new(cgoAllocMap) - allocs34eaa5c7.Add(mem34eaa5c7) + mema41a5c3b := allocDebugMarkerObjectTagInfoMemory(1) + refa41a5c3b := (*C.VkDebugMarkerObjectTagInfoEXT)(mema41a5c3b) + allocsa41a5c3b := new(cgoAllocMap) + allocsa41a5c3b.Add(mema41a5c3b) var csType_allocs *cgoAllocMap - ref34eaa5c7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs34eaa5c7.Borrow(csType_allocs) + refa41a5c3b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa41a5c3b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref34eaa5c7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs34eaa5c7.Borrow(cpNext_allocs) + refa41a5c3b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa41a5c3b.Borrow(cpNext_allocs) - var caspectReferenceCount_allocs *cgoAllocMap - ref34eaa5c7.aspectReferenceCount, caspectReferenceCount_allocs = (C.uint32_t)(x.AspectReferenceCount), cgoAllocsUnknown - allocs34eaa5c7.Borrow(caspectReferenceCount_allocs) + var cobjectType_allocs *cgoAllocMap + refa41a5c3b.objectType, cobjectType_allocs = (C.VkDebugReportObjectTypeEXT)(x.ObjectType), cgoAllocsUnknown + allocsa41a5c3b.Borrow(cobjectType_allocs) - var cpAspectReferences_allocs *cgoAllocMap - ref34eaa5c7.pAspectReferences, cpAspectReferences_allocs = unpackSInputAttachmentAspectReference(x.PAspectReferences) - allocs34eaa5c7.Borrow(cpAspectReferences_allocs) + var cobject_allocs *cgoAllocMap + refa41a5c3b.object, cobject_allocs = (C.uint64_t)(x.Object), cgoAllocsUnknown + allocsa41a5c3b.Borrow(cobject_allocs) - x.ref34eaa5c7 = ref34eaa5c7 - x.allocs34eaa5c7 = allocs34eaa5c7 - return ref34eaa5c7, allocs34eaa5c7 + var ctagName_allocs *cgoAllocMap + refa41a5c3b.tagName, ctagName_allocs = (C.uint64_t)(x.TagName), cgoAllocsUnknown + allocsa41a5c3b.Borrow(ctagName_allocs) + + var ctagSize_allocs *cgoAllocMap + refa41a5c3b.tagSize, ctagSize_allocs = (C.size_t)(x.TagSize), cgoAllocsUnknown + allocsa41a5c3b.Borrow(ctagSize_allocs) + + var cpTag_allocs *cgoAllocMap + refa41a5c3b.pTag, cpTag_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PTag)), cgoAllocsUnknown + allocsa41a5c3b.Borrow(cpTag_allocs) + + x.refa41a5c3b = refa41a5c3b + x.allocsa41a5c3b = allocsa41a5c3b + return refa41a5c3b, allocsa41a5c3b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x RenderPassInputAttachmentAspectCreateInfo) PassValue() (C.VkRenderPassInputAttachmentAspectCreateInfo, *cgoAllocMap) { - if x.ref34eaa5c7 != nil { - return *x.ref34eaa5c7, nil +func (x DebugMarkerObjectTagInfo) PassValue() (C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { + if x.refa41a5c3b != nil { + return *x.refa41a5c3b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16391,91 +43332,98 @@ func (x RenderPassInputAttachmentAspectCreateInfo) PassValue() (C.VkRenderPassIn // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RenderPassInputAttachmentAspectCreateInfo) Deref() { - if x.ref34eaa5c7 == nil { +func (x *DebugMarkerObjectTagInfo) Deref() { + if x.refa41a5c3b == nil { return } - x.SType = (StructureType)(x.ref34eaa5c7.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref34eaa5c7.pNext)) - x.AspectReferenceCount = (uint32)(x.ref34eaa5c7.aspectReferenceCount) - packSInputAttachmentAspectReference(x.PAspectReferences, x.ref34eaa5c7.pAspectReferences) + x.SType = (StructureType)(x.refa41a5c3b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa41a5c3b.pNext)) + x.ObjectType = (DebugReportObjectType)(x.refa41a5c3b.objectType) + x.Object = (uint64)(x.refa41a5c3b.object) + x.TagName = (uint64)(x.refa41a5c3b.tagName) + x.TagSize = (uint64)(x.refa41a5c3b.tagSize) + x.PTag = (unsafe.Pointer)(unsafe.Pointer(x.refa41a5c3b.pTag)) } -// allocImageViewUsageCreateInfoMemory allocates memory for type C.VkImageViewUsageCreateInfo in C. +// allocDebugMarkerMarkerInfoMemory allocates memory for type C.VkDebugMarkerMarkerInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageViewUsageCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewUsageCreateInfoValue)) +func allocDebugMarkerMarkerInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugMarkerMarkerInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageViewUsageCreateInfoValue = unsafe.Sizeof([1]C.VkImageViewUsageCreateInfo{}) +const sizeOfDebugMarkerMarkerInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerMarkerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageViewUsageCreateInfo) Ref() *C.VkImageViewUsageCreateInfo { +func (x *DebugMarkerMarkerInfo) Ref() *C.VkDebugMarkerMarkerInfoEXT { if x == nil { return nil } - return x.ref3791cec9 + return x.ref234b91fd } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageViewUsageCreateInfo) Free() { - if x != nil && x.allocs3791cec9 != nil { - x.allocs3791cec9.(*cgoAllocMap).Free() - x.ref3791cec9 = nil +func (x *DebugMarkerMarkerInfo) Free() { + if x != nil && x.allocs234b91fd != nil { + x.allocs234b91fd.(*cgoAllocMap).Free() + x.ref234b91fd = nil } } -// NewImageViewUsageCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDebugMarkerMarkerInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageViewUsageCreateInfoRef(ref unsafe.Pointer) *ImageViewUsageCreateInfo { +func NewDebugMarkerMarkerInfoRef(ref unsafe.Pointer) *DebugMarkerMarkerInfo { if ref == nil { return nil } - obj := new(ImageViewUsageCreateInfo) - obj.ref3791cec9 = (*C.VkImageViewUsageCreateInfo)(unsafe.Pointer(ref)) + obj := new(DebugMarkerMarkerInfo) + obj.ref234b91fd = (*C.VkDebugMarkerMarkerInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageViewUsageCreateInfo) PassRef() (*C.VkImageViewUsageCreateInfo, *cgoAllocMap) { +func (x *DebugMarkerMarkerInfo) PassRef() (*C.VkDebugMarkerMarkerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3791cec9 != nil { - return x.ref3791cec9, nil + } else if x.ref234b91fd != nil { + return x.ref234b91fd, nil } - mem3791cec9 := allocImageViewUsageCreateInfoMemory(1) - ref3791cec9 := (*C.VkImageViewUsageCreateInfo)(mem3791cec9) - allocs3791cec9 := new(cgoAllocMap) - allocs3791cec9.Add(mem3791cec9) + mem234b91fd := allocDebugMarkerMarkerInfoMemory(1) + ref234b91fd := (*C.VkDebugMarkerMarkerInfoEXT)(mem234b91fd) + allocs234b91fd := new(cgoAllocMap) + allocs234b91fd.Add(mem234b91fd) var csType_allocs *cgoAllocMap - ref3791cec9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3791cec9.Borrow(csType_allocs) + ref234b91fd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs234b91fd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3791cec9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3791cec9.Borrow(cpNext_allocs) + ref234b91fd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs234b91fd.Borrow(cpNext_allocs) - var cusage_allocs *cgoAllocMap - ref3791cec9.usage, cusage_allocs = (C.VkImageUsageFlags)(x.Usage), cgoAllocsUnknown - allocs3791cec9.Borrow(cusage_allocs) + var cpMarkerName_allocs *cgoAllocMap + ref234b91fd.pMarkerName, cpMarkerName_allocs = unpackPCharString(x.PMarkerName) + allocs234b91fd.Borrow(cpMarkerName_allocs) - x.ref3791cec9 = ref3791cec9 - x.allocs3791cec9 = allocs3791cec9 - return ref3791cec9, allocs3791cec9 + var ccolor_allocs *cgoAllocMap + ref234b91fd.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown + allocs234b91fd.Borrow(ccolor_allocs) + + x.ref234b91fd = ref234b91fd + x.allocs234b91fd = allocs234b91fd + return ref234b91fd, allocs234b91fd } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageViewUsageCreateInfo) PassValue() (C.VkImageViewUsageCreateInfo, *cgoAllocMap) { - if x.ref3791cec9 != nil { - return *x.ref3791cec9, nil +func (x DebugMarkerMarkerInfo) PassValue() (C.VkDebugMarkerMarkerInfoEXT, *cgoAllocMap) { + if x.ref234b91fd != nil { + return *x.ref234b91fd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16483,90 +43431,91 @@ func (x ImageViewUsageCreateInfo) PassValue() (C.VkImageViewUsageCreateInfo, *cg // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageViewUsageCreateInfo) Deref() { - if x.ref3791cec9 == nil { +func (x *DebugMarkerMarkerInfo) Deref() { + if x.ref234b91fd == nil { return } - x.SType = (StructureType)(x.ref3791cec9.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3791cec9.pNext)) - x.Usage = (ImageUsageFlags)(x.ref3791cec9.usage) + x.SType = (StructureType)(x.ref234b91fd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref234b91fd.pNext)) + x.PMarkerName = packPCharString(x.ref234b91fd.pMarkerName) + x.Color = *(*[4]float32)(unsafe.Pointer(&x.ref234b91fd.color)) } -// allocPipelineTessellationDomainOriginStateCreateInfoMemory allocates memory for type C.VkPipelineTessellationDomainOriginStateCreateInfo in C. +// allocDedicatedAllocationImageCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationImageCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineTessellationDomainOriginStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineTessellationDomainOriginStateCreateInfoValue)) +func allocDedicatedAllocationImageCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDedicatedAllocationImageCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineTessellationDomainOriginStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineTessellationDomainOriginStateCreateInfo{}) +const sizeOfDedicatedAllocationImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationImageCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineTessellationDomainOriginStateCreateInfo) Ref() *C.VkPipelineTessellationDomainOriginStateCreateInfo { +func (x *DedicatedAllocationImageCreateInfoNV) Ref() *C.VkDedicatedAllocationImageCreateInfoNV { if x == nil { return nil } - return x.ref58ef29bf + return x.ref685d878b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineTessellationDomainOriginStateCreateInfo) Free() { - if x != nil && x.allocs58ef29bf != nil { - x.allocs58ef29bf.(*cgoAllocMap).Free() - x.ref58ef29bf = nil +func (x *DedicatedAllocationImageCreateInfoNV) Free() { + if x != nil && x.allocs685d878b != nil { + x.allocs685d878b.(*cgoAllocMap).Free() + x.ref685d878b = nil } } -// NewPipelineTessellationDomainOriginStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDedicatedAllocationImageCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineTessellationDomainOriginStateCreateInfoRef(ref unsafe.Pointer) *PipelineTessellationDomainOriginStateCreateInfo { +func NewDedicatedAllocationImageCreateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationImageCreateInfoNV { if ref == nil { return nil } - obj := new(PipelineTessellationDomainOriginStateCreateInfo) - obj.ref58ef29bf = (*C.VkPipelineTessellationDomainOriginStateCreateInfo)(unsafe.Pointer(ref)) + obj := new(DedicatedAllocationImageCreateInfoNV) + obj.ref685d878b = (*C.VkDedicatedAllocationImageCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineTessellationDomainOriginStateCreateInfo) PassRef() (*C.VkPipelineTessellationDomainOriginStateCreateInfo, *cgoAllocMap) { +func (x *DedicatedAllocationImageCreateInfoNV) PassRef() (*C.VkDedicatedAllocationImageCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref58ef29bf != nil { - return x.ref58ef29bf, nil + } else if x.ref685d878b != nil { + return x.ref685d878b, nil } - mem58ef29bf := allocPipelineTessellationDomainOriginStateCreateInfoMemory(1) - ref58ef29bf := (*C.VkPipelineTessellationDomainOriginStateCreateInfo)(mem58ef29bf) - allocs58ef29bf := new(cgoAllocMap) - allocs58ef29bf.Add(mem58ef29bf) + mem685d878b := allocDedicatedAllocationImageCreateInfoNVMemory(1) + ref685d878b := (*C.VkDedicatedAllocationImageCreateInfoNV)(mem685d878b) + allocs685d878b := new(cgoAllocMap) + allocs685d878b.Add(mem685d878b) var csType_allocs *cgoAllocMap - ref58ef29bf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs58ef29bf.Borrow(csType_allocs) + ref685d878b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs685d878b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref58ef29bf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs58ef29bf.Borrow(cpNext_allocs) + ref685d878b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs685d878b.Borrow(cpNext_allocs) - var cdomainOrigin_allocs *cgoAllocMap - ref58ef29bf.domainOrigin, cdomainOrigin_allocs = (C.VkTessellationDomainOrigin)(x.DomainOrigin), cgoAllocsUnknown - allocs58ef29bf.Borrow(cdomainOrigin_allocs) + var cdedicatedAllocation_allocs *cgoAllocMap + ref685d878b.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown + allocs685d878b.Borrow(cdedicatedAllocation_allocs) - x.ref58ef29bf = ref58ef29bf - x.allocs58ef29bf = allocs58ef29bf - return ref58ef29bf, allocs58ef29bf + x.ref685d878b = ref685d878b + x.allocs685d878b = allocs685d878b + return ref685d878b, allocs685d878b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineTessellationDomainOriginStateCreateInfo) PassValue() (C.VkPipelineTessellationDomainOriginStateCreateInfo, *cgoAllocMap) { - if x.ref58ef29bf != nil { - return *x.ref58ef29bf, nil +func (x DedicatedAllocationImageCreateInfoNV) PassValue() (C.VkDedicatedAllocationImageCreateInfoNV, *cgoAllocMap) { + if x.ref685d878b != nil { + return *x.ref685d878b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16574,110 +43523,90 @@ func (x PipelineTessellationDomainOriginStateCreateInfo) PassValue() (C.VkPipeli // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineTessellationDomainOriginStateCreateInfo) Deref() { - if x.ref58ef29bf == nil { +func (x *DedicatedAllocationImageCreateInfoNV) Deref() { + if x.ref685d878b == nil { return } - x.SType = (StructureType)(x.ref58ef29bf.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref58ef29bf.pNext)) - x.DomainOrigin = (TessellationDomainOrigin)(x.ref58ef29bf.domainOrigin) + x.SType = (StructureType)(x.ref685d878b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref685d878b.pNext)) + x.DedicatedAllocation = (Bool32)(x.ref685d878b.dedicatedAllocation) } -// allocRenderPassMultiviewCreateInfoMemory allocates memory for type C.VkRenderPassMultiviewCreateInfo in C. +// allocDedicatedAllocationBufferCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationBufferCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocRenderPassMultiviewCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassMultiviewCreateInfoValue)) +func allocDedicatedAllocationBufferCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDedicatedAllocationBufferCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfRenderPassMultiviewCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassMultiviewCreateInfo{}) +const sizeOfDedicatedAllocationBufferCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationBufferCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassMultiviewCreateInfo) Ref() *C.VkRenderPassMultiviewCreateInfo { +func (x *DedicatedAllocationBufferCreateInfoNV) Ref() *C.VkDedicatedAllocationBufferCreateInfoNV { if x == nil { return nil } - return x.refee413e05 + return x.refbc745a8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *RenderPassMultiviewCreateInfo) Free() { - if x != nil && x.allocsee413e05 != nil { - x.allocsee413e05.(*cgoAllocMap).Free() - x.refee413e05 = nil +func (x *DedicatedAllocationBufferCreateInfoNV) Free() { + if x != nil && x.allocsbc745a8 != nil { + x.allocsbc745a8.(*cgoAllocMap).Free() + x.refbc745a8 = nil } } -// NewRenderPassMultiviewCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDedicatedAllocationBufferCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewRenderPassMultiviewCreateInfoRef(ref unsafe.Pointer) *RenderPassMultiviewCreateInfo { +func NewDedicatedAllocationBufferCreateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationBufferCreateInfoNV { if ref == nil { return nil } - obj := new(RenderPassMultiviewCreateInfo) - obj.refee413e05 = (*C.VkRenderPassMultiviewCreateInfo)(unsafe.Pointer(ref)) + obj := new(DedicatedAllocationBufferCreateInfoNV) + obj.refbc745a8 = (*C.VkDedicatedAllocationBufferCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *RenderPassMultiviewCreateInfo) PassRef() (*C.VkRenderPassMultiviewCreateInfo, *cgoAllocMap) { +func (x *DedicatedAllocationBufferCreateInfoNV) PassRef() (*C.VkDedicatedAllocationBufferCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refee413e05 != nil { - return x.refee413e05, nil + } else if x.refbc745a8 != nil { + return x.refbc745a8, nil } - memee413e05 := allocRenderPassMultiviewCreateInfoMemory(1) - refee413e05 := (*C.VkRenderPassMultiviewCreateInfo)(memee413e05) - allocsee413e05 := new(cgoAllocMap) - allocsee413e05.Add(memee413e05) + membc745a8 := allocDedicatedAllocationBufferCreateInfoNVMemory(1) + refbc745a8 := (*C.VkDedicatedAllocationBufferCreateInfoNV)(membc745a8) + allocsbc745a8 := new(cgoAllocMap) + allocsbc745a8.Add(membc745a8) var csType_allocs *cgoAllocMap - refee413e05.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsee413e05.Borrow(csType_allocs) + refbc745a8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbc745a8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refee413e05.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsee413e05.Borrow(cpNext_allocs) - - var csubpassCount_allocs *cgoAllocMap - refee413e05.subpassCount, csubpassCount_allocs = (C.uint32_t)(x.SubpassCount), cgoAllocsUnknown - allocsee413e05.Borrow(csubpassCount_allocs) - - var cpViewMasks_allocs *cgoAllocMap - refee413e05.pViewMasks, cpViewMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewMasks)).Data)), cgoAllocsUnknown - allocsee413e05.Borrow(cpViewMasks_allocs) - - var cdependencyCount_allocs *cgoAllocMap - refee413e05.dependencyCount, cdependencyCount_allocs = (C.uint32_t)(x.DependencyCount), cgoAllocsUnknown - allocsee413e05.Borrow(cdependencyCount_allocs) - - var cpViewOffsets_allocs *cgoAllocMap - refee413e05.pViewOffsets, cpViewOffsets_allocs = (*C.int32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewOffsets)).Data)), cgoAllocsUnknown - allocsee413e05.Borrow(cpViewOffsets_allocs) - - var ccorrelationMaskCount_allocs *cgoAllocMap - refee413e05.correlationMaskCount, ccorrelationMaskCount_allocs = (C.uint32_t)(x.CorrelationMaskCount), cgoAllocsUnknown - allocsee413e05.Borrow(ccorrelationMaskCount_allocs) + refbc745a8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbc745a8.Borrow(cpNext_allocs) - var cpCorrelationMasks_allocs *cgoAllocMap - refee413e05.pCorrelationMasks, cpCorrelationMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCorrelationMasks)).Data)), cgoAllocsUnknown - allocsee413e05.Borrow(cpCorrelationMasks_allocs) + var cdedicatedAllocation_allocs *cgoAllocMap + refbc745a8.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown + allocsbc745a8.Borrow(cdedicatedAllocation_allocs) - x.refee413e05 = refee413e05 - x.allocsee413e05 = allocsee413e05 - return refee413e05, allocsee413e05 + x.refbc745a8 = refbc745a8 + x.allocsbc745a8 = allocsbc745a8 + return refbc745a8, allocsbc745a8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x RenderPassMultiviewCreateInfo) PassValue() (C.VkRenderPassMultiviewCreateInfo, *cgoAllocMap) { - if x.refee413e05 != nil { - return *x.refee413e05, nil +func (x DedicatedAllocationBufferCreateInfoNV) PassValue() (C.VkDedicatedAllocationBufferCreateInfoNV, *cgoAllocMap) { + if x.refbc745a8 != nil { + return *x.refbc745a8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16685,115 +43614,94 @@ func (x RenderPassMultiviewCreateInfo) PassValue() (C.VkRenderPassMultiviewCreat // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RenderPassMultiviewCreateInfo) Deref() { - if x.refee413e05 == nil { +func (x *DedicatedAllocationBufferCreateInfoNV) Deref() { + if x.refbc745a8 == nil { return } - x.SType = (StructureType)(x.refee413e05.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refee413e05.pNext)) - x.SubpassCount = (uint32)(x.refee413e05.subpassCount) - hxff20e84 := (*sliceHeader)(unsafe.Pointer(&x.PViewMasks)) - hxff20e84.Data = unsafe.Pointer(x.refee413e05.pViewMasks) - hxff20e84.Cap = 0x7fffffff - // hxff20e84.Len = ? - - x.DependencyCount = (uint32)(x.refee413e05.dependencyCount) - hxfa26a4d := (*sliceHeader)(unsafe.Pointer(&x.PViewOffsets)) - hxfa26a4d.Data = unsafe.Pointer(x.refee413e05.pViewOffsets) - hxfa26a4d.Cap = 0x7fffffff - // hxfa26a4d.Len = ? - - x.CorrelationMaskCount = (uint32)(x.refee413e05.correlationMaskCount) - hxfe48098 := (*sliceHeader)(unsafe.Pointer(&x.PCorrelationMasks)) - hxfe48098.Data = unsafe.Pointer(x.refee413e05.pCorrelationMasks) - hxfe48098.Cap = 0x7fffffff - // hxfe48098.Len = ? - + x.SType = (StructureType)(x.refbc745a8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc745a8.pNext)) + x.DedicatedAllocation = (Bool32)(x.refbc745a8.dedicatedAllocation) } -// allocPhysicalDeviceMultiviewFeaturesMemory allocates memory for type C.VkPhysicalDeviceMultiviewFeatures in C. +// allocDedicatedAllocationMemoryAllocateInfoNVMemory allocates memory for type C.VkDedicatedAllocationMemoryAllocateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMultiviewFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiviewFeaturesValue)) +func allocDedicatedAllocationMemoryAllocateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDedicatedAllocationMemoryAllocateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceMultiviewFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewFeatures{}) +const sizeOfDedicatedAllocationMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationMemoryAllocateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMultiviewFeatures) Ref() *C.VkPhysicalDeviceMultiviewFeatures { +func (x *DedicatedAllocationMemoryAllocateInfoNV) Ref() *C.VkDedicatedAllocationMemoryAllocateInfoNV { if x == nil { return nil } - return x.refd7a7434b + return x.ref9a72b107 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceMultiviewFeatures) Free() { - if x != nil && x.allocsd7a7434b != nil { - x.allocsd7a7434b.(*cgoAllocMap).Free() - x.refd7a7434b = nil +func (x *DedicatedAllocationMemoryAllocateInfoNV) Free() { + if x != nil && x.allocs9a72b107 != nil { + x.allocs9a72b107.(*cgoAllocMap).Free() + x.ref9a72b107 = nil } } -// NewPhysicalDeviceMultiviewFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDedicatedAllocationMemoryAllocateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceMultiviewFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewFeatures { +func NewDedicatedAllocationMemoryAllocateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationMemoryAllocateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceMultiviewFeatures) - obj.refd7a7434b = (*C.VkPhysicalDeviceMultiviewFeatures)(unsafe.Pointer(ref)) + obj := new(DedicatedAllocationMemoryAllocateInfoNV) + obj.ref9a72b107 = (*C.VkDedicatedAllocationMemoryAllocateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceMultiviewFeatures) PassRef() (*C.VkPhysicalDeviceMultiviewFeatures, *cgoAllocMap) { +func (x *DedicatedAllocationMemoryAllocateInfoNV) PassRef() (*C.VkDedicatedAllocationMemoryAllocateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd7a7434b != nil { - return x.refd7a7434b, nil + } else if x.ref9a72b107 != nil { + return x.ref9a72b107, nil } - memd7a7434b := allocPhysicalDeviceMultiviewFeaturesMemory(1) - refd7a7434b := (*C.VkPhysicalDeviceMultiviewFeatures)(memd7a7434b) - allocsd7a7434b := new(cgoAllocMap) - allocsd7a7434b.Add(memd7a7434b) + mem9a72b107 := allocDedicatedAllocationMemoryAllocateInfoNVMemory(1) + ref9a72b107 := (*C.VkDedicatedAllocationMemoryAllocateInfoNV)(mem9a72b107) + allocs9a72b107 := new(cgoAllocMap) + allocs9a72b107.Add(mem9a72b107) var csType_allocs *cgoAllocMap - refd7a7434b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd7a7434b.Borrow(csType_allocs) + ref9a72b107.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9a72b107.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd7a7434b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd7a7434b.Borrow(cpNext_allocs) - - var cmultiview_allocs *cgoAllocMap - refd7a7434b.multiview, cmultiview_allocs = (C.VkBool32)(x.Multiview), cgoAllocsUnknown - allocsd7a7434b.Borrow(cmultiview_allocs) + ref9a72b107.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9a72b107.Borrow(cpNext_allocs) - var cmultiviewGeometryShader_allocs *cgoAllocMap - refd7a7434b.multiviewGeometryShader, cmultiviewGeometryShader_allocs = (C.VkBool32)(x.MultiviewGeometryShader), cgoAllocsUnknown - allocsd7a7434b.Borrow(cmultiviewGeometryShader_allocs) + var cimage_allocs *cgoAllocMap + ref9a72b107.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocs9a72b107.Borrow(cimage_allocs) - var cmultiviewTessellationShader_allocs *cgoAllocMap - refd7a7434b.multiviewTessellationShader, cmultiviewTessellationShader_allocs = (C.VkBool32)(x.MultiviewTessellationShader), cgoAllocsUnknown - allocsd7a7434b.Borrow(cmultiviewTessellationShader_allocs) + var cbuffer_allocs *cgoAllocMap + ref9a72b107.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs9a72b107.Borrow(cbuffer_allocs) - x.refd7a7434b = refd7a7434b - x.allocsd7a7434b = allocsd7a7434b - return refd7a7434b, allocsd7a7434b + x.ref9a72b107 = ref9a72b107 + x.allocs9a72b107 = allocs9a72b107 + return ref9a72b107, allocs9a72b107 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceMultiviewFeatures) PassValue() (C.VkPhysicalDeviceMultiviewFeatures, *cgoAllocMap) { - if x.refd7a7434b != nil { - return *x.refd7a7434b, nil +func (x DedicatedAllocationMemoryAllocateInfoNV) PassValue() (C.VkDedicatedAllocationMemoryAllocateInfoNV, *cgoAllocMap) { + if x.ref9a72b107 != nil { + return *x.ref9a72b107, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16801,96 +43709,95 @@ func (x PhysicalDeviceMultiviewFeatures) PassValue() (C.VkPhysicalDeviceMultivie // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMultiviewFeatures) Deref() { - if x.refd7a7434b == nil { +func (x *DedicatedAllocationMemoryAllocateInfoNV) Deref() { + if x.ref9a72b107 == nil { return } - x.SType = (StructureType)(x.refd7a7434b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd7a7434b.pNext)) - x.Multiview = (Bool32)(x.refd7a7434b.multiview) - x.MultiviewGeometryShader = (Bool32)(x.refd7a7434b.multiviewGeometryShader) - x.MultiviewTessellationShader = (Bool32)(x.refd7a7434b.multiviewTessellationShader) + x.SType = (StructureType)(x.ref9a72b107.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9a72b107.pNext)) + x.Image = *(*Image)(unsafe.Pointer(&x.ref9a72b107.image)) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref9a72b107.buffer)) } -// allocPhysicalDeviceMultiviewPropertiesMemory allocates memory for type C.VkPhysicalDeviceMultiviewProperties in C. +// allocPhysicalDeviceTransformFeedbackFeaturesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMultiviewPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiviewPropertiesValue)) +func allocPhysicalDeviceTransformFeedbackFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTransformFeedbackFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceMultiviewPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewProperties{}) +const sizeOfPhysicalDeviceTransformFeedbackFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMultiviewProperties) Ref() *C.VkPhysicalDeviceMultiviewProperties { +func (x *PhysicalDeviceTransformFeedbackFeatures) Ref() *C.VkPhysicalDeviceTransformFeedbackFeaturesEXT { if x == nil { return nil } - return x.ref95110029 + return x.ref64b2a913 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceMultiviewProperties) Free() { - if x != nil && x.allocs95110029 != nil { - x.allocs95110029.(*cgoAllocMap).Free() - x.ref95110029 = nil +func (x *PhysicalDeviceTransformFeedbackFeatures) Free() { + if x != nil && x.allocs64b2a913 != nil { + x.allocs64b2a913.(*cgoAllocMap).Free() + x.ref64b2a913 = nil } } -// NewPhysicalDeviceMultiviewPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceTransformFeedbackFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceMultiviewPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewProperties { +func NewPhysicalDeviceTransformFeedbackFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceMultiviewProperties) - obj.ref95110029 = (*C.VkPhysicalDeviceMultiviewProperties)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceTransformFeedbackFeatures) + obj.ref64b2a913 = (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceMultiviewProperties) PassRef() (*C.VkPhysicalDeviceMultiviewProperties, *cgoAllocMap) { +func (x *PhysicalDeviceTransformFeedbackFeatures) PassRef() (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref95110029 != nil { - return x.ref95110029, nil + } else if x.ref64b2a913 != nil { + return x.ref64b2a913, nil } - mem95110029 := allocPhysicalDeviceMultiviewPropertiesMemory(1) - ref95110029 := (*C.VkPhysicalDeviceMultiviewProperties)(mem95110029) - allocs95110029 := new(cgoAllocMap) - allocs95110029.Add(mem95110029) + mem64b2a913 := allocPhysicalDeviceTransformFeedbackFeaturesMemory(1) + ref64b2a913 := (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT)(mem64b2a913) + allocs64b2a913 := new(cgoAllocMap) + allocs64b2a913.Add(mem64b2a913) var csType_allocs *cgoAllocMap - ref95110029.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs95110029.Borrow(csType_allocs) + ref64b2a913.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs64b2a913.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref95110029.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs95110029.Borrow(cpNext_allocs) + ref64b2a913.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs64b2a913.Borrow(cpNext_allocs) - var cmaxMultiviewViewCount_allocs *cgoAllocMap - ref95110029.maxMultiviewViewCount, cmaxMultiviewViewCount_allocs = (C.uint32_t)(x.MaxMultiviewViewCount), cgoAllocsUnknown - allocs95110029.Borrow(cmaxMultiviewViewCount_allocs) + var ctransformFeedback_allocs *cgoAllocMap + ref64b2a913.transformFeedback, ctransformFeedback_allocs = (C.VkBool32)(x.TransformFeedback), cgoAllocsUnknown + allocs64b2a913.Borrow(ctransformFeedback_allocs) - var cmaxMultiviewInstanceIndex_allocs *cgoAllocMap - ref95110029.maxMultiviewInstanceIndex, cmaxMultiviewInstanceIndex_allocs = (C.uint32_t)(x.MaxMultiviewInstanceIndex), cgoAllocsUnknown - allocs95110029.Borrow(cmaxMultiviewInstanceIndex_allocs) + var cgeometryStreams_allocs *cgoAllocMap + ref64b2a913.geometryStreams, cgeometryStreams_allocs = (C.VkBool32)(x.GeometryStreams), cgoAllocsUnknown + allocs64b2a913.Borrow(cgeometryStreams_allocs) - x.ref95110029 = ref95110029 - x.allocs95110029 = allocs95110029 - return ref95110029, allocs95110029 + x.ref64b2a913 = ref64b2a913 + x.allocs64b2a913 = allocs64b2a913 + return ref64b2a913, allocs64b2a913 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceMultiviewProperties) PassValue() (C.VkPhysicalDeviceMultiviewProperties, *cgoAllocMap) { - if x.ref95110029 != nil { - return *x.ref95110029, nil +func (x PhysicalDeviceTransformFeedbackFeatures) PassValue() (C.VkPhysicalDeviceTransformFeedbackFeaturesEXT, *cgoAllocMap) { + if x.ref64b2a913 != nil { + return *x.ref64b2a913, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16898,95 +43805,127 @@ func (x PhysicalDeviceMultiviewProperties) PassValue() (C.VkPhysicalDeviceMultiv // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMultiviewProperties) Deref() { - if x.ref95110029 == nil { +func (x *PhysicalDeviceTransformFeedbackFeatures) Deref() { + if x.ref64b2a913 == nil { return } - x.SType = (StructureType)(x.ref95110029.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref95110029.pNext)) - x.MaxMultiviewViewCount = (uint32)(x.ref95110029.maxMultiviewViewCount) - x.MaxMultiviewInstanceIndex = (uint32)(x.ref95110029.maxMultiviewInstanceIndex) + x.SType = (StructureType)(x.ref64b2a913.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref64b2a913.pNext)) + x.TransformFeedback = (Bool32)(x.ref64b2a913.transformFeedback) + x.GeometryStreams = (Bool32)(x.ref64b2a913.geometryStreams) } -// allocPhysicalDeviceVariablePointerFeaturesMemory allocates memory for type C.VkPhysicalDeviceVariablePointerFeatures in C. +// allocPhysicalDeviceTransformFeedbackPropertiesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceVariablePointerFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVariablePointerFeaturesValue)) +func allocPhysicalDeviceTransformFeedbackPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTransformFeedbackPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceVariablePointerFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVariablePointerFeatures{}) +const sizeOfPhysicalDeviceTransformFeedbackPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVariablePointerFeatures) Ref() *C.VkPhysicalDeviceVariablePointerFeatures { +func (x *PhysicalDeviceTransformFeedbackProperties) Ref() *C.VkPhysicalDeviceTransformFeedbackPropertiesEXT { if x == nil { return nil } - return x.refdedd8372 + return x.refc295a2a0 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceVariablePointerFeatures) Free() { - if x != nil && x.allocsdedd8372 != nil { - x.allocsdedd8372.(*cgoAllocMap).Free() - x.refdedd8372 = nil +func (x *PhysicalDeviceTransformFeedbackProperties) Free() { + if x != nil && x.allocsc295a2a0 != nil { + x.allocsc295a2a0.(*cgoAllocMap).Free() + x.refc295a2a0 = nil } } -// NewPhysicalDeviceVariablePointerFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceTransformFeedbackPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceVariablePointerFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVariablePointerFeatures { +func NewPhysicalDeviceTransformFeedbackPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceVariablePointerFeatures) - obj.refdedd8372 = (*C.VkPhysicalDeviceVariablePointerFeatures)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceTransformFeedbackProperties) + obj.refc295a2a0 = (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceVariablePointerFeatures) PassRef() (*C.VkPhysicalDeviceVariablePointerFeatures, *cgoAllocMap) { +func (x *PhysicalDeviceTransformFeedbackProperties) PassRef() (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdedd8372 != nil { - return x.refdedd8372, nil + } else if x.refc295a2a0 != nil { + return x.refc295a2a0, nil } - memdedd8372 := allocPhysicalDeviceVariablePointerFeaturesMemory(1) - refdedd8372 := (*C.VkPhysicalDeviceVariablePointerFeatures)(memdedd8372) - allocsdedd8372 := new(cgoAllocMap) - allocsdedd8372.Add(memdedd8372) + memc295a2a0 := allocPhysicalDeviceTransformFeedbackPropertiesMemory(1) + refc295a2a0 := (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT)(memc295a2a0) + allocsc295a2a0 := new(cgoAllocMap) + allocsc295a2a0.Add(memc295a2a0) var csType_allocs *cgoAllocMap - refdedd8372.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdedd8372.Borrow(csType_allocs) + refc295a2a0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc295a2a0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdedd8372.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdedd8372.Borrow(cpNext_allocs) + refc295a2a0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc295a2a0.Borrow(cpNext_allocs) - var cvariablePointersStorageBuffer_allocs *cgoAllocMap - refdedd8372.variablePointersStorageBuffer, cvariablePointersStorageBuffer_allocs = (C.VkBool32)(x.VariablePointersStorageBuffer), cgoAllocsUnknown - allocsdedd8372.Borrow(cvariablePointersStorageBuffer_allocs) + var cmaxTransformFeedbackStreams_allocs *cgoAllocMap + refc295a2a0.maxTransformFeedbackStreams, cmaxTransformFeedbackStreams_allocs = (C.uint32_t)(x.MaxTransformFeedbackStreams), cgoAllocsUnknown + allocsc295a2a0.Borrow(cmaxTransformFeedbackStreams_allocs) - var cvariablePointers_allocs *cgoAllocMap - refdedd8372.variablePointers, cvariablePointers_allocs = (C.VkBool32)(x.VariablePointers), cgoAllocsUnknown - allocsdedd8372.Borrow(cvariablePointers_allocs) + var cmaxTransformFeedbackBuffers_allocs *cgoAllocMap + refc295a2a0.maxTransformFeedbackBuffers, cmaxTransformFeedbackBuffers_allocs = (C.uint32_t)(x.MaxTransformFeedbackBuffers), cgoAllocsUnknown + allocsc295a2a0.Borrow(cmaxTransformFeedbackBuffers_allocs) + + var cmaxTransformFeedbackBufferSize_allocs *cgoAllocMap + refc295a2a0.maxTransformFeedbackBufferSize, cmaxTransformFeedbackBufferSize_allocs = (C.VkDeviceSize)(x.MaxTransformFeedbackBufferSize), cgoAllocsUnknown + allocsc295a2a0.Borrow(cmaxTransformFeedbackBufferSize_allocs) + + var cmaxTransformFeedbackStreamDataSize_allocs *cgoAllocMap + refc295a2a0.maxTransformFeedbackStreamDataSize, cmaxTransformFeedbackStreamDataSize_allocs = (C.uint32_t)(x.MaxTransformFeedbackStreamDataSize), cgoAllocsUnknown + allocsc295a2a0.Borrow(cmaxTransformFeedbackStreamDataSize_allocs) + + var cmaxTransformFeedbackBufferDataSize_allocs *cgoAllocMap + refc295a2a0.maxTransformFeedbackBufferDataSize, cmaxTransformFeedbackBufferDataSize_allocs = (C.uint32_t)(x.MaxTransformFeedbackBufferDataSize), cgoAllocsUnknown + allocsc295a2a0.Borrow(cmaxTransformFeedbackBufferDataSize_allocs) + + var cmaxTransformFeedbackBufferDataStride_allocs *cgoAllocMap + refc295a2a0.maxTransformFeedbackBufferDataStride, cmaxTransformFeedbackBufferDataStride_allocs = (C.uint32_t)(x.MaxTransformFeedbackBufferDataStride), cgoAllocsUnknown + allocsc295a2a0.Borrow(cmaxTransformFeedbackBufferDataStride_allocs) + + var ctransformFeedbackQueries_allocs *cgoAllocMap + refc295a2a0.transformFeedbackQueries, ctransformFeedbackQueries_allocs = (C.VkBool32)(x.TransformFeedbackQueries), cgoAllocsUnknown + allocsc295a2a0.Borrow(ctransformFeedbackQueries_allocs) + + var ctransformFeedbackStreamsLinesTriangles_allocs *cgoAllocMap + refc295a2a0.transformFeedbackStreamsLinesTriangles, ctransformFeedbackStreamsLinesTriangles_allocs = (C.VkBool32)(x.TransformFeedbackStreamsLinesTriangles), cgoAllocsUnknown + allocsc295a2a0.Borrow(ctransformFeedbackStreamsLinesTriangles_allocs) + + var ctransformFeedbackRasterizationStreamSelect_allocs *cgoAllocMap + refc295a2a0.transformFeedbackRasterizationStreamSelect, ctransformFeedbackRasterizationStreamSelect_allocs = (C.VkBool32)(x.TransformFeedbackRasterizationStreamSelect), cgoAllocsUnknown + allocsc295a2a0.Borrow(ctransformFeedbackRasterizationStreamSelect_allocs) + + var ctransformFeedbackDraw_allocs *cgoAllocMap + refc295a2a0.transformFeedbackDraw, ctransformFeedbackDraw_allocs = (C.VkBool32)(x.TransformFeedbackDraw), cgoAllocsUnknown + allocsc295a2a0.Borrow(ctransformFeedbackDraw_allocs) - x.refdedd8372 = refdedd8372 - x.allocsdedd8372 = allocsdedd8372 - return refdedd8372, allocsdedd8372 + x.refc295a2a0 = refc295a2a0 + x.allocsc295a2a0 = allocsc295a2a0 + return refc295a2a0, allocsc295a2a0 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceVariablePointerFeatures) PassValue() (C.VkPhysicalDeviceVariablePointerFeatures, *cgoAllocMap) { - if x.refdedd8372 != nil { - return *x.refdedd8372, nil +func (x PhysicalDeviceTransformFeedbackProperties) PassValue() (C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { + if x.refc295a2a0 != nil { + return *x.refc295a2a0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -16994,91 +43933,103 @@ func (x PhysicalDeviceVariablePointerFeatures) PassValue() (C.VkPhysicalDeviceVa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceVariablePointerFeatures) Deref() { - if x.refdedd8372 == nil { +func (x *PhysicalDeviceTransformFeedbackProperties) Deref() { + if x.refc295a2a0 == nil { return } - x.SType = (StructureType)(x.refdedd8372.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdedd8372.pNext)) - x.VariablePointersStorageBuffer = (Bool32)(x.refdedd8372.variablePointersStorageBuffer) - x.VariablePointers = (Bool32)(x.refdedd8372.variablePointers) + x.SType = (StructureType)(x.refc295a2a0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc295a2a0.pNext)) + x.MaxTransformFeedbackStreams = (uint32)(x.refc295a2a0.maxTransformFeedbackStreams) + x.MaxTransformFeedbackBuffers = (uint32)(x.refc295a2a0.maxTransformFeedbackBuffers) + x.MaxTransformFeedbackBufferSize = (DeviceSize)(x.refc295a2a0.maxTransformFeedbackBufferSize) + x.MaxTransformFeedbackStreamDataSize = (uint32)(x.refc295a2a0.maxTransformFeedbackStreamDataSize) + x.MaxTransformFeedbackBufferDataSize = (uint32)(x.refc295a2a0.maxTransformFeedbackBufferDataSize) + x.MaxTransformFeedbackBufferDataStride = (uint32)(x.refc295a2a0.maxTransformFeedbackBufferDataStride) + x.TransformFeedbackQueries = (Bool32)(x.refc295a2a0.transformFeedbackQueries) + x.TransformFeedbackStreamsLinesTriangles = (Bool32)(x.refc295a2a0.transformFeedbackStreamsLinesTriangles) + x.TransformFeedbackRasterizationStreamSelect = (Bool32)(x.refc295a2a0.transformFeedbackRasterizationStreamSelect) + x.TransformFeedbackDraw = (Bool32)(x.refc295a2a0.transformFeedbackDraw) } -// allocPhysicalDeviceProtectedMemoryFeaturesMemory allocates memory for type C.VkPhysicalDeviceProtectedMemoryFeatures in C. +// allocPipelineRasterizationStateStreamCreateInfoMemory allocates memory for type C.VkPipelineRasterizationStateStreamCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceProtectedMemoryFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProtectedMemoryFeaturesValue)) +func allocPipelineRasterizationStateStreamCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationStateStreamCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceProtectedMemoryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProtectedMemoryFeatures{}) +const sizeOfPipelineRasterizationStateStreamCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateStreamCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceProtectedMemoryFeatures) Ref() *C.VkPhysicalDeviceProtectedMemoryFeatures { +func (x *PipelineRasterizationStateStreamCreateInfo) Ref() *C.VkPipelineRasterizationStateStreamCreateInfoEXT { if x == nil { return nil } - return x.refac441ed1 + return x.refed6e1fb9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceProtectedMemoryFeatures) Free() { - if x != nil && x.allocsac441ed1 != nil { - x.allocsac441ed1.(*cgoAllocMap).Free() - x.refac441ed1 = nil +func (x *PipelineRasterizationStateStreamCreateInfo) Free() { + if x != nil && x.allocsed6e1fb9 != nil { + x.allocsed6e1fb9.(*cgoAllocMap).Free() + x.refed6e1fb9 = nil } } -// NewPhysicalDeviceProtectedMemoryFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineRasterizationStateStreamCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceProtectedMemoryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceProtectedMemoryFeatures { +func NewPipelineRasterizationStateStreamCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationStateStreamCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceProtectedMemoryFeatures) - obj.refac441ed1 = (*C.VkPhysicalDeviceProtectedMemoryFeatures)(unsafe.Pointer(ref)) + obj := new(PipelineRasterizationStateStreamCreateInfo) + obj.refed6e1fb9 = (*C.VkPipelineRasterizationStateStreamCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceProtectedMemoryFeatures) PassRef() (*C.VkPhysicalDeviceProtectedMemoryFeatures, *cgoAllocMap) { +func (x *PipelineRasterizationStateStreamCreateInfo) PassRef() (*C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refac441ed1 != nil { - return x.refac441ed1, nil + } else if x.refed6e1fb9 != nil { + return x.refed6e1fb9, nil } - memac441ed1 := allocPhysicalDeviceProtectedMemoryFeaturesMemory(1) - refac441ed1 := (*C.VkPhysicalDeviceProtectedMemoryFeatures)(memac441ed1) - allocsac441ed1 := new(cgoAllocMap) - allocsac441ed1.Add(memac441ed1) + memed6e1fb9 := allocPipelineRasterizationStateStreamCreateInfoMemory(1) + refed6e1fb9 := (*C.VkPipelineRasterizationStateStreamCreateInfoEXT)(memed6e1fb9) + allocsed6e1fb9 := new(cgoAllocMap) + allocsed6e1fb9.Add(memed6e1fb9) var csType_allocs *cgoAllocMap - refac441ed1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsac441ed1.Borrow(csType_allocs) + refed6e1fb9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsed6e1fb9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refac441ed1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsac441ed1.Borrow(cpNext_allocs) + refed6e1fb9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsed6e1fb9.Borrow(cpNext_allocs) - var cprotectedMemory_allocs *cgoAllocMap - refac441ed1.protectedMemory, cprotectedMemory_allocs = (C.VkBool32)(x.ProtectedMemory), cgoAllocsUnknown - allocsac441ed1.Borrow(cprotectedMemory_allocs) + var cflags_allocs *cgoAllocMap + refed6e1fb9.flags, cflags_allocs = (C.VkPipelineRasterizationStateStreamCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsed6e1fb9.Borrow(cflags_allocs) - x.refac441ed1 = refac441ed1 - x.allocsac441ed1 = allocsac441ed1 - return refac441ed1, allocsac441ed1 + var crasterizationStream_allocs *cgoAllocMap + refed6e1fb9.rasterizationStream, crasterizationStream_allocs = (C.uint32_t)(x.RasterizationStream), cgoAllocsUnknown + allocsed6e1fb9.Borrow(crasterizationStream_allocs) + + x.refed6e1fb9 = refed6e1fb9 + x.allocsed6e1fb9 = allocsed6e1fb9 + return refed6e1fb9, allocsed6e1fb9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceProtectedMemoryFeatures) PassValue() (C.VkPhysicalDeviceProtectedMemoryFeatures, *cgoAllocMap) { - if x.refac441ed1 != nil { - return *x.refac441ed1, nil +func (x PipelineRasterizationStateStreamCreateInfo) PassValue() (C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { + if x.refed6e1fb9 != nil { + return *x.refed6e1fb9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17086,90 +44037,99 @@ func (x PhysicalDeviceProtectedMemoryFeatures) PassValue() (C.VkPhysicalDevicePr // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceProtectedMemoryFeatures) Deref() { - if x.refac441ed1 == nil { +func (x *PipelineRasterizationStateStreamCreateInfo) Deref() { + if x.refed6e1fb9 == nil { return } - x.SType = (StructureType)(x.refac441ed1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refac441ed1.pNext)) - x.ProtectedMemory = (Bool32)(x.refac441ed1.protectedMemory) + x.SType = (StructureType)(x.refed6e1fb9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refed6e1fb9.pNext)) + x.Flags = (PipelineRasterizationStateStreamCreateFlags)(x.refed6e1fb9.flags) + x.RasterizationStream = (uint32)(x.refed6e1fb9.rasterizationStream) } -// allocPhysicalDeviceProtectedMemoryPropertiesMemory allocates memory for type C.VkPhysicalDeviceProtectedMemoryProperties in C. +// allocImageViewHandleInfoNVXMemory allocates memory for type C.VkImageViewHandleInfoNVX in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceProtectedMemoryPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProtectedMemoryPropertiesValue)) +func allocImageViewHandleInfoNVXMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewHandleInfoNVXValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceProtectedMemoryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProtectedMemoryProperties{}) +const sizeOfImageViewHandleInfoNVXValue = unsafe.Sizeof([1]C.VkImageViewHandleInfoNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceProtectedMemoryProperties) Ref() *C.VkPhysicalDeviceProtectedMemoryProperties { +func (x *ImageViewHandleInfoNVX) Ref() *C.VkImageViewHandleInfoNVX { if x == nil { return nil } - return x.refb653413 + return x.refc283b384 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceProtectedMemoryProperties) Free() { - if x != nil && x.allocsb653413 != nil { - x.allocsb653413.(*cgoAllocMap).Free() - x.refb653413 = nil +func (x *ImageViewHandleInfoNVX) Free() { + if x != nil && x.allocsc283b384 != nil { + x.allocsc283b384.(*cgoAllocMap).Free() + x.refc283b384 = nil } } -// NewPhysicalDeviceProtectedMemoryPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageViewHandleInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceProtectedMemoryPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceProtectedMemoryProperties { +func NewImageViewHandleInfoNVXRef(ref unsafe.Pointer) *ImageViewHandleInfoNVX { if ref == nil { return nil } - obj := new(PhysicalDeviceProtectedMemoryProperties) - obj.refb653413 = (*C.VkPhysicalDeviceProtectedMemoryProperties)(unsafe.Pointer(ref)) + obj := new(ImageViewHandleInfoNVX) + obj.refc283b384 = (*C.VkImageViewHandleInfoNVX)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceProtectedMemoryProperties) PassRef() (*C.VkPhysicalDeviceProtectedMemoryProperties, *cgoAllocMap) { +func (x *ImageViewHandleInfoNVX) PassRef() (*C.VkImageViewHandleInfoNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb653413 != nil { - return x.refb653413, nil + } else if x.refc283b384 != nil { + return x.refc283b384, nil } - memb653413 := allocPhysicalDeviceProtectedMemoryPropertiesMemory(1) - refb653413 := (*C.VkPhysicalDeviceProtectedMemoryProperties)(memb653413) - allocsb653413 := new(cgoAllocMap) - allocsb653413.Add(memb653413) + memc283b384 := allocImageViewHandleInfoNVXMemory(1) + refc283b384 := (*C.VkImageViewHandleInfoNVX)(memc283b384) + allocsc283b384 := new(cgoAllocMap) + allocsc283b384.Add(memc283b384) var csType_allocs *cgoAllocMap - refb653413.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb653413.Borrow(csType_allocs) + refc283b384.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc283b384.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb653413.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb653413.Borrow(cpNext_allocs) + refc283b384.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc283b384.Borrow(cpNext_allocs) - var cprotectedNoFault_allocs *cgoAllocMap - refb653413.protectedNoFault, cprotectedNoFault_allocs = (C.VkBool32)(x.ProtectedNoFault), cgoAllocsUnknown - allocsb653413.Borrow(cprotectedNoFault_allocs) + var cimageView_allocs *cgoAllocMap + refc283b384.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocsc283b384.Borrow(cimageView_allocs) - x.refb653413 = refb653413 - x.allocsb653413 = allocsb653413 - return refb653413, allocsb653413 + var cdescriptorType_allocs *cgoAllocMap + refc283b384.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown + allocsc283b384.Borrow(cdescriptorType_allocs) + + var csampler_allocs *cgoAllocMap + refc283b384.sampler, csampler_allocs = *(*C.VkSampler)(unsafe.Pointer(&x.Sampler)), cgoAllocsUnknown + allocsc283b384.Borrow(csampler_allocs) + + x.refc283b384 = refc283b384 + x.allocsc283b384 = allocsc283b384 + return refc283b384, allocsc283b384 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceProtectedMemoryProperties) PassValue() (C.VkPhysicalDeviceProtectedMemoryProperties, *cgoAllocMap) { - if x.refb653413 != nil { - return *x.refb653413, nil +func (x ImageViewHandleInfoNVX) PassValue() (C.VkImageViewHandleInfoNVX, *cgoAllocMap) { + if x.refc283b384 != nil { + return *x.refc283b384, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17177,98 +44137,96 @@ func (x PhysicalDeviceProtectedMemoryProperties) PassValue() (C.VkPhysicalDevice // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceProtectedMemoryProperties) Deref() { - if x.refb653413 == nil { +func (x *ImageViewHandleInfoNVX) Deref() { + if x.refc283b384 == nil { return } - x.SType = (StructureType)(x.refb653413.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb653413.pNext)) - x.ProtectedNoFault = (Bool32)(x.refb653413.protectedNoFault) + x.SType = (StructureType)(x.refc283b384.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc283b384.pNext)) + x.ImageView = *(*ImageView)(unsafe.Pointer(&x.refc283b384.imageView)) + x.DescriptorType = (DescriptorType)(x.refc283b384.descriptorType) + x.Sampler = *(*Sampler)(unsafe.Pointer(&x.refc283b384.sampler)) } -// allocDeviceQueueInfo2Memory allocates memory for type C.VkDeviceQueueInfo2 in C. +// allocImageViewAddressPropertiesNVXMemory allocates memory for type C.VkImageViewAddressPropertiesNVX in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceQueueInfo2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceQueueInfo2Value)) +func allocImageViewAddressPropertiesNVXMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewAddressPropertiesNVXValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceQueueInfo2Value = unsafe.Sizeof([1]C.VkDeviceQueueInfo2{}) +const sizeOfImageViewAddressPropertiesNVXValue = unsafe.Sizeof([1]C.VkImageViewAddressPropertiesNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceQueueInfo2) Ref() *C.VkDeviceQueueInfo2 { +func (x *ImageViewAddressPropertiesNVX) Ref() *C.VkImageViewAddressPropertiesNVX { if x == nil { return nil } - return x.ref2f267e52 + return x.refe6dd1556 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceQueueInfo2) Free() { - if x != nil && x.allocs2f267e52 != nil { - x.allocs2f267e52.(*cgoAllocMap).Free() - x.ref2f267e52 = nil +func (x *ImageViewAddressPropertiesNVX) Free() { + if x != nil && x.allocse6dd1556 != nil { + x.allocse6dd1556.(*cgoAllocMap).Free() + x.refe6dd1556 = nil } } -// NewDeviceQueueInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewImageViewAddressPropertiesNVXRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceQueueInfo2Ref(ref unsafe.Pointer) *DeviceQueueInfo2 { +func NewImageViewAddressPropertiesNVXRef(ref unsafe.Pointer) *ImageViewAddressPropertiesNVX { if ref == nil { return nil } - obj := new(DeviceQueueInfo2) - obj.ref2f267e52 = (*C.VkDeviceQueueInfo2)(unsafe.Pointer(ref)) + obj := new(ImageViewAddressPropertiesNVX) + obj.refe6dd1556 = (*C.VkImageViewAddressPropertiesNVX)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceQueueInfo2) PassRef() (*C.VkDeviceQueueInfo2, *cgoAllocMap) { +func (x *ImageViewAddressPropertiesNVX) PassRef() (*C.VkImageViewAddressPropertiesNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2f267e52 != nil { - return x.ref2f267e52, nil + } else if x.refe6dd1556 != nil { + return x.refe6dd1556, nil } - mem2f267e52 := allocDeviceQueueInfo2Memory(1) - ref2f267e52 := (*C.VkDeviceQueueInfo2)(mem2f267e52) - allocs2f267e52 := new(cgoAllocMap) - allocs2f267e52.Add(mem2f267e52) + meme6dd1556 := allocImageViewAddressPropertiesNVXMemory(1) + refe6dd1556 := (*C.VkImageViewAddressPropertiesNVX)(meme6dd1556) + allocse6dd1556 := new(cgoAllocMap) + allocse6dd1556.Add(meme6dd1556) var csType_allocs *cgoAllocMap - ref2f267e52.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2f267e52.Borrow(csType_allocs) + refe6dd1556.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse6dd1556.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2f267e52.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2f267e52.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref2f267e52.flags, cflags_allocs = (C.VkDeviceQueueCreateFlags)(x.Flags), cgoAllocsUnknown - allocs2f267e52.Borrow(cflags_allocs) + refe6dd1556.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse6dd1556.Borrow(cpNext_allocs) - var cqueueFamilyIndex_allocs *cgoAllocMap - ref2f267e52.queueFamilyIndex, cqueueFamilyIndex_allocs = (C.uint32_t)(x.QueueFamilyIndex), cgoAllocsUnknown - allocs2f267e52.Borrow(cqueueFamilyIndex_allocs) + var cdeviceAddress_allocs *cgoAllocMap + refe6dd1556.deviceAddress, cdeviceAddress_allocs = (C.VkDeviceAddress)(x.DeviceAddress), cgoAllocsUnknown + allocse6dd1556.Borrow(cdeviceAddress_allocs) - var cqueueIndex_allocs *cgoAllocMap - ref2f267e52.queueIndex, cqueueIndex_allocs = (C.uint32_t)(x.QueueIndex), cgoAllocsUnknown - allocs2f267e52.Borrow(cqueueIndex_allocs) + var csize_allocs *cgoAllocMap + refe6dd1556.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocse6dd1556.Borrow(csize_allocs) - x.ref2f267e52 = ref2f267e52 - x.allocs2f267e52 = allocs2f267e52 - return ref2f267e52, allocs2f267e52 + x.refe6dd1556 = refe6dd1556 + x.allocse6dd1556 = allocse6dd1556 + return refe6dd1556, allocse6dd1556 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceQueueInfo2) PassValue() (C.VkDeviceQueueInfo2, *cgoAllocMap) { - if x.ref2f267e52 != nil { - return *x.ref2f267e52, nil +func (x ImageViewAddressPropertiesNVX) PassValue() (C.VkImageViewAddressPropertiesNVX, *cgoAllocMap) { + if x.refe6dd1556 != nil { + return *x.refe6dd1556, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17276,92 +44234,91 @@ func (x DeviceQueueInfo2) PassValue() (C.VkDeviceQueueInfo2, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceQueueInfo2) Deref() { - if x.ref2f267e52 == nil { +func (x *ImageViewAddressPropertiesNVX) Deref() { + if x.refe6dd1556 == nil { return } - x.SType = (StructureType)(x.ref2f267e52.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2f267e52.pNext)) - x.Flags = (DeviceQueueCreateFlags)(x.ref2f267e52.flags) - x.QueueFamilyIndex = (uint32)(x.ref2f267e52.queueFamilyIndex) - x.QueueIndex = (uint32)(x.ref2f267e52.queueIndex) + x.SType = (StructureType)(x.refe6dd1556.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe6dd1556.pNext)) + x.DeviceAddress = (DeviceAddress)(x.refe6dd1556.deviceAddress) + x.Size = (DeviceSize)(x.refe6dd1556.size) } -// allocProtectedSubmitInfoMemory allocates memory for type C.VkProtectedSubmitInfo in C. +// allocTextureLODGatherFormatPropertiesAMDMemory allocates memory for type C.VkTextureLODGatherFormatPropertiesAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocProtectedSubmitInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfProtectedSubmitInfoValue)) +func allocTextureLODGatherFormatPropertiesAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfTextureLODGatherFormatPropertiesAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfProtectedSubmitInfoValue = unsafe.Sizeof([1]C.VkProtectedSubmitInfo{}) +const sizeOfTextureLODGatherFormatPropertiesAMDValue = unsafe.Sizeof([1]C.VkTextureLODGatherFormatPropertiesAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ProtectedSubmitInfo) Ref() *C.VkProtectedSubmitInfo { +func (x *TextureLODGatherFormatPropertiesAMD) Ref() *C.VkTextureLODGatherFormatPropertiesAMD { if x == nil { return nil } - return x.ref6bd69669 + return x.ref519ba3a9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ProtectedSubmitInfo) Free() { - if x != nil && x.allocs6bd69669 != nil { - x.allocs6bd69669.(*cgoAllocMap).Free() - x.ref6bd69669 = nil +func (x *TextureLODGatherFormatPropertiesAMD) Free() { + if x != nil && x.allocs519ba3a9 != nil { + x.allocs519ba3a9.(*cgoAllocMap).Free() + x.ref519ba3a9 = nil } } -// NewProtectedSubmitInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewTextureLODGatherFormatPropertiesAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewProtectedSubmitInfoRef(ref unsafe.Pointer) *ProtectedSubmitInfo { +func NewTextureLODGatherFormatPropertiesAMDRef(ref unsafe.Pointer) *TextureLODGatherFormatPropertiesAMD { if ref == nil { return nil } - obj := new(ProtectedSubmitInfo) - obj.ref6bd69669 = (*C.VkProtectedSubmitInfo)(unsafe.Pointer(ref)) + obj := new(TextureLODGatherFormatPropertiesAMD) + obj.ref519ba3a9 = (*C.VkTextureLODGatherFormatPropertiesAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ProtectedSubmitInfo) PassRef() (*C.VkProtectedSubmitInfo, *cgoAllocMap) { +func (x *TextureLODGatherFormatPropertiesAMD) PassRef() (*C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6bd69669 != nil { - return x.ref6bd69669, nil + } else if x.ref519ba3a9 != nil { + return x.ref519ba3a9, nil } - mem6bd69669 := allocProtectedSubmitInfoMemory(1) - ref6bd69669 := (*C.VkProtectedSubmitInfo)(mem6bd69669) - allocs6bd69669 := new(cgoAllocMap) - allocs6bd69669.Add(mem6bd69669) + mem519ba3a9 := allocTextureLODGatherFormatPropertiesAMDMemory(1) + ref519ba3a9 := (*C.VkTextureLODGatherFormatPropertiesAMD)(mem519ba3a9) + allocs519ba3a9 := new(cgoAllocMap) + allocs519ba3a9.Add(mem519ba3a9) var csType_allocs *cgoAllocMap - ref6bd69669.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6bd69669.Borrow(csType_allocs) + ref519ba3a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs519ba3a9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6bd69669.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6bd69669.Borrow(cpNext_allocs) + ref519ba3a9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs519ba3a9.Borrow(cpNext_allocs) - var cprotectedSubmit_allocs *cgoAllocMap - ref6bd69669.protectedSubmit, cprotectedSubmit_allocs = (C.VkBool32)(x.ProtectedSubmit), cgoAllocsUnknown - allocs6bd69669.Borrow(cprotectedSubmit_allocs) + var csupportsTextureGatherLODBiasAMD_allocs *cgoAllocMap + ref519ba3a9.supportsTextureGatherLODBiasAMD, csupportsTextureGatherLODBiasAMD_allocs = (C.VkBool32)(x.SupportsTextureGatherLODBiasAMD), cgoAllocsUnknown + allocs519ba3a9.Borrow(csupportsTextureGatherLODBiasAMD_allocs) - x.ref6bd69669 = ref6bd69669 - x.allocs6bd69669 = allocs6bd69669 - return ref6bd69669, allocs6bd69669 + x.ref519ba3a9 = ref519ba3a9 + x.allocs519ba3a9 = allocs519ba3a9 + return ref519ba3a9, allocs519ba3a9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ProtectedSubmitInfo) PassValue() (C.VkProtectedSubmitInfo, *cgoAllocMap) { - if x.ref6bd69669 != nil { - return *x.ref6bd69669, nil +func (x TextureLODGatherFormatPropertiesAMD) PassValue() (C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { + if x.ref519ba3a9 != nil { + return *x.ref519ba3a9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17369,118 +44326,98 @@ func (x ProtectedSubmitInfo) PassValue() (C.VkProtectedSubmitInfo, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ProtectedSubmitInfo) Deref() { - if x.ref6bd69669 == nil { +func (x *TextureLODGatherFormatPropertiesAMD) Deref() { + if x.ref519ba3a9 == nil { return } - x.SType = (StructureType)(x.ref6bd69669.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6bd69669.pNext)) - x.ProtectedSubmit = (Bool32)(x.ref6bd69669.protectedSubmit) + x.SType = (StructureType)(x.ref519ba3a9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref519ba3a9.pNext)) + x.SupportsTextureGatherLODBiasAMD = (Bool32)(x.ref519ba3a9.supportsTextureGatherLODBiasAMD) } -// allocSamplerYcbcrConversionCreateInfoMemory allocates memory for type C.VkSamplerYcbcrConversionCreateInfo in C. +// allocShaderResourceUsageAMDMemory allocates memory for type C.VkShaderResourceUsageAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocSamplerYcbcrConversionCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerYcbcrConversionCreateInfoValue)) +func allocShaderResourceUsageAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderResourceUsageAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSamplerYcbcrConversionCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerYcbcrConversionCreateInfo{}) +const sizeOfShaderResourceUsageAMDValue = unsafe.Sizeof([1]C.VkShaderResourceUsageAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerYcbcrConversionCreateInfo) Ref() *C.VkSamplerYcbcrConversionCreateInfo { +func (x *ShaderResourceUsageAMD) Ref() *C.VkShaderResourceUsageAMD { if x == nil { return nil } - return x.ref9875bff7 + return x.ref8a688131 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SamplerYcbcrConversionCreateInfo) Free() { - if x != nil && x.allocs9875bff7 != nil { - x.allocs9875bff7.(*cgoAllocMap).Free() - x.ref9875bff7 = nil +func (x *ShaderResourceUsageAMD) Free() { + if x != nil && x.allocs8a688131 != nil { + x.allocs8a688131.(*cgoAllocMap).Free() + x.ref8a688131 = nil } } -// NewSamplerYcbcrConversionCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewShaderResourceUsageAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSamplerYcbcrConversionCreateInfoRef(ref unsafe.Pointer) *SamplerYcbcrConversionCreateInfo { +func NewShaderResourceUsageAMDRef(ref unsafe.Pointer) *ShaderResourceUsageAMD { if ref == nil { return nil } - obj := new(SamplerYcbcrConversionCreateInfo) - obj.ref9875bff7 = (*C.VkSamplerYcbcrConversionCreateInfo)(unsafe.Pointer(ref)) + obj := new(ShaderResourceUsageAMD) + obj.ref8a688131 = (*C.VkShaderResourceUsageAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SamplerYcbcrConversionCreateInfo) PassRef() (*C.VkSamplerYcbcrConversionCreateInfo, *cgoAllocMap) { +func (x *ShaderResourceUsageAMD) PassRef() (*C.VkShaderResourceUsageAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9875bff7 != nil { - return x.ref9875bff7, nil + } else if x.ref8a688131 != nil { + return x.ref8a688131, nil } - mem9875bff7 := allocSamplerYcbcrConversionCreateInfoMemory(1) - ref9875bff7 := (*C.VkSamplerYcbcrConversionCreateInfo)(mem9875bff7) - allocs9875bff7 := new(cgoAllocMap) - allocs9875bff7.Add(mem9875bff7) - - var csType_allocs *cgoAllocMap - ref9875bff7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9875bff7.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref9875bff7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9875bff7.Borrow(cpNext_allocs) - - var cformat_allocs *cgoAllocMap - ref9875bff7.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocs9875bff7.Borrow(cformat_allocs) - - var cycbcrModel_allocs *cgoAllocMap - ref9875bff7.ycbcrModel, cycbcrModel_allocs = (C.VkSamplerYcbcrModelConversion)(x.YcbcrModel), cgoAllocsUnknown - allocs9875bff7.Borrow(cycbcrModel_allocs) - - var cycbcrRange_allocs *cgoAllocMap - ref9875bff7.ycbcrRange, cycbcrRange_allocs = (C.VkSamplerYcbcrRange)(x.YcbcrRange), cgoAllocsUnknown - allocs9875bff7.Borrow(cycbcrRange_allocs) + mem8a688131 := allocShaderResourceUsageAMDMemory(1) + ref8a688131 := (*C.VkShaderResourceUsageAMD)(mem8a688131) + allocs8a688131 := new(cgoAllocMap) + allocs8a688131.Add(mem8a688131) - var ccomponents_allocs *cgoAllocMap - ref9875bff7.components, ccomponents_allocs = x.Components.PassValue() - allocs9875bff7.Borrow(ccomponents_allocs) + var cnumUsedVgprs_allocs *cgoAllocMap + ref8a688131.numUsedVgprs, cnumUsedVgprs_allocs = (C.uint32_t)(x.NumUsedVgprs), cgoAllocsUnknown + allocs8a688131.Borrow(cnumUsedVgprs_allocs) - var cxChromaOffset_allocs *cgoAllocMap - ref9875bff7.xChromaOffset, cxChromaOffset_allocs = (C.VkChromaLocation)(x.XChromaOffset), cgoAllocsUnknown - allocs9875bff7.Borrow(cxChromaOffset_allocs) + var cnumUsedSgprs_allocs *cgoAllocMap + ref8a688131.numUsedSgprs, cnumUsedSgprs_allocs = (C.uint32_t)(x.NumUsedSgprs), cgoAllocsUnknown + allocs8a688131.Borrow(cnumUsedSgprs_allocs) - var cyChromaOffset_allocs *cgoAllocMap - ref9875bff7.yChromaOffset, cyChromaOffset_allocs = (C.VkChromaLocation)(x.YChromaOffset), cgoAllocsUnknown - allocs9875bff7.Borrow(cyChromaOffset_allocs) + var cldsSizePerLocalWorkGroup_allocs *cgoAllocMap + ref8a688131.ldsSizePerLocalWorkGroup, cldsSizePerLocalWorkGroup_allocs = (C.uint32_t)(x.LdsSizePerLocalWorkGroup), cgoAllocsUnknown + allocs8a688131.Borrow(cldsSizePerLocalWorkGroup_allocs) - var cchromaFilter_allocs *cgoAllocMap - ref9875bff7.chromaFilter, cchromaFilter_allocs = (C.VkFilter)(x.ChromaFilter), cgoAllocsUnknown - allocs9875bff7.Borrow(cchromaFilter_allocs) + var cldsUsageSizeInBytes_allocs *cgoAllocMap + ref8a688131.ldsUsageSizeInBytes, cldsUsageSizeInBytes_allocs = (C.size_t)(x.LdsUsageSizeInBytes), cgoAllocsUnknown + allocs8a688131.Borrow(cldsUsageSizeInBytes_allocs) - var cforceExplicitReconstruction_allocs *cgoAllocMap - ref9875bff7.forceExplicitReconstruction, cforceExplicitReconstruction_allocs = (C.VkBool32)(x.ForceExplicitReconstruction), cgoAllocsUnknown - allocs9875bff7.Borrow(cforceExplicitReconstruction_allocs) + var cscratchMemUsageInBytes_allocs *cgoAllocMap + ref8a688131.scratchMemUsageInBytes, cscratchMemUsageInBytes_allocs = (C.size_t)(x.ScratchMemUsageInBytes), cgoAllocsUnknown + allocs8a688131.Borrow(cscratchMemUsageInBytes_allocs) - x.ref9875bff7 = ref9875bff7 - x.allocs9875bff7 = allocs9875bff7 - return ref9875bff7, allocs9875bff7 + x.ref8a688131 = ref8a688131 + x.allocs8a688131 = allocs8a688131 + return ref8a688131, allocs8a688131 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SamplerYcbcrConversionCreateInfo) PassValue() (C.VkSamplerYcbcrConversionCreateInfo, *cgoAllocMap) { - if x.ref9875bff7 != nil { - return *x.ref9875bff7, nil +func (x ShaderResourceUsageAMD) PassValue() (C.VkShaderResourceUsageAMD, *cgoAllocMap) { + if x.ref8a688131 != nil { + return *x.ref8a688131, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17488,97 +44425,108 @@ func (x SamplerYcbcrConversionCreateInfo) PassValue() (C.VkSamplerYcbcrConversio // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SamplerYcbcrConversionCreateInfo) Deref() { - if x.ref9875bff7 == nil { +func (x *ShaderResourceUsageAMD) Deref() { + if x.ref8a688131 == nil { return } - x.SType = (StructureType)(x.ref9875bff7.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9875bff7.pNext)) - x.Format = (Format)(x.ref9875bff7.format) - x.YcbcrModel = (SamplerYcbcrModelConversion)(x.ref9875bff7.ycbcrModel) - x.YcbcrRange = (SamplerYcbcrRange)(x.ref9875bff7.ycbcrRange) - x.Components = *NewComponentMappingRef(unsafe.Pointer(&x.ref9875bff7.components)) - x.XChromaOffset = (ChromaLocation)(x.ref9875bff7.xChromaOffset) - x.YChromaOffset = (ChromaLocation)(x.ref9875bff7.yChromaOffset) - x.ChromaFilter = (Filter)(x.ref9875bff7.chromaFilter) - x.ForceExplicitReconstruction = (Bool32)(x.ref9875bff7.forceExplicitReconstruction) + x.NumUsedVgprs = (uint32)(x.ref8a688131.numUsedVgprs) + x.NumUsedSgprs = (uint32)(x.ref8a688131.numUsedSgprs) + x.LdsSizePerLocalWorkGroup = (uint32)(x.ref8a688131.ldsSizePerLocalWorkGroup) + x.LdsUsageSizeInBytes = (uint64)(x.ref8a688131.ldsUsageSizeInBytes) + x.ScratchMemUsageInBytes = (uint64)(x.ref8a688131.scratchMemUsageInBytes) } -// allocSamplerYcbcrConversionInfoMemory allocates memory for type C.VkSamplerYcbcrConversionInfo in C. +// allocShaderStatisticsInfoAMDMemory allocates memory for type C.VkShaderStatisticsInfoAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocSamplerYcbcrConversionInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerYcbcrConversionInfoValue)) +func allocShaderStatisticsInfoAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderStatisticsInfoAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSamplerYcbcrConversionInfoValue = unsafe.Sizeof([1]C.VkSamplerYcbcrConversionInfo{}) +const sizeOfShaderStatisticsInfoAMDValue = unsafe.Sizeof([1]C.VkShaderStatisticsInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerYcbcrConversionInfo) Ref() *C.VkSamplerYcbcrConversionInfo { +func (x *ShaderStatisticsInfoAMD) Ref() *C.VkShaderStatisticsInfoAMD { if x == nil { return nil } - return x.ref11ff5547 + return x.ref896a52bf } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SamplerYcbcrConversionInfo) Free() { - if x != nil && x.allocs11ff5547 != nil { - x.allocs11ff5547.(*cgoAllocMap).Free() - x.ref11ff5547 = nil +func (x *ShaderStatisticsInfoAMD) Free() { + if x != nil && x.allocs896a52bf != nil { + x.allocs896a52bf.(*cgoAllocMap).Free() + x.ref896a52bf = nil } } -// NewSamplerYcbcrConversionInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewShaderStatisticsInfoAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSamplerYcbcrConversionInfoRef(ref unsafe.Pointer) *SamplerYcbcrConversionInfo { +func NewShaderStatisticsInfoAMDRef(ref unsafe.Pointer) *ShaderStatisticsInfoAMD { if ref == nil { return nil } - obj := new(SamplerYcbcrConversionInfo) - obj.ref11ff5547 = (*C.VkSamplerYcbcrConversionInfo)(unsafe.Pointer(ref)) + obj := new(ShaderStatisticsInfoAMD) + obj.ref896a52bf = (*C.VkShaderStatisticsInfoAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SamplerYcbcrConversionInfo) PassRef() (*C.VkSamplerYcbcrConversionInfo, *cgoAllocMap) { +func (x *ShaderStatisticsInfoAMD) PassRef() (*C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref11ff5547 != nil { - return x.ref11ff5547, nil + } else if x.ref896a52bf != nil { + return x.ref896a52bf, nil } - mem11ff5547 := allocSamplerYcbcrConversionInfoMemory(1) - ref11ff5547 := (*C.VkSamplerYcbcrConversionInfo)(mem11ff5547) - allocs11ff5547 := new(cgoAllocMap) - allocs11ff5547.Add(mem11ff5547) + mem896a52bf := allocShaderStatisticsInfoAMDMemory(1) + ref896a52bf := (*C.VkShaderStatisticsInfoAMD)(mem896a52bf) + allocs896a52bf := new(cgoAllocMap) + allocs896a52bf.Add(mem896a52bf) - var csType_allocs *cgoAllocMap - ref11ff5547.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs11ff5547.Borrow(csType_allocs) + var cshaderStageMask_allocs *cgoAllocMap + ref896a52bf.shaderStageMask, cshaderStageMask_allocs = (C.VkShaderStageFlags)(x.ShaderStageMask), cgoAllocsUnknown + allocs896a52bf.Borrow(cshaderStageMask_allocs) - var cpNext_allocs *cgoAllocMap - ref11ff5547.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs11ff5547.Borrow(cpNext_allocs) + var cresourceUsage_allocs *cgoAllocMap + ref896a52bf.resourceUsage, cresourceUsage_allocs = x.ResourceUsage.PassValue() + allocs896a52bf.Borrow(cresourceUsage_allocs) - var cconversion_allocs *cgoAllocMap - ref11ff5547.conversion, cconversion_allocs = *(*C.VkSamplerYcbcrConversion)(unsafe.Pointer(&x.Conversion)), cgoAllocsUnknown - allocs11ff5547.Borrow(cconversion_allocs) + var cnumPhysicalVgprs_allocs *cgoAllocMap + ref896a52bf.numPhysicalVgprs, cnumPhysicalVgprs_allocs = (C.uint32_t)(x.NumPhysicalVgprs), cgoAllocsUnknown + allocs896a52bf.Borrow(cnumPhysicalVgprs_allocs) - x.ref11ff5547 = ref11ff5547 - x.allocs11ff5547 = allocs11ff5547 - return ref11ff5547, allocs11ff5547 + var cnumPhysicalSgprs_allocs *cgoAllocMap + ref896a52bf.numPhysicalSgprs, cnumPhysicalSgprs_allocs = (C.uint32_t)(x.NumPhysicalSgprs), cgoAllocsUnknown + allocs896a52bf.Borrow(cnumPhysicalSgprs_allocs) + + var cnumAvailableVgprs_allocs *cgoAllocMap + ref896a52bf.numAvailableVgprs, cnumAvailableVgprs_allocs = (C.uint32_t)(x.NumAvailableVgprs), cgoAllocsUnknown + allocs896a52bf.Borrow(cnumAvailableVgprs_allocs) + + var cnumAvailableSgprs_allocs *cgoAllocMap + ref896a52bf.numAvailableSgprs, cnumAvailableSgprs_allocs = (C.uint32_t)(x.NumAvailableSgprs), cgoAllocsUnknown + allocs896a52bf.Borrow(cnumAvailableSgprs_allocs) + + var ccomputeWorkGroupSize_allocs *cgoAllocMap + ref896a52bf.computeWorkGroupSize, ccomputeWorkGroupSize_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.ComputeWorkGroupSize)), cgoAllocsUnknown + allocs896a52bf.Borrow(ccomputeWorkGroupSize_allocs) + + x.ref896a52bf = ref896a52bf + x.allocs896a52bf = allocs896a52bf + return ref896a52bf, allocs896a52bf } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SamplerYcbcrConversionInfo) PassValue() (C.VkSamplerYcbcrConversionInfo, *cgoAllocMap) { - if x.ref11ff5547 != nil { - return *x.ref11ff5547, nil +func (x ShaderStatisticsInfoAMD) PassValue() (C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { + if x.ref896a52bf != nil { + return *x.ref896a52bf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17586,90 +44534,94 @@ func (x SamplerYcbcrConversionInfo) PassValue() (C.VkSamplerYcbcrConversionInfo, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SamplerYcbcrConversionInfo) Deref() { - if x.ref11ff5547 == nil { +func (x *ShaderStatisticsInfoAMD) Deref() { + if x.ref896a52bf == nil { return } - x.SType = (StructureType)(x.ref11ff5547.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref11ff5547.pNext)) - x.Conversion = *(*SamplerYcbcrConversion)(unsafe.Pointer(&x.ref11ff5547.conversion)) + x.ShaderStageMask = (ShaderStageFlags)(x.ref896a52bf.shaderStageMask) + x.ResourceUsage = *NewShaderResourceUsageAMDRef(unsafe.Pointer(&x.ref896a52bf.resourceUsage)) + x.NumPhysicalVgprs = (uint32)(x.ref896a52bf.numPhysicalVgprs) + x.NumPhysicalSgprs = (uint32)(x.ref896a52bf.numPhysicalSgprs) + x.NumAvailableVgprs = (uint32)(x.ref896a52bf.numAvailableVgprs) + x.NumAvailableSgprs = (uint32)(x.ref896a52bf.numAvailableSgprs) + x.ComputeWorkGroupSize = *(*[3]uint32)(unsafe.Pointer(&x.ref896a52bf.computeWorkGroupSize)) } -// allocBindImagePlaneMemoryInfoMemory allocates memory for type C.VkBindImagePlaneMemoryInfo in C. +// allocPhysicalDeviceCornerSampledImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCornerSampledImageFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocBindImagePlaneMemoryInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindImagePlaneMemoryInfoValue)) +func allocPhysicalDeviceCornerSampledImageFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCornerSampledImageFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBindImagePlaneMemoryInfoValue = unsafe.Sizeof([1]C.VkBindImagePlaneMemoryInfo{}) +const sizeOfPhysicalDeviceCornerSampledImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCornerSampledImageFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindImagePlaneMemoryInfo) Ref() *C.VkBindImagePlaneMemoryInfo { +func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Ref() *C.VkPhysicalDeviceCornerSampledImageFeaturesNV { if x == nil { return nil } - return x.ref56b81476 + return x.refdf4a62d1 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BindImagePlaneMemoryInfo) Free() { - if x != nil && x.allocs56b81476 != nil { - x.allocs56b81476.(*cgoAllocMap).Free() - x.ref56b81476 = nil +func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Free() { + if x != nil && x.allocsdf4a62d1 != nil { + x.allocsdf4a62d1.(*cgoAllocMap).Free() + x.refdf4a62d1 = nil } } -// NewBindImagePlaneMemoryInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceCornerSampledImageFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBindImagePlaneMemoryInfoRef(ref unsafe.Pointer) *BindImagePlaneMemoryInfo { +func NewPhysicalDeviceCornerSampledImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCornerSampledImageFeaturesNV { if ref == nil { return nil } - obj := new(BindImagePlaneMemoryInfo) - obj.ref56b81476 = (*C.VkBindImagePlaneMemoryInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceCornerSampledImageFeaturesNV) + obj.refdf4a62d1 = (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BindImagePlaneMemoryInfo) PassRef() (*C.VkBindImagePlaneMemoryInfo, *cgoAllocMap) { +func (x *PhysicalDeviceCornerSampledImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref56b81476 != nil { - return x.ref56b81476, nil + } else if x.refdf4a62d1 != nil { + return x.refdf4a62d1, nil } - mem56b81476 := allocBindImagePlaneMemoryInfoMemory(1) - ref56b81476 := (*C.VkBindImagePlaneMemoryInfo)(mem56b81476) - allocs56b81476 := new(cgoAllocMap) - allocs56b81476.Add(mem56b81476) + memdf4a62d1 := allocPhysicalDeviceCornerSampledImageFeaturesNVMemory(1) + refdf4a62d1 := (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV)(memdf4a62d1) + allocsdf4a62d1 := new(cgoAllocMap) + allocsdf4a62d1.Add(memdf4a62d1) var csType_allocs *cgoAllocMap - ref56b81476.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs56b81476.Borrow(csType_allocs) + refdf4a62d1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdf4a62d1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref56b81476.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs56b81476.Borrow(cpNext_allocs) + refdf4a62d1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdf4a62d1.Borrow(cpNext_allocs) - var cplaneAspect_allocs *cgoAllocMap - ref56b81476.planeAspect, cplaneAspect_allocs = (C.VkImageAspectFlagBits)(x.PlaneAspect), cgoAllocsUnknown - allocs56b81476.Borrow(cplaneAspect_allocs) + var ccornerSampledImage_allocs *cgoAllocMap + refdf4a62d1.cornerSampledImage, ccornerSampledImage_allocs = (C.VkBool32)(x.CornerSampledImage), cgoAllocsUnknown + allocsdf4a62d1.Borrow(ccornerSampledImage_allocs) - x.ref56b81476 = ref56b81476 - x.allocs56b81476 = allocs56b81476 - return ref56b81476, allocs56b81476 + x.refdf4a62d1 = refdf4a62d1 + x.allocsdf4a62d1 = allocsdf4a62d1 + return refdf4a62d1, allocsdf4a62d1 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BindImagePlaneMemoryInfo) PassValue() (C.VkBindImagePlaneMemoryInfo, *cgoAllocMap) { - if x.ref56b81476 != nil { - return *x.ref56b81476, nil +func (x PhysicalDeviceCornerSampledImageFeaturesNV) PassValue() (C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { + if x.refdf4a62d1 != nil { + return *x.refdf4a62d1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17677,90 +44629,94 @@ func (x BindImagePlaneMemoryInfo) PassValue() (C.VkBindImagePlaneMemoryInfo, *cg // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindImagePlaneMemoryInfo) Deref() { - if x.ref56b81476 == nil { +func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Deref() { + if x.refdf4a62d1 == nil { return } - x.SType = (StructureType)(x.ref56b81476.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref56b81476.pNext)) - x.PlaneAspect = (ImageAspectFlagBits)(x.ref56b81476.planeAspect) + x.SType = (StructureType)(x.refdf4a62d1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdf4a62d1.pNext)) + x.CornerSampledImage = (Bool32)(x.refdf4a62d1.cornerSampledImage) } -// allocImagePlaneMemoryRequirementsInfoMemory allocates memory for type C.VkImagePlaneMemoryRequirementsInfo in C. +// allocExternalImageFormatPropertiesNVMemory allocates memory for type C.VkExternalImageFormatPropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocImagePlaneMemoryRequirementsInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImagePlaneMemoryRequirementsInfoValue)) +func allocExternalImageFormatPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalImageFormatPropertiesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImagePlaneMemoryRequirementsInfoValue = unsafe.Sizeof([1]C.VkImagePlaneMemoryRequirementsInfo{}) +const sizeOfExternalImageFormatPropertiesNVValue = unsafe.Sizeof([1]C.VkExternalImageFormatPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImagePlaneMemoryRequirementsInfo) Ref() *C.VkImagePlaneMemoryRequirementsInfo { +func (x *ExternalImageFormatPropertiesNV) Ref() *C.VkExternalImageFormatPropertiesNV { if x == nil { return nil } - return x.refefec131f + return x.refa8900ce5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImagePlaneMemoryRequirementsInfo) Free() { - if x != nil && x.allocsefec131f != nil { - x.allocsefec131f.(*cgoAllocMap).Free() - x.refefec131f = nil +func (x *ExternalImageFormatPropertiesNV) Free() { + if x != nil && x.allocsa8900ce5 != nil { + x.allocsa8900ce5.(*cgoAllocMap).Free() + x.refa8900ce5 = nil } } -// NewImagePlaneMemoryRequirementsInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewExternalImageFormatPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImagePlaneMemoryRequirementsInfoRef(ref unsafe.Pointer) *ImagePlaneMemoryRequirementsInfo { +func NewExternalImageFormatPropertiesNVRef(ref unsafe.Pointer) *ExternalImageFormatPropertiesNV { if ref == nil { return nil } - obj := new(ImagePlaneMemoryRequirementsInfo) - obj.refefec131f = (*C.VkImagePlaneMemoryRequirementsInfo)(unsafe.Pointer(ref)) + obj := new(ExternalImageFormatPropertiesNV) + obj.refa8900ce5 = (*C.VkExternalImageFormatPropertiesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImagePlaneMemoryRequirementsInfo) PassRef() (*C.VkImagePlaneMemoryRequirementsInfo, *cgoAllocMap) { +func (x *ExternalImageFormatPropertiesNV) PassRef() (*C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refefec131f != nil { - return x.refefec131f, nil + } else if x.refa8900ce5 != nil { + return x.refa8900ce5, nil } - memefec131f := allocImagePlaneMemoryRequirementsInfoMemory(1) - refefec131f := (*C.VkImagePlaneMemoryRequirementsInfo)(memefec131f) - allocsefec131f := new(cgoAllocMap) - allocsefec131f.Add(memefec131f) + mema8900ce5 := allocExternalImageFormatPropertiesNVMemory(1) + refa8900ce5 := (*C.VkExternalImageFormatPropertiesNV)(mema8900ce5) + allocsa8900ce5 := new(cgoAllocMap) + allocsa8900ce5.Add(mema8900ce5) - var csType_allocs *cgoAllocMap - refefec131f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsefec131f.Borrow(csType_allocs) + var cimageFormatProperties_allocs *cgoAllocMap + refa8900ce5.imageFormatProperties, cimageFormatProperties_allocs = x.ImageFormatProperties.PassValue() + allocsa8900ce5.Borrow(cimageFormatProperties_allocs) - var cpNext_allocs *cgoAllocMap - refefec131f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsefec131f.Borrow(cpNext_allocs) + var cexternalMemoryFeatures_allocs *cgoAllocMap + refa8900ce5.externalMemoryFeatures, cexternalMemoryFeatures_allocs = (C.VkExternalMemoryFeatureFlagsNV)(x.ExternalMemoryFeatures), cgoAllocsUnknown + allocsa8900ce5.Borrow(cexternalMemoryFeatures_allocs) - var cplaneAspect_allocs *cgoAllocMap - refefec131f.planeAspect, cplaneAspect_allocs = (C.VkImageAspectFlagBits)(x.PlaneAspect), cgoAllocsUnknown - allocsefec131f.Borrow(cplaneAspect_allocs) + var cexportFromImportedHandleTypes_allocs *cgoAllocMap + refa8900ce5.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown + allocsa8900ce5.Borrow(cexportFromImportedHandleTypes_allocs) - x.refefec131f = refefec131f - x.allocsefec131f = allocsefec131f - return refefec131f, allocsefec131f + var ccompatibleHandleTypes_allocs *cgoAllocMap + refa8900ce5.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.CompatibleHandleTypes), cgoAllocsUnknown + allocsa8900ce5.Borrow(ccompatibleHandleTypes_allocs) + + x.refa8900ce5 = refa8900ce5 + x.allocsa8900ce5 = allocsa8900ce5 + return refa8900ce5, allocsa8900ce5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImagePlaneMemoryRequirementsInfo) PassValue() (C.VkImagePlaneMemoryRequirementsInfo, *cgoAllocMap) { - if x.refefec131f != nil { - return *x.refefec131f, nil +func (x ExternalImageFormatPropertiesNV) PassValue() (C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { + if x.refa8900ce5 != nil { + return *x.refa8900ce5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17768,90 +44724,91 @@ func (x ImagePlaneMemoryRequirementsInfo) PassValue() (C.VkImagePlaneMemoryRequi // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImagePlaneMemoryRequirementsInfo) Deref() { - if x.refefec131f == nil { +func (x *ExternalImageFormatPropertiesNV) Deref() { + if x.refa8900ce5 == nil { return } - x.SType = (StructureType)(x.refefec131f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refefec131f.pNext)) - x.PlaneAspect = (ImageAspectFlagBits)(x.refefec131f.planeAspect) + x.ImageFormatProperties = *NewImageFormatPropertiesRef(unsafe.Pointer(&x.refa8900ce5.imageFormatProperties)) + x.ExternalMemoryFeatures = (ExternalMemoryFeatureFlagsNV)(x.refa8900ce5.externalMemoryFeatures) + x.ExportFromImportedHandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.refa8900ce5.exportFromImportedHandleTypes) + x.CompatibleHandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.refa8900ce5.compatibleHandleTypes) } -// allocPhysicalDeviceSamplerYcbcrConversionFeaturesMemory allocates memory for type C.VkPhysicalDeviceSamplerYcbcrConversionFeatures in C. +// allocExternalMemoryImageCreateInfoNVMemory allocates memory for type C.VkExternalMemoryImageCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceSamplerYcbcrConversionFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSamplerYcbcrConversionFeaturesValue)) +func allocExternalMemoryImageCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalMemoryImageCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceSamplerYcbcrConversionFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSamplerYcbcrConversionFeatures{}) +const sizeOfExternalMemoryImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkExternalMemoryImageCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSamplerYcbcrConversionFeatures) Ref() *C.VkPhysicalDeviceSamplerYcbcrConversionFeatures { +func (x *ExternalMemoryImageCreateInfoNV) Ref() *C.VkExternalMemoryImageCreateInfoNV { if x == nil { return nil } - return x.ref1d054d67 + return x.ref9a7fb6c8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceSamplerYcbcrConversionFeatures) Free() { - if x != nil && x.allocs1d054d67 != nil { - x.allocs1d054d67.(*cgoAllocMap).Free() - x.ref1d054d67 = nil +func (x *ExternalMemoryImageCreateInfoNV) Free() { + if x != nil && x.allocs9a7fb6c8 != nil { + x.allocs9a7fb6c8.(*cgoAllocMap).Free() + x.ref9a7fb6c8 = nil } } -// NewPhysicalDeviceSamplerYcbcrConversionFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewExternalMemoryImageCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceSamplerYcbcrConversionFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceSamplerYcbcrConversionFeatures { +func NewExternalMemoryImageCreateInfoNVRef(ref unsafe.Pointer) *ExternalMemoryImageCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceSamplerYcbcrConversionFeatures) - obj.ref1d054d67 = (*C.VkPhysicalDeviceSamplerYcbcrConversionFeatures)(unsafe.Pointer(ref)) + obj := new(ExternalMemoryImageCreateInfoNV) + obj.ref9a7fb6c8 = (*C.VkExternalMemoryImageCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceSamplerYcbcrConversionFeatures) PassRef() (*C.VkPhysicalDeviceSamplerYcbcrConversionFeatures, *cgoAllocMap) { +func (x *ExternalMemoryImageCreateInfoNV) PassRef() (*C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1d054d67 != nil { - return x.ref1d054d67, nil + } else if x.ref9a7fb6c8 != nil { + return x.ref9a7fb6c8, nil } - mem1d054d67 := allocPhysicalDeviceSamplerYcbcrConversionFeaturesMemory(1) - ref1d054d67 := (*C.VkPhysicalDeviceSamplerYcbcrConversionFeatures)(mem1d054d67) - allocs1d054d67 := new(cgoAllocMap) - allocs1d054d67.Add(mem1d054d67) + mem9a7fb6c8 := allocExternalMemoryImageCreateInfoNVMemory(1) + ref9a7fb6c8 := (*C.VkExternalMemoryImageCreateInfoNV)(mem9a7fb6c8) + allocs9a7fb6c8 := new(cgoAllocMap) + allocs9a7fb6c8.Add(mem9a7fb6c8) var csType_allocs *cgoAllocMap - ref1d054d67.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1d054d67.Borrow(csType_allocs) + ref9a7fb6c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9a7fb6c8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1d054d67.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1d054d67.Borrow(cpNext_allocs) + ref9a7fb6c8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9a7fb6c8.Borrow(cpNext_allocs) - var csamplerYcbcrConversion_allocs *cgoAllocMap - ref1d054d67.samplerYcbcrConversion, csamplerYcbcrConversion_allocs = (C.VkBool32)(x.SamplerYcbcrConversion), cgoAllocsUnknown - allocs1d054d67.Borrow(csamplerYcbcrConversion_allocs) + var chandleTypes_allocs *cgoAllocMap + ref9a7fb6c8.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown + allocs9a7fb6c8.Borrow(chandleTypes_allocs) - x.ref1d054d67 = ref1d054d67 - x.allocs1d054d67 = allocs1d054d67 - return ref1d054d67, allocs1d054d67 + x.ref9a7fb6c8 = ref9a7fb6c8 + x.allocs9a7fb6c8 = allocs9a7fb6c8 + return ref9a7fb6c8, allocs9a7fb6c8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceSamplerYcbcrConversionFeatures) PassValue() (C.VkPhysicalDeviceSamplerYcbcrConversionFeatures, *cgoAllocMap) { - if x.ref1d054d67 != nil { - return *x.ref1d054d67, nil +func (x ExternalMemoryImageCreateInfoNV) PassValue() (C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { + if x.ref9a7fb6c8 != nil { + return *x.ref9a7fb6c8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17859,90 +44816,90 @@ func (x PhysicalDeviceSamplerYcbcrConversionFeatures) PassValue() (C.VkPhysicalD // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceSamplerYcbcrConversionFeatures) Deref() { - if x.ref1d054d67 == nil { +func (x *ExternalMemoryImageCreateInfoNV) Deref() { + if x.ref9a7fb6c8 == nil { return } - x.SType = (StructureType)(x.ref1d054d67.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1d054d67.pNext)) - x.SamplerYcbcrConversion = (Bool32)(x.ref1d054d67.samplerYcbcrConversion) + x.SType = (StructureType)(x.ref9a7fb6c8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9a7fb6c8.pNext)) + x.HandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.ref9a7fb6c8.handleTypes) } -// allocSamplerYcbcrConversionImageFormatPropertiesMemory allocates memory for type C.VkSamplerYcbcrConversionImageFormatProperties in C. +// allocExportMemoryAllocateInfoNVMemory allocates memory for type C.VkExportMemoryAllocateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocSamplerYcbcrConversionImageFormatPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerYcbcrConversionImageFormatPropertiesValue)) +func allocExportMemoryAllocateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExportMemoryAllocateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSamplerYcbcrConversionImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkSamplerYcbcrConversionImageFormatProperties{}) +const sizeOfExportMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkExportMemoryAllocateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerYcbcrConversionImageFormatProperties) Ref() *C.VkSamplerYcbcrConversionImageFormatProperties { +func (x *ExportMemoryAllocateInfoNV) Ref() *C.VkExportMemoryAllocateInfoNV { if x == nil { return nil } - return x.ref6bc79530 + return x.ref5066f33 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SamplerYcbcrConversionImageFormatProperties) Free() { - if x != nil && x.allocs6bc79530 != nil { - x.allocs6bc79530.(*cgoAllocMap).Free() - x.ref6bc79530 = nil +func (x *ExportMemoryAllocateInfoNV) Free() { + if x != nil && x.allocs5066f33 != nil { + x.allocs5066f33.(*cgoAllocMap).Free() + x.ref5066f33 = nil } } -// NewSamplerYcbcrConversionImageFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewExportMemoryAllocateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSamplerYcbcrConversionImageFormatPropertiesRef(ref unsafe.Pointer) *SamplerYcbcrConversionImageFormatProperties { +func NewExportMemoryAllocateInfoNVRef(ref unsafe.Pointer) *ExportMemoryAllocateInfoNV { if ref == nil { return nil } - obj := new(SamplerYcbcrConversionImageFormatProperties) - obj.ref6bc79530 = (*C.VkSamplerYcbcrConversionImageFormatProperties)(unsafe.Pointer(ref)) + obj := new(ExportMemoryAllocateInfoNV) + obj.ref5066f33 = (*C.VkExportMemoryAllocateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SamplerYcbcrConversionImageFormatProperties) PassRef() (*C.VkSamplerYcbcrConversionImageFormatProperties, *cgoAllocMap) { +func (x *ExportMemoryAllocateInfoNV) PassRef() (*C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6bc79530 != nil { - return x.ref6bc79530, nil + } else if x.ref5066f33 != nil { + return x.ref5066f33, nil } - mem6bc79530 := allocSamplerYcbcrConversionImageFormatPropertiesMemory(1) - ref6bc79530 := (*C.VkSamplerYcbcrConversionImageFormatProperties)(mem6bc79530) - allocs6bc79530 := new(cgoAllocMap) - allocs6bc79530.Add(mem6bc79530) + mem5066f33 := allocExportMemoryAllocateInfoNVMemory(1) + ref5066f33 := (*C.VkExportMemoryAllocateInfoNV)(mem5066f33) + allocs5066f33 := new(cgoAllocMap) + allocs5066f33.Add(mem5066f33) var csType_allocs *cgoAllocMap - ref6bc79530.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6bc79530.Borrow(csType_allocs) + ref5066f33.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5066f33.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6bc79530.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6bc79530.Borrow(cpNext_allocs) + ref5066f33.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5066f33.Borrow(cpNext_allocs) - var ccombinedImageSamplerDescriptorCount_allocs *cgoAllocMap - ref6bc79530.combinedImageSamplerDescriptorCount, ccombinedImageSamplerDescriptorCount_allocs = (C.uint32_t)(x.CombinedImageSamplerDescriptorCount), cgoAllocsUnknown - allocs6bc79530.Borrow(ccombinedImageSamplerDescriptorCount_allocs) + var chandleTypes_allocs *cgoAllocMap + ref5066f33.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown + allocs5066f33.Borrow(chandleTypes_allocs) - x.ref6bc79530 = ref6bc79530 - x.allocs6bc79530 = allocs6bc79530 - return ref6bc79530, allocs6bc79530 + x.ref5066f33 = ref5066f33 + x.allocs5066f33 = allocs5066f33 + return ref5066f33, allocs5066f33 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SamplerYcbcrConversionImageFormatProperties) PassValue() (C.VkSamplerYcbcrConversionImageFormatProperties, *cgoAllocMap) { - if x.ref6bc79530 != nil { - return *x.ref6bc79530, nil +func (x ExportMemoryAllocateInfoNV) PassValue() (C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { + if x.ref5066f33 != nil { + return *x.ref5066f33, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -17950,102 +44907,94 @@ func (x SamplerYcbcrConversionImageFormatProperties) PassValue() (C.VkSamplerYcb // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SamplerYcbcrConversionImageFormatProperties) Deref() { - if x.ref6bc79530 == nil { +func (x *ExportMemoryAllocateInfoNV) Deref() { + if x.ref5066f33 == nil { return } - x.SType = (StructureType)(x.ref6bc79530.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6bc79530.pNext)) - x.CombinedImageSamplerDescriptorCount = (uint32)(x.ref6bc79530.combinedImageSamplerDescriptorCount) + x.SType = (StructureType)(x.ref5066f33.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5066f33.pNext)) + x.HandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.ref5066f33.handleTypes) } -// allocDescriptorUpdateTemplateEntryMemory allocates memory for type C.VkDescriptorUpdateTemplateEntry in C. +// allocValidationFlagsMemory allocates memory for type C.VkValidationFlagsEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorUpdateTemplateEntryMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorUpdateTemplateEntryValue)) +func allocValidationFlagsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFlagsValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorUpdateTemplateEntryValue = unsafe.Sizeof([1]C.VkDescriptorUpdateTemplateEntry{}) +const sizeOfValidationFlagsValue = unsafe.Sizeof([1]C.VkValidationFlagsEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorUpdateTemplateEntry) Ref() *C.VkDescriptorUpdateTemplateEntry { +func (x *ValidationFlags) Ref() *C.VkValidationFlagsEXT { if x == nil { return nil } - return x.refabf78fb7 + return x.refffe080ad } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorUpdateTemplateEntry) Free() { - if x != nil && x.allocsabf78fb7 != nil { - x.allocsabf78fb7.(*cgoAllocMap).Free() - x.refabf78fb7 = nil +func (x *ValidationFlags) Free() { + if x != nil && x.allocsffe080ad != nil { + x.allocsffe080ad.(*cgoAllocMap).Free() + x.refffe080ad = nil } } -// NewDescriptorUpdateTemplateEntryRef creates a new wrapper struct with underlying reference set to the original C object. +// NewValidationFlagsRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorUpdateTemplateEntryRef(ref unsafe.Pointer) *DescriptorUpdateTemplateEntry { +func NewValidationFlagsRef(ref unsafe.Pointer) *ValidationFlags { if ref == nil { return nil } - obj := new(DescriptorUpdateTemplateEntry) - obj.refabf78fb7 = (*C.VkDescriptorUpdateTemplateEntry)(unsafe.Pointer(ref)) + obj := new(ValidationFlags) + obj.refffe080ad = (*C.VkValidationFlagsEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorUpdateTemplateEntry) PassRef() (*C.VkDescriptorUpdateTemplateEntry, *cgoAllocMap) { +func (x *ValidationFlags) PassRef() (*C.VkValidationFlagsEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refabf78fb7 != nil { - return x.refabf78fb7, nil + } else if x.refffe080ad != nil { + return x.refffe080ad, nil } - memabf78fb7 := allocDescriptorUpdateTemplateEntryMemory(1) - refabf78fb7 := (*C.VkDescriptorUpdateTemplateEntry)(memabf78fb7) - allocsabf78fb7 := new(cgoAllocMap) - allocsabf78fb7.Add(memabf78fb7) - - var cdstBinding_allocs *cgoAllocMap - refabf78fb7.dstBinding, cdstBinding_allocs = (C.uint32_t)(x.DstBinding), cgoAllocsUnknown - allocsabf78fb7.Borrow(cdstBinding_allocs) - - var cdstArrayElement_allocs *cgoAllocMap - refabf78fb7.dstArrayElement, cdstArrayElement_allocs = (C.uint32_t)(x.DstArrayElement), cgoAllocsUnknown - allocsabf78fb7.Borrow(cdstArrayElement_allocs) + memffe080ad := allocValidationFlagsMemory(1) + refffe080ad := (*C.VkValidationFlagsEXT)(memffe080ad) + allocsffe080ad := new(cgoAllocMap) + allocsffe080ad.Add(memffe080ad) - var cdescriptorCount_allocs *cgoAllocMap - refabf78fb7.descriptorCount, cdescriptorCount_allocs = (C.uint32_t)(x.DescriptorCount), cgoAllocsUnknown - allocsabf78fb7.Borrow(cdescriptorCount_allocs) + var csType_allocs *cgoAllocMap + refffe080ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsffe080ad.Borrow(csType_allocs) - var cdescriptorType_allocs *cgoAllocMap - refabf78fb7.descriptorType, cdescriptorType_allocs = (C.VkDescriptorType)(x.DescriptorType), cgoAllocsUnknown - allocsabf78fb7.Borrow(cdescriptorType_allocs) + var cpNext_allocs *cgoAllocMap + refffe080ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsffe080ad.Borrow(cpNext_allocs) - var coffset_allocs *cgoAllocMap - refabf78fb7.offset, coffset_allocs = (C.size_t)(x.Offset), cgoAllocsUnknown - allocsabf78fb7.Borrow(coffset_allocs) + var cdisabledValidationCheckCount_allocs *cgoAllocMap + refffe080ad.disabledValidationCheckCount, cdisabledValidationCheckCount_allocs = (C.uint32_t)(x.DisabledValidationCheckCount), cgoAllocsUnknown + allocsffe080ad.Borrow(cdisabledValidationCheckCount_allocs) - var cstride_allocs *cgoAllocMap - refabf78fb7.stride, cstride_allocs = (C.size_t)(x.Stride), cgoAllocsUnknown - allocsabf78fb7.Borrow(cstride_allocs) + var cpDisabledValidationChecks_allocs *cgoAllocMap + refffe080ad.pDisabledValidationChecks, cpDisabledValidationChecks_allocs = (*C.VkValidationCheckEXT)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationChecks)).Data)), cgoAllocsUnknown + allocsffe080ad.Borrow(cpDisabledValidationChecks_allocs) - x.refabf78fb7 = refabf78fb7 - x.allocsabf78fb7 = allocsabf78fb7 - return refabf78fb7, allocsabf78fb7 + x.refffe080ad = refffe080ad + x.allocsffe080ad = allocsffe080ad + return refffe080ad, allocsffe080ad } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorUpdateTemplateEntry) PassValue() (C.VkDescriptorUpdateTemplateEntry, *cgoAllocMap) { - if x.refabf78fb7 != nil { - return *x.refabf78fb7, nil +func (x ValidationFlags) PassValue() (C.VkValidationFlagsEXT, *cgoAllocMap) { + if x.refffe080ad != nil { + return *x.refffe080ad, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18053,159 +45002,95 @@ func (x DescriptorUpdateTemplateEntry) PassValue() (C.VkDescriptorUpdateTemplate // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorUpdateTemplateEntry) Deref() { - if x.refabf78fb7 == nil { +func (x *ValidationFlags) Deref() { + if x.refffe080ad == nil { return } - x.DstBinding = (uint32)(x.refabf78fb7.dstBinding) - x.DstArrayElement = (uint32)(x.refabf78fb7.dstArrayElement) - x.DescriptorCount = (uint32)(x.refabf78fb7.descriptorCount) - x.DescriptorType = (DescriptorType)(x.refabf78fb7.descriptorType) - x.Offset = (uint)(x.refabf78fb7.offset) - x.Stride = (uint)(x.refabf78fb7.stride) + x.SType = (StructureType)(x.refffe080ad.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffe080ad.pNext)) + x.DisabledValidationCheckCount = (uint32)(x.refffe080ad.disabledValidationCheckCount) + hxf8dbbe5 := (*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationChecks)) + hxf8dbbe5.Data = unsafe.Pointer(x.refffe080ad.pDisabledValidationChecks) + hxf8dbbe5.Cap = 0x7fffffff + // hxf8dbbe5.Len = ? + } -// allocDescriptorUpdateTemplateCreateInfoMemory allocates memory for type C.VkDescriptorUpdateTemplateCreateInfo in C. +// allocImageViewASTCDecodeModeMemory allocates memory for type C.VkImageViewASTCDecodeModeEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorUpdateTemplateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorUpdateTemplateCreateInfoValue)) +func allocImageViewASTCDecodeModeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewASTCDecodeModeValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorUpdateTemplateCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorUpdateTemplateCreateInfo{}) - -// unpackSDescriptorUpdateTemplateEntry transforms a sliced Go data structure into plain C format. -func unpackSDescriptorUpdateTemplateEntry(x []DescriptorUpdateTemplateEntry) (unpacked *C.VkDescriptorUpdateTemplateEntry, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDescriptorUpdateTemplateEntry) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocDescriptorUpdateTemplateEntryMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkDescriptorUpdateTemplateEntry)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkDescriptorUpdateTemplateEntry)(h.Data) - return -} - -// packSDescriptorUpdateTemplateEntry reads sliced Go data structure out from plain C format. -func packSDescriptorUpdateTemplateEntry(v []DescriptorUpdateTemplateEntry, ptr0 *C.VkDescriptorUpdateTemplateEntry) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfDescriptorUpdateTemplateEntryValue]C.VkDescriptorUpdateTemplateEntry)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewDescriptorUpdateTemplateEntryRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfImageViewASTCDecodeModeValue = unsafe.Sizeof([1]C.VkImageViewASTCDecodeModeEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorUpdateTemplateCreateInfo) Ref() *C.VkDescriptorUpdateTemplateCreateInfo { +func (x *ImageViewASTCDecodeMode) Ref() *C.VkImageViewASTCDecodeModeEXT { if x == nil { return nil } - return x.ref2af95951 + return x.ref3a973fc0 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorUpdateTemplateCreateInfo) Free() { - if x != nil && x.allocs2af95951 != nil { - x.allocs2af95951.(*cgoAllocMap).Free() - x.ref2af95951 = nil +func (x *ImageViewASTCDecodeMode) Free() { + if x != nil && x.allocs3a973fc0 != nil { + x.allocs3a973fc0.(*cgoAllocMap).Free() + x.ref3a973fc0 = nil } } -// NewDescriptorUpdateTemplateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageViewASTCDecodeModeRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorUpdateTemplateCreateInfoRef(ref unsafe.Pointer) *DescriptorUpdateTemplateCreateInfo { +func NewImageViewASTCDecodeModeRef(ref unsafe.Pointer) *ImageViewASTCDecodeMode { if ref == nil { return nil } - obj := new(DescriptorUpdateTemplateCreateInfo) - obj.ref2af95951 = (*C.VkDescriptorUpdateTemplateCreateInfo)(unsafe.Pointer(ref)) + obj := new(ImageViewASTCDecodeMode) + obj.ref3a973fc0 = (*C.VkImageViewASTCDecodeModeEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorUpdateTemplateCreateInfo) PassRef() (*C.VkDescriptorUpdateTemplateCreateInfo, *cgoAllocMap) { +func (x *ImageViewASTCDecodeMode) PassRef() (*C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2af95951 != nil { - return x.ref2af95951, nil + } else if x.ref3a973fc0 != nil { + return x.ref3a973fc0, nil } - mem2af95951 := allocDescriptorUpdateTemplateCreateInfoMemory(1) - ref2af95951 := (*C.VkDescriptorUpdateTemplateCreateInfo)(mem2af95951) - allocs2af95951 := new(cgoAllocMap) - allocs2af95951.Add(mem2af95951) + mem3a973fc0 := allocImageViewASTCDecodeModeMemory(1) + ref3a973fc0 := (*C.VkImageViewASTCDecodeModeEXT)(mem3a973fc0) + allocs3a973fc0 := new(cgoAllocMap) + allocs3a973fc0.Add(mem3a973fc0) var csType_allocs *cgoAllocMap - ref2af95951.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2af95951.Borrow(csType_allocs) + ref3a973fc0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3a973fc0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2af95951.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2af95951.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref2af95951.flags, cflags_allocs = (C.VkDescriptorUpdateTemplateCreateFlags)(x.Flags), cgoAllocsUnknown - allocs2af95951.Borrow(cflags_allocs) - - var cdescriptorUpdateEntryCount_allocs *cgoAllocMap - ref2af95951.descriptorUpdateEntryCount, cdescriptorUpdateEntryCount_allocs = (C.uint32_t)(x.DescriptorUpdateEntryCount), cgoAllocsUnknown - allocs2af95951.Borrow(cdescriptorUpdateEntryCount_allocs) - - var cpDescriptorUpdateEntries_allocs *cgoAllocMap - ref2af95951.pDescriptorUpdateEntries, cpDescriptorUpdateEntries_allocs = unpackSDescriptorUpdateTemplateEntry(x.PDescriptorUpdateEntries) - allocs2af95951.Borrow(cpDescriptorUpdateEntries_allocs) - - var ctemplateType_allocs *cgoAllocMap - ref2af95951.templateType, ctemplateType_allocs = (C.VkDescriptorUpdateTemplateType)(x.TemplateType), cgoAllocsUnknown - allocs2af95951.Borrow(ctemplateType_allocs) - - var cdescriptorSetLayout_allocs *cgoAllocMap - ref2af95951.descriptorSetLayout, cdescriptorSetLayout_allocs = *(*C.VkDescriptorSetLayout)(unsafe.Pointer(&x.DescriptorSetLayout)), cgoAllocsUnknown - allocs2af95951.Borrow(cdescriptorSetLayout_allocs) - - var cpipelineBindPoint_allocs *cgoAllocMap - ref2af95951.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown - allocs2af95951.Borrow(cpipelineBindPoint_allocs) - - var cpipelineLayout_allocs *cgoAllocMap - ref2af95951.pipelineLayout, cpipelineLayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.PipelineLayout)), cgoAllocsUnknown - allocs2af95951.Borrow(cpipelineLayout_allocs) + ref3a973fc0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3a973fc0.Borrow(cpNext_allocs) - var cset_allocs *cgoAllocMap - ref2af95951.set, cset_allocs = (C.uint32_t)(x.Set), cgoAllocsUnknown - allocs2af95951.Borrow(cset_allocs) + var cdecodeMode_allocs *cgoAllocMap + ref3a973fc0.decodeMode, cdecodeMode_allocs = (C.VkFormat)(x.DecodeMode), cgoAllocsUnknown + allocs3a973fc0.Borrow(cdecodeMode_allocs) - x.ref2af95951 = ref2af95951 - x.allocs2af95951 = allocs2af95951 - return ref2af95951, allocs2af95951 + x.ref3a973fc0 = ref3a973fc0 + x.allocs3a973fc0 = allocs3a973fc0 + return ref3a973fc0, allocs3a973fc0 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorUpdateTemplateCreateInfo) PassValue() (C.VkDescriptorUpdateTemplateCreateInfo, *cgoAllocMap) { - if x.ref2af95951 != nil { - return *x.ref2af95951, nil +func (x ImageViewASTCDecodeMode) PassValue() (C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { + if x.ref3a973fc0 != nil { + return *x.ref3a973fc0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18213,97 +45098,90 @@ func (x DescriptorUpdateTemplateCreateInfo) PassValue() (C.VkDescriptorUpdateTem // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorUpdateTemplateCreateInfo) Deref() { - if x.ref2af95951 == nil { +func (x *ImageViewASTCDecodeMode) Deref() { + if x.ref3a973fc0 == nil { return } - x.SType = (StructureType)(x.ref2af95951.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2af95951.pNext)) - x.Flags = (DescriptorUpdateTemplateCreateFlags)(x.ref2af95951.flags) - x.DescriptorUpdateEntryCount = (uint32)(x.ref2af95951.descriptorUpdateEntryCount) - packSDescriptorUpdateTemplateEntry(x.PDescriptorUpdateEntries, x.ref2af95951.pDescriptorUpdateEntries) - x.TemplateType = (DescriptorUpdateTemplateType)(x.ref2af95951.templateType) - x.DescriptorSetLayout = *(*DescriptorSetLayout)(unsafe.Pointer(&x.ref2af95951.descriptorSetLayout)) - x.PipelineBindPoint = (PipelineBindPoint)(x.ref2af95951.pipelineBindPoint) - x.PipelineLayout = *(*PipelineLayout)(unsafe.Pointer(&x.ref2af95951.pipelineLayout)) - x.Set = (uint32)(x.ref2af95951.set) + x.SType = (StructureType)(x.ref3a973fc0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3a973fc0.pNext)) + x.DecodeMode = (Format)(x.ref3a973fc0.decodeMode) } -// allocExternalMemoryPropertiesMemory allocates memory for type C.VkExternalMemoryProperties in C. +// allocPhysicalDeviceASTCDecodeFeaturesMemory allocates memory for type C.VkPhysicalDeviceASTCDecodeFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocExternalMemoryPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalMemoryPropertiesValue)) +func allocPhysicalDeviceASTCDecodeFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceASTCDecodeFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExternalMemoryPropertiesValue = unsafe.Sizeof([1]C.VkExternalMemoryProperties{}) +const sizeOfPhysicalDeviceASTCDecodeFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceASTCDecodeFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalMemoryProperties) Ref() *C.VkExternalMemoryProperties { +func (x *PhysicalDeviceASTCDecodeFeatures) Ref() *C.VkPhysicalDeviceASTCDecodeFeaturesEXT { if x == nil { return nil } - return x.ref4b738f01 + return x.refd8af7d5a } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExternalMemoryProperties) Free() { - if x != nil && x.allocs4b738f01 != nil { - x.allocs4b738f01.(*cgoAllocMap).Free() - x.ref4b738f01 = nil +func (x *PhysicalDeviceASTCDecodeFeatures) Free() { + if x != nil && x.allocsd8af7d5a != nil { + x.allocsd8af7d5a.(*cgoAllocMap).Free() + x.refd8af7d5a = nil } } -// NewExternalMemoryPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceASTCDecodeFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExternalMemoryPropertiesRef(ref unsafe.Pointer) *ExternalMemoryProperties { +func NewPhysicalDeviceASTCDecodeFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceASTCDecodeFeatures { if ref == nil { return nil } - obj := new(ExternalMemoryProperties) - obj.ref4b738f01 = (*C.VkExternalMemoryProperties)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceASTCDecodeFeatures) + obj.refd8af7d5a = (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExternalMemoryProperties) PassRef() (*C.VkExternalMemoryProperties, *cgoAllocMap) { +func (x *PhysicalDeviceASTCDecodeFeatures) PassRef() (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4b738f01 != nil { - return x.ref4b738f01, nil + } else if x.refd8af7d5a != nil { + return x.refd8af7d5a, nil } - mem4b738f01 := allocExternalMemoryPropertiesMemory(1) - ref4b738f01 := (*C.VkExternalMemoryProperties)(mem4b738f01) - allocs4b738f01 := new(cgoAllocMap) - allocs4b738f01.Add(mem4b738f01) + memd8af7d5a := allocPhysicalDeviceASTCDecodeFeaturesMemory(1) + refd8af7d5a := (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT)(memd8af7d5a) + allocsd8af7d5a := new(cgoAllocMap) + allocsd8af7d5a.Add(memd8af7d5a) - var cexternalMemoryFeatures_allocs *cgoAllocMap - ref4b738f01.externalMemoryFeatures, cexternalMemoryFeatures_allocs = (C.VkExternalMemoryFeatureFlags)(x.ExternalMemoryFeatures), cgoAllocsUnknown - allocs4b738f01.Borrow(cexternalMemoryFeatures_allocs) + var csType_allocs *cgoAllocMap + refd8af7d5a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd8af7d5a.Borrow(csType_allocs) - var cexportFromImportedHandleTypes_allocs *cgoAllocMap - ref4b738f01.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown - allocs4b738f01.Borrow(cexportFromImportedHandleTypes_allocs) + var cpNext_allocs *cgoAllocMap + refd8af7d5a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd8af7d5a.Borrow(cpNext_allocs) - var ccompatibleHandleTypes_allocs *cgoAllocMap - ref4b738f01.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.CompatibleHandleTypes), cgoAllocsUnknown - allocs4b738f01.Borrow(ccompatibleHandleTypes_allocs) + var cdecodeModeSharedExponent_allocs *cgoAllocMap + refd8af7d5a.decodeModeSharedExponent, cdecodeModeSharedExponent_allocs = (C.VkBool32)(x.DecodeModeSharedExponent), cgoAllocsUnknown + allocsd8af7d5a.Borrow(cdecodeModeSharedExponent_allocs) - x.ref4b738f01 = ref4b738f01 - x.allocs4b738f01 = allocs4b738f01 - return ref4b738f01, allocs4b738f01 + x.refd8af7d5a = refd8af7d5a + x.allocsd8af7d5a = allocsd8af7d5a + return refd8af7d5a, allocsd8af7d5a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExternalMemoryProperties) PassValue() (C.VkExternalMemoryProperties, *cgoAllocMap) { - if x.ref4b738f01 != nil { - return *x.ref4b738f01, nil +func (x PhysicalDeviceASTCDecodeFeatures) PassValue() (C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { + if x.refd8af7d5a != nil { + return *x.refd8af7d5a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18311,90 +45189,90 @@ func (x ExternalMemoryProperties) PassValue() (C.VkExternalMemoryProperties, *cg // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExternalMemoryProperties) Deref() { - if x.ref4b738f01 == nil { +func (x *PhysicalDeviceASTCDecodeFeatures) Deref() { + if x.refd8af7d5a == nil { return } - x.ExternalMemoryFeatures = (ExternalMemoryFeatureFlags)(x.ref4b738f01.externalMemoryFeatures) - x.ExportFromImportedHandleTypes = (ExternalMemoryHandleTypeFlags)(x.ref4b738f01.exportFromImportedHandleTypes) - x.CompatibleHandleTypes = (ExternalMemoryHandleTypeFlags)(x.ref4b738f01.compatibleHandleTypes) + x.SType = (StructureType)(x.refd8af7d5a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd8af7d5a.pNext)) + x.DecodeModeSharedExponent = (Bool32)(x.refd8af7d5a.decodeModeSharedExponent) } -// allocPhysicalDeviceExternalImageFormatInfoMemory allocates memory for type C.VkPhysicalDeviceExternalImageFormatInfo in C. +// allocPhysicalDevicePipelineRobustnessFeaturesMemory allocates memory for type C.VkPhysicalDevicePipelineRobustnessFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceExternalImageFormatInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalImageFormatInfoValue)) +func allocPhysicalDevicePipelineRobustnessFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePipelineRobustnessFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceExternalImageFormatInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalImageFormatInfo{}) +const sizeOfPhysicalDevicePipelineRobustnessFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePipelineRobustnessFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalImageFormatInfo) Ref() *C.VkPhysicalDeviceExternalImageFormatInfo { +func (x *PhysicalDevicePipelineRobustnessFeatures) Ref() *C.VkPhysicalDevicePipelineRobustnessFeaturesEXT { if x == nil { return nil } - return x.refc839c724 + return x.refdffe5c47 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceExternalImageFormatInfo) Free() { - if x != nil && x.allocsc839c724 != nil { - x.allocsc839c724.(*cgoAllocMap).Free() - x.refc839c724 = nil +func (x *PhysicalDevicePipelineRobustnessFeatures) Free() { + if x != nil && x.allocsdffe5c47 != nil { + x.allocsdffe5c47.(*cgoAllocMap).Free() + x.refdffe5c47 = nil } } -// NewPhysicalDeviceExternalImageFormatInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePipelineRobustnessFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceExternalImageFormatInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalImageFormatInfo { +func NewPhysicalDevicePipelineRobustnessFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePipelineRobustnessFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalImageFormatInfo) - obj.refc839c724 = (*C.VkPhysicalDeviceExternalImageFormatInfo)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePipelineRobustnessFeatures) + obj.refdffe5c47 = (*C.VkPhysicalDevicePipelineRobustnessFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceExternalImageFormatInfo) PassRef() (*C.VkPhysicalDeviceExternalImageFormatInfo, *cgoAllocMap) { +func (x *PhysicalDevicePipelineRobustnessFeatures) PassRef() (*C.VkPhysicalDevicePipelineRobustnessFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc839c724 != nil { - return x.refc839c724, nil + } else if x.refdffe5c47 != nil { + return x.refdffe5c47, nil } - memc839c724 := allocPhysicalDeviceExternalImageFormatInfoMemory(1) - refc839c724 := (*C.VkPhysicalDeviceExternalImageFormatInfo)(memc839c724) - allocsc839c724 := new(cgoAllocMap) - allocsc839c724.Add(memc839c724) + memdffe5c47 := allocPhysicalDevicePipelineRobustnessFeaturesMemory(1) + refdffe5c47 := (*C.VkPhysicalDevicePipelineRobustnessFeaturesEXT)(memdffe5c47) + allocsdffe5c47 := new(cgoAllocMap) + allocsdffe5c47.Add(memdffe5c47) var csType_allocs *cgoAllocMap - refc839c724.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc839c724.Borrow(csType_allocs) + refdffe5c47.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdffe5c47.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc839c724.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc839c724.Borrow(cpNext_allocs) + refdffe5c47.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdffe5c47.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - refc839c724.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsc839c724.Borrow(chandleType_allocs) + var cpipelineRobustness_allocs *cgoAllocMap + refdffe5c47.pipelineRobustness, cpipelineRobustness_allocs = (C.VkBool32)(x.PipelineRobustness), cgoAllocsUnknown + allocsdffe5c47.Borrow(cpipelineRobustness_allocs) - x.refc839c724 = refc839c724 - x.allocsc839c724 = allocsc839c724 - return refc839c724, allocsc839c724 + x.refdffe5c47 = refdffe5c47 + x.allocsdffe5c47 = allocsdffe5c47 + return refdffe5c47, allocsdffe5c47 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceExternalImageFormatInfo) PassValue() (C.VkPhysicalDeviceExternalImageFormatInfo, *cgoAllocMap) { - if x.refc839c724 != nil { - return *x.refc839c724, nil +func (x PhysicalDevicePipelineRobustnessFeatures) PassValue() (C.VkPhysicalDevicePipelineRobustnessFeaturesEXT, *cgoAllocMap) { + if x.refdffe5c47 != nil { + return *x.refdffe5c47, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18402,90 +45280,102 @@ func (x PhysicalDeviceExternalImageFormatInfo) PassValue() (C.VkPhysicalDeviceEx // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceExternalImageFormatInfo) Deref() { - if x.refc839c724 == nil { +func (x *PhysicalDevicePipelineRobustnessFeatures) Deref() { + if x.refdffe5c47 == nil { return } - x.SType = (StructureType)(x.refc839c724.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc839c724.pNext)) - x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.refc839c724.handleType) + x.SType = (StructureType)(x.refdffe5c47.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdffe5c47.pNext)) + x.PipelineRobustness = (Bool32)(x.refdffe5c47.pipelineRobustness) } -// allocExternalImageFormatPropertiesMemory allocates memory for type C.VkExternalImageFormatProperties in C. +// allocPhysicalDevicePipelineRobustnessPropertiesMemory allocates memory for type C.VkPhysicalDevicePipelineRobustnessPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocExternalImageFormatPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalImageFormatPropertiesValue)) +func allocPhysicalDevicePipelineRobustnessPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePipelineRobustnessPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExternalImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkExternalImageFormatProperties{}) +const sizeOfPhysicalDevicePipelineRobustnessPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePipelineRobustnessPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalImageFormatProperties) Ref() *C.VkExternalImageFormatProperties { +func (x *PhysicalDevicePipelineRobustnessProperties) Ref() *C.VkPhysicalDevicePipelineRobustnessPropertiesEXT { if x == nil { return nil } - return x.refd404c4b5 + return x.refd195872f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExternalImageFormatProperties) Free() { - if x != nil && x.allocsd404c4b5 != nil { - x.allocsd404c4b5.(*cgoAllocMap).Free() - x.refd404c4b5 = nil +func (x *PhysicalDevicePipelineRobustnessProperties) Free() { + if x != nil && x.allocsd195872f != nil { + x.allocsd195872f.(*cgoAllocMap).Free() + x.refd195872f = nil } } -// NewExternalImageFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePipelineRobustnessPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExternalImageFormatPropertiesRef(ref unsafe.Pointer) *ExternalImageFormatProperties { +func NewPhysicalDevicePipelineRobustnessPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePipelineRobustnessProperties { if ref == nil { return nil } - obj := new(ExternalImageFormatProperties) - obj.refd404c4b5 = (*C.VkExternalImageFormatProperties)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePipelineRobustnessProperties) + obj.refd195872f = (*C.VkPhysicalDevicePipelineRobustnessPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExternalImageFormatProperties) PassRef() (*C.VkExternalImageFormatProperties, *cgoAllocMap) { +func (x *PhysicalDevicePipelineRobustnessProperties) PassRef() (*C.VkPhysicalDevicePipelineRobustnessPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd404c4b5 != nil { - return x.refd404c4b5, nil + } else if x.refd195872f != nil { + return x.refd195872f, nil } - memd404c4b5 := allocExternalImageFormatPropertiesMemory(1) - refd404c4b5 := (*C.VkExternalImageFormatProperties)(memd404c4b5) - allocsd404c4b5 := new(cgoAllocMap) - allocsd404c4b5.Add(memd404c4b5) + memd195872f := allocPhysicalDevicePipelineRobustnessPropertiesMemory(1) + refd195872f := (*C.VkPhysicalDevicePipelineRobustnessPropertiesEXT)(memd195872f) + allocsd195872f := new(cgoAllocMap) + allocsd195872f.Add(memd195872f) var csType_allocs *cgoAllocMap - refd404c4b5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd404c4b5.Borrow(csType_allocs) + refd195872f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd195872f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd404c4b5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd404c4b5.Borrow(cpNext_allocs) + refd195872f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd195872f.Borrow(cpNext_allocs) - var cexternalMemoryProperties_allocs *cgoAllocMap - refd404c4b5.externalMemoryProperties, cexternalMemoryProperties_allocs = x.ExternalMemoryProperties.PassValue() - allocsd404c4b5.Borrow(cexternalMemoryProperties_allocs) + var cdefaultRobustnessStorageBuffers_allocs *cgoAllocMap + refd195872f.defaultRobustnessStorageBuffers, cdefaultRobustnessStorageBuffers_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.DefaultRobustnessStorageBuffers), cgoAllocsUnknown + allocsd195872f.Borrow(cdefaultRobustnessStorageBuffers_allocs) - x.refd404c4b5 = refd404c4b5 - x.allocsd404c4b5 = allocsd404c4b5 - return refd404c4b5, allocsd404c4b5 + var cdefaultRobustnessUniformBuffers_allocs *cgoAllocMap + refd195872f.defaultRobustnessUniformBuffers, cdefaultRobustnessUniformBuffers_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.DefaultRobustnessUniformBuffers), cgoAllocsUnknown + allocsd195872f.Borrow(cdefaultRobustnessUniformBuffers_allocs) + + var cdefaultRobustnessVertexInputs_allocs *cgoAllocMap + refd195872f.defaultRobustnessVertexInputs, cdefaultRobustnessVertexInputs_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.DefaultRobustnessVertexInputs), cgoAllocsUnknown + allocsd195872f.Borrow(cdefaultRobustnessVertexInputs_allocs) + + var cdefaultRobustnessImages_allocs *cgoAllocMap + refd195872f.defaultRobustnessImages, cdefaultRobustnessImages_allocs = (C.VkPipelineRobustnessImageBehaviorEXT)(x.DefaultRobustnessImages), cgoAllocsUnknown + allocsd195872f.Borrow(cdefaultRobustnessImages_allocs) + + x.refd195872f = refd195872f + x.allocsd195872f = allocsd195872f + return refd195872f, allocsd195872f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExternalImageFormatProperties) PassValue() (C.VkExternalImageFormatProperties, *cgoAllocMap) { - if x.refd404c4b5 != nil { - return *x.refd404c4b5, nil +func (x PhysicalDevicePipelineRobustnessProperties) PassValue() (C.VkPhysicalDevicePipelineRobustnessPropertiesEXT, *cgoAllocMap) { + if x.refd195872f != nil { + return *x.refd195872f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18493,98 +45383,105 @@ func (x ExternalImageFormatProperties) PassValue() (C.VkExternalImageFormatPrope // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExternalImageFormatProperties) Deref() { - if x.refd404c4b5 == nil { +func (x *PhysicalDevicePipelineRobustnessProperties) Deref() { + if x.refd195872f == nil { return } - x.SType = (StructureType)(x.refd404c4b5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd404c4b5.pNext)) - x.ExternalMemoryProperties = *NewExternalMemoryPropertiesRef(unsafe.Pointer(&x.refd404c4b5.externalMemoryProperties)) + x.SType = (StructureType)(x.refd195872f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd195872f.pNext)) + x.DefaultRobustnessStorageBuffers = (PipelineRobustnessBufferBehavior)(x.refd195872f.defaultRobustnessStorageBuffers) + x.DefaultRobustnessUniformBuffers = (PipelineRobustnessBufferBehavior)(x.refd195872f.defaultRobustnessUniformBuffers) + x.DefaultRobustnessVertexInputs = (PipelineRobustnessBufferBehavior)(x.refd195872f.defaultRobustnessVertexInputs) + x.DefaultRobustnessImages = (PipelineRobustnessImageBehavior)(x.refd195872f.defaultRobustnessImages) } -// allocPhysicalDeviceExternalBufferInfoMemory allocates memory for type C.VkPhysicalDeviceExternalBufferInfo in C. +// allocPipelineRobustnessCreateInfoMemory allocates memory for type C.VkPipelineRobustnessCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceExternalBufferInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalBufferInfoValue)) +func allocPipelineRobustnessCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRobustnessCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceExternalBufferInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalBufferInfo{}) +const sizeOfPipelineRobustnessCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRobustnessCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalBufferInfo) Ref() *C.VkPhysicalDeviceExternalBufferInfo { +func (x *PipelineRobustnessCreateInfo) Ref() *C.VkPipelineRobustnessCreateInfoEXT { if x == nil { return nil } - return x.ref8d758947 + return x.ref1e4549a1 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceExternalBufferInfo) Free() { - if x != nil && x.allocs8d758947 != nil { - x.allocs8d758947.(*cgoAllocMap).Free() - x.ref8d758947 = nil +func (x *PipelineRobustnessCreateInfo) Free() { + if x != nil && x.allocs1e4549a1 != nil { + x.allocs1e4549a1.(*cgoAllocMap).Free() + x.ref1e4549a1 = nil } } -// NewPhysicalDeviceExternalBufferInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineRobustnessCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceExternalBufferInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalBufferInfo { +func NewPipelineRobustnessCreateInfoRef(ref unsafe.Pointer) *PipelineRobustnessCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalBufferInfo) - obj.ref8d758947 = (*C.VkPhysicalDeviceExternalBufferInfo)(unsafe.Pointer(ref)) + obj := new(PipelineRobustnessCreateInfo) + obj.ref1e4549a1 = (*C.VkPipelineRobustnessCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceExternalBufferInfo) PassRef() (*C.VkPhysicalDeviceExternalBufferInfo, *cgoAllocMap) { +func (x *PipelineRobustnessCreateInfo) PassRef() (*C.VkPipelineRobustnessCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8d758947 != nil { - return x.ref8d758947, nil + } else if x.ref1e4549a1 != nil { + return x.ref1e4549a1, nil } - mem8d758947 := allocPhysicalDeviceExternalBufferInfoMemory(1) - ref8d758947 := (*C.VkPhysicalDeviceExternalBufferInfo)(mem8d758947) - allocs8d758947 := new(cgoAllocMap) - allocs8d758947.Add(mem8d758947) + mem1e4549a1 := allocPipelineRobustnessCreateInfoMemory(1) + ref1e4549a1 := (*C.VkPipelineRobustnessCreateInfoEXT)(mem1e4549a1) + allocs1e4549a1 := new(cgoAllocMap) + allocs1e4549a1.Add(mem1e4549a1) var csType_allocs *cgoAllocMap - ref8d758947.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8d758947.Borrow(csType_allocs) + ref1e4549a1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1e4549a1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8d758947.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8d758947.Borrow(cpNext_allocs) + ref1e4549a1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1e4549a1.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref8d758947.flags, cflags_allocs = (C.VkBufferCreateFlags)(x.Flags), cgoAllocsUnknown - allocs8d758947.Borrow(cflags_allocs) + var cstorageBuffers_allocs *cgoAllocMap + ref1e4549a1.storageBuffers, cstorageBuffers_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.StorageBuffers), cgoAllocsUnknown + allocs1e4549a1.Borrow(cstorageBuffers_allocs) - var cusage_allocs *cgoAllocMap - ref8d758947.usage, cusage_allocs = (C.VkBufferUsageFlags)(x.Usage), cgoAllocsUnknown - allocs8d758947.Borrow(cusage_allocs) + var cuniformBuffers_allocs *cgoAllocMap + ref1e4549a1.uniformBuffers, cuniformBuffers_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.UniformBuffers), cgoAllocsUnknown + allocs1e4549a1.Borrow(cuniformBuffers_allocs) - var chandleType_allocs *cgoAllocMap - ref8d758947.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs8d758947.Borrow(chandleType_allocs) + var cvertexInputs_allocs *cgoAllocMap + ref1e4549a1.vertexInputs, cvertexInputs_allocs = (C.VkPipelineRobustnessBufferBehaviorEXT)(x.VertexInputs), cgoAllocsUnknown + allocs1e4549a1.Borrow(cvertexInputs_allocs) - x.ref8d758947 = ref8d758947 - x.allocs8d758947 = allocs8d758947 - return ref8d758947, allocs8d758947 + var cimages_allocs *cgoAllocMap + ref1e4549a1.images, cimages_allocs = (C.VkPipelineRobustnessImageBehaviorEXT)(x.Images), cgoAllocsUnknown + allocs1e4549a1.Borrow(cimages_allocs) + + x.ref1e4549a1 = ref1e4549a1 + x.allocs1e4549a1 = allocs1e4549a1 + return ref1e4549a1, allocs1e4549a1 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceExternalBufferInfo) PassValue() (C.VkPhysicalDeviceExternalBufferInfo, *cgoAllocMap) { - if x.ref8d758947 != nil { - return *x.ref8d758947, nil +func (x PipelineRobustnessCreateInfo) PassValue() (C.VkPipelineRobustnessCreateInfoEXT, *cgoAllocMap) { + if x.ref1e4549a1 != nil { + return *x.ref1e4549a1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18592,92 +45489,101 @@ func (x PhysicalDeviceExternalBufferInfo) PassValue() (C.VkPhysicalDeviceExterna // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceExternalBufferInfo) Deref() { - if x.ref8d758947 == nil { +func (x *PipelineRobustnessCreateInfo) Deref() { + if x.ref1e4549a1 == nil { return } - x.SType = (StructureType)(x.ref8d758947.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8d758947.pNext)) - x.Flags = (BufferCreateFlags)(x.ref8d758947.flags) - x.Usage = (BufferUsageFlags)(x.ref8d758947.usage) - x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.ref8d758947.handleType) + x.SType = (StructureType)(x.ref1e4549a1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1e4549a1.pNext)) + x.StorageBuffers = (PipelineRobustnessBufferBehavior)(x.ref1e4549a1.storageBuffers) + x.UniformBuffers = (PipelineRobustnessBufferBehavior)(x.ref1e4549a1.uniformBuffers) + x.VertexInputs = (PipelineRobustnessBufferBehavior)(x.ref1e4549a1.vertexInputs) + x.Images = (PipelineRobustnessImageBehavior)(x.ref1e4549a1.images) } -// allocExternalBufferPropertiesMemory allocates memory for type C.VkExternalBufferProperties in C. +// allocConditionalRenderingBeginInfoMemory allocates memory for type C.VkConditionalRenderingBeginInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocExternalBufferPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalBufferPropertiesValue)) +func allocConditionalRenderingBeginInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfConditionalRenderingBeginInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExternalBufferPropertiesValue = unsafe.Sizeof([1]C.VkExternalBufferProperties{}) +const sizeOfConditionalRenderingBeginInfoValue = unsafe.Sizeof([1]C.VkConditionalRenderingBeginInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalBufferProperties) Ref() *C.VkExternalBufferProperties { +func (x *ConditionalRenderingBeginInfo) Ref() *C.VkConditionalRenderingBeginInfoEXT { if x == nil { return nil } - return x.ref12f7c546 + return x.ref82da87c9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExternalBufferProperties) Free() { - if x != nil && x.allocs12f7c546 != nil { - x.allocs12f7c546.(*cgoAllocMap).Free() - x.ref12f7c546 = nil +func (x *ConditionalRenderingBeginInfo) Free() { + if x != nil && x.allocs82da87c9 != nil { + x.allocs82da87c9.(*cgoAllocMap).Free() + x.ref82da87c9 = nil } } -// NewExternalBufferPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewConditionalRenderingBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExternalBufferPropertiesRef(ref unsafe.Pointer) *ExternalBufferProperties { +func NewConditionalRenderingBeginInfoRef(ref unsafe.Pointer) *ConditionalRenderingBeginInfo { if ref == nil { return nil } - obj := new(ExternalBufferProperties) - obj.ref12f7c546 = (*C.VkExternalBufferProperties)(unsafe.Pointer(ref)) + obj := new(ConditionalRenderingBeginInfo) + obj.ref82da87c9 = (*C.VkConditionalRenderingBeginInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExternalBufferProperties) PassRef() (*C.VkExternalBufferProperties, *cgoAllocMap) { +func (x *ConditionalRenderingBeginInfo) PassRef() (*C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref12f7c546 != nil { - return x.ref12f7c546, nil + } else if x.ref82da87c9 != nil { + return x.ref82da87c9, nil } - mem12f7c546 := allocExternalBufferPropertiesMemory(1) - ref12f7c546 := (*C.VkExternalBufferProperties)(mem12f7c546) - allocs12f7c546 := new(cgoAllocMap) - allocs12f7c546.Add(mem12f7c546) + mem82da87c9 := allocConditionalRenderingBeginInfoMemory(1) + ref82da87c9 := (*C.VkConditionalRenderingBeginInfoEXT)(mem82da87c9) + allocs82da87c9 := new(cgoAllocMap) + allocs82da87c9.Add(mem82da87c9) var csType_allocs *cgoAllocMap - ref12f7c546.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs12f7c546.Borrow(csType_allocs) + ref82da87c9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs82da87c9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref12f7c546.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs12f7c546.Borrow(cpNext_allocs) + ref82da87c9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs82da87c9.Borrow(cpNext_allocs) - var cexternalMemoryProperties_allocs *cgoAllocMap - ref12f7c546.externalMemoryProperties, cexternalMemoryProperties_allocs = x.ExternalMemoryProperties.PassValue() - allocs12f7c546.Borrow(cexternalMemoryProperties_allocs) + var cbuffer_allocs *cgoAllocMap + ref82da87c9.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs82da87c9.Borrow(cbuffer_allocs) - x.ref12f7c546 = ref12f7c546 - x.allocs12f7c546 = allocs12f7c546 - return ref12f7c546, allocs12f7c546 + var coffset_allocs *cgoAllocMap + ref82da87c9.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocs82da87c9.Borrow(coffset_allocs) + + var cflags_allocs *cgoAllocMap + ref82da87c9.flags, cflags_allocs = (C.VkConditionalRenderingFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs82da87c9.Borrow(cflags_allocs) + + x.ref82da87c9 = ref82da87c9 + x.allocs82da87c9 = allocs82da87c9 + return ref82da87c9, allocs82da87c9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExternalBufferProperties) PassValue() (C.VkExternalBufferProperties, *cgoAllocMap) { - if x.ref12f7c546 != nil { - return *x.ref12f7c546, nil +func (x ConditionalRenderingBeginInfo) PassValue() (C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { + if x.ref82da87c9 != nil { + return *x.ref82da87c9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18685,106 +45591,96 @@ func (x ExternalBufferProperties) PassValue() (C.VkExternalBufferProperties, *cg // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExternalBufferProperties) Deref() { - if x.ref12f7c546 == nil { +func (x *ConditionalRenderingBeginInfo) Deref() { + if x.ref82da87c9 == nil { return } - x.SType = (StructureType)(x.ref12f7c546.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref12f7c546.pNext)) - x.ExternalMemoryProperties = *NewExternalMemoryPropertiesRef(unsafe.Pointer(&x.ref12f7c546.externalMemoryProperties)) + x.SType = (StructureType)(x.ref82da87c9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref82da87c9.pNext)) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref82da87c9.buffer)) + x.Offset = (DeviceSize)(x.ref82da87c9.offset) + x.Flags = (ConditionalRenderingFlags)(x.ref82da87c9.flags) } -// allocPhysicalDeviceIDPropertiesMemory allocates memory for type C.VkPhysicalDeviceIDProperties in C. +// allocPhysicalDeviceConditionalRenderingFeaturesMemory allocates memory for type C.VkPhysicalDeviceConditionalRenderingFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceIDPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceIDPropertiesValue)) +func allocPhysicalDeviceConditionalRenderingFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceConditionalRenderingFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceIDPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceIDProperties{}) +const sizeOfPhysicalDeviceConditionalRenderingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConditionalRenderingFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceIDProperties) Ref() *C.VkPhysicalDeviceIDProperties { +func (x *PhysicalDeviceConditionalRenderingFeatures) Ref() *C.VkPhysicalDeviceConditionalRenderingFeaturesEXT { if x == nil { return nil } - return x.refe990a9f3 + return x.ref89d2a224 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceIDProperties) Free() { - if x != nil && x.allocse990a9f3 != nil { - x.allocse990a9f3.(*cgoAllocMap).Free() - x.refe990a9f3 = nil +func (x *PhysicalDeviceConditionalRenderingFeatures) Free() { + if x != nil && x.allocs89d2a224 != nil { + x.allocs89d2a224.(*cgoAllocMap).Free() + x.ref89d2a224 = nil } } -// NewPhysicalDeviceIDPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceConditionalRenderingFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceIDPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceIDProperties { +func NewPhysicalDeviceConditionalRenderingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceConditionalRenderingFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceIDProperties) - obj.refe990a9f3 = (*C.VkPhysicalDeviceIDProperties)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceConditionalRenderingFeatures) + obj.ref89d2a224 = (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceIDProperties) PassRef() (*C.VkPhysicalDeviceIDProperties, *cgoAllocMap) { +func (x *PhysicalDeviceConditionalRenderingFeatures) PassRef() (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe990a9f3 != nil { - return x.refe990a9f3, nil + } else if x.ref89d2a224 != nil { + return x.ref89d2a224, nil } - meme990a9f3 := allocPhysicalDeviceIDPropertiesMemory(1) - refe990a9f3 := (*C.VkPhysicalDeviceIDProperties)(meme990a9f3) - allocse990a9f3 := new(cgoAllocMap) - allocse990a9f3.Add(meme990a9f3) + mem89d2a224 := allocPhysicalDeviceConditionalRenderingFeaturesMemory(1) + ref89d2a224 := (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT)(mem89d2a224) + allocs89d2a224 := new(cgoAllocMap) + allocs89d2a224.Add(mem89d2a224) var csType_allocs *cgoAllocMap - refe990a9f3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse990a9f3.Borrow(csType_allocs) + ref89d2a224.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs89d2a224.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe990a9f3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse990a9f3.Borrow(cpNext_allocs) - - var cdeviceUUID_allocs *cgoAllocMap - refe990a9f3.deviceUUID, cdeviceUUID_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.DeviceUUID)), cgoAllocsUnknown - allocse990a9f3.Borrow(cdeviceUUID_allocs) - - var cdriverUUID_allocs *cgoAllocMap - refe990a9f3.driverUUID, cdriverUUID_allocs = *(*[16]C.uint8_t)(unsafe.Pointer(&x.DriverUUID)), cgoAllocsUnknown - allocse990a9f3.Borrow(cdriverUUID_allocs) - - var cdeviceLUID_allocs *cgoAllocMap - refe990a9f3.deviceLUID, cdeviceLUID_allocs = *(*[8]C.uint8_t)(unsafe.Pointer(&x.DeviceLUID)), cgoAllocsUnknown - allocse990a9f3.Borrow(cdeviceLUID_allocs) + ref89d2a224.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs89d2a224.Borrow(cpNext_allocs) - var cdeviceNodeMask_allocs *cgoAllocMap - refe990a9f3.deviceNodeMask, cdeviceNodeMask_allocs = (C.uint32_t)(x.DeviceNodeMask), cgoAllocsUnknown - allocse990a9f3.Borrow(cdeviceNodeMask_allocs) + var cconditionalRendering_allocs *cgoAllocMap + ref89d2a224.conditionalRendering, cconditionalRendering_allocs = (C.VkBool32)(x.ConditionalRendering), cgoAllocsUnknown + allocs89d2a224.Borrow(cconditionalRendering_allocs) - var cdeviceLUIDValid_allocs *cgoAllocMap - refe990a9f3.deviceLUIDValid, cdeviceLUIDValid_allocs = (C.VkBool32)(x.DeviceLUIDValid), cgoAllocsUnknown - allocse990a9f3.Borrow(cdeviceLUIDValid_allocs) + var cinheritedConditionalRendering_allocs *cgoAllocMap + ref89d2a224.inheritedConditionalRendering, cinheritedConditionalRendering_allocs = (C.VkBool32)(x.InheritedConditionalRendering), cgoAllocsUnknown + allocs89d2a224.Borrow(cinheritedConditionalRendering_allocs) - x.refe990a9f3 = refe990a9f3 - x.allocse990a9f3 = allocse990a9f3 - return refe990a9f3, allocse990a9f3 + x.ref89d2a224 = ref89d2a224 + x.allocs89d2a224 = allocs89d2a224 + return ref89d2a224, allocs89d2a224 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceIDProperties) PassValue() (C.VkPhysicalDeviceIDProperties, *cgoAllocMap) { - if x.refe990a9f3 != nil { - return *x.refe990a9f3, nil +func (x PhysicalDeviceConditionalRenderingFeatures) PassValue() (C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { + if x.ref89d2a224 != nil { + return *x.ref89d2a224, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18792,94 +45688,91 @@ func (x PhysicalDeviceIDProperties) PassValue() (C.VkPhysicalDeviceIDProperties, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceIDProperties) Deref() { - if x.refe990a9f3 == nil { +func (x *PhysicalDeviceConditionalRenderingFeatures) Deref() { + if x.ref89d2a224 == nil { return } - x.SType = (StructureType)(x.refe990a9f3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe990a9f3.pNext)) - x.DeviceUUID = *(*[16]byte)(unsafe.Pointer(&x.refe990a9f3.deviceUUID)) - x.DriverUUID = *(*[16]byte)(unsafe.Pointer(&x.refe990a9f3.driverUUID)) - x.DeviceLUID = *(*[8]byte)(unsafe.Pointer(&x.refe990a9f3.deviceLUID)) - x.DeviceNodeMask = (uint32)(x.refe990a9f3.deviceNodeMask) - x.DeviceLUIDValid = (Bool32)(x.refe990a9f3.deviceLUIDValid) + x.SType = (StructureType)(x.ref89d2a224.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref89d2a224.pNext)) + x.ConditionalRendering = (Bool32)(x.ref89d2a224.conditionalRendering) + x.InheritedConditionalRendering = (Bool32)(x.ref89d2a224.inheritedConditionalRendering) } -// allocExternalMemoryImageCreateInfoMemory allocates memory for type C.VkExternalMemoryImageCreateInfo in C. +// allocCommandBufferInheritanceConditionalRenderingInfoMemory allocates memory for type C.VkCommandBufferInheritanceConditionalRenderingInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocExternalMemoryImageCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalMemoryImageCreateInfoValue)) +func allocCommandBufferInheritanceConditionalRenderingInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceConditionalRenderingInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExternalMemoryImageCreateInfoValue = unsafe.Sizeof([1]C.VkExternalMemoryImageCreateInfo{}) +const sizeOfCommandBufferInheritanceConditionalRenderingInfoValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceConditionalRenderingInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalMemoryImageCreateInfo) Ref() *C.VkExternalMemoryImageCreateInfo { +func (x *CommandBufferInheritanceConditionalRenderingInfo) Ref() *C.VkCommandBufferInheritanceConditionalRenderingInfoEXT { if x == nil { return nil } - return x.refdaf1185e + return x.ref7155f49c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExternalMemoryImageCreateInfo) Free() { - if x != nil && x.allocsdaf1185e != nil { - x.allocsdaf1185e.(*cgoAllocMap).Free() - x.refdaf1185e = nil +func (x *CommandBufferInheritanceConditionalRenderingInfo) Free() { + if x != nil && x.allocs7155f49c != nil { + x.allocs7155f49c.(*cgoAllocMap).Free() + x.ref7155f49c = nil } } -// NewExternalMemoryImageCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCommandBufferInheritanceConditionalRenderingInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExternalMemoryImageCreateInfoRef(ref unsafe.Pointer) *ExternalMemoryImageCreateInfo { +func NewCommandBufferInheritanceConditionalRenderingInfoRef(ref unsafe.Pointer) *CommandBufferInheritanceConditionalRenderingInfo { if ref == nil { return nil } - obj := new(ExternalMemoryImageCreateInfo) - obj.refdaf1185e = (*C.VkExternalMemoryImageCreateInfo)(unsafe.Pointer(ref)) + obj := new(CommandBufferInheritanceConditionalRenderingInfo) + obj.ref7155f49c = (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExternalMemoryImageCreateInfo) PassRef() (*C.VkExternalMemoryImageCreateInfo, *cgoAllocMap) { +func (x *CommandBufferInheritanceConditionalRenderingInfo) PassRef() (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdaf1185e != nil { - return x.refdaf1185e, nil + } else if x.ref7155f49c != nil { + return x.ref7155f49c, nil } - memdaf1185e := allocExternalMemoryImageCreateInfoMemory(1) - refdaf1185e := (*C.VkExternalMemoryImageCreateInfo)(memdaf1185e) - allocsdaf1185e := new(cgoAllocMap) - allocsdaf1185e.Add(memdaf1185e) + mem7155f49c := allocCommandBufferInheritanceConditionalRenderingInfoMemory(1) + ref7155f49c := (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT)(mem7155f49c) + allocs7155f49c := new(cgoAllocMap) + allocs7155f49c.Add(mem7155f49c) var csType_allocs *cgoAllocMap - refdaf1185e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdaf1185e.Borrow(csType_allocs) + ref7155f49c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7155f49c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdaf1185e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdaf1185e.Borrow(cpNext_allocs) + ref7155f49c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7155f49c.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - refdaf1185e.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown - allocsdaf1185e.Borrow(chandleTypes_allocs) + var cconditionalRenderingEnable_allocs *cgoAllocMap + ref7155f49c.conditionalRenderingEnable, cconditionalRenderingEnable_allocs = (C.VkBool32)(x.ConditionalRenderingEnable), cgoAllocsUnknown + allocs7155f49c.Borrow(cconditionalRenderingEnable_allocs) - x.refdaf1185e = refdaf1185e - x.allocsdaf1185e = allocsdaf1185e - return refdaf1185e, allocsdaf1185e + x.ref7155f49c = ref7155f49c + x.allocs7155f49c = allocs7155f49c + return ref7155f49c, allocs7155f49c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExternalMemoryImageCreateInfo) PassValue() (C.VkExternalMemoryImageCreateInfo, *cgoAllocMap) { - if x.refdaf1185e != nil { - return *x.refdaf1185e, nil +func (x CommandBufferInheritanceConditionalRenderingInfo) PassValue() (C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { + if x.ref7155f49c != nil { + return *x.ref7155f49c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18887,90 +45780,86 @@ func (x ExternalMemoryImageCreateInfo) PassValue() (C.VkExternalMemoryImageCreat // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExternalMemoryImageCreateInfo) Deref() { - if x.refdaf1185e == nil { +func (x *CommandBufferInheritanceConditionalRenderingInfo) Deref() { + if x.ref7155f49c == nil { return } - x.SType = (StructureType)(x.refdaf1185e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdaf1185e.pNext)) - x.HandleTypes = (ExternalMemoryHandleTypeFlags)(x.refdaf1185e.handleTypes) + x.SType = (StructureType)(x.ref7155f49c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7155f49c.pNext)) + x.ConditionalRenderingEnable = (Bool32)(x.ref7155f49c.conditionalRenderingEnable) } -// allocExternalMemoryBufferCreateInfoMemory allocates memory for type C.VkExternalMemoryBufferCreateInfo in C. +// allocViewportWScalingNVMemory allocates memory for type C.VkViewportWScalingNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocExternalMemoryBufferCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalMemoryBufferCreateInfoValue)) +func allocViewportWScalingNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfViewportWScalingNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExternalMemoryBufferCreateInfoValue = unsafe.Sizeof([1]C.VkExternalMemoryBufferCreateInfo{}) +const sizeOfViewportWScalingNVValue = unsafe.Sizeof([1]C.VkViewportWScalingNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalMemoryBufferCreateInfo) Ref() *C.VkExternalMemoryBufferCreateInfo { +func (x *ViewportWScalingNV) Ref() *C.VkViewportWScalingNV { if x == nil { return nil } - return x.refd33a9423 + return x.ref7ea4590f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExternalMemoryBufferCreateInfo) Free() { - if x != nil && x.allocsd33a9423 != nil { - x.allocsd33a9423.(*cgoAllocMap).Free() - x.refd33a9423 = nil +func (x *ViewportWScalingNV) Free() { + if x != nil && x.allocs7ea4590f != nil { + x.allocs7ea4590f.(*cgoAllocMap).Free() + x.ref7ea4590f = nil } } -// NewExternalMemoryBufferCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewViewportWScalingNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExternalMemoryBufferCreateInfoRef(ref unsafe.Pointer) *ExternalMemoryBufferCreateInfo { +func NewViewportWScalingNVRef(ref unsafe.Pointer) *ViewportWScalingNV { if ref == nil { return nil } - obj := new(ExternalMemoryBufferCreateInfo) - obj.refd33a9423 = (*C.VkExternalMemoryBufferCreateInfo)(unsafe.Pointer(ref)) + obj := new(ViewportWScalingNV) + obj.ref7ea4590f = (*C.VkViewportWScalingNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExternalMemoryBufferCreateInfo) PassRef() (*C.VkExternalMemoryBufferCreateInfo, *cgoAllocMap) { +func (x *ViewportWScalingNV) PassRef() (*C.VkViewportWScalingNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd33a9423 != nil { - return x.refd33a9423, nil + } else if x.ref7ea4590f != nil { + return x.ref7ea4590f, nil } - memd33a9423 := allocExternalMemoryBufferCreateInfoMemory(1) - refd33a9423 := (*C.VkExternalMemoryBufferCreateInfo)(memd33a9423) - allocsd33a9423 := new(cgoAllocMap) - allocsd33a9423.Add(memd33a9423) - - var csType_allocs *cgoAllocMap - refd33a9423.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd33a9423.Borrow(csType_allocs) + mem7ea4590f := allocViewportWScalingNVMemory(1) + ref7ea4590f := (*C.VkViewportWScalingNV)(mem7ea4590f) + allocs7ea4590f := new(cgoAllocMap) + allocs7ea4590f.Add(mem7ea4590f) - var cpNext_allocs *cgoAllocMap - refd33a9423.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd33a9423.Borrow(cpNext_allocs) + var cxcoeff_allocs *cgoAllocMap + ref7ea4590f.xcoeff, cxcoeff_allocs = (C.float)(x.Xcoeff), cgoAllocsUnknown + allocs7ea4590f.Borrow(cxcoeff_allocs) - var chandleTypes_allocs *cgoAllocMap - refd33a9423.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown - allocsd33a9423.Borrow(chandleTypes_allocs) + var cycoeff_allocs *cgoAllocMap + ref7ea4590f.ycoeff, cycoeff_allocs = (C.float)(x.Ycoeff), cgoAllocsUnknown + allocs7ea4590f.Borrow(cycoeff_allocs) - x.refd33a9423 = refd33a9423 - x.allocsd33a9423 = allocsd33a9423 - return refd33a9423, allocsd33a9423 + x.ref7ea4590f = ref7ea4590f + x.allocs7ea4590f = allocs7ea4590f + return ref7ea4590f, allocs7ea4590f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExternalMemoryBufferCreateInfo) PassValue() (C.VkExternalMemoryBufferCreateInfo, *cgoAllocMap) { - if x.refd33a9423 != nil { - return *x.refd33a9423, nil +func (x ViewportWScalingNV) PassValue() (C.VkViewportWScalingNV, *cgoAllocMap) { + if x.ref7ea4590f != nil { + return *x.ref7ea4590f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -18978,90 +45867,135 @@ func (x ExternalMemoryBufferCreateInfo) PassValue() (C.VkExternalMemoryBufferCre // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExternalMemoryBufferCreateInfo) Deref() { - if x.refd33a9423 == nil { +func (x *ViewportWScalingNV) Deref() { + if x.ref7ea4590f == nil { return } - x.SType = (StructureType)(x.refd33a9423.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd33a9423.pNext)) - x.HandleTypes = (ExternalMemoryHandleTypeFlags)(x.refd33a9423.handleTypes) + x.Xcoeff = (float32)(x.ref7ea4590f.xcoeff) + x.Ycoeff = (float32)(x.ref7ea4590f.ycoeff) } -// allocExportMemoryAllocateInfoMemory allocates memory for type C.VkExportMemoryAllocateInfo in C. +// allocPipelineViewportWScalingStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportWScalingStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocExportMemoryAllocateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExportMemoryAllocateInfoValue)) +func allocPipelineViewportWScalingStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportWScalingStateCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExportMemoryAllocateInfoValue = unsafe.Sizeof([1]C.VkExportMemoryAllocateInfo{}) +const sizeOfPipelineViewportWScalingStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportWScalingStateCreateInfoNV{}) + +// unpackSViewportWScalingNV transforms a sliced Go data structure into plain C format. +func unpackSViewportWScalingNV(x []ViewportWScalingNV) (unpacked *C.VkViewportWScalingNV, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkViewportWScalingNV) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocViewportWScalingNVMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkViewportWScalingNV)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkViewportWScalingNV)(h.Data) + return +} + +// packSViewportWScalingNV reads sliced Go data structure out from plain C format. +func packSViewportWScalingNV(v []ViewportWScalingNV, ptr0 *C.VkViewportWScalingNV) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfViewportWScalingNVValue]C.VkViewportWScalingNV)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewViewportWScalingNVRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExportMemoryAllocateInfo) Ref() *C.VkExportMemoryAllocateInfo { +func (x *PipelineViewportWScalingStateCreateInfoNV) Ref() *C.VkPipelineViewportWScalingStateCreateInfoNV { if x == nil { return nil } - return x.refeb76ec64 + return x.ref3e532c0b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExportMemoryAllocateInfo) Free() { - if x != nil && x.allocseb76ec64 != nil { - x.allocseb76ec64.(*cgoAllocMap).Free() - x.refeb76ec64 = nil +func (x *PipelineViewportWScalingStateCreateInfoNV) Free() { + if x != nil && x.allocs3e532c0b != nil { + x.allocs3e532c0b.(*cgoAllocMap).Free() + x.ref3e532c0b = nil } } -// NewExportMemoryAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineViewportWScalingStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExportMemoryAllocateInfoRef(ref unsafe.Pointer) *ExportMemoryAllocateInfo { +func NewPipelineViewportWScalingStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportWScalingStateCreateInfoNV { if ref == nil { return nil } - obj := new(ExportMemoryAllocateInfo) - obj.refeb76ec64 = (*C.VkExportMemoryAllocateInfo)(unsafe.Pointer(ref)) + obj := new(PipelineViewportWScalingStateCreateInfoNV) + obj.ref3e532c0b = (*C.VkPipelineViewportWScalingStateCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExportMemoryAllocateInfo) PassRef() (*C.VkExportMemoryAllocateInfo, *cgoAllocMap) { +func (x *PipelineViewportWScalingStateCreateInfoNV) PassRef() (*C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refeb76ec64 != nil { - return x.refeb76ec64, nil + } else if x.ref3e532c0b != nil { + return x.ref3e532c0b, nil } - memeb76ec64 := allocExportMemoryAllocateInfoMemory(1) - refeb76ec64 := (*C.VkExportMemoryAllocateInfo)(memeb76ec64) - allocseb76ec64 := new(cgoAllocMap) - allocseb76ec64.Add(memeb76ec64) + mem3e532c0b := allocPipelineViewportWScalingStateCreateInfoNVMemory(1) + ref3e532c0b := (*C.VkPipelineViewportWScalingStateCreateInfoNV)(mem3e532c0b) + allocs3e532c0b := new(cgoAllocMap) + allocs3e532c0b.Add(mem3e532c0b) var csType_allocs *cgoAllocMap - refeb76ec64.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocseb76ec64.Borrow(csType_allocs) + ref3e532c0b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e532c0b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refeb76ec64.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocseb76ec64.Borrow(cpNext_allocs) + ref3e532c0b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e532c0b.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - refeb76ec64.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown - allocseb76ec64.Borrow(chandleTypes_allocs) + var cviewportWScalingEnable_allocs *cgoAllocMap + ref3e532c0b.viewportWScalingEnable, cviewportWScalingEnable_allocs = (C.VkBool32)(x.ViewportWScalingEnable), cgoAllocsUnknown + allocs3e532c0b.Borrow(cviewportWScalingEnable_allocs) - x.refeb76ec64 = refeb76ec64 - x.allocseb76ec64 = allocseb76ec64 - return refeb76ec64, allocseb76ec64 + var cviewportCount_allocs *cgoAllocMap + ref3e532c0b.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown + allocs3e532c0b.Borrow(cviewportCount_allocs) + + var cpViewportWScalings_allocs *cgoAllocMap + ref3e532c0b.pViewportWScalings, cpViewportWScalings_allocs = unpackSViewportWScalingNV(x.PViewportWScalings) + allocs3e532c0b.Borrow(cpViewportWScalings_allocs) + + x.ref3e532c0b = ref3e532c0b + x.allocs3e532c0b = allocs3e532c0b + return ref3e532c0b, allocs3e532c0b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExportMemoryAllocateInfo) PassValue() (C.VkExportMemoryAllocateInfo, *cgoAllocMap) { - if x.refeb76ec64 != nil { - return *x.refeb76ec64, nil +func (x PipelineViewportWScalingStateCreateInfoNV) PassValue() (C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { + if x.ref3e532c0b != nil { + return *x.ref3e532c0b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19069,90 +46003,92 @@ func (x ExportMemoryAllocateInfo) PassValue() (C.VkExportMemoryAllocateInfo, *cg // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExportMemoryAllocateInfo) Deref() { - if x.refeb76ec64 == nil { +func (x *PipelineViewportWScalingStateCreateInfoNV) Deref() { + if x.ref3e532c0b == nil { return } - x.SType = (StructureType)(x.refeb76ec64.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeb76ec64.pNext)) - x.HandleTypes = (ExternalMemoryHandleTypeFlags)(x.refeb76ec64.handleTypes) + x.SType = (StructureType)(x.ref3e532c0b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3e532c0b.pNext)) + x.ViewportWScalingEnable = (Bool32)(x.ref3e532c0b.viewportWScalingEnable) + x.ViewportCount = (uint32)(x.ref3e532c0b.viewportCount) + packSViewportWScalingNV(x.PViewportWScalings, x.ref3e532c0b.pViewportWScalings) } -// allocPhysicalDeviceExternalFenceInfoMemory allocates memory for type C.VkPhysicalDeviceExternalFenceInfo in C. +// allocDisplayPowerInfoMemory allocates memory for type C.VkDisplayPowerInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceExternalFenceInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalFenceInfoValue)) +func allocDisplayPowerInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPowerInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceExternalFenceInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalFenceInfo{}) +const sizeOfDisplayPowerInfoValue = unsafe.Sizeof([1]C.VkDisplayPowerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalFenceInfo) Ref() *C.VkPhysicalDeviceExternalFenceInfo { +func (x *DisplayPowerInfo) Ref() *C.VkDisplayPowerInfoEXT { if x == nil { return nil } - return x.ref9bb660cc + return x.ref80fed52f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceExternalFenceInfo) Free() { - if x != nil && x.allocs9bb660cc != nil { - x.allocs9bb660cc.(*cgoAllocMap).Free() - x.ref9bb660cc = nil +func (x *DisplayPowerInfo) Free() { + if x != nil && x.allocs80fed52f != nil { + x.allocs80fed52f.(*cgoAllocMap).Free() + x.ref80fed52f = nil } } -// NewPhysicalDeviceExternalFenceInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayPowerInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceExternalFenceInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalFenceInfo { +func NewDisplayPowerInfoRef(ref unsafe.Pointer) *DisplayPowerInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalFenceInfo) - obj.ref9bb660cc = (*C.VkPhysicalDeviceExternalFenceInfo)(unsafe.Pointer(ref)) + obj := new(DisplayPowerInfo) + obj.ref80fed52f = (*C.VkDisplayPowerInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceExternalFenceInfo) PassRef() (*C.VkPhysicalDeviceExternalFenceInfo, *cgoAllocMap) { +func (x *DisplayPowerInfo) PassRef() (*C.VkDisplayPowerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9bb660cc != nil { - return x.ref9bb660cc, nil + } else if x.ref80fed52f != nil { + return x.ref80fed52f, nil } - mem9bb660cc := allocPhysicalDeviceExternalFenceInfoMemory(1) - ref9bb660cc := (*C.VkPhysicalDeviceExternalFenceInfo)(mem9bb660cc) - allocs9bb660cc := new(cgoAllocMap) - allocs9bb660cc.Add(mem9bb660cc) + mem80fed52f := allocDisplayPowerInfoMemory(1) + ref80fed52f := (*C.VkDisplayPowerInfoEXT)(mem80fed52f) + allocs80fed52f := new(cgoAllocMap) + allocs80fed52f.Add(mem80fed52f) var csType_allocs *cgoAllocMap - ref9bb660cc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9bb660cc.Borrow(csType_allocs) + ref80fed52f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs80fed52f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9bb660cc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9bb660cc.Borrow(cpNext_allocs) + ref80fed52f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs80fed52f.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - ref9bb660cc.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs9bb660cc.Borrow(chandleType_allocs) + var cpowerState_allocs *cgoAllocMap + ref80fed52f.powerState, cpowerState_allocs = (C.VkDisplayPowerStateEXT)(x.PowerState), cgoAllocsUnknown + allocs80fed52f.Borrow(cpowerState_allocs) - x.ref9bb660cc = ref9bb660cc - x.allocs9bb660cc = allocs9bb660cc - return ref9bb660cc, allocs9bb660cc + x.ref80fed52f = ref80fed52f + x.allocs80fed52f = allocs80fed52f + return ref80fed52f, allocs80fed52f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceExternalFenceInfo) PassValue() (C.VkPhysicalDeviceExternalFenceInfo, *cgoAllocMap) { - if x.ref9bb660cc != nil { - return *x.ref9bb660cc, nil +func (x DisplayPowerInfo) PassValue() (C.VkDisplayPowerInfoEXT, *cgoAllocMap) { + if x.ref80fed52f != nil { + return *x.ref80fed52f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19160,98 +46096,90 @@ func (x PhysicalDeviceExternalFenceInfo) PassValue() (C.VkPhysicalDeviceExternal // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceExternalFenceInfo) Deref() { - if x.ref9bb660cc == nil { +func (x *DisplayPowerInfo) Deref() { + if x.ref80fed52f == nil { return } - x.SType = (StructureType)(x.ref9bb660cc.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9bb660cc.pNext)) - x.HandleType = (ExternalFenceHandleTypeFlagBits)(x.ref9bb660cc.handleType) + x.SType = (StructureType)(x.ref80fed52f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref80fed52f.pNext)) + x.PowerState = (DisplayPowerState)(x.ref80fed52f.powerState) } -// allocExternalFencePropertiesMemory allocates memory for type C.VkExternalFenceProperties in C. +// allocDeviceEventInfoMemory allocates memory for type C.VkDeviceEventInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocExternalFencePropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalFencePropertiesValue)) +func allocDeviceEventInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceEventInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExternalFencePropertiesValue = unsafe.Sizeof([1]C.VkExternalFenceProperties{}) +const sizeOfDeviceEventInfoValue = unsafe.Sizeof([1]C.VkDeviceEventInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalFenceProperties) Ref() *C.VkExternalFenceProperties { +func (x *DeviceEventInfo) Ref() *C.VkDeviceEventInfoEXT { if x == nil { return nil } - return x.ref18806773 + return x.ref394b3fcb } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExternalFenceProperties) Free() { - if x != nil && x.allocs18806773 != nil { - x.allocs18806773.(*cgoAllocMap).Free() - x.ref18806773 = nil +func (x *DeviceEventInfo) Free() { + if x != nil && x.allocs394b3fcb != nil { + x.allocs394b3fcb.(*cgoAllocMap).Free() + x.ref394b3fcb = nil } } -// NewExternalFencePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceEventInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExternalFencePropertiesRef(ref unsafe.Pointer) *ExternalFenceProperties { +func NewDeviceEventInfoRef(ref unsafe.Pointer) *DeviceEventInfo { if ref == nil { return nil } - obj := new(ExternalFenceProperties) - obj.ref18806773 = (*C.VkExternalFenceProperties)(unsafe.Pointer(ref)) + obj := new(DeviceEventInfo) + obj.ref394b3fcb = (*C.VkDeviceEventInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExternalFenceProperties) PassRef() (*C.VkExternalFenceProperties, *cgoAllocMap) { +func (x *DeviceEventInfo) PassRef() (*C.VkDeviceEventInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref18806773 != nil { - return x.ref18806773, nil + } else if x.ref394b3fcb != nil { + return x.ref394b3fcb, nil } - mem18806773 := allocExternalFencePropertiesMemory(1) - ref18806773 := (*C.VkExternalFenceProperties)(mem18806773) - allocs18806773 := new(cgoAllocMap) - allocs18806773.Add(mem18806773) + mem394b3fcb := allocDeviceEventInfoMemory(1) + ref394b3fcb := (*C.VkDeviceEventInfoEXT)(mem394b3fcb) + allocs394b3fcb := new(cgoAllocMap) + allocs394b3fcb.Add(mem394b3fcb) var csType_allocs *cgoAllocMap - ref18806773.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs18806773.Borrow(csType_allocs) + ref394b3fcb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs394b3fcb.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref18806773.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs18806773.Borrow(cpNext_allocs) - - var cexportFromImportedHandleTypes_allocs *cgoAllocMap - ref18806773.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalFenceHandleTypeFlags)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown - allocs18806773.Borrow(cexportFromImportedHandleTypes_allocs) - - var ccompatibleHandleTypes_allocs *cgoAllocMap - ref18806773.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalFenceHandleTypeFlags)(x.CompatibleHandleTypes), cgoAllocsUnknown - allocs18806773.Borrow(ccompatibleHandleTypes_allocs) + ref394b3fcb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs394b3fcb.Borrow(cpNext_allocs) - var cexternalFenceFeatures_allocs *cgoAllocMap - ref18806773.externalFenceFeatures, cexternalFenceFeatures_allocs = (C.VkExternalFenceFeatureFlags)(x.ExternalFenceFeatures), cgoAllocsUnknown - allocs18806773.Borrow(cexternalFenceFeatures_allocs) + var cdeviceEvent_allocs *cgoAllocMap + ref394b3fcb.deviceEvent, cdeviceEvent_allocs = (C.VkDeviceEventTypeEXT)(x.DeviceEvent), cgoAllocsUnknown + allocs394b3fcb.Borrow(cdeviceEvent_allocs) - x.ref18806773 = ref18806773 - x.allocs18806773 = allocs18806773 - return ref18806773, allocs18806773 + x.ref394b3fcb = ref394b3fcb + x.allocs394b3fcb = allocs394b3fcb + return ref394b3fcb, allocs394b3fcb } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExternalFenceProperties) PassValue() (C.VkExternalFenceProperties, *cgoAllocMap) { - if x.ref18806773 != nil { - return *x.ref18806773, nil +func (x DeviceEventInfo) PassValue() (C.VkDeviceEventInfoEXT, *cgoAllocMap) { + if x.ref394b3fcb != nil { + return *x.ref394b3fcb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19259,92 +46187,90 @@ func (x ExternalFenceProperties) PassValue() (C.VkExternalFenceProperties, *cgoA // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExternalFenceProperties) Deref() { - if x.ref18806773 == nil { +func (x *DeviceEventInfo) Deref() { + if x.ref394b3fcb == nil { return } - x.SType = (StructureType)(x.ref18806773.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref18806773.pNext)) - x.ExportFromImportedHandleTypes = (ExternalFenceHandleTypeFlags)(x.ref18806773.exportFromImportedHandleTypes) - x.CompatibleHandleTypes = (ExternalFenceHandleTypeFlags)(x.ref18806773.compatibleHandleTypes) - x.ExternalFenceFeatures = (ExternalFenceFeatureFlags)(x.ref18806773.externalFenceFeatures) + x.SType = (StructureType)(x.ref394b3fcb.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref394b3fcb.pNext)) + x.DeviceEvent = (DeviceEventType)(x.ref394b3fcb.deviceEvent) } -// allocExportFenceCreateInfoMemory allocates memory for type C.VkExportFenceCreateInfo in C. +// allocDisplayEventInfoMemory allocates memory for type C.VkDisplayEventInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocExportFenceCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExportFenceCreateInfoValue)) +func allocDisplayEventInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayEventInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExportFenceCreateInfoValue = unsafe.Sizeof([1]C.VkExportFenceCreateInfo{}) +const sizeOfDisplayEventInfoValue = unsafe.Sizeof([1]C.VkDisplayEventInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExportFenceCreateInfo) Ref() *C.VkExportFenceCreateInfo { +func (x *DisplayEventInfo) Ref() *C.VkDisplayEventInfoEXT { if x == nil { return nil } - return x.ref5fef8c3a + return x.refa69f7302 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExportFenceCreateInfo) Free() { - if x != nil && x.allocs5fef8c3a != nil { - x.allocs5fef8c3a.(*cgoAllocMap).Free() - x.ref5fef8c3a = nil +func (x *DisplayEventInfo) Free() { + if x != nil && x.allocsa69f7302 != nil { + x.allocsa69f7302.(*cgoAllocMap).Free() + x.refa69f7302 = nil } } -// NewExportFenceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayEventInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExportFenceCreateInfoRef(ref unsafe.Pointer) *ExportFenceCreateInfo { +func NewDisplayEventInfoRef(ref unsafe.Pointer) *DisplayEventInfo { if ref == nil { return nil } - obj := new(ExportFenceCreateInfo) - obj.ref5fef8c3a = (*C.VkExportFenceCreateInfo)(unsafe.Pointer(ref)) + obj := new(DisplayEventInfo) + obj.refa69f7302 = (*C.VkDisplayEventInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExportFenceCreateInfo) PassRef() (*C.VkExportFenceCreateInfo, *cgoAllocMap) { +func (x *DisplayEventInfo) PassRef() (*C.VkDisplayEventInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5fef8c3a != nil { - return x.ref5fef8c3a, nil + } else if x.refa69f7302 != nil { + return x.refa69f7302, nil } - mem5fef8c3a := allocExportFenceCreateInfoMemory(1) - ref5fef8c3a := (*C.VkExportFenceCreateInfo)(mem5fef8c3a) - allocs5fef8c3a := new(cgoAllocMap) - allocs5fef8c3a.Add(mem5fef8c3a) + mema69f7302 := allocDisplayEventInfoMemory(1) + refa69f7302 := (*C.VkDisplayEventInfoEXT)(mema69f7302) + allocsa69f7302 := new(cgoAllocMap) + allocsa69f7302.Add(mema69f7302) var csType_allocs *cgoAllocMap - ref5fef8c3a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5fef8c3a.Borrow(csType_allocs) + refa69f7302.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa69f7302.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5fef8c3a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5fef8c3a.Borrow(cpNext_allocs) + refa69f7302.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa69f7302.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - ref5fef8c3a.handleTypes, chandleTypes_allocs = (C.VkExternalFenceHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown - allocs5fef8c3a.Borrow(chandleTypes_allocs) + var cdisplayEvent_allocs *cgoAllocMap + refa69f7302.displayEvent, cdisplayEvent_allocs = (C.VkDisplayEventTypeEXT)(x.DisplayEvent), cgoAllocsUnknown + allocsa69f7302.Borrow(cdisplayEvent_allocs) - x.ref5fef8c3a = ref5fef8c3a - x.allocs5fef8c3a = allocs5fef8c3a - return ref5fef8c3a, allocs5fef8c3a + x.refa69f7302 = refa69f7302 + x.allocsa69f7302 = allocsa69f7302 + return refa69f7302, allocsa69f7302 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExportFenceCreateInfo) PassValue() (C.VkExportFenceCreateInfo, *cgoAllocMap) { - if x.ref5fef8c3a != nil { - return *x.ref5fef8c3a, nil +func (x DisplayEventInfo) PassValue() (C.VkDisplayEventInfoEXT, *cgoAllocMap) { + if x.refa69f7302 != nil { + return *x.refa69f7302, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19352,90 +46278,90 @@ func (x ExportFenceCreateInfo) PassValue() (C.VkExportFenceCreateInfo, *cgoAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExportFenceCreateInfo) Deref() { - if x.ref5fef8c3a == nil { +func (x *DisplayEventInfo) Deref() { + if x.refa69f7302 == nil { return } - x.SType = (StructureType)(x.ref5fef8c3a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5fef8c3a.pNext)) - x.HandleTypes = (ExternalFenceHandleTypeFlags)(x.ref5fef8c3a.handleTypes) + x.SType = (StructureType)(x.refa69f7302.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa69f7302.pNext)) + x.DisplayEvent = (DisplayEventType)(x.refa69f7302.displayEvent) } -// allocExportSemaphoreCreateInfoMemory allocates memory for type C.VkExportSemaphoreCreateInfo in C. +// allocSwapchainCounterCreateInfoMemory allocates memory for type C.VkSwapchainCounterCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocExportSemaphoreCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExportSemaphoreCreateInfoValue)) +func allocSwapchainCounterCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainCounterCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExportSemaphoreCreateInfoValue = unsafe.Sizeof([1]C.VkExportSemaphoreCreateInfo{}) +const sizeOfSwapchainCounterCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainCounterCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExportSemaphoreCreateInfo) Ref() *C.VkExportSemaphoreCreateInfo { +func (x *SwapchainCounterCreateInfo) Ref() *C.VkSwapchainCounterCreateInfoEXT { if x == nil { return nil } - return x.ref17b8d6c5 + return x.ref9f21eca6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExportSemaphoreCreateInfo) Free() { - if x != nil && x.allocs17b8d6c5 != nil { - x.allocs17b8d6c5.(*cgoAllocMap).Free() - x.ref17b8d6c5 = nil +func (x *SwapchainCounterCreateInfo) Free() { + if x != nil && x.allocs9f21eca6 != nil { + x.allocs9f21eca6.(*cgoAllocMap).Free() + x.ref9f21eca6 = nil } } -// NewExportSemaphoreCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSwapchainCounterCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExportSemaphoreCreateInfoRef(ref unsafe.Pointer) *ExportSemaphoreCreateInfo { +func NewSwapchainCounterCreateInfoRef(ref unsafe.Pointer) *SwapchainCounterCreateInfo { if ref == nil { return nil } - obj := new(ExportSemaphoreCreateInfo) - obj.ref17b8d6c5 = (*C.VkExportSemaphoreCreateInfo)(unsafe.Pointer(ref)) + obj := new(SwapchainCounterCreateInfo) + obj.ref9f21eca6 = (*C.VkSwapchainCounterCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExportSemaphoreCreateInfo) PassRef() (*C.VkExportSemaphoreCreateInfo, *cgoAllocMap) { +func (x *SwapchainCounterCreateInfo) PassRef() (*C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref17b8d6c5 != nil { - return x.ref17b8d6c5, nil + } else if x.ref9f21eca6 != nil { + return x.ref9f21eca6, nil } - mem17b8d6c5 := allocExportSemaphoreCreateInfoMemory(1) - ref17b8d6c5 := (*C.VkExportSemaphoreCreateInfo)(mem17b8d6c5) - allocs17b8d6c5 := new(cgoAllocMap) - allocs17b8d6c5.Add(mem17b8d6c5) + mem9f21eca6 := allocSwapchainCounterCreateInfoMemory(1) + ref9f21eca6 := (*C.VkSwapchainCounterCreateInfoEXT)(mem9f21eca6) + allocs9f21eca6 := new(cgoAllocMap) + allocs9f21eca6.Add(mem9f21eca6) var csType_allocs *cgoAllocMap - ref17b8d6c5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs17b8d6c5.Borrow(csType_allocs) + ref9f21eca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9f21eca6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref17b8d6c5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs17b8d6c5.Borrow(cpNext_allocs) + ref9f21eca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9f21eca6.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - ref17b8d6c5.handleTypes, chandleTypes_allocs = (C.VkExternalSemaphoreHandleTypeFlags)(x.HandleTypes), cgoAllocsUnknown - allocs17b8d6c5.Borrow(chandleTypes_allocs) + var csurfaceCounters_allocs *cgoAllocMap + ref9f21eca6.surfaceCounters, csurfaceCounters_allocs = (C.VkSurfaceCounterFlagsEXT)(x.SurfaceCounters), cgoAllocsUnknown + allocs9f21eca6.Borrow(csurfaceCounters_allocs) - x.ref17b8d6c5 = ref17b8d6c5 - x.allocs17b8d6c5 = allocs17b8d6c5 - return ref17b8d6c5, allocs17b8d6c5 + x.ref9f21eca6 = ref9f21eca6 + x.allocs9f21eca6 = allocs9f21eca6 + return ref9f21eca6, allocs9f21eca6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExportSemaphoreCreateInfo) PassValue() (C.VkExportSemaphoreCreateInfo, *cgoAllocMap) { - if x.ref17b8d6c5 != nil { - return *x.ref17b8d6c5, nil +func (x SwapchainCounterCreateInfo) PassValue() (C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { + if x.ref9f21eca6 != nil { + return *x.ref9f21eca6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19443,90 +46369,82 @@ func (x ExportSemaphoreCreateInfo) PassValue() (C.VkExportSemaphoreCreateInfo, * // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExportSemaphoreCreateInfo) Deref() { - if x.ref17b8d6c5 == nil { +func (x *SwapchainCounterCreateInfo) Deref() { + if x.ref9f21eca6 == nil { return } - x.SType = (StructureType)(x.ref17b8d6c5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref17b8d6c5.pNext)) - x.HandleTypes = (ExternalSemaphoreHandleTypeFlags)(x.ref17b8d6c5.handleTypes) + x.SType = (StructureType)(x.ref9f21eca6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9f21eca6.pNext)) + x.SurfaceCounters = (SurfaceCounterFlags)(x.ref9f21eca6.surfaceCounters) } -// allocPhysicalDeviceExternalSemaphoreInfoMemory allocates memory for type C.VkPhysicalDeviceExternalSemaphoreInfo in C. +// allocRefreshCycleDurationGOOGLEMemory allocates memory for type C.VkRefreshCycleDurationGOOGLE in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceExternalSemaphoreInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalSemaphoreInfoValue)) +func allocRefreshCycleDurationGOOGLEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRefreshCycleDurationGOOGLEValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceExternalSemaphoreInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalSemaphoreInfo{}) +const sizeOfRefreshCycleDurationGOOGLEValue = unsafe.Sizeof([1]C.VkRefreshCycleDurationGOOGLE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalSemaphoreInfo) Ref() *C.VkPhysicalDeviceExternalSemaphoreInfo { +func (x *RefreshCycleDurationGOOGLE) Ref() *C.VkRefreshCycleDurationGOOGLE { if x == nil { return nil } - return x.ref5981d29e + return x.ref969cb55b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceExternalSemaphoreInfo) Free() { - if x != nil && x.allocs5981d29e != nil { - x.allocs5981d29e.(*cgoAllocMap).Free() - x.ref5981d29e = nil +func (x *RefreshCycleDurationGOOGLE) Free() { + if x != nil && x.allocs969cb55b != nil { + x.allocs969cb55b.(*cgoAllocMap).Free() + x.ref969cb55b = nil } } -// NewPhysicalDeviceExternalSemaphoreInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewRefreshCycleDurationGOOGLERef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceExternalSemaphoreInfoRef(ref unsafe.Pointer) *PhysicalDeviceExternalSemaphoreInfo { +func NewRefreshCycleDurationGOOGLERef(ref unsafe.Pointer) *RefreshCycleDurationGOOGLE { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalSemaphoreInfo) - obj.ref5981d29e = (*C.VkPhysicalDeviceExternalSemaphoreInfo)(unsafe.Pointer(ref)) + obj := new(RefreshCycleDurationGOOGLE) + obj.ref969cb55b = (*C.VkRefreshCycleDurationGOOGLE)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceExternalSemaphoreInfo) PassRef() (*C.VkPhysicalDeviceExternalSemaphoreInfo, *cgoAllocMap) { +func (x *RefreshCycleDurationGOOGLE) PassRef() (*C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5981d29e != nil { - return x.ref5981d29e, nil + } else if x.ref969cb55b != nil { + return x.ref969cb55b, nil } - mem5981d29e := allocPhysicalDeviceExternalSemaphoreInfoMemory(1) - ref5981d29e := (*C.VkPhysicalDeviceExternalSemaphoreInfo)(mem5981d29e) - allocs5981d29e := new(cgoAllocMap) - allocs5981d29e.Add(mem5981d29e) - - var csType_allocs *cgoAllocMap - ref5981d29e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5981d29e.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref5981d29e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5981d29e.Borrow(cpNext_allocs) + mem969cb55b := allocRefreshCycleDurationGOOGLEMemory(1) + ref969cb55b := (*C.VkRefreshCycleDurationGOOGLE)(mem969cb55b) + allocs969cb55b := new(cgoAllocMap) + allocs969cb55b.Add(mem969cb55b) - var chandleType_allocs *cgoAllocMap - ref5981d29e.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs5981d29e.Borrow(chandleType_allocs) + var crefreshDuration_allocs *cgoAllocMap + ref969cb55b.refreshDuration, crefreshDuration_allocs = (C.uint64_t)(x.RefreshDuration), cgoAllocsUnknown + allocs969cb55b.Borrow(crefreshDuration_allocs) - x.ref5981d29e = ref5981d29e - x.allocs5981d29e = allocs5981d29e - return ref5981d29e, allocs5981d29e + x.ref969cb55b = ref969cb55b + x.allocs969cb55b = allocs969cb55b + return ref969cb55b, allocs969cb55b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceExternalSemaphoreInfo) PassValue() (C.VkPhysicalDeviceExternalSemaphoreInfo, *cgoAllocMap) { - if x.ref5981d29e != nil { - return *x.ref5981d29e, nil +func (x RefreshCycleDurationGOOGLE) PassValue() (C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { + if x.ref969cb55b != nil { + return *x.ref969cb55b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19534,98 +46452,96 @@ func (x PhysicalDeviceExternalSemaphoreInfo) PassValue() (C.VkPhysicalDeviceExte // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceExternalSemaphoreInfo) Deref() { - if x.ref5981d29e == nil { +func (x *RefreshCycleDurationGOOGLE) Deref() { + if x.ref969cb55b == nil { return } - x.SType = (StructureType)(x.ref5981d29e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5981d29e.pNext)) - x.HandleType = (ExternalSemaphoreHandleTypeFlagBits)(x.ref5981d29e.handleType) + x.RefreshDuration = (uint64)(x.ref969cb55b.refreshDuration) } -// allocExternalSemaphorePropertiesMemory allocates memory for type C.VkExternalSemaphoreProperties in C. +// allocPastPresentationTimingGOOGLEMemory allocates memory for type C.VkPastPresentationTimingGOOGLE in C. // The caller is responsible for freeing the this memory via C.free. -func allocExternalSemaphorePropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalSemaphorePropertiesValue)) +func allocPastPresentationTimingGOOGLEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPastPresentationTimingGOOGLEValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExternalSemaphorePropertiesValue = unsafe.Sizeof([1]C.VkExternalSemaphoreProperties{}) +const sizeOfPastPresentationTimingGOOGLEValue = unsafe.Sizeof([1]C.VkPastPresentationTimingGOOGLE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalSemaphoreProperties) Ref() *C.VkExternalSemaphoreProperties { +func (x *PastPresentationTimingGOOGLE) Ref() *C.VkPastPresentationTimingGOOGLE { if x == nil { return nil } - return x.ref87ec1054 + return x.refac8cf1d8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExternalSemaphoreProperties) Free() { - if x != nil && x.allocs87ec1054 != nil { - x.allocs87ec1054.(*cgoAllocMap).Free() - x.ref87ec1054 = nil +func (x *PastPresentationTimingGOOGLE) Free() { + if x != nil && x.allocsac8cf1d8 != nil { + x.allocsac8cf1d8.(*cgoAllocMap).Free() + x.refac8cf1d8 = nil } } -// NewExternalSemaphorePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPastPresentationTimingGOOGLERef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExternalSemaphorePropertiesRef(ref unsafe.Pointer) *ExternalSemaphoreProperties { +func NewPastPresentationTimingGOOGLERef(ref unsafe.Pointer) *PastPresentationTimingGOOGLE { if ref == nil { return nil } - obj := new(ExternalSemaphoreProperties) - obj.ref87ec1054 = (*C.VkExternalSemaphoreProperties)(unsafe.Pointer(ref)) + obj := new(PastPresentationTimingGOOGLE) + obj.refac8cf1d8 = (*C.VkPastPresentationTimingGOOGLE)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExternalSemaphoreProperties) PassRef() (*C.VkExternalSemaphoreProperties, *cgoAllocMap) { +func (x *PastPresentationTimingGOOGLE) PassRef() (*C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref87ec1054 != nil { - return x.ref87ec1054, nil + } else if x.refac8cf1d8 != nil { + return x.refac8cf1d8, nil } - mem87ec1054 := allocExternalSemaphorePropertiesMemory(1) - ref87ec1054 := (*C.VkExternalSemaphoreProperties)(mem87ec1054) - allocs87ec1054 := new(cgoAllocMap) - allocs87ec1054.Add(mem87ec1054) + memac8cf1d8 := allocPastPresentationTimingGOOGLEMemory(1) + refac8cf1d8 := (*C.VkPastPresentationTimingGOOGLE)(memac8cf1d8) + allocsac8cf1d8 := new(cgoAllocMap) + allocsac8cf1d8.Add(memac8cf1d8) - var csType_allocs *cgoAllocMap - ref87ec1054.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs87ec1054.Borrow(csType_allocs) + var cpresentID_allocs *cgoAllocMap + refac8cf1d8.presentID, cpresentID_allocs = (C.uint32_t)(x.PresentID), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cpresentID_allocs) - var cpNext_allocs *cgoAllocMap - ref87ec1054.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs87ec1054.Borrow(cpNext_allocs) + var cdesiredPresentTime_allocs *cgoAllocMap + refac8cf1d8.desiredPresentTime, cdesiredPresentTime_allocs = (C.uint64_t)(x.DesiredPresentTime), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cdesiredPresentTime_allocs) - var cexportFromImportedHandleTypes_allocs *cgoAllocMap - ref87ec1054.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalSemaphoreHandleTypeFlags)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown - allocs87ec1054.Borrow(cexportFromImportedHandleTypes_allocs) + var cactualPresentTime_allocs *cgoAllocMap + refac8cf1d8.actualPresentTime, cactualPresentTime_allocs = (C.uint64_t)(x.ActualPresentTime), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cactualPresentTime_allocs) - var ccompatibleHandleTypes_allocs *cgoAllocMap - ref87ec1054.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalSemaphoreHandleTypeFlags)(x.CompatibleHandleTypes), cgoAllocsUnknown - allocs87ec1054.Borrow(ccompatibleHandleTypes_allocs) + var cearliestPresentTime_allocs *cgoAllocMap + refac8cf1d8.earliestPresentTime, cearliestPresentTime_allocs = (C.uint64_t)(x.EarliestPresentTime), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cearliestPresentTime_allocs) - var cexternalSemaphoreFeatures_allocs *cgoAllocMap - ref87ec1054.externalSemaphoreFeatures, cexternalSemaphoreFeatures_allocs = (C.VkExternalSemaphoreFeatureFlags)(x.ExternalSemaphoreFeatures), cgoAllocsUnknown - allocs87ec1054.Borrow(cexternalSemaphoreFeatures_allocs) + var cpresentMargin_allocs *cgoAllocMap + refac8cf1d8.presentMargin, cpresentMargin_allocs = (C.uint64_t)(x.PresentMargin), cgoAllocsUnknown + allocsac8cf1d8.Borrow(cpresentMargin_allocs) - x.ref87ec1054 = ref87ec1054 - x.allocs87ec1054 = allocs87ec1054 - return ref87ec1054, allocs87ec1054 + x.refac8cf1d8 = refac8cf1d8 + x.allocsac8cf1d8 = allocsac8cf1d8 + return refac8cf1d8, allocsac8cf1d8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExternalSemaphoreProperties) PassValue() (C.VkExternalSemaphoreProperties, *cgoAllocMap) { - if x.ref87ec1054 != nil { - return *x.ref87ec1054, nil +func (x PastPresentationTimingGOOGLE) PassValue() (C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { + if x.refac8cf1d8 != nil { + return *x.refac8cf1d8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19633,96 +46549,88 @@ func (x ExternalSemaphoreProperties) PassValue() (C.VkExternalSemaphorePropertie // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExternalSemaphoreProperties) Deref() { - if x.ref87ec1054 == nil { +func (x *PastPresentationTimingGOOGLE) Deref() { + if x.refac8cf1d8 == nil { return } - x.SType = (StructureType)(x.ref87ec1054.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref87ec1054.pNext)) - x.ExportFromImportedHandleTypes = (ExternalSemaphoreHandleTypeFlags)(x.ref87ec1054.exportFromImportedHandleTypes) - x.CompatibleHandleTypes = (ExternalSemaphoreHandleTypeFlags)(x.ref87ec1054.compatibleHandleTypes) - x.ExternalSemaphoreFeatures = (ExternalSemaphoreFeatureFlags)(x.ref87ec1054.externalSemaphoreFeatures) + x.PresentID = (uint32)(x.refac8cf1d8.presentID) + x.DesiredPresentTime = (uint64)(x.refac8cf1d8.desiredPresentTime) + x.ActualPresentTime = (uint64)(x.refac8cf1d8.actualPresentTime) + x.EarliestPresentTime = (uint64)(x.refac8cf1d8.earliestPresentTime) + x.PresentMargin = (uint64)(x.refac8cf1d8.presentMargin) } -// allocPhysicalDeviceMaintenance3PropertiesMemory allocates memory for type C.VkPhysicalDeviceMaintenance3Properties in C. +// allocPresentTimeGOOGLEMemory allocates memory for type C.VkPresentTimeGOOGLE in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMaintenance3PropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMaintenance3PropertiesValue)) +func allocPresentTimeGOOGLEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentTimeGOOGLEValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceMaintenance3PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMaintenance3Properties{}) +const sizeOfPresentTimeGOOGLEValue = unsafe.Sizeof([1]C.VkPresentTimeGOOGLE{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMaintenance3Properties) Ref() *C.VkPhysicalDeviceMaintenance3Properties { +func (x *PresentTimeGOOGLE) Ref() *C.VkPresentTimeGOOGLE { if x == nil { return nil } - return x.ref12c07777 + return x.ref9cd90ade } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceMaintenance3Properties) Free() { - if x != nil && x.allocs12c07777 != nil { - x.allocs12c07777.(*cgoAllocMap).Free() - x.ref12c07777 = nil +func (x *PresentTimeGOOGLE) Free() { + if x != nil && x.allocs9cd90ade != nil { + x.allocs9cd90ade.(*cgoAllocMap).Free() + x.ref9cd90ade = nil } } -// NewPhysicalDeviceMaintenance3PropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPresentTimeGOOGLERef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceMaintenance3PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMaintenance3Properties { +func NewPresentTimeGOOGLERef(ref unsafe.Pointer) *PresentTimeGOOGLE { if ref == nil { return nil } - obj := new(PhysicalDeviceMaintenance3Properties) - obj.ref12c07777 = (*C.VkPhysicalDeviceMaintenance3Properties)(unsafe.Pointer(ref)) + obj := new(PresentTimeGOOGLE) + obj.ref9cd90ade = (*C.VkPresentTimeGOOGLE)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceMaintenance3Properties) PassRef() (*C.VkPhysicalDeviceMaintenance3Properties, *cgoAllocMap) { +func (x *PresentTimeGOOGLE) PassRef() (*C.VkPresentTimeGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref12c07777 != nil { - return x.ref12c07777, nil + } else if x.ref9cd90ade != nil { + return x.ref9cd90ade, nil } - mem12c07777 := allocPhysicalDeviceMaintenance3PropertiesMemory(1) - ref12c07777 := (*C.VkPhysicalDeviceMaintenance3Properties)(mem12c07777) - allocs12c07777 := new(cgoAllocMap) - allocs12c07777.Add(mem12c07777) - - var csType_allocs *cgoAllocMap - ref12c07777.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs12c07777.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref12c07777.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs12c07777.Borrow(cpNext_allocs) + mem9cd90ade := allocPresentTimeGOOGLEMemory(1) + ref9cd90ade := (*C.VkPresentTimeGOOGLE)(mem9cd90ade) + allocs9cd90ade := new(cgoAllocMap) + allocs9cd90ade.Add(mem9cd90ade) - var cmaxPerSetDescriptors_allocs *cgoAllocMap - ref12c07777.maxPerSetDescriptors, cmaxPerSetDescriptors_allocs = (C.uint32_t)(x.MaxPerSetDescriptors), cgoAllocsUnknown - allocs12c07777.Borrow(cmaxPerSetDescriptors_allocs) + var cpresentID_allocs *cgoAllocMap + ref9cd90ade.presentID, cpresentID_allocs = (C.uint32_t)(x.PresentID), cgoAllocsUnknown + allocs9cd90ade.Borrow(cpresentID_allocs) - var cmaxMemoryAllocationSize_allocs *cgoAllocMap - ref12c07777.maxMemoryAllocationSize, cmaxMemoryAllocationSize_allocs = (C.VkDeviceSize)(x.MaxMemoryAllocationSize), cgoAllocsUnknown - allocs12c07777.Borrow(cmaxMemoryAllocationSize_allocs) + var cdesiredPresentTime_allocs *cgoAllocMap + ref9cd90ade.desiredPresentTime, cdesiredPresentTime_allocs = (C.uint64_t)(x.DesiredPresentTime), cgoAllocsUnknown + allocs9cd90ade.Borrow(cdesiredPresentTime_allocs) - x.ref12c07777 = ref12c07777 - x.allocs12c07777 = allocs12c07777 - return ref12c07777, allocs12c07777 + x.ref9cd90ade = ref9cd90ade + x.allocs9cd90ade = allocs9cd90ade + return ref9cd90ade, allocs9cd90ade } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceMaintenance3Properties) PassValue() (C.VkPhysicalDeviceMaintenance3Properties, *cgoAllocMap) { - if x.ref12c07777 != nil { - return *x.ref12c07777, nil +func (x PresentTimeGOOGLE) PassValue() (C.VkPresentTimeGOOGLE, *cgoAllocMap) { + if x.ref9cd90ade != nil { + return *x.ref9cd90ade, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19730,91 +46638,131 @@ func (x PhysicalDeviceMaintenance3Properties) PassValue() (C.VkPhysicalDeviceMai // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMaintenance3Properties) Deref() { - if x.ref12c07777 == nil { +func (x *PresentTimeGOOGLE) Deref() { + if x.ref9cd90ade == nil { return } - x.SType = (StructureType)(x.ref12c07777.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref12c07777.pNext)) - x.MaxPerSetDescriptors = (uint32)(x.ref12c07777.maxPerSetDescriptors) - x.MaxMemoryAllocationSize = (DeviceSize)(x.ref12c07777.maxMemoryAllocationSize) + x.PresentID = (uint32)(x.ref9cd90ade.presentID) + x.DesiredPresentTime = (uint64)(x.ref9cd90ade.desiredPresentTime) } -// allocDescriptorSetLayoutSupportMemory allocates memory for type C.VkDescriptorSetLayoutSupport in C. +// allocPresentTimesInfoGOOGLEMemory allocates memory for type C.VkPresentTimesInfoGOOGLE in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetLayoutSupportMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutSupportValue)) +func allocPresentTimesInfoGOOGLEMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentTimesInfoGOOGLEValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorSetLayoutSupportValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutSupport{}) +const sizeOfPresentTimesInfoGOOGLEValue = unsafe.Sizeof([1]C.VkPresentTimesInfoGOOGLE{}) + +// unpackSPresentTimeGOOGLE transforms a sliced Go data structure into plain C format. +func unpackSPresentTimeGOOGLE(x []PresentTimeGOOGLE) (unpacked *C.VkPresentTimeGOOGLE, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkPresentTimeGOOGLE) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocPresentTimeGOOGLEMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkPresentTimeGOOGLE)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkPresentTimeGOOGLE)(h.Data) + return +} + +// packSPresentTimeGOOGLE reads sliced Go data structure out from plain C format. +func packSPresentTimeGOOGLE(v []PresentTimeGOOGLE, ptr0 *C.VkPresentTimeGOOGLE) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfPresentTimeGOOGLEValue]C.VkPresentTimeGOOGLE)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewPresentTimeGOOGLERef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetLayoutSupport) Ref() *C.VkDescriptorSetLayoutSupport { +func (x *PresentTimesInfoGOOGLE) Ref() *C.VkPresentTimesInfoGOOGLE { if x == nil { return nil } - return x.ref5802686c + return x.ref70eb8ab3 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorSetLayoutSupport) Free() { - if x != nil && x.allocs5802686c != nil { - x.allocs5802686c.(*cgoAllocMap).Free() - x.ref5802686c = nil +func (x *PresentTimesInfoGOOGLE) Free() { + if x != nil && x.allocs70eb8ab3 != nil { + x.allocs70eb8ab3.(*cgoAllocMap).Free() + x.ref70eb8ab3 = nil } } -// NewDescriptorSetLayoutSupportRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPresentTimesInfoGOOGLERef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorSetLayoutSupportRef(ref unsafe.Pointer) *DescriptorSetLayoutSupport { +func NewPresentTimesInfoGOOGLERef(ref unsafe.Pointer) *PresentTimesInfoGOOGLE { if ref == nil { return nil } - obj := new(DescriptorSetLayoutSupport) - obj.ref5802686c = (*C.VkDescriptorSetLayoutSupport)(unsafe.Pointer(ref)) + obj := new(PresentTimesInfoGOOGLE) + obj.ref70eb8ab3 = (*C.VkPresentTimesInfoGOOGLE)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorSetLayoutSupport) PassRef() (*C.VkDescriptorSetLayoutSupport, *cgoAllocMap) { +func (x *PresentTimesInfoGOOGLE) PassRef() (*C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5802686c != nil { - return x.ref5802686c, nil + } else if x.ref70eb8ab3 != nil { + return x.ref70eb8ab3, nil } - mem5802686c := allocDescriptorSetLayoutSupportMemory(1) - ref5802686c := (*C.VkDescriptorSetLayoutSupport)(mem5802686c) - allocs5802686c := new(cgoAllocMap) - allocs5802686c.Add(mem5802686c) + mem70eb8ab3 := allocPresentTimesInfoGOOGLEMemory(1) + ref70eb8ab3 := (*C.VkPresentTimesInfoGOOGLE)(mem70eb8ab3) + allocs70eb8ab3 := new(cgoAllocMap) + allocs70eb8ab3.Add(mem70eb8ab3) var csType_allocs *cgoAllocMap - ref5802686c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5802686c.Borrow(csType_allocs) + ref70eb8ab3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs70eb8ab3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5802686c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5802686c.Borrow(cpNext_allocs) + ref70eb8ab3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs70eb8ab3.Borrow(cpNext_allocs) - var csupported_allocs *cgoAllocMap - ref5802686c.supported, csupported_allocs = (C.VkBool32)(x.Supported), cgoAllocsUnknown - allocs5802686c.Borrow(csupported_allocs) + var cswapchainCount_allocs *cgoAllocMap + ref70eb8ab3.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocs70eb8ab3.Borrow(cswapchainCount_allocs) - x.ref5802686c = ref5802686c - x.allocs5802686c = allocs5802686c - return ref5802686c, allocs5802686c + var cpTimes_allocs *cgoAllocMap + ref70eb8ab3.pTimes, cpTimes_allocs = unpackSPresentTimeGOOGLE(x.PTimes) + allocs70eb8ab3.Borrow(cpTimes_allocs) + + x.ref70eb8ab3 = ref70eb8ab3 + x.allocs70eb8ab3 = allocs70eb8ab3 + return ref70eb8ab3, allocs70eb8ab3 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorSetLayoutSupport) PassValue() (C.VkDescriptorSetLayoutSupport, *cgoAllocMap) { - if x.ref5802686c != nil { - return *x.ref5802686c, nil +func (x PresentTimesInfoGOOGLE) PassValue() (C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { + if x.ref70eb8ab3 != nil { + return *x.ref70eb8ab3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19822,90 +46770,91 @@ func (x DescriptorSetLayoutSupport) PassValue() (C.VkDescriptorSetLayoutSupport, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorSetLayoutSupport) Deref() { - if x.ref5802686c == nil { +func (x *PresentTimesInfoGOOGLE) Deref() { + if x.ref70eb8ab3 == nil { return } - x.SType = (StructureType)(x.ref5802686c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5802686c.pNext)) - x.Supported = (Bool32)(x.ref5802686c.supported) + x.SType = (StructureType)(x.ref70eb8ab3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref70eb8ab3.pNext)) + x.SwapchainCount = (uint32)(x.ref70eb8ab3.swapchainCount) + packSPresentTimeGOOGLE(x.PTimes, x.ref70eb8ab3.pTimes) } -// allocPhysicalDeviceShaderDrawParameterFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderDrawParameterFeatures in C. +// allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory allocates memory for type C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderDrawParameterFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderDrawParameterFeaturesValue)) +func allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceShaderDrawParameterFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderDrawParameterFeatures{}) +const sizeOfPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderDrawParameterFeatures) Ref() *C.VkPhysicalDeviceShaderDrawParameterFeatures { +func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Ref() *C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { if x == nil { return nil } - return x.ref23259ea6 + return x.refbaf399ad } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceShaderDrawParameterFeatures) Free() { - if x != nil && x.allocs23259ea6 != nil { - x.allocs23259ea6.(*cgoAllocMap).Free() - x.ref23259ea6 = nil +func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Free() { + if x != nil && x.allocsbaf399ad != nil { + x.allocsbaf399ad.(*cgoAllocMap).Free() + x.refbaf399ad = nil } } -// NewPhysicalDeviceShaderDrawParameterFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceShaderDrawParameterFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderDrawParameterFeatures { +func NewPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderDrawParameterFeatures) - obj.ref23259ea6 = (*C.VkPhysicalDeviceShaderDrawParameterFeatures)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) + obj.refbaf399ad = (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceShaderDrawParameterFeatures) PassRef() (*C.VkPhysicalDeviceShaderDrawParameterFeatures, *cgoAllocMap) { +func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassRef() (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref23259ea6 != nil { - return x.ref23259ea6, nil + } else if x.refbaf399ad != nil { + return x.refbaf399ad, nil } - mem23259ea6 := allocPhysicalDeviceShaderDrawParameterFeaturesMemory(1) - ref23259ea6 := (*C.VkPhysicalDeviceShaderDrawParameterFeatures)(mem23259ea6) - allocs23259ea6 := new(cgoAllocMap) - allocs23259ea6.Add(mem23259ea6) + membaf399ad := allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory(1) + refbaf399ad := (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)(membaf399ad) + allocsbaf399ad := new(cgoAllocMap) + allocsbaf399ad.Add(membaf399ad) var csType_allocs *cgoAllocMap - ref23259ea6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs23259ea6.Borrow(csType_allocs) + refbaf399ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbaf399ad.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref23259ea6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs23259ea6.Borrow(cpNext_allocs) + refbaf399ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbaf399ad.Borrow(cpNext_allocs) - var cshaderDrawParameters_allocs *cgoAllocMap - ref23259ea6.shaderDrawParameters, cshaderDrawParameters_allocs = (C.VkBool32)(x.ShaderDrawParameters), cgoAllocsUnknown - allocs23259ea6.Borrow(cshaderDrawParameters_allocs) + var cperViewPositionAllComponents_allocs *cgoAllocMap + refbaf399ad.perViewPositionAllComponents, cperViewPositionAllComponents_allocs = (C.VkBool32)(x.PerViewPositionAllComponents), cgoAllocsUnknown + allocsbaf399ad.Borrow(cperViewPositionAllComponents_allocs) - x.ref23259ea6 = ref23259ea6 - x.allocs23259ea6 = allocs23259ea6 - return ref23259ea6, allocs23259ea6 + x.refbaf399ad = refbaf399ad + x.allocsbaf399ad = allocsbaf399ad + return refbaf399ad, allocsbaf399ad } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceShaderDrawParameterFeatures) PassValue() (C.VkPhysicalDeviceShaderDrawParameterFeatures, *cgoAllocMap) { - if x.ref23259ea6 != nil { - return *x.ref23259ea6, nil +func (x PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassValue() (C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { + if x.refbaf399ad != nil { + return *x.refbaf399ad, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -19913,118 +46862,94 @@ func (x PhysicalDeviceShaderDrawParameterFeatures) PassValue() (C.VkPhysicalDevi // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceShaderDrawParameterFeatures) Deref() { - if x.ref23259ea6 == nil { +func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Deref() { + if x.refbaf399ad == nil { return } - x.SType = (StructureType)(x.ref23259ea6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref23259ea6.pNext)) - x.ShaderDrawParameters = (Bool32)(x.ref23259ea6.shaderDrawParameters) + x.SType = (StructureType)(x.refbaf399ad.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbaf399ad.pNext)) + x.PerViewPositionAllComponents = (Bool32)(x.refbaf399ad.perViewPositionAllComponents) } -// allocSurfaceCapabilitiesMemory allocates memory for type C.VkSurfaceCapabilitiesKHR in C. +// allocViewportSwizzleNVMemory allocates memory for type C.VkViewportSwizzleNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocSurfaceCapabilitiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceCapabilitiesValue)) +func allocViewportSwizzleNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfViewportSwizzleNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSurfaceCapabilitiesValue = unsafe.Sizeof([1]C.VkSurfaceCapabilitiesKHR{}) +const sizeOfViewportSwizzleNVValue = unsafe.Sizeof([1]C.VkViewportSwizzleNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SurfaceCapabilities) Ref() *C.VkSurfaceCapabilitiesKHR { +func (x *ViewportSwizzleNV) Ref() *C.VkViewportSwizzleNV { if x == nil { return nil } - return x.ref11d5f596 + return x.ref74ff2887 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SurfaceCapabilities) Free() { - if x != nil && x.allocs11d5f596 != nil { - x.allocs11d5f596.(*cgoAllocMap).Free() - x.ref11d5f596 = nil +func (x *ViewportSwizzleNV) Free() { + if x != nil && x.allocs74ff2887 != nil { + x.allocs74ff2887.(*cgoAllocMap).Free() + x.ref74ff2887 = nil } } -// NewSurfaceCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewViewportSwizzleNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSurfaceCapabilitiesRef(ref unsafe.Pointer) *SurfaceCapabilities { +func NewViewportSwizzleNVRef(ref unsafe.Pointer) *ViewportSwizzleNV { if ref == nil { return nil } - obj := new(SurfaceCapabilities) - obj.ref11d5f596 = (*C.VkSurfaceCapabilitiesKHR)(unsafe.Pointer(ref)) + obj := new(ViewportSwizzleNV) + obj.ref74ff2887 = (*C.VkViewportSwizzleNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SurfaceCapabilities) PassRef() (*C.VkSurfaceCapabilitiesKHR, *cgoAllocMap) { +func (x *ViewportSwizzleNV) PassRef() (*C.VkViewportSwizzleNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref11d5f596 != nil { - return x.ref11d5f596, nil + } else if x.ref74ff2887 != nil { + return x.ref74ff2887, nil } - mem11d5f596 := allocSurfaceCapabilitiesMemory(1) - ref11d5f596 := (*C.VkSurfaceCapabilitiesKHR)(mem11d5f596) - allocs11d5f596 := new(cgoAllocMap) - allocs11d5f596.Add(mem11d5f596) - - var cminImageCount_allocs *cgoAllocMap - ref11d5f596.minImageCount, cminImageCount_allocs = (C.uint32_t)(x.MinImageCount), cgoAllocsUnknown - allocs11d5f596.Borrow(cminImageCount_allocs) - - var cmaxImageCount_allocs *cgoAllocMap - ref11d5f596.maxImageCount, cmaxImageCount_allocs = (C.uint32_t)(x.MaxImageCount), cgoAllocsUnknown - allocs11d5f596.Borrow(cmaxImageCount_allocs) - - var ccurrentExtent_allocs *cgoAllocMap - ref11d5f596.currentExtent, ccurrentExtent_allocs = x.CurrentExtent.PassValue() - allocs11d5f596.Borrow(ccurrentExtent_allocs) - - var cminImageExtent_allocs *cgoAllocMap - ref11d5f596.minImageExtent, cminImageExtent_allocs = x.MinImageExtent.PassValue() - allocs11d5f596.Borrow(cminImageExtent_allocs) - - var cmaxImageExtent_allocs *cgoAllocMap - ref11d5f596.maxImageExtent, cmaxImageExtent_allocs = x.MaxImageExtent.PassValue() - allocs11d5f596.Borrow(cmaxImageExtent_allocs) - - var cmaxImageArrayLayers_allocs *cgoAllocMap - ref11d5f596.maxImageArrayLayers, cmaxImageArrayLayers_allocs = (C.uint32_t)(x.MaxImageArrayLayers), cgoAllocsUnknown - allocs11d5f596.Borrow(cmaxImageArrayLayers_allocs) + mem74ff2887 := allocViewportSwizzleNVMemory(1) + ref74ff2887 := (*C.VkViewportSwizzleNV)(mem74ff2887) + allocs74ff2887 := new(cgoAllocMap) + allocs74ff2887.Add(mem74ff2887) - var csupportedTransforms_allocs *cgoAllocMap - ref11d5f596.supportedTransforms, csupportedTransforms_allocs = (C.VkSurfaceTransformFlagsKHR)(x.SupportedTransforms), cgoAllocsUnknown - allocs11d5f596.Borrow(csupportedTransforms_allocs) + var cx_allocs *cgoAllocMap + ref74ff2887.x, cx_allocs = (C.VkViewportCoordinateSwizzleNV)(x.X), cgoAllocsUnknown + allocs74ff2887.Borrow(cx_allocs) - var ccurrentTransform_allocs *cgoAllocMap - ref11d5f596.currentTransform, ccurrentTransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.CurrentTransform), cgoAllocsUnknown - allocs11d5f596.Borrow(ccurrentTransform_allocs) + var cy_allocs *cgoAllocMap + ref74ff2887.y, cy_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Y), cgoAllocsUnknown + allocs74ff2887.Borrow(cy_allocs) - var csupportedCompositeAlpha_allocs *cgoAllocMap - ref11d5f596.supportedCompositeAlpha, csupportedCompositeAlpha_allocs = (C.VkCompositeAlphaFlagsKHR)(x.SupportedCompositeAlpha), cgoAllocsUnknown - allocs11d5f596.Borrow(csupportedCompositeAlpha_allocs) + var cz_allocs *cgoAllocMap + ref74ff2887.z, cz_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Z), cgoAllocsUnknown + allocs74ff2887.Borrow(cz_allocs) - var csupportedUsageFlags_allocs *cgoAllocMap - ref11d5f596.supportedUsageFlags, csupportedUsageFlags_allocs = (C.VkImageUsageFlags)(x.SupportedUsageFlags), cgoAllocsUnknown - allocs11d5f596.Borrow(csupportedUsageFlags_allocs) + var cw_allocs *cgoAllocMap + ref74ff2887.w, cw_allocs = (C.VkViewportCoordinateSwizzleNV)(x.W), cgoAllocsUnknown + allocs74ff2887.Borrow(cw_allocs) - x.ref11d5f596 = ref11d5f596 - x.allocs11d5f596 = allocs11d5f596 - return ref11d5f596, allocs11d5f596 + x.ref74ff2887 = ref74ff2887 + x.allocs74ff2887 = allocs74ff2887 + return ref74ff2887, allocs74ff2887 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SurfaceCapabilities) PassValue() (C.VkSurfaceCapabilitiesKHR, *cgoAllocMap) { - if x.ref11d5f596 != nil { - return *x.ref11d5f596, nil +func (x ViewportSwizzleNV) PassValue() (C.VkViewportSwizzleNV, *cgoAllocMap) { + if x.ref74ff2887 != nil { + return *x.ref74ff2887, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20032,93 +46957,137 @@ func (x SurfaceCapabilities) PassValue() (C.VkSurfaceCapabilitiesKHR, *cgoAllocM // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SurfaceCapabilities) Deref() { - if x.ref11d5f596 == nil { +func (x *ViewportSwizzleNV) Deref() { + if x.ref74ff2887 == nil { return } - x.MinImageCount = (uint32)(x.ref11d5f596.minImageCount) - x.MaxImageCount = (uint32)(x.ref11d5f596.maxImageCount) - x.CurrentExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref11d5f596.currentExtent)) - x.MinImageExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref11d5f596.minImageExtent)) - x.MaxImageExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref11d5f596.maxImageExtent)) - x.MaxImageArrayLayers = (uint32)(x.ref11d5f596.maxImageArrayLayers) - x.SupportedTransforms = (SurfaceTransformFlags)(x.ref11d5f596.supportedTransforms) - x.CurrentTransform = (SurfaceTransformFlagBits)(x.ref11d5f596.currentTransform) - x.SupportedCompositeAlpha = (CompositeAlphaFlags)(x.ref11d5f596.supportedCompositeAlpha) - x.SupportedUsageFlags = (ImageUsageFlags)(x.ref11d5f596.supportedUsageFlags) + x.X = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.x) + x.Y = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.y) + x.Z = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.z) + x.W = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.w) } -// allocSurfaceFormatMemory allocates memory for type C.VkSurfaceFormatKHR in C. +// allocPipelineViewportSwizzleStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportSwizzleStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocSurfaceFormatMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceFormatValue)) +func allocPipelineViewportSwizzleStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportSwizzleStateCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSurfaceFormatValue = unsafe.Sizeof([1]C.VkSurfaceFormatKHR{}) +const sizeOfPipelineViewportSwizzleStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportSwizzleStateCreateInfoNV{}) + +// unpackSViewportSwizzleNV transforms a sliced Go data structure into plain C format. +func unpackSViewportSwizzleNV(x []ViewportSwizzleNV) (unpacked *C.VkViewportSwizzleNV, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkViewportSwizzleNV) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocViewportSwizzleNVMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkViewportSwizzleNV)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkViewportSwizzleNV)(h.Data) + return +} + +// packSViewportSwizzleNV reads sliced Go data structure out from plain C format. +func packSViewportSwizzleNV(v []ViewportSwizzleNV, ptr0 *C.VkViewportSwizzleNV) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfViewportSwizzleNVValue]C.VkViewportSwizzleNV)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewViewportSwizzleNVRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SurfaceFormat) Ref() *C.VkSurfaceFormatKHR { +func (x *PipelineViewportSwizzleStateCreateInfoNV) Ref() *C.VkPipelineViewportSwizzleStateCreateInfoNV { if x == nil { return nil } - return x.refedaf82ca + return x.ref5e90f24 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SurfaceFormat) Free() { - if x != nil && x.allocsedaf82ca != nil { - x.allocsedaf82ca.(*cgoAllocMap).Free() - x.refedaf82ca = nil +func (x *PipelineViewportSwizzleStateCreateInfoNV) Free() { + if x != nil && x.allocs5e90f24 != nil { + x.allocs5e90f24.(*cgoAllocMap).Free() + x.ref5e90f24 = nil } } -// NewSurfaceFormatRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineViewportSwizzleStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSurfaceFormatRef(ref unsafe.Pointer) *SurfaceFormat { +func NewPipelineViewportSwizzleStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportSwizzleStateCreateInfoNV { if ref == nil { return nil } - obj := new(SurfaceFormat) - obj.refedaf82ca = (*C.VkSurfaceFormatKHR)(unsafe.Pointer(ref)) + obj := new(PipelineViewportSwizzleStateCreateInfoNV) + obj.ref5e90f24 = (*C.VkPipelineViewportSwizzleStateCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SurfaceFormat) PassRef() (*C.VkSurfaceFormatKHR, *cgoAllocMap) { +func (x *PipelineViewportSwizzleStateCreateInfoNV) PassRef() (*C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refedaf82ca != nil { - return x.refedaf82ca, nil + } else if x.ref5e90f24 != nil { + return x.ref5e90f24, nil } - memedaf82ca := allocSurfaceFormatMemory(1) - refedaf82ca := (*C.VkSurfaceFormatKHR)(memedaf82ca) - allocsedaf82ca := new(cgoAllocMap) - allocsedaf82ca.Add(memedaf82ca) + mem5e90f24 := allocPipelineViewportSwizzleStateCreateInfoNVMemory(1) + ref5e90f24 := (*C.VkPipelineViewportSwizzleStateCreateInfoNV)(mem5e90f24) + allocs5e90f24 := new(cgoAllocMap) + allocs5e90f24.Add(mem5e90f24) - var cformat_allocs *cgoAllocMap - refedaf82ca.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocsedaf82ca.Borrow(cformat_allocs) + var csType_allocs *cgoAllocMap + ref5e90f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e90f24.Borrow(csType_allocs) - var ccolorSpace_allocs *cgoAllocMap - refedaf82ca.colorSpace, ccolorSpace_allocs = (C.VkColorSpaceKHR)(x.ColorSpace), cgoAllocsUnknown - allocsedaf82ca.Borrow(ccolorSpace_allocs) + var cpNext_allocs *cgoAllocMap + ref5e90f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e90f24.Borrow(cpNext_allocs) - x.refedaf82ca = refedaf82ca - x.allocsedaf82ca = allocsedaf82ca - return refedaf82ca, allocsedaf82ca + var cflags_allocs *cgoAllocMap + ref5e90f24.flags, cflags_allocs = (C.VkPipelineViewportSwizzleStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocs5e90f24.Borrow(cflags_allocs) + + var cviewportCount_allocs *cgoAllocMap + ref5e90f24.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown + allocs5e90f24.Borrow(cviewportCount_allocs) + + var cpViewportSwizzles_allocs *cgoAllocMap + ref5e90f24.pViewportSwizzles, cpViewportSwizzles_allocs = unpackSViewportSwizzleNV(x.PViewportSwizzles) + allocs5e90f24.Borrow(cpViewportSwizzles_allocs) + + x.ref5e90f24 = ref5e90f24 + x.allocs5e90f24 = allocs5e90f24 + return ref5e90f24, allocs5e90f24 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SurfaceFormat) PassValue() (C.VkSurfaceFormatKHR, *cgoAllocMap) { - if x.refedaf82ca != nil { - return *x.refedaf82ca, nil +func (x PipelineViewportSwizzleStateCreateInfoNV) PassValue() (C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { + if x.ref5e90f24 != nil { + return *x.ref5e90f24, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20126,149 +47095,92 @@ func (x SurfaceFormat) PassValue() (C.VkSurfaceFormatKHR, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SurfaceFormat) Deref() { - if x.refedaf82ca == nil { +func (x *PipelineViewportSwizzleStateCreateInfoNV) Deref() { + if x.ref5e90f24 == nil { return } - x.Format = (Format)(x.refedaf82ca.format) - x.ColorSpace = (ColorSpace)(x.refedaf82ca.colorSpace) + x.SType = (StructureType)(x.ref5e90f24.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5e90f24.pNext)) + x.Flags = (PipelineViewportSwizzleStateCreateFlagsNV)(x.ref5e90f24.flags) + x.ViewportCount = (uint32)(x.ref5e90f24.viewportCount) + packSViewportSwizzleNV(x.PViewportSwizzles, x.ref5e90f24.pViewportSwizzles) } -// allocSwapchainCreateInfoMemory allocates memory for type C.VkSwapchainCreateInfoKHR in C. +// allocPhysicalDeviceDiscardRectanglePropertiesMemory allocates memory for type C.VkPhysicalDeviceDiscardRectanglePropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSwapchainCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainCreateInfoValue)) +func allocPhysicalDeviceDiscardRectanglePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDiscardRectanglePropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainCreateInfoKHR{}) +const sizeOfPhysicalDeviceDiscardRectanglePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDiscardRectanglePropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SwapchainCreateInfo) Ref() *C.VkSwapchainCreateInfoKHR { +func (x *PhysicalDeviceDiscardRectangleProperties) Ref() *C.VkPhysicalDeviceDiscardRectanglePropertiesEXT { if x == nil { return nil } - return x.refdb619e1c + return x.reffe8591da } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SwapchainCreateInfo) Free() { - if x != nil && x.allocsdb619e1c != nil { - x.allocsdb619e1c.(*cgoAllocMap).Free() - x.refdb619e1c = nil +func (x *PhysicalDeviceDiscardRectangleProperties) Free() { + if x != nil && x.allocsfe8591da != nil { + x.allocsfe8591da.(*cgoAllocMap).Free() + x.reffe8591da = nil } } -// NewSwapchainCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDiscardRectanglePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSwapchainCreateInfoRef(ref unsafe.Pointer) *SwapchainCreateInfo { +func NewPhysicalDeviceDiscardRectanglePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDiscardRectangleProperties { if ref == nil { return nil } - obj := new(SwapchainCreateInfo) - obj.refdb619e1c = (*C.VkSwapchainCreateInfoKHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDiscardRectangleProperties) + obj.reffe8591da = (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SwapchainCreateInfo) PassRef() (*C.VkSwapchainCreateInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceDiscardRectangleProperties) PassRef() (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdb619e1c != nil { - return x.refdb619e1c, nil + } else if x.reffe8591da != nil { + return x.reffe8591da, nil } - memdb619e1c := allocSwapchainCreateInfoMemory(1) - refdb619e1c := (*C.VkSwapchainCreateInfoKHR)(memdb619e1c) - allocsdb619e1c := new(cgoAllocMap) - allocsdb619e1c.Add(memdb619e1c) + memfe8591da := allocPhysicalDeviceDiscardRectanglePropertiesMemory(1) + reffe8591da := (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT)(memfe8591da) + allocsfe8591da := new(cgoAllocMap) + allocsfe8591da.Add(memfe8591da) var csType_allocs *cgoAllocMap - refdb619e1c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdb619e1c.Borrow(csType_allocs) + reffe8591da.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfe8591da.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdb619e1c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdb619e1c.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refdb619e1c.flags, cflags_allocs = (C.VkSwapchainCreateFlagsKHR)(x.Flags), cgoAllocsUnknown - allocsdb619e1c.Borrow(cflags_allocs) - - var csurface_allocs *cgoAllocMap - refdb619e1c.surface, csurface_allocs = *(*C.VkSurfaceKHR)(unsafe.Pointer(&x.Surface)), cgoAllocsUnknown - allocsdb619e1c.Borrow(csurface_allocs) - - var cminImageCount_allocs *cgoAllocMap - refdb619e1c.minImageCount, cminImageCount_allocs = (C.uint32_t)(x.MinImageCount), cgoAllocsUnknown - allocsdb619e1c.Borrow(cminImageCount_allocs) - - var cimageFormat_allocs *cgoAllocMap - refdb619e1c.imageFormat, cimageFormat_allocs = (C.VkFormat)(x.ImageFormat), cgoAllocsUnknown - allocsdb619e1c.Borrow(cimageFormat_allocs) - - var cimageColorSpace_allocs *cgoAllocMap - refdb619e1c.imageColorSpace, cimageColorSpace_allocs = (C.VkColorSpaceKHR)(x.ImageColorSpace), cgoAllocsUnknown - allocsdb619e1c.Borrow(cimageColorSpace_allocs) - - var cimageExtent_allocs *cgoAllocMap - refdb619e1c.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() - allocsdb619e1c.Borrow(cimageExtent_allocs) - - var cimageArrayLayers_allocs *cgoAllocMap - refdb619e1c.imageArrayLayers, cimageArrayLayers_allocs = (C.uint32_t)(x.ImageArrayLayers), cgoAllocsUnknown - allocsdb619e1c.Borrow(cimageArrayLayers_allocs) - - var cimageUsage_allocs *cgoAllocMap - refdb619e1c.imageUsage, cimageUsage_allocs = (C.VkImageUsageFlags)(x.ImageUsage), cgoAllocsUnknown - allocsdb619e1c.Borrow(cimageUsage_allocs) - - var cimageSharingMode_allocs *cgoAllocMap - refdb619e1c.imageSharingMode, cimageSharingMode_allocs = (C.VkSharingMode)(x.ImageSharingMode), cgoAllocsUnknown - allocsdb619e1c.Borrow(cimageSharingMode_allocs) - - var cqueueFamilyIndexCount_allocs *cgoAllocMap - refdb619e1c.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown - allocsdb619e1c.Borrow(cqueueFamilyIndexCount_allocs) - - var cpQueueFamilyIndices_allocs *cgoAllocMap - refdb619e1c.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown - allocsdb619e1c.Borrow(cpQueueFamilyIndices_allocs) - - var cpreTransform_allocs *cgoAllocMap - refdb619e1c.preTransform, cpreTransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.PreTransform), cgoAllocsUnknown - allocsdb619e1c.Borrow(cpreTransform_allocs) - - var ccompositeAlpha_allocs *cgoAllocMap - refdb619e1c.compositeAlpha, ccompositeAlpha_allocs = (C.VkCompositeAlphaFlagBitsKHR)(x.CompositeAlpha), cgoAllocsUnknown - allocsdb619e1c.Borrow(ccompositeAlpha_allocs) - - var cpresentMode_allocs *cgoAllocMap - refdb619e1c.presentMode, cpresentMode_allocs = (C.VkPresentModeKHR)(x.PresentMode), cgoAllocsUnknown - allocsdb619e1c.Borrow(cpresentMode_allocs) - - var cclipped_allocs *cgoAllocMap - refdb619e1c.clipped, cclipped_allocs = (C.VkBool32)(x.Clipped), cgoAllocsUnknown - allocsdb619e1c.Borrow(cclipped_allocs) + reffe8591da.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfe8591da.Borrow(cpNext_allocs) - var coldSwapchain_allocs *cgoAllocMap - refdb619e1c.oldSwapchain, coldSwapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.OldSwapchain)), cgoAllocsUnknown - allocsdb619e1c.Borrow(coldSwapchain_allocs) + var cmaxDiscardRectangles_allocs *cgoAllocMap + reffe8591da.maxDiscardRectangles, cmaxDiscardRectangles_allocs = (C.uint32_t)(x.MaxDiscardRectangles), cgoAllocsUnknown + allocsfe8591da.Borrow(cmaxDiscardRectangles_allocs) - x.refdb619e1c = refdb619e1c - x.allocsdb619e1c = allocsdb619e1c - return refdb619e1c, allocsdb619e1c + x.reffe8591da = reffe8591da + x.allocsfe8591da = allocsfe8591da + return reffe8591da, allocsfe8591da } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SwapchainCreateInfo) PassValue() (C.VkSwapchainCreateInfoKHR, *cgoAllocMap) { - if x.refdb619e1c != nil { - return *x.refdb619e1c, nil +func (x PhysicalDeviceDiscardRectangleProperties) PassValue() (C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { + if x.reffe8591da != nil { + return *x.reffe8591da, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20276,129 +47188,102 @@ func (x SwapchainCreateInfo) PassValue() (C.VkSwapchainCreateInfoKHR, *cgoAllocM // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SwapchainCreateInfo) Deref() { - if x.refdb619e1c == nil { +func (x *PhysicalDeviceDiscardRectangleProperties) Deref() { + if x.reffe8591da == nil { return } - x.SType = (StructureType)(x.refdb619e1c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdb619e1c.pNext)) - x.Flags = (SwapchainCreateFlags)(x.refdb619e1c.flags) - x.Surface = *(*Surface)(unsafe.Pointer(&x.refdb619e1c.surface)) - x.MinImageCount = (uint32)(x.refdb619e1c.minImageCount) - x.ImageFormat = (Format)(x.refdb619e1c.imageFormat) - x.ImageColorSpace = (ColorSpace)(x.refdb619e1c.imageColorSpace) - x.ImageExtent = *NewExtent2DRef(unsafe.Pointer(&x.refdb619e1c.imageExtent)) - x.ImageArrayLayers = (uint32)(x.refdb619e1c.imageArrayLayers) - x.ImageUsage = (ImageUsageFlags)(x.refdb619e1c.imageUsage) - x.ImageSharingMode = (SharingMode)(x.refdb619e1c.imageSharingMode) - x.QueueFamilyIndexCount = (uint32)(x.refdb619e1c.queueFamilyIndexCount) - hxffe3496 := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) - hxffe3496.Data = unsafe.Pointer(x.refdb619e1c.pQueueFamilyIndices) - hxffe3496.Cap = 0x7fffffff - // hxffe3496.Len = ? - - x.PreTransform = (SurfaceTransformFlagBits)(x.refdb619e1c.preTransform) - x.CompositeAlpha = (CompositeAlphaFlagBits)(x.refdb619e1c.compositeAlpha) - x.PresentMode = (PresentMode)(x.refdb619e1c.presentMode) - x.Clipped = (Bool32)(x.refdb619e1c.clipped) - x.OldSwapchain = *(*Swapchain)(unsafe.Pointer(&x.refdb619e1c.oldSwapchain)) + x.SType = (StructureType)(x.reffe8591da.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffe8591da.pNext)) + x.MaxDiscardRectangles = (uint32)(x.reffe8591da.maxDiscardRectangles) } -// allocPresentInfoMemory allocates memory for type C.VkPresentInfoKHR in C. +// allocPipelineDiscardRectangleStateCreateInfoMemory allocates memory for type C.VkPipelineDiscardRectangleStateCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPresentInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentInfoValue)) +func allocPipelineDiscardRectangleStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineDiscardRectangleStateCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPresentInfoValue = unsafe.Sizeof([1]C.VkPresentInfoKHR{}) +const sizeOfPipelineDiscardRectangleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDiscardRectangleStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentInfo) Ref() *C.VkPresentInfoKHR { +func (x *PipelineDiscardRectangleStateCreateInfo) Ref() *C.VkPipelineDiscardRectangleStateCreateInfoEXT { if x == nil { return nil } - return x.ref1d0e82d4 + return x.refcdbb125e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PresentInfo) Free() { - if x != nil && x.allocs1d0e82d4 != nil { - x.allocs1d0e82d4.(*cgoAllocMap).Free() - x.ref1d0e82d4 = nil +func (x *PipelineDiscardRectangleStateCreateInfo) Free() { + if x != nil && x.allocscdbb125e != nil { + x.allocscdbb125e.(*cgoAllocMap).Free() + x.refcdbb125e = nil } } -// NewPresentInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineDiscardRectangleStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPresentInfoRef(ref unsafe.Pointer) *PresentInfo { +func NewPipelineDiscardRectangleStateCreateInfoRef(ref unsafe.Pointer) *PipelineDiscardRectangleStateCreateInfo { if ref == nil { return nil } - obj := new(PresentInfo) - obj.ref1d0e82d4 = (*C.VkPresentInfoKHR)(unsafe.Pointer(ref)) + obj := new(PipelineDiscardRectangleStateCreateInfo) + obj.refcdbb125e = (*C.VkPipelineDiscardRectangleStateCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PresentInfo) PassRef() (*C.VkPresentInfoKHR, *cgoAllocMap) { +func (x *PipelineDiscardRectangleStateCreateInfo) PassRef() (*C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1d0e82d4 != nil { - return x.ref1d0e82d4, nil + } else if x.refcdbb125e != nil { + return x.refcdbb125e, nil } - mem1d0e82d4 := allocPresentInfoMemory(1) - ref1d0e82d4 := (*C.VkPresentInfoKHR)(mem1d0e82d4) - allocs1d0e82d4 := new(cgoAllocMap) - allocs1d0e82d4.Add(mem1d0e82d4) + memcdbb125e := allocPipelineDiscardRectangleStateCreateInfoMemory(1) + refcdbb125e := (*C.VkPipelineDiscardRectangleStateCreateInfoEXT)(memcdbb125e) + allocscdbb125e := new(cgoAllocMap) + allocscdbb125e.Add(memcdbb125e) var csType_allocs *cgoAllocMap - ref1d0e82d4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1d0e82d4.Borrow(csType_allocs) + refcdbb125e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscdbb125e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1d0e82d4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1d0e82d4.Borrow(cpNext_allocs) - - var cwaitSemaphoreCount_allocs *cgoAllocMap - ref1d0e82d4.waitSemaphoreCount, cwaitSemaphoreCount_allocs = (C.uint32_t)(x.WaitSemaphoreCount), cgoAllocsUnknown - allocs1d0e82d4.Borrow(cwaitSemaphoreCount_allocs) - - var cpWaitSemaphores_allocs *cgoAllocMap - ref1d0e82d4.pWaitSemaphores, cpWaitSemaphores_allocs = (*C.VkSemaphore)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)).Data)), cgoAllocsUnknown - allocs1d0e82d4.Borrow(cpWaitSemaphores_allocs) + refcdbb125e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscdbb125e.Borrow(cpNext_allocs) - var cswapchainCount_allocs *cgoAllocMap - ref1d0e82d4.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocs1d0e82d4.Borrow(cswapchainCount_allocs) + var cflags_allocs *cgoAllocMap + refcdbb125e.flags, cflags_allocs = (C.VkPipelineDiscardRectangleStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocscdbb125e.Borrow(cflags_allocs) - var cpSwapchains_allocs *cgoAllocMap - ref1d0e82d4.pSwapchains, cpSwapchains_allocs = (*C.VkSwapchainKHR)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PSwapchains)).Data)), cgoAllocsUnknown - allocs1d0e82d4.Borrow(cpSwapchains_allocs) + var cdiscardRectangleMode_allocs *cgoAllocMap + refcdbb125e.discardRectangleMode, cdiscardRectangleMode_allocs = (C.VkDiscardRectangleModeEXT)(x.DiscardRectangleMode), cgoAllocsUnknown + allocscdbb125e.Borrow(cdiscardRectangleMode_allocs) - var cpImageIndices_allocs *cgoAllocMap - ref1d0e82d4.pImageIndices, cpImageIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PImageIndices)).Data)), cgoAllocsUnknown - allocs1d0e82d4.Borrow(cpImageIndices_allocs) + var cdiscardRectangleCount_allocs *cgoAllocMap + refcdbb125e.discardRectangleCount, cdiscardRectangleCount_allocs = (C.uint32_t)(x.DiscardRectangleCount), cgoAllocsUnknown + allocscdbb125e.Borrow(cdiscardRectangleCount_allocs) - var cpResults_allocs *cgoAllocMap - ref1d0e82d4.pResults, cpResults_allocs = (*C.VkResult)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PResults)).Data)), cgoAllocsUnknown - allocs1d0e82d4.Borrow(cpResults_allocs) + var cpDiscardRectangles_allocs *cgoAllocMap + refcdbb125e.pDiscardRectangles, cpDiscardRectangles_allocs = unpackSRect2D(x.PDiscardRectangles) + allocscdbb125e.Borrow(cpDiscardRectangles_allocs) - x.ref1d0e82d4 = ref1d0e82d4 - x.allocs1d0e82d4 = allocs1d0e82d4 - return ref1d0e82d4, allocs1d0e82d4 + x.refcdbb125e = refcdbb125e + x.allocscdbb125e = allocscdbb125e + return refcdbb125e, allocscdbb125e } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PresentInfo) PassValue() (C.VkPresentInfoKHR, *cgoAllocMap) { - if x.ref1d0e82d4 != nil { - return *x.ref1d0e82d4, nil +func (x PipelineDiscardRectangleStateCreateInfo) PassValue() (C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { + if x.refcdbb125e != nil { + return *x.refcdbb125e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20406,111 +47291,125 @@ func (x PresentInfo) PassValue() (C.VkPresentInfoKHR, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PresentInfo) Deref() { - if x.ref1d0e82d4 == nil { +func (x *PipelineDiscardRectangleStateCreateInfo) Deref() { + if x.refcdbb125e == nil { return } - x.SType = (StructureType)(x.ref1d0e82d4.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1d0e82d4.pNext)) - x.WaitSemaphoreCount = (uint32)(x.ref1d0e82d4.waitSemaphoreCount) - hxf5d48a6 := (*sliceHeader)(unsafe.Pointer(&x.PWaitSemaphores)) - hxf5d48a6.Data = unsafe.Pointer(x.ref1d0e82d4.pWaitSemaphores) - hxf5d48a6.Cap = 0x7fffffff - // hxf5d48a6.Len = ? - - x.SwapchainCount = (uint32)(x.ref1d0e82d4.swapchainCount) - hxf685469 := (*sliceHeader)(unsafe.Pointer(&x.PSwapchains)) - hxf685469.Data = unsafe.Pointer(x.ref1d0e82d4.pSwapchains) - hxf685469.Cap = 0x7fffffff - // hxf685469.Len = ? - - hxf03a9a7 := (*sliceHeader)(unsafe.Pointer(&x.PImageIndices)) - hxf03a9a7.Data = unsafe.Pointer(x.ref1d0e82d4.pImageIndices) - hxf03a9a7.Cap = 0x7fffffff - // hxf03a9a7.Len = ? - - hxff24242 := (*sliceHeader)(unsafe.Pointer(&x.PResults)) - hxff24242.Data = unsafe.Pointer(x.ref1d0e82d4.pResults) - hxff24242.Cap = 0x7fffffff - // hxff24242.Len = ? - + x.SType = (StructureType)(x.refcdbb125e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcdbb125e.pNext)) + x.Flags = (PipelineDiscardRectangleStateCreateFlags)(x.refcdbb125e.flags) + x.DiscardRectangleMode = (DiscardRectangleMode)(x.refcdbb125e.discardRectangleMode) + x.DiscardRectangleCount = (uint32)(x.refcdbb125e.discardRectangleCount) + packSRect2D(x.PDiscardRectangles, x.refcdbb125e.pDiscardRectangles) } -// allocImageSwapchainCreateInfoMemory allocates memory for type C.VkImageSwapchainCreateInfoKHR in C. +// allocPhysicalDeviceConservativeRasterizationPropertiesMemory allocates memory for type C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageSwapchainCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSwapchainCreateInfoValue)) +func allocPhysicalDeviceConservativeRasterizationPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceConservativeRasterizationPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkImageSwapchainCreateInfoKHR{}) +const sizeOfPhysicalDeviceConservativeRasterizationPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageSwapchainCreateInfo) Ref() *C.VkImageSwapchainCreateInfoKHR { +func (x *PhysicalDeviceConservativeRasterizationProperties) Ref() *C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT { if x == nil { return nil } - return x.refd83cc5d0 + return x.ref878f819c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageSwapchainCreateInfo) Free() { - if x != nil && x.allocsd83cc5d0 != nil { - x.allocsd83cc5d0.(*cgoAllocMap).Free() - x.refd83cc5d0 = nil +func (x *PhysicalDeviceConservativeRasterizationProperties) Free() { + if x != nil && x.allocs878f819c != nil { + x.allocs878f819c.(*cgoAllocMap).Free() + x.ref878f819c = nil } } -// NewImageSwapchainCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceConservativeRasterizationPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageSwapchainCreateInfoRef(ref unsafe.Pointer) *ImageSwapchainCreateInfo { +func NewPhysicalDeviceConservativeRasterizationPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceConservativeRasterizationProperties { if ref == nil { return nil } - obj := new(ImageSwapchainCreateInfo) - obj.refd83cc5d0 = (*C.VkImageSwapchainCreateInfoKHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceConservativeRasterizationProperties) + obj.ref878f819c = (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageSwapchainCreateInfo) PassRef() (*C.VkImageSwapchainCreateInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceConservativeRasterizationProperties) PassRef() (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd83cc5d0 != nil { - return x.refd83cc5d0, nil + } else if x.ref878f819c != nil { + return x.ref878f819c, nil } - memd83cc5d0 := allocImageSwapchainCreateInfoMemory(1) - refd83cc5d0 := (*C.VkImageSwapchainCreateInfoKHR)(memd83cc5d0) - allocsd83cc5d0 := new(cgoAllocMap) - allocsd83cc5d0.Add(memd83cc5d0) + mem878f819c := allocPhysicalDeviceConservativeRasterizationPropertiesMemory(1) + ref878f819c := (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT)(mem878f819c) + allocs878f819c := new(cgoAllocMap) + allocs878f819c.Add(mem878f819c) + + var csType_allocs *cgoAllocMap + ref878f819c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs878f819c.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref878f819c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs878f819c.Borrow(cpNext_allocs) + + var cprimitiveOverestimationSize_allocs *cgoAllocMap + ref878f819c.primitiveOverestimationSize, cprimitiveOverestimationSize_allocs = (C.float)(x.PrimitiveOverestimationSize), cgoAllocsUnknown + allocs878f819c.Borrow(cprimitiveOverestimationSize_allocs) + + var cmaxExtraPrimitiveOverestimationSize_allocs *cgoAllocMap + ref878f819c.maxExtraPrimitiveOverestimationSize, cmaxExtraPrimitiveOverestimationSize_allocs = (C.float)(x.MaxExtraPrimitiveOverestimationSize), cgoAllocsUnknown + allocs878f819c.Borrow(cmaxExtraPrimitiveOverestimationSize_allocs) + + var cextraPrimitiveOverestimationSizeGranularity_allocs *cgoAllocMap + ref878f819c.extraPrimitiveOverestimationSizeGranularity, cextraPrimitiveOverestimationSizeGranularity_allocs = (C.float)(x.ExtraPrimitiveOverestimationSizeGranularity), cgoAllocsUnknown + allocs878f819c.Borrow(cextraPrimitiveOverestimationSizeGranularity_allocs) - var csType_allocs *cgoAllocMap - refd83cc5d0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd83cc5d0.Borrow(csType_allocs) + var cprimitiveUnderestimation_allocs *cgoAllocMap + ref878f819c.primitiveUnderestimation, cprimitiveUnderestimation_allocs = (C.VkBool32)(x.PrimitiveUnderestimation), cgoAllocsUnknown + allocs878f819c.Borrow(cprimitiveUnderestimation_allocs) - var cpNext_allocs *cgoAllocMap - refd83cc5d0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd83cc5d0.Borrow(cpNext_allocs) + var cconservativePointAndLineRasterization_allocs *cgoAllocMap + ref878f819c.conservativePointAndLineRasterization, cconservativePointAndLineRasterization_allocs = (C.VkBool32)(x.ConservativePointAndLineRasterization), cgoAllocsUnknown + allocs878f819c.Borrow(cconservativePointAndLineRasterization_allocs) - var cswapchain_allocs *cgoAllocMap - refd83cc5d0.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown - allocsd83cc5d0.Borrow(cswapchain_allocs) + var cdegenerateTrianglesRasterized_allocs *cgoAllocMap + ref878f819c.degenerateTrianglesRasterized, cdegenerateTrianglesRasterized_allocs = (C.VkBool32)(x.DegenerateTrianglesRasterized), cgoAllocsUnknown + allocs878f819c.Borrow(cdegenerateTrianglesRasterized_allocs) - x.refd83cc5d0 = refd83cc5d0 - x.allocsd83cc5d0 = allocsd83cc5d0 - return refd83cc5d0, allocsd83cc5d0 + var cdegenerateLinesRasterized_allocs *cgoAllocMap + ref878f819c.degenerateLinesRasterized, cdegenerateLinesRasterized_allocs = (C.VkBool32)(x.DegenerateLinesRasterized), cgoAllocsUnknown + allocs878f819c.Borrow(cdegenerateLinesRasterized_allocs) + + var cfullyCoveredFragmentShaderInputVariable_allocs *cgoAllocMap + ref878f819c.fullyCoveredFragmentShaderInputVariable, cfullyCoveredFragmentShaderInputVariable_allocs = (C.VkBool32)(x.FullyCoveredFragmentShaderInputVariable), cgoAllocsUnknown + allocs878f819c.Borrow(cfullyCoveredFragmentShaderInputVariable_allocs) + + var cconservativeRasterizationPostDepthCoverage_allocs *cgoAllocMap + ref878f819c.conservativeRasterizationPostDepthCoverage, cconservativeRasterizationPostDepthCoverage_allocs = (C.VkBool32)(x.ConservativeRasterizationPostDepthCoverage), cgoAllocsUnknown + allocs878f819c.Borrow(cconservativeRasterizationPostDepthCoverage_allocs) + + x.ref878f819c = ref878f819c + x.allocs878f819c = allocs878f819c + return ref878f819c, allocs878f819c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageSwapchainCreateInfo) PassValue() (C.VkImageSwapchainCreateInfoKHR, *cgoAllocMap) { - if x.refd83cc5d0 != nil { - return *x.refd83cc5d0, nil +func (x PhysicalDeviceConservativeRasterizationProperties) PassValue() (C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { + if x.ref878f819c != nil { + return *x.ref878f819c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20518,94 +47417,106 @@ func (x ImageSwapchainCreateInfo) PassValue() (C.VkImageSwapchainCreateInfoKHR, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageSwapchainCreateInfo) Deref() { - if x.refd83cc5d0 == nil { +func (x *PhysicalDeviceConservativeRasterizationProperties) Deref() { + if x.ref878f819c == nil { return } - x.SType = (StructureType)(x.refd83cc5d0.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd83cc5d0.pNext)) - x.Swapchain = *(*Swapchain)(unsafe.Pointer(&x.refd83cc5d0.swapchain)) + x.SType = (StructureType)(x.ref878f819c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref878f819c.pNext)) + x.PrimitiveOverestimationSize = (float32)(x.ref878f819c.primitiveOverestimationSize) + x.MaxExtraPrimitiveOverestimationSize = (float32)(x.ref878f819c.maxExtraPrimitiveOverestimationSize) + x.ExtraPrimitiveOverestimationSizeGranularity = (float32)(x.ref878f819c.extraPrimitiveOverestimationSizeGranularity) + x.PrimitiveUnderestimation = (Bool32)(x.ref878f819c.primitiveUnderestimation) + x.ConservativePointAndLineRasterization = (Bool32)(x.ref878f819c.conservativePointAndLineRasterization) + x.DegenerateTrianglesRasterized = (Bool32)(x.ref878f819c.degenerateTrianglesRasterized) + x.DegenerateLinesRasterized = (Bool32)(x.ref878f819c.degenerateLinesRasterized) + x.FullyCoveredFragmentShaderInputVariable = (Bool32)(x.ref878f819c.fullyCoveredFragmentShaderInputVariable) + x.ConservativeRasterizationPostDepthCoverage = (Bool32)(x.ref878f819c.conservativeRasterizationPostDepthCoverage) } -// allocBindImageMemorySwapchainInfoMemory allocates memory for type C.VkBindImageMemorySwapchainInfoKHR in C. +// allocPipelineRasterizationConservativeStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationConservativeStateCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocBindImageMemorySwapchainInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindImageMemorySwapchainInfoValue)) +func allocPipelineRasterizationConservativeStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationConservativeStateCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBindImageMemorySwapchainInfoValue = unsafe.Sizeof([1]C.VkBindImageMemorySwapchainInfoKHR{}) +const sizeOfPipelineRasterizationConservativeStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationConservativeStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindImageMemorySwapchainInfo) Ref() *C.VkBindImageMemorySwapchainInfoKHR { +func (x *PipelineRasterizationConservativeStateCreateInfo) Ref() *C.VkPipelineRasterizationConservativeStateCreateInfoEXT { if x == nil { return nil } - return x.ref1aa25cb6 + return x.refe3cd0046 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BindImageMemorySwapchainInfo) Free() { - if x != nil && x.allocs1aa25cb6 != nil { - x.allocs1aa25cb6.(*cgoAllocMap).Free() - x.ref1aa25cb6 = nil +func (x *PipelineRasterizationConservativeStateCreateInfo) Free() { + if x != nil && x.allocse3cd0046 != nil { + x.allocse3cd0046.(*cgoAllocMap).Free() + x.refe3cd0046 = nil } } -// NewBindImageMemorySwapchainInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineRasterizationConservativeStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBindImageMemorySwapchainInfoRef(ref unsafe.Pointer) *BindImageMemorySwapchainInfo { +func NewPipelineRasterizationConservativeStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationConservativeStateCreateInfo { if ref == nil { return nil } - obj := new(BindImageMemorySwapchainInfo) - obj.ref1aa25cb6 = (*C.VkBindImageMemorySwapchainInfoKHR)(unsafe.Pointer(ref)) + obj := new(PipelineRasterizationConservativeStateCreateInfo) + obj.refe3cd0046 = (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BindImageMemorySwapchainInfo) PassRef() (*C.VkBindImageMemorySwapchainInfoKHR, *cgoAllocMap) { +func (x *PipelineRasterizationConservativeStateCreateInfo) PassRef() (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1aa25cb6 != nil { - return x.ref1aa25cb6, nil + } else if x.refe3cd0046 != nil { + return x.refe3cd0046, nil } - mem1aa25cb6 := allocBindImageMemorySwapchainInfoMemory(1) - ref1aa25cb6 := (*C.VkBindImageMemorySwapchainInfoKHR)(mem1aa25cb6) - allocs1aa25cb6 := new(cgoAllocMap) - allocs1aa25cb6.Add(mem1aa25cb6) + meme3cd0046 := allocPipelineRasterizationConservativeStateCreateInfoMemory(1) + refe3cd0046 := (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT)(meme3cd0046) + allocse3cd0046 := new(cgoAllocMap) + allocse3cd0046.Add(meme3cd0046) var csType_allocs *cgoAllocMap - ref1aa25cb6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1aa25cb6.Borrow(csType_allocs) + refe3cd0046.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse3cd0046.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1aa25cb6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1aa25cb6.Borrow(cpNext_allocs) + refe3cd0046.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse3cd0046.Borrow(cpNext_allocs) - var cswapchain_allocs *cgoAllocMap - ref1aa25cb6.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown - allocs1aa25cb6.Borrow(cswapchain_allocs) + var cflags_allocs *cgoAllocMap + refe3cd0046.flags, cflags_allocs = (C.VkPipelineRasterizationConservativeStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocse3cd0046.Borrow(cflags_allocs) - var cimageIndex_allocs *cgoAllocMap - ref1aa25cb6.imageIndex, cimageIndex_allocs = (C.uint32_t)(x.ImageIndex), cgoAllocsUnknown - allocs1aa25cb6.Borrow(cimageIndex_allocs) + var cconservativeRasterizationMode_allocs *cgoAllocMap + refe3cd0046.conservativeRasterizationMode, cconservativeRasterizationMode_allocs = (C.VkConservativeRasterizationModeEXT)(x.ConservativeRasterizationMode), cgoAllocsUnknown + allocse3cd0046.Borrow(cconservativeRasterizationMode_allocs) - x.ref1aa25cb6 = ref1aa25cb6 - x.allocs1aa25cb6 = allocs1aa25cb6 - return ref1aa25cb6, allocs1aa25cb6 + var cextraPrimitiveOverestimationSize_allocs *cgoAllocMap + refe3cd0046.extraPrimitiveOverestimationSize, cextraPrimitiveOverestimationSize_allocs = (C.float)(x.ExtraPrimitiveOverestimationSize), cgoAllocsUnknown + allocse3cd0046.Borrow(cextraPrimitiveOverestimationSize_allocs) + + x.refe3cd0046 = refe3cd0046 + x.allocse3cd0046 = allocse3cd0046 + return refe3cd0046, allocse3cd0046 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BindImageMemorySwapchainInfo) PassValue() (C.VkBindImageMemorySwapchainInfoKHR, *cgoAllocMap) { - if x.ref1aa25cb6 != nil { - return *x.ref1aa25cb6, nil +func (x PipelineRasterizationConservativeStateCreateInfo) PassValue() (C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { + if x.refe3cd0046 != nil { + return *x.refe3cd0046, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20613,107 +47524,92 @@ func (x BindImageMemorySwapchainInfo) PassValue() (C.VkBindImageMemorySwapchainI // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindImageMemorySwapchainInfo) Deref() { - if x.ref1aa25cb6 == nil { +func (x *PipelineRasterizationConservativeStateCreateInfo) Deref() { + if x.refe3cd0046 == nil { return } - x.SType = (StructureType)(x.ref1aa25cb6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1aa25cb6.pNext)) - x.Swapchain = *(*Swapchain)(unsafe.Pointer(&x.ref1aa25cb6.swapchain)) - x.ImageIndex = (uint32)(x.ref1aa25cb6.imageIndex) + x.SType = (StructureType)(x.refe3cd0046.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe3cd0046.pNext)) + x.Flags = (PipelineRasterizationConservativeStateCreateFlags)(x.refe3cd0046.flags) + x.ConservativeRasterizationMode = (ConservativeRasterizationMode)(x.refe3cd0046.conservativeRasterizationMode) + x.ExtraPrimitiveOverestimationSize = (float32)(x.refe3cd0046.extraPrimitiveOverestimationSize) } -// allocAcquireNextImageInfoMemory allocates memory for type C.VkAcquireNextImageInfoKHR in C. +// allocPhysicalDeviceDepthClipEnableFeaturesMemory allocates memory for type C.VkPhysicalDeviceDepthClipEnableFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocAcquireNextImageInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAcquireNextImageInfoValue)) +func allocPhysicalDeviceDepthClipEnableFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDepthClipEnableFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfAcquireNextImageInfoValue = unsafe.Sizeof([1]C.VkAcquireNextImageInfoKHR{}) +const sizeOfPhysicalDeviceDepthClipEnableFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDepthClipEnableFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AcquireNextImageInfo) Ref() *C.VkAcquireNextImageInfoKHR { +func (x *PhysicalDeviceDepthClipEnableFeatures) Ref() *C.VkPhysicalDeviceDepthClipEnableFeaturesEXT { if x == nil { return nil } - return x.ref588806a5 + return x.refe0daf69c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *AcquireNextImageInfo) Free() { - if x != nil && x.allocs588806a5 != nil { - x.allocs588806a5.(*cgoAllocMap).Free() - x.ref588806a5 = nil +func (x *PhysicalDeviceDepthClipEnableFeatures) Free() { + if x != nil && x.allocse0daf69c != nil { + x.allocse0daf69c.(*cgoAllocMap).Free() + x.refe0daf69c = nil } } -// NewAcquireNextImageInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDepthClipEnableFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewAcquireNextImageInfoRef(ref unsafe.Pointer) *AcquireNextImageInfo { +func NewPhysicalDeviceDepthClipEnableFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDepthClipEnableFeatures { if ref == nil { return nil } - obj := new(AcquireNextImageInfo) - obj.ref588806a5 = (*C.VkAcquireNextImageInfoKHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDepthClipEnableFeatures) + obj.refe0daf69c = (*C.VkPhysicalDeviceDepthClipEnableFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *AcquireNextImageInfo) PassRef() (*C.VkAcquireNextImageInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceDepthClipEnableFeatures) PassRef() (*C.VkPhysicalDeviceDepthClipEnableFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref588806a5 != nil { - return x.ref588806a5, nil + } else if x.refe0daf69c != nil { + return x.refe0daf69c, nil } - mem588806a5 := allocAcquireNextImageInfoMemory(1) - ref588806a5 := (*C.VkAcquireNextImageInfoKHR)(mem588806a5) - allocs588806a5 := new(cgoAllocMap) - allocs588806a5.Add(mem588806a5) + meme0daf69c := allocPhysicalDeviceDepthClipEnableFeaturesMemory(1) + refe0daf69c := (*C.VkPhysicalDeviceDepthClipEnableFeaturesEXT)(meme0daf69c) + allocse0daf69c := new(cgoAllocMap) + allocse0daf69c.Add(meme0daf69c) var csType_allocs *cgoAllocMap - ref588806a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs588806a5.Borrow(csType_allocs) + refe0daf69c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse0daf69c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref588806a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs588806a5.Borrow(cpNext_allocs) - - var cswapchain_allocs *cgoAllocMap - ref588806a5.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown - allocs588806a5.Borrow(cswapchain_allocs) - - var ctimeout_allocs *cgoAllocMap - ref588806a5.timeout, ctimeout_allocs = (C.uint64_t)(x.Timeout), cgoAllocsUnknown - allocs588806a5.Borrow(ctimeout_allocs) - - var csemaphore_allocs *cgoAllocMap - ref588806a5.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown - allocs588806a5.Borrow(csemaphore_allocs) - - var cfence_allocs *cgoAllocMap - ref588806a5.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown - allocs588806a5.Borrow(cfence_allocs) + refe0daf69c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse0daf69c.Borrow(cpNext_allocs) - var cdeviceMask_allocs *cgoAllocMap - ref588806a5.deviceMask, cdeviceMask_allocs = (C.uint32_t)(x.DeviceMask), cgoAllocsUnknown - allocs588806a5.Borrow(cdeviceMask_allocs) + var cdepthClipEnable_allocs *cgoAllocMap + refe0daf69c.depthClipEnable, cdepthClipEnable_allocs = (C.VkBool32)(x.DepthClipEnable), cgoAllocsUnknown + allocse0daf69c.Borrow(cdepthClipEnable_allocs) - x.ref588806a5 = ref588806a5 - x.allocs588806a5 = allocs588806a5 - return ref588806a5, allocs588806a5 + x.refe0daf69c = refe0daf69c + x.allocse0daf69c = allocse0daf69c + return refe0daf69c, allocse0daf69c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x AcquireNextImageInfo) PassValue() (C.VkAcquireNextImageInfoKHR, *cgoAllocMap) { - if x.ref588806a5 != nil { - return *x.ref588806a5, nil +func (x PhysicalDeviceDepthClipEnableFeatures) PassValue() (C.VkPhysicalDeviceDepthClipEnableFeaturesEXT, *cgoAllocMap) { + if x.refe0daf69c != nil { + return *x.refe0daf69c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20721,98 +47617,94 @@ func (x AcquireNextImageInfo) PassValue() (C.VkAcquireNextImageInfoKHR, *cgoAllo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AcquireNextImageInfo) Deref() { - if x.ref588806a5 == nil { +func (x *PhysicalDeviceDepthClipEnableFeatures) Deref() { + if x.refe0daf69c == nil { return } - x.SType = (StructureType)(x.ref588806a5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref588806a5.pNext)) - x.Swapchain = *(*Swapchain)(unsafe.Pointer(&x.ref588806a5.swapchain)) - x.Timeout = (uint64)(x.ref588806a5.timeout) - x.Semaphore = *(*Semaphore)(unsafe.Pointer(&x.ref588806a5.semaphore)) - x.Fence = *(*Fence)(unsafe.Pointer(&x.ref588806a5.fence)) - x.DeviceMask = (uint32)(x.ref588806a5.deviceMask) + x.SType = (StructureType)(x.refe0daf69c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe0daf69c.pNext)) + x.DepthClipEnable = (Bool32)(x.refe0daf69c.depthClipEnable) } -// allocDeviceGroupPresentCapabilitiesMemory allocates memory for type C.VkDeviceGroupPresentCapabilitiesKHR in C. +// allocPipelineRasterizationDepthClipStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationDepthClipStateCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceGroupPresentCapabilitiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupPresentCapabilitiesValue)) +func allocPipelineRasterizationDepthClipStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationDepthClipStateCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceGroupPresentCapabilitiesValue = unsafe.Sizeof([1]C.VkDeviceGroupPresentCapabilitiesKHR{}) +const sizeOfPipelineRasterizationDepthClipStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationDepthClipStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupPresentCapabilities) Ref() *C.VkDeviceGroupPresentCapabilitiesKHR { +func (x *PipelineRasterizationDepthClipStateCreateInfo) Ref() *C.VkPipelineRasterizationDepthClipStateCreateInfoEXT { if x == nil { return nil } - return x.refa3962c81 + return x.ref38a864b5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceGroupPresentCapabilities) Free() { - if x != nil && x.allocsa3962c81 != nil { - x.allocsa3962c81.(*cgoAllocMap).Free() - x.refa3962c81 = nil +func (x *PipelineRasterizationDepthClipStateCreateInfo) Free() { + if x != nil && x.allocs38a864b5 != nil { + x.allocs38a864b5.(*cgoAllocMap).Free() + x.ref38a864b5 = nil } } -// NewDeviceGroupPresentCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineRasterizationDepthClipStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceGroupPresentCapabilitiesRef(ref unsafe.Pointer) *DeviceGroupPresentCapabilities { +func NewPipelineRasterizationDepthClipStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationDepthClipStateCreateInfo { if ref == nil { return nil } - obj := new(DeviceGroupPresentCapabilities) - obj.refa3962c81 = (*C.VkDeviceGroupPresentCapabilitiesKHR)(unsafe.Pointer(ref)) + obj := new(PipelineRasterizationDepthClipStateCreateInfo) + obj.ref38a864b5 = (*C.VkPipelineRasterizationDepthClipStateCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceGroupPresentCapabilities) PassRef() (*C.VkDeviceGroupPresentCapabilitiesKHR, *cgoAllocMap) { +func (x *PipelineRasterizationDepthClipStateCreateInfo) PassRef() (*C.VkPipelineRasterizationDepthClipStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa3962c81 != nil { - return x.refa3962c81, nil + } else if x.ref38a864b5 != nil { + return x.ref38a864b5, nil } - mema3962c81 := allocDeviceGroupPresentCapabilitiesMemory(1) - refa3962c81 := (*C.VkDeviceGroupPresentCapabilitiesKHR)(mema3962c81) - allocsa3962c81 := new(cgoAllocMap) - allocsa3962c81.Add(mema3962c81) + mem38a864b5 := allocPipelineRasterizationDepthClipStateCreateInfoMemory(1) + ref38a864b5 := (*C.VkPipelineRasterizationDepthClipStateCreateInfoEXT)(mem38a864b5) + allocs38a864b5 := new(cgoAllocMap) + allocs38a864b5.Add(mem38a864b5) var csType_allocs *cgoAllocMap - refa3962c81.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa3962c81.Borrow(csType_allocs) + ref38a864b5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs38a864b5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa3962c81.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa3962c81.Borrow(cpNext_allocs) + ref38a864b5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs38a864b5.Borrow(cpNext_allocs) - var cpresentMask_allocs *cgoAllocMap - refa3962c81.presentMask, cpresentMask_allocs = *(*[32]C.uint32_t)(unsafe.Pointer(&x.PresentMask)), cgoAllocsUnknown - allocsa3962c81.Borrow(cpresentMask_allocs) + var cflags_allocs *cgoAllocMap + ref38a864b5.flags, cflags_allocs = (C.VkPipelineRasterizationDepthClipStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs38a864b5.Borrow(cflags_allocs) - var cmodes_allocs *cgoAllocMap - refa3962c81.modes, cmodes_allocs = (C.VkDeviceGroupPresentModeFlagsKHR)(x.Modes), cgoAllocsUnknown - allocsa3962c81.Borrow(cmodes_allocs) + var cdepthClipEnable_allocs *cgoAllocMap + ref38a864b5.depthClipEnable, cdepthClipEnable_allocs = (C.VkBool32)(x.DepthClipEnable), cgoAllocsUnknown + allocs38a864b5.Borrow(cdepthClipEnable_allocs) - x.refa3962c81 = refa3962c81 - x.allocsa3962c81 = allocsa3962c81 - return refa3962c81, allocsa3962c81 + x.ref38a864b5 = ref38a864b5 + x.allocs38a864b5 = allocs38a864b5 + return ref38a864b5, allocs38a864b5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceGroupPresentCapabilities) PassValue() (C.VkDeviceGroupPresentCapabilitiesKHR, *cgoAllocMap) { - if x.refa3962c81 != nil { - return *x.refa3962c81, nil +func (x PipelineRasterizationDepthClipStateCreateInfo) PassValue() (C.VkPipelineRasterizationDepthClipStateCreateInfoEXT, *cgoAllocMap) { + if x.ref38a864b5 != nil { + return *x.ref38a864b5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20820,99 +47712,87 @@ func (x DeviceGroupPresentCapabilities) PassValue() (C.VkDeviceGroupPresentCapab // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceGroupPresentCapabilities) Deref() { - if x.refa3962c81 == nil { +func (x *PipelineRasterizationDepthClipStateCreateInfo) Deref() { + if x.ref38a864b5 == nil { return } - x.SType = (StructureType)(x.refa3962c81.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa3962c81.pNext)) - x.PresentMask = *(*[32]uint32)(unsafe.Pointer(&x.refa3962c81.presentMask)) - x.Modes = (DeviceGroupPresentModeFlags)(x.refa3962c81.modes) + x.SType = (StructureType)(x.ref38a864b5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref38a864b5.pNext)) + x.Flags = (PipelineRasterizationDepthClipStateCreateFlags)(x.ref38a864b5.flags) + x.DepthClipEnable = (Bool32)(x.ref38a864b5.depthClipEnable) } -// allocDeviceGroupPresentInfoMemory allocates memory for type C.VkDeviceGroupPresentInfoKHR in C. +// allocXYColorMemory allocates memory for type C.VkXYColorEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceGroupPresentInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupPresentInfoValue)) +func allocXYColorMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfXYColorValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceGroupPresentInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupPresentInfoKHR{}) +const sizeOfXYColorValue = unsafe.Sizeof([1]C.VkXYColorEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupPresentInfo) Ref() *C.VkDeviceGroupPresentInfoKHR { +func (x *XYColor) Ref() *C.VkXYColorEXT { if x == nil { return nil } - return x.reff6912d09 + return x.refb8efaa5c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceGroupPresentInfo) Free() { - if x != nil && x.allocsf6912d09 != nil { - x.allocsf6912d09.(*cgoAllocMap).Free() - x.reff6912d09 = nil +func (x *XYColor) Free() { + if x != nil && x.allocsb8efaa5c != nil { + x.allocsb8efaa5c.(*cgoAllocMap).Free() + x.refb8efaa5c = nil } } -// NewDeviceGroupPresentInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewXYColorRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceGroupPresentInfoRef(ref unsafe.Pointer) *DeviceGroupPresentInfo { +func NewXYColorRef(ref unsafe.Pointer) *XYColor { if ref == nil { return nil } - obj := new(DeviceGroupPresentInfo) - obj.reff6912d09 = (*C.VkDeviceGroupPresentInfoKHR)(unsafe.Pointer(ref)) + obj := new(XYColor) + obj.refb8efaa5c = (*C.VkXYColorEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceGroupPresentInfo) PassRef() (*C.VkDeviceGroupPresentInfoKHR, *cgoAllocMap) { +func (x *XYColor) PassRef() (*C.VkXYColorEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff6912d09 != nil { - return x.reff6912d09, nil + } else if x.refb8efaa5c != nil { + return x.refb8efaa5c, nil } - memf6912d09 := allocDeviceGroupPresentInfoMemory(1) - reff6912d09 := (*C.VkDeviceGroupPresentInfoKHR)(memf6912d09) - allocsf6912d09 := new(cgoAllocMap) - allocsf6912d09.Add(memf6912d09) - - var csType_allocs *cgoAllocMap - reff6912d09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf6912d09.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - reff6912d09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf6912d09.Borrow(cpNext_allocs) - - var cswapchainCount_allocs *cgoAllocMap - reff6912d09.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocsf6912d09.Borrow(cswapchainCount_allocs) + memb8efaa5c := allocXYColorMemory(1) + refb8efaa5c := (*C.VkXYColorEXT)(memb8efaa5c) + allocsb8efaa5c := new(cgoAllocMap) + allocsb8efaa5c.Add(memb8efaa5c) - var cpDeviceMasks_allocs *cgoAllocMap - reff6912d09.pDeviceMasks, cpDeviceMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDeviceMasks)).Data)), cgoAllocsUnknown - allocsf6912d09.Borrow(cpDeviceMasks_allocs) + var cx_allocs *cgoAllocMap + refb8efaa5c.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown + allocsb8efaa5c.Borrow(cx_allocs) - var cmode_allocs *cgoAllocMap - reff6912d09.mode, cmode_allocs = (C.VkDeviceGroupPresentModeFlagBitsKHR)(x.Mode), cgoAllocsUnknown - allocsf6912d09.Borrow(cmode_allocs) + var cy_allocs *cgoAllocMap + refb8efaa5c.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown + allocsb8efaa5c.Borrow(cy_allocs) - x.reff6912d09 = reff6912d09 - x.allocsf6912d09 = allocsf6912d09 - return reff6912d09, allocsf6912d09 + x.refb8efaa5c = refb8efaa5c + x.allocsb8efaa5c = allocsb8efaa5c + return refb8efaa5c, allocsb8efaa5c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceGroupPresentInfo) PassValue() (C.VkDeviceGroupPresentInfoKHR, *cgoAllocMap) { - if x.reff6912d09 != nil { - return *x.reff6912d09, nil +func (x XYColor) PassValue() (C.VkXYColorEXT, *cgoAllocMap) { + if x.refb8efaa5c != nil { + return *x.refb8efaa5c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -20920,96 +47800,117 @@ func (x DeviceGroupPresentInfo) PassValue() (C.VkDeviceGroupPresentInfoKHR, *cgo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceGroupPresentInfo) Deref() { - if x.reff6912d09 == nil { +func (x *XYColor) Deref() { + if x.refb8efaa5c == nil { return } - x.SType = (StructureType)(x.reff6912d09.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff6912d09.pNext)) - x.SwapchainCount = (uint32)(x.reff6912d09.swapchainCount) - hxfe93325 := (*sliceHeader)(unsafe.Pointer(&x.PDeviceMasks)) - hxfe93325.Data = unsafe.Pointer(x.reff6912d09.pDeviceMasks) - hxfe93325.Cap = 0x7fffffff - // hxfe93325.Len = ? - - x.Mode = (DeviceGroupPresentModeFlagBits)(x.reff6912d09.mode) + x.X = (float32)(x.refb8efaa5c.x) + x.Y = (float32)(x.refb8efaa5c.y) } -// allocDeviceGroupSwapchainCreateInfoMemory allocates memory for type C.VkDeviceGroupSwapchainCreateInfoKHR in C. +// allocHdrMetadataMemory allocates memory for type C.VkHdrMetadataEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceGroupSwapchainCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGroupSwapchainCreateInfoValue)) +func allocHdrMetadataMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfHdrMetadataValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceGroupSwapchainCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceGroupSwapchainCreateInfoKHR{}) +const sizeOfHdrMetadataValue = unsafe.Sizeof([1]C.VkHdrMetadataEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGroupSwapchainCreateInfo) Ref() *C.VkDeviceGroupSwapchainCreateInfoKHR { +func (x *HdrMetadata) Ref() *C.VkHdrMetadataEXT { if x == nil { return nil } - return x.ref44ae0c0e + return x.ref5fd28976 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceGroupSwapchainCreateInfo) Free() { - if x != nil && x.allocs44ae0c0e != nil { - x.allocs44ae0c0e.(*cgoAllocMap).Free() - x.ref44ae0c0e = nil +func (x *HdrMetadata) Free() { + if x != nil && x.allocs5fd28976 != nil { + x.allocs5fd28976.(*cgoAllocMap).Free() + x.ref5fd28976 = nil } } -// NewDeviceGroupSwapchainCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewHdrMetadataRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceGroupSwapchainCreateInfoRef(ref unsafe.Pointer) *DeviceGroupSwapchainCreateInfo { +func NewHdrMetadataRef(ref unsafe.Pointer) *HdrMetadata { if ref == nil { return nil } - obj := new(DeviceGroupSwapchainCreateInfo) - obj.ref44ae0c0e = (*C.VkDeviceGroupSwapchainCreateInfoKHR)(unsafe.Pointer(ref)) + obj := new(HdrMetadata) + obj.ref5fd28976 = (*C.VkHdrMetadataEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceGroupSwapchainCreateInfo) PassRef() (*C.VkDeviceGroupSwapchainCreateInfoKHR, *cgoAllocMap) { +func (x *HdrMetadata) PassRef() (*C.VkHdrMetadataEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref44ae0c0e != nil { - return x.ref44ae0c0e, nil + } else if x.ref5fd28976 != nil { + return x.ref5fd28976, nil } - mem44ae0c0e := allocDeviceGroupSwapchainCreateInfoMemory(1) - ref44ae0c0e := (*C.VkDeviceGroupSwapchainCreateInfoKHR)(mem44ae0c0e) - allocs44ae0c0e := new(cgoAllocMap) - allocs44ae0c0e.Add(mem44ae0c0e) + mem5fd28976 := allocHdrMetadataMemory(1) + ref5fd28976 := (*C.VkHdrMetadataEXT)(mem5fd28976) + allocs5fd28976 := new(cgoAllocMap) + allocs5fd28976.Add(mem5fd28976) var csType_allocs *cgoAllocMap - ref44ae0c0e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs44ae0c0e.Borrow(csType_allocs) + ref5fd28976.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5fd28976.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref44ae0c0e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs44ae0c0e.Borrow(cpNext_allocs) + ref5fd28976.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5fd28976.Borrow(cpNext_allocs) - var cmodes_allocs *cgoAllocMap - ref44ae0c0e.modes, cmodes_allocs = (C.VkDeviceGroupPresentModeFlagsKHR)(x.Modes), cgoAllocsUnknown - allocs44ae0c0e.Borrow(cmodes_allocs) + var cdisplayPrimaryRed_allocs *cgoAllocMap + ref5fd28976.displayPrimaryRed, cdisplayPrimaryRed_allocs = x.DisplayPrimaryRed.PassValue() + allocs5fd28976.Borrow(cdisplayPrimaryRed_allocs) - x.ref44ae0c0e = ref44ae0c0e - x.allocs44ae0c0e = allocs44ae0c0e - return ref44ae0c0e, allocs44ae0c0e + var cdisplayPrimaryGreen_allocs *cgoAllocMap + ref5fd28976.displayPrimaryGreen, cdisplayPrimaryGreen_allocs = x.DisplayPrimaryGreen.PassValue() + allocs5fd28976.Borrow(cdisplayPrimaryGreen_allocs) + + var cdisplayPrimaryBlue_allocs *cgoAllocMap + ref5fd28976.displayPrimaryBlue, cdisplayPrimaryBlue_allocs = x.DisplayPrimaryBlue.PassValue() + allocs5fd28976.Borrow(cdisplayPrimaryBlue_allocs) + + var cwhitePoint_allocs *cgoAllocMap + ref5fd28976.whitePoint, cwhitePoint_allocs = x.WhitePoint.PassValue() + allocs5fd28976.Borrow(cwhitePoint_allocs) + + var cmaxLuminance_allocs *cgoAllocMap + ref5fd28976.maxLuminance, cmaxLuminance_allocs = (C.float)(x.MaxLuminance), cgoAllocsUnknown + allocs5fd28976.Borrow(cmaxLuminance_allocs) + + var cminLuminance_allocs *cgoAllocMap + ref5fd28976.minLuminance, cminLuminance_allocs = (C.float)(x.MinLuminance), cgoAllocsUnknown + allocs5fd28976.Borrow(cminLuminance_allocs) + + var cmaxContentLightLevel_allocs *cgoAllocMap + ref5fd28976.maxContentLightLevel, cmaxContentLightLevel_allocs = (C.float)(x.MaxContentLightLevel), cgoAllocsUnknown + allocs5fd28976.Borrow(cmaxContentLightLevel_allocs) + + var cmaxFrameAverageLightLevel_allocs *cgoAllocMap + ref5fd28976.maxFrameAverageLightLevel, cmaxFrameAverageLightLevel_allocs = (C.float)(x.MaxFrameAverageLightLevel), cgoAllocsUnknown + allocs5fd28976.Borrow(cmaxFrameAverageLightLevel_allocs) + + x.ref5fd28976 = ref5fd28976 + x.allocs5fd28976 = allocs5fd28976 + return ref5fd28976, allocs5fd28976 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceGroupSwapchainCreateInfo) PassValue() (C.VkDeviceGroupSwapchainCreateInfoKHR, *cgoAllocMap) { - if x.ref44ae0c0e != nil { - return *x.ref44ae0c0e, nil +func (x HdrMetadata) PassValue() (C.VkHdrMetadataEXT, *cgoAllocMap) { + if x.ref5fd28976 != nil { + return *x.ref5fd28976, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21017,106 +47918,101 @@ func (x DeviceGroupSwapchainCreateInfo) PassValue() (C.VkDeviceGroupSwapchainCre // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceGroupSwapchainCreateInfo) Deref() { - if x.ref44ae0c0e == nil { +func (x *HdrMetadata) Deref() { + if x.ref5fd28976 == nil { return } - x.SType = (StructureType)(x.ref44ae0c0e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref44ae0c0e.pNext)) - x.Modes = (DeviceGroupPresentModeFlags)(x.ref44ae0c0e.modes) + x.SType = (StructureType)(x.ref5fd28976.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5fd28976.pNext)) + x.DisplayPrimaryRed = *NewXYColorRef(unsafe.Pointer(&x.ref5fd28976.displayPrimaryRed)) + x.DisplayPrimaryGreen = *NewXYColorRef(unsafe.Pointer(&x.ref5fd28976.displayPrimaryGreen)) + x.DisplayPrimaryBlue = *NewXYColorRef(unsafe.Pointer(&x.ref5fd28976.displayPrimaryBlue)) + x.WhitePoint = *NewXYColorRef(unsafe.Pointer(&x.ref5fd28976.whitePoint)) + x.MaxLuminance = (float32)(x.ref5fd28976.maxLuminance) + x.MinLuminance = (float32)(x.ref5fd28976.minLuminance) + x.MaxContentLightLevel = (float32)(x.ref5fd28976.maxContentLightLevel) + x.MaxFrameAverageLightLevel = (float32)(x.ref5fd28976.maxFrameAverageLightLevel) } -// allocDisplayPropertiesMemory allocates memory for type C.VkDisplayPropertiesKHR in C. +// allocDebugUtilsLabelMemory allocates memory for type C.VkDebugUtilsLabelEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPropertiesValue)) +func allocDebugUtilsLabelMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugUtilsLabelValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayPropertiesValue = unsafe.Sizeof([1]C.VkDisplayPropertiesKHR{}) +const sizeOfDebugUtilsLabelValue = unsafe.Sizeof([1]C.VkDebugUtilsLabelEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayProperties) Ref() *C.VkDisplayPropertiesKHR { +func (x *DebugUtilsLabel) Ref() *C.VkDebugUtilsLabelEXT { if x == nil { return nil } - return x.reffe2a7187 + return x.ref8faaf7b1 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayProperties) Free() { - if x != nil && x.allocsfe2a7187 != nil { - x.allocsfe2a7187.(*cgoAllocMap).Free() - x.reffe2a7187 = nil +func (x *DebugUtilsLabel) Free() { + if x != nil && x.allocs8faaf7b1 != nil { + x.allocs8faaf7b1.(*cgoAllocMap).Free() + x.ref8faaf7b1 = nil } } -// NewDisplayPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDebugUtilsLabelRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayPropertiesRef(ref unsafe.Pointer) *DisplayProperties { +func NewDebugUtilsLabelRef(ref unsafe.Pointer) *DebugUtilsLabel { if ref == nil { return nil } - obj := new(DisplayProperties) - obj.reffe2a7187 = (*C.VkDisplayPropertiesKHR)(unsafe.Pointer(ref)) + obj := new(DebugUtilsLabel) + obj.ref8faaf7b1 = (*C.VkDebugUtilsLabelEXT)(unsafe.Pointer(ref)) return obj } -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayProperties) PassRef() (*C.VkDisplayPropertiesKHR, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.reffe2a7187 != nil { - return x.reffe2a7187, nil - } - memfe2a7187 := allocDisplayPropertiesMemory(1) - reffe2a7187 := (*C.VkDisplayPropertiesKHR)(memfe2a7187) - allocsfe2a7187 := new(cgoAllocMap) - allocsfe2a7187.Add(memfe2a7187) - - var cdisplay_allocs *cgoAllocMap - reffe2a7187.display, cdisplay_allocs = *(*C.VkDisplayKHR)(unsafe.Pointer(&x.Display)), cgoAllocsUnknown - allocsfe2a7187.Borrow(cdisplay_allocs) - - var cdisplayName_allocs *cgoAllocMap - reffe2a7187.displayName, cdisplayName_allocs = unpackPCharString(x.DisplayName) - allocsfe2a7187.Borrow(cdisplayName_allocs) - - var cphysicalDimensions_allocs *cgoAllocMap - reffe2a7187.physicalDimensions, cphysicalDimensions_allocs = x.PhysicalDimensions.PassValue() - allocsfe2a7187.Borrow(cphysicalDimensions_allocs) +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DebugUtilsLabel) PassRef() (*C.VkDebugUtilsLabelEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref8faaf7b1 != nil { + return x.ref8faaf7b1, nil + } + mem8faaf7b1 := allocDebugUtilsLabelMemory(1) + ref8faaf7b1 := (*C.VkDebugUtilsLabelEXT)(mem8faaf7b1) + allocs8faaf7b1 := new(cgoAllocMap) + allocs8faaf7b1.Add(mem8faaf7b1) - var cphysicalResolution_allocs *cgoAllocMap - reffe2a7187.physicalResolution, cphysicalResolution_allocs = x.PhysicalResolution.PassValue() - allocsfe2a7187.Borrow(cphysicalResolution_allocs) + var csType_allocs *cgoAllocMap + ref8faaf7b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8faaf7b1.Borrow(csType_allocs) - var csupportedTransforms_allocs *cgoAllocMap - reffe2a7187.supportedTransforms, csupportedTransforms_allocs = (C.VkSurfaceTransformFlagsKHR)(x.SupportedTransforms), cgoAllocsUnknown - allocsfe2a7187.Borrow(csupportedTransforms_allocs) + var cpNext_allocs *cgoAllocMap + ref8faaf7b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8faaf7b1.Borrow(cpNext_allocs) - var cplaneReorderPossible_allocs *cgoAllocMap - reffe2a7187.planeReorderPossible, cplaneReorderPossible_allocs = (C.VkBool32)(x.PlaneReorderPossible), cgoAllocsUnknown - allocsfe2a7187.Borrow(cplaneReorderPossible_allocs) + var cpLabelName_allocs *cgoAllocMap + ref8faaf7b1.pLabelName, cpLabelName_allocs = unpackPCharString(x.PLabelName) + allocs8faaf7b1.Borrow(cpLabelName_allocs) - var cpersistentContent_allocs *cgoAllocMap - reffe2a7187.persistentContent, cpersistentContent_allocs = (C.VkBool32)(x.PersistentContent), cgoAllocsUnknown - allocsfe2a7187.Borrow(cpersistentContent_allocs) + var ccolor_allocs *cgoAllocMap + ref8faaf7b1.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown + allocs8faaf7b1.Borrow(ccolor_allocs) - x.reffe2a7187 = reffe2a7187 - x.allocsfe2a7187 = allocsfe2a7187 - return reffe2a7187, allocsfe2a7187 + x.ref8faaf7b1 = ref8faaf7b1 + x.allocs8faaf7b1 = allocs8faaf7b1 + return ref8faaf7b1, allocs8faaf7b1 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayProperties) PassValue() (C.VkDisplayPropertiesKHR, *cgoAllocMap) { - if x.reffe2a7187 != nil { - return *x.reffe2a7187, nil +func (x DebugUtilsLabel) PassValue() (C.VkDebugUtilsLabelEXT, *cgoAllocMap) { + if x.ref8faaf7b1 != nil { + return *x.ref8faaf7b1, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21124,90 +48020,99 @@ func (x DisplayProperties) PassValue() (C.VkDisplayPropertiesKHR, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayProperties) Deref() { - if x.reffe2a7187 == nil { +func (x *DebugUtilsLabel) Deref() { + if x.ref8faaf7b1 == nil { return } - x.Display = *(*Display)(unsafe.Pointer(&x.reffe2a7187.display)) - x.DisplayName = packPCharString(x.reffe2a7187.displayName) - x.PhysicalDimensions = *NewExtent2DRef(unsafe.Pointer(&x.reffe2a7187.physicalDimensions)) - x.PhysicalResolution = *NewExtent2DRef(unsafe.Pointer(&x.reffe2a7187.physicalResolution)) - x.SupportedTransforms = (SurfaceTransformFlags)(x.reffe2a7187.supportedTransforms) - x.PlaneReorderPossible = (Bool32)(x.reffe2a7187.planeReorderPossible) - x.PersistentContent = (Bool32)(x.reffe2a7187.persistentContent) + x.SType = (StructureType)(x.ref8faaf7b1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8faaf7b1.pNext)) + x.PLabelName = packPCharString(x.ref8faaf7b1.pLabelName) + x.Color = *(*[4]float32)(unsafe.Pointer(&x.ref8faaf7b1.color)) } -// allocDisplayModeParametersMemory allocates memory for type C.VkDisplayModeParametersKHR in C. +// allocDebugUtilsObjectNameInfoMemory allocates memory for type C.VkDebugUtilsObjectNameInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayModeParametersMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModeParametersValue)) +func allocDebugUtilsObjectNameInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugUtilsObjectNameInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayModeParametersValue = unsafe.Sizeof([1]C.VkDisplayModeParametersKHR{}) +const sizeOfDebugUtilsObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectNameInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayModeParameters) Ref() *C.VkDisplayModeParametersKHR { +func (x *DebugUtilsObjectNameInfo) Ref() *C.VkDebugUtilsObjectNameInfoEXT { if x == nil { return nil } - return x.refe016f77f + return x.ref5e73c2db } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayModeParameters) Free() { - if x != nil && x.allocse016f77f != nil { - x.allocse016f77f.(*cgoAllocMap).Free() - x.refe016f77f = nil +func (x *DebugUtilsObjectNameInfo) Free() { + if x != nil && x.allocs5e73c2db != nil { + x.allocs5e73c2db.(*cgoAllocMap).Free() + x.ref5e73c2db = nil } } -// NewDisplayModeParametersRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDebugUtilsObjectNameInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayModeParametersRef(ref unsafe.Pointer) *DisplayModeParameters { +func NewDebugUtilsObjectNameInfoRef(ref unsafe.Pointer) *DebugUtilsObjectNameInfo { if ref == nil { return nil } - obj := new(DisplayModeParameters) - obj.refe016f77f = (*C.VkDisplayModeParametersKHR)(unsafe.Pointer(ref)) + obj := new(DebugUtilsObjectNameInfo) + obj.ref5e73c2db = (*C.VkDebugUtilsObjectNameInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayModeParameters) PassRef() (*C.VkDisplayModeParametersKHR, *cgoAllocMap) { +func (x *DebugUtilsObjectNameInfo) PassRef() (*C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe016f77f != nil { - return x.refe016f77f, nil + } else if x.ref5e73c2db != nil { + return x.ref5e73c2db, nil } - meme016f77f := allocDisplayModeParametersMemory(1) - refe016f77f := (*C.VkDisplayModeParametersKHR)(meme016f77f) - allocse016f77f := new(cgoAllocMap) - allocse016f77f.Add(meme016f77f) + mem5e73c2db := allocDebugUtilsObjectNameInfoMemory(1) + ref5e73c2db := (*C.VkDebugUtilsObjectNameInfoEXT)(mem5e73c2db) + allocs5e73c2db := new(cgoAllocMap) + allocs5e73c2db.Add(mem5e73c2db) - var cvisibleRegion_allocs *cgoAllocMap - refe016f77f.visibleRegion, cvisibleRegion_allocs = x.VisibleRegion.PassValue() - allocse016f77f.Borrow(cvisibleRegion_allocs) + var csType_allocs *cgoAllocMap + ref5e73c2db.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5e73c2db.Borrow(csType_allocs) - var crefreshRate_allocs *cgoAllocMap - refe016f77f.refreshRate, crefreshRate_allocs = (C.uint32_t)(x.RefreshRate), cgoAllocsUnknown - allocse016f77f.Borrow(crefreshRate_allocs) + var cpNext_allocs *cgoAllocMap + ref5e73c2db.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5e73c2db.Borrow(cpNext_allocs) - x.refe016f77f = refe016f77f - x.allocse016f77f = allocse016f77f - return refe016f77f, allocse016f77f + var cobjectType_allocs *cgoAllocMap + ref5e73c2db.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown + allocs5e73c2db.Borrow(cobjectType_allocs) + + var cobjectHandle_allocs *cgoAllocMap + ref5e73c2db.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown + allocs5e73c2db.Borrow(cobjectHandle_allocs) + + var cpObjectName_allocs *cgoAllocMap + ref5e73c2db.pObjectName, cpObjectName_allocs = unpackPCharString(x.PObjectName) + allocs5e73c2db.Borrow(cpObjectName_allocs) + + x.ref5e73c2db = ref5e73c2db + x.allocs5e73c2db = allocs5e73c2db + return ref5e73c2db, allocs5e73c2db } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayModeParameters) PassValue() (C.VkDisplayModeParametersKHR, *cgoAllocMap) { - if x.refe016f77f != nil { - return *x.refe016f77f, nil +func (x DebugUtilsObjectNameInfo) PassValue() (C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { + if x.ref5e73c2db != nil { + return *x.ref5e73c2db, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21215,85 +48120,108 @@ func (x DisplayModeParameters) PassValue() (C.VkDisplayModeParametersKHR, *cgoAl // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayModeParameters) Deref() { - if x.refe016f77f == nil { +func (x *DebugUtilsObjectNameInfo) Deref() { + if x.ref5e73c2db == nil { return } - x.VisibleRegion = *NewExtent2DRef(unsafe.Pointer(&x.refe016f77f.visibleRegion)) - x.RefreshRate = (uint32)(x.refe016f77f.refreshRate) + x.SType = (StructureType)(x.ref5e73c2db.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5e73c2db.pNext)) + x.ObjectType = (ObjectType)(x.ref5e73c2db.objectType) + x.ObjectHandle = (uint64)(x.ref5e73c2db.objectHandle) + x.PObjectName = packPCharString(x.ref5e73c2db.pObjectName) } -// allocDisplayModePropertiesMemory allocates memory for type C.VkDisplayModePropertiesKHR in C. +// allocDebugUtilsObjectTagInfoMemory allocates memory for type C.VkDebugUtilsObjectTagInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayModePropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModePropertiesValue)) +func allocDebugUtilsObjectTagInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugUtilsObjectTagInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayModePropertiesValue = unsafe.Sizeof([1]C.VkDisplayModePropertiesKHR{}) +const sizeOfDebugUtilsObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectTagInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayModeProperties) Ref() *C.VkDisplayModePropertiesKHR { +func (x *DebugUtilsObjectTagInfo) Ref() *C.VkDebugUtilsObjectTagInfoEXT { if x == nil { return nil } - return x.ref5e3abaaa + return x.ref9fd129cf } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayModeProperties) Free() { - if x != nil && x.allocs5e3abaaa != nil { - x.allocs5e3abaaa.(*cgoAllocMap).Free() - x.ref5e3abaaa = nil +func (x *DebugUtilsObjectTagInfo) Free() { + if x != nil && x.allocs9fd129cf != nil { + x.allocs9fd129cf.(*cgoAllocMap).Free() + x.ref9fd129cf = nil } } -// NewDisplayModePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDebugUtilsObjectTagInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayModePropertiesRef(ref unsafe.Pointer) *DisplayModeProperties { +func NewDebugUtilsObjectTagInfoRef(ref unsafe.Pointer) *DebugUtilsObjectTagInfo { if ref == nil { return nil } - obj := new(DisplayModeProperties) - obj.ref5e3abaaa = (*C.VkDisplayModePropertiesKHR)(unsafe.Pointer(ref)) + obj := new(DebugUtilsObjectTagInfo) + obj.ref9fd129cf = (*C.VkDebugUtilsObjectTagInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayModeProperties) PassRef() (*C.VkDisplayModePropertiesKHR, *cgoAllocMap) { +func (x *DebugUtilsObjectTagInfo) PassRef() (*C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5e3abaaa != nil { - return x.ref5e3abaaa, nil + } else if x.ref9fd129cf != nil { + return x.ref9fd129cf, nil } - mem5e3abaaa := allocDisplayModePropertiesMemory(1) - ref5e3abaaa := (*C.VkDisplayModePropertiesKHR)(mem5e3abaaa) - allocs5e3abaaa := new(cgoAllocMap) - allocs5e3abaaa.Add(mem5e3abaaa) + mem9fd129cf := allocDebugUtilsObjectTagInfoMemory(1) + ref9fd129cf := (*C.VkDebugUtilsObjectTagInfoEXT)(mem9fd129cf) + allocs9fd129cf := new(cgoAllocMap) + allocs9fd129cf.Add(mem9fd129cf) - var cdisplayMode_allocs *cgoAllocMap - ref5e3abaaa.displayMode, cdisplayMode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.DisplayMode)), cgoAllocsUnknown - allocs5e3abaaa.Borrow(cdisplayMode_allocs) + var csType_allocs *cgoAllocMap + ref9fd129cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9fd129cf.Borrow(csType_allocs) - var cparameters_allocs *cgoAllocMap - ref5e3abaaa.parameters, cparameters_allocs = x.Parameters.PassValue() - allocs5e3abaaa.Borrow(cparameters_allocs) + var cpNext_allocs *cgoAllocMap + ref9fd129cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9fd129cf.Borrow(cpNext_allocs) - x.ref5e3abaaa = ref5e3abaaa - x.allocs5e3abaaa = allocs5e3abaaa - return ref5e3abaaa, allocs5e3abaaa + var cobjectType_allocs *cgoAllocMap + ref9fd129cf.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown + allocs9fd129cf.Borrow(cobjectType_allocs) + + var cobjectHandle_allocs *cgoAllocMap + ref9fd129cf.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown + allocs9fd129cf.Borrow(cobjectHandle_allocs) + + var ctagName_allocs *cgoAllocMap + ref9fd129cf.tagName, ctagName_allocs = (C.uint64_t)(x.TagName), cgoAllocsUnknown + allocs9fd129cf.Borrow(ctagName_allocs) + + var ctagSize_allocs *cgoAllocMap + ref9fd129cf.tagSize, ctagSize_allocs = (C.size_t)(x.TagSize), cgoAllocsUnknown + allocs9fd129cf.Borrow(ctagSize_allocs) + + var cpTag_allocs *cgoAllocMap + ref9fd129cf.pTag, cpTag_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PTag)), cgoAllocsUnknown + allocs9fd129cf.Borrow(cpTag_allocs) + + x.ref9fd129cf = ref9fd129cf + x.allocs9fd129cf = allocs9fd129cf + return ref9fd129cf, allocs9fd129cf } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayModeProperties) PassValue() (C.VkDisplayModePropertiesKHR, *cgoAllocMap) { - if x.ref5e3abaaa != nil { - return *x.ref5e3abaaa, nil +func (x DebugUtilsObjectTagInfo) PassValue() (C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { + if x.ref9fd129cf != nil { + return *x.ref9fd129cf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21301,93 +48229,90 @@ func (x DisplayModeProperties) PassValue() (C.VkDisplayModePropertiesKHR, *cgoAl // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayModeProperties) Deref() { - if x.ref5e3abaaa == nil { +func (x *DebugUtilsObjectTagInfo) Deref() { + if x.ref9fd129cf == nil { return } - x.DisplayMode = *(*DisplayMode)(unsafe.Pointer(&x.ref5e3abaaa.displayMode)) - x.Parameters = *NewDisplayModeParametersRef(unsafe.Pointer(&x.ref5e3abaaa.parameters)) + x.SType = (StructureType)(x.ref9fd129cf.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9fd129cf.pNext)) + x.ObjectType = (ObjectType)(x.ref9fd129cf.objectType) + x.ObjectHandle = (uint64)(x.ref9fd129cf.objectHandle) + x.TagName = (uint64)(x.ref9fd129cf.tagName) + x.TagSize = (uint64)(x.ref9fd129cf.tagSize) + x.PTag = (unsafe.Pointer)(unsafe.Pointer(x.ref9fd129cf.pTag)) } -// allocDisplayModeCreateInfoMemory allocates memory for type C.VkDisplayModeCreateInfoKHR in C. +// allocSampleLocationMemory allocates memory for type C.VkSampleLocationEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayModeCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModeCreateInfoValue)) +func allocSampleLocationMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSampleLocationValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayModeCreateInfoValue = unsafe.Sizeof([1]C.VkDisplayModeCreateInfoKHR{}) +const sizeOfSampleLocationValue = unsafe.Sizeof([1]C.VkSampleLocationEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayModeCreateInfo) Ref() *C.VkDisplayModeCreateInfoKHR { +func (x *SampleLocation) Ref() *C.VkSampleLocationEXT { if x == nil { return nil } - return x.ref392fca31 + return x.refe7a2e761 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayModeCreateInfo) Free() { - if x != nil && x.allocs392fca31 != nil { - x.allocs392fca31.(*cgoAllocMap).Free() - x.ref392fca31 = nil +func (x *SampleLocation) Free() { + if x != nil && x.allocse7a2e761 != nil { + x.allocse7a2e761.(*cgoAllocMap).Free() + x.refe7a2e761 = nil } } -// NewDisplayModeCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSampleLocationRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayModeCreateInfoRef(ref unsafe.Pointer) *DisplayModeCreateInfo { +func NewSampleLocationRef(ref unsafe.Pointer) *SampleLocation { if ref == nil { return nil } - obj := new(DisplayModeCreateInfo) - obj.ref392fca31 = (*C.VkDisplayModeCreateInfoKHR)(unsafe.Pointer(ref)) + obj := new(SampleLocation) + obj.refe7a2e761 = (*C.VkSampleLocationEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayModeCreateInfo) PassRef() (*C.VkDisplayModeCreateInfoKHR, *cgoAllocMap) { +func (x *SampleLocation) PassRef() (*C.VkSampleLocationEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref392fca31 != nil { - return x.ref392fca31, nil + } else if x.refe7a2e761 != nil { + return x.refe7a2e761, nil } - mem392fca31 := allocDisplayModeCreateInfoMemory(1) - ref392fca31 := (*C.VkDisplayModeCreateInfoKHR)(mem392fca31) - allocs392fca31 := new(cgoAllocMap) - allocs392fca31.Add(mem392fca31) - - var csType_allocs *cgoAllocMap - ref392fca31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs392fca31.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref392fca31.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs392fca31.Borrow(cpNext_allocs) + meme7a2e761 := allocSampleLocationMemory(1) + refe7a2e761 := (*C.VkSampleLocationEXT)(meme7a2e761) + allocse7a2e761 := new(cgoAllocMap) + allocse7a2e761.Add(meme7a2e761) - var cflags_allocs *cgoAllocMap - ref392fca31.flags, cflags_allocs = (C.VkDisplayModeCreateFlagsKHR)(x.Flags), cgoAllocsUnknown - allocs392fca31.Borrow(cflags_allocs) + var cx_allocs *cgoAllocMap + refe7a2e761.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown + allocse7a2e761.Borrow(cx_allocs) - var cparameters_allocs *cgoAllocMap - ref392fca31.parameters, cparameters_allocs = x.Parameters.PassValue() - allocs392fca31.Borrow(cparameters_allocs) + var cy_allocs *cgoAllocMap + refe7a2e761.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown + allocse7a2e761.Borrow(cy_allocs) - x.ref392fca31 = ref392fca31 - x.allocs392fca31 = allocs392fca31 - return ref392fca31, allocs392fca31 + x.refe7a2e761 = refe7a2e761 + x.allocse7a2e761 = allocse7a2e761 + return refe7a2e761, allocse7a2e761 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayModeCreateInfo) PassValue() (C.VkDisplayModeCreateInfoKHR, *cgoAllocMap) { - if x.ref392fca31 != nil { - return *x.ref392fca31, nil +func (x SampleLocation) PassValue() (C.VkSampleLocationEXT, *cgoAllocMap) { + if x.refe7a2e761 != nil { + return *x.refe7a2e761, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21395,115 +48320,139 @@ func (x DisplayModeCreateInfo) PassValue() (C.VkDisplayModeCreateInfoKHR, *cgoAl // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayModeCreateInfo) Deref() { - if x.ref392fca31 == nil { +func (x *SampleLocation) Deref() { + if x.refe7a2e761 == nil { return } - x.SType = (StructureType)(x.ref392fca31.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref392fca31.pNext)) - x.Flags = (DisplayModeCreateFlags)(x.ref392fca31.flags) - x.Parameters = *NewDisplayModeParametersRef(unsafe.Pointer(&x.ref392fca31.parameters)) + x.X = (float32)(x.refe7a2e761.x) + x.Y = (float32)(x.refe7a2e761.y) } -// allocDisplayPlaneCapabilitiesMemory allocates memory for type C.VkDisplayPlaneCapabilitiesKHR in C. +// allocSampleLocationsInfoMemory allocates memory for type C.VkSampleLocationsInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayPlaneCapabilitiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneCapabilitiesValue)) +func allocSampleLocationsInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSampleLocationsInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayPlaneCapabilitiesValue = unsafe.Sizeof([1]C.VkDisplayPlaneCapabilitiesKHR{}) +const sizeOfSampleLocationsInfoValue = unsafe.Sizeof([1]C.VkSampleLocationsInfoEXT{}) + +// unpackSSampleLocation transforms a sliced Go data structure into plain C format. +func unpackSSampleLocation(x []SampleLocation) (unpacked *C.VkSampleLocationEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSampleLocationEXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSampleLocationMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSampleLocationEXT)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSampleLocationEXT)(h.Data) + return +} + +// packSSampleLocation reads sliced Go data structure out from plain C format. +func packSSampleLocation(v []SampleLocation, ptr0 *C.VkSampleLocationEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSampleLocationValue]C.VkSampleLocationEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSampleLocationRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneCapabilities) Ref() *C.VkDisplayPlaneCapabilitiesKHR { +func (x *SampleLocationsInfo) Ref() *C.VkSampleLocationsInfoEXT { if x == nil { return nil } - return x.ref6f31fcaf + return x.refd8f3bd2d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayPlaneCapabilities) Free() { - if x != nil && x.allocs6f31fcaf != nil { - x.allocs6f31fcaf.(*cgoAllocMap).Free() - x.ref6f31fcaf = nil +func (x *SampleLocationsInfo) Free() { + if x != nil && x.allocsd8f3bd2d != nil { + x.allocsd8f3bd2d.(*cgoAllocMap).Free() + x.refd8f3bd2d = nil } } -// NewDisplayPlaneCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSampleLocationsInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayPlaneCapabilitiesRef(ref unsafe.Pointer) *DisplayPlaneCapabilities { +func NewSampleLocationsInfoRef(ref unsafe.Pointer) *SampleLocationsInfo { if ref == nil { return nil } - obj := new(DisplayPlaneCapabilities) - obj.ref6f31fcaf = (*C.VkDisplayPlaneCapabilitiesKHR)(unsafe.Pointer(ref)) + obj := new(SampleLocationsInfo) + obj.refd8f3bd2d = (*C.VkSampleLocationsInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayPlaneCapabilities) PassRef() (*C.VkDisplayPlaneCapabilitiesKHR, *cgoAllocMap) { +func (x *SampleLocationsInfo) PassRef() (*C.VkSampleLocationsInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6f31fcaf != nil { - return x.ref6f31fcaf, nil + } else if x.refd8f3bd2d != nil { + return x.refd8f3bd2d, nil } - mem6f31fcaf := allocDisplayPlaneCapabilitiesMemory(1) - ref6f31fcaf := (*C.VkDisplayPlaneCapabilitiesKHR)(mem6f31fcaf) - allocs6f31fcaf := new(cgoAllocMap) - allocs6f31fcaf.Add(mem6f31fcaf) - - var csupportedAlpha_allocs *cgoAllocMap - ref6f31fcaf.supportedAlpha, csupportedAlpha_allocs = (C.VkDisplayPlaneAlphaFlagsKHR)(x.SupportedAlpha), cgoAllocsUnknown - allocs6f31fcaf.Borrow(csupportedAlpha_allocs) - - var cminSrcPosition_allocs *cgoAllocMap - ref6f31fcaf.minSrcPosition, cminSrcPosition_allocs = x.MinSrcPosition.PassValue() - allocs6f31fcaf.Borrow(cminSrcPosition_allocs) - - var cmaxSrcPosition_allocs *cgoAllocMap - ref6f31fcaf.maxSrcPosition, cmaxSrcPosition_allocs = x.MaxSrcPosition.PassValue() - allocs6f31fcaf.Borrow(cmaxSrcPosition_allocs) + memd8f3bd2d := allocSampleLocationsInfoMemory(1) + refd8f3bd2d := (*C.VkSampleLocationsInfoEXT)(memd8f3bd2d) + allocsd8f3bd2d := new(cgoAllocMap) + allocsd8f3bd2d.Add(memd8f3bd2d) - var cminSrcExtent_allocs *cgoAllocMap - ref6f31fcaf.minSrcExtent, cminSrcExtent_allocs = x.MinSrcExtent.PassValue() - allocs6f31fcaf.Borrow(cminSrcExtent_allocs) + var csType_allocs *cgoAllocMap + refd8f3bd2d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(csType_allocs) - var cmaxSrcExtent_allocs *cgoAllocMap - ref6f31fcaf.maxSrcExtent, cmaxSrcExtent_allocs = x.MaxSrcExtent.PassValue() - allocs6f31fcaf.Borrow(cmaxSrcExtent_allocs) + var cpNext_allocs *cgoAllocMap + refd8f3bd2d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(cpNext_allocs) - var cminDstPosition_allocs *cgoAllocMap - ref6f31fcaf.minDstPosition, cminDstPosition_allocs = x.MinDstPosition.PassValue() - allocs6f31fcaf.Borrow(cminDstPosition_allocs) + var csampleLocationsPerPixel_allocs *cgoAllocMap + refd8f3bd2d.sampleLocationsPerPixel, csampleLocationsPerPixel_allocs = (C.VkSampleCountFlagBits)(x.SampleLocationsPerPixel), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(csampleLocationsPerPixel_allocs) - var cmaxDstPosition_allocs *cgoAllocMap - ref6f31fcaf.maxDstPosition, cmaxDstPosition_allocs = x.MaxDstPosition.PassValue() - allocs6f31fcaf.Borrow(cmaxDstPosition_allocs) + var csampleLocationGridSize_allocs *cgoAllocMap + refd8f3bd2d.sampleLocationGridSize, csampleLocationGridSize_allocs = x.SampleLocationGridSize.PassValue() + allocsd8f3bd2d.Borrow(csampleLocationGridSize_allocs) - var cminDstExtent_allocs *cgoAllocMap - ref6f31fcaf.minDstExtent, cminDstExtent_allocs = x.MinDstExtent.PassValue() - allocs6f31fcaf.Borrow(cminDstExtent_allocs) + var csampleLocationsCount_allocs *cgoAllocMap + refd8f3bd2d.sampleLocationsCount, csampleLocationsCount_allocs = (C.uint32_t)(x.SampleLocationsCount), cgoAllocsUnknown + allocsd8f3bd2d.Borrow(csampleLocationsCount_allocs) - var cmaxDstExtent_allocs *cgoAllocMap - ref6f31fcaf.maxDstExtent, cmaxDstExtent_allocs = x.MaxDstExtent.PassValue() - allocs6f31fcaf.Borrow(cmaxDstExtent_allocs) + var cpSampleLocations_allocs *cgoAllocMap + refd8f3bd2d.pSampleLocations, cpSampleLocations_allocs = unpackSSampleLocation(x.PSampleLocations) + allocsd8f3bd2d.Borrow(cpSampleLocations_allocs) - x.ref6f31fcaf = ref6f31fcaf - x.allocs6f31fcaf = allocs6f31fcaf - return ref6f31fcaf, allocs6f31fcaf + x.refd8f3bd2d = refd8f3bd2d + x.allocsd8f3bd2d = allocsd8f3bd2d + return refd8f3bd2d, allocsd8f3bd2d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayPlaneCapabilities) PassValue() (C.VkDisplayPlaneCapabilitiesKHR, *cgoAllocMap) { - if x.ref6f31fcaf != nil { - return *x.ref6f31fcaf, nil +func (x SampleLocationsInfo) PassValue() (C.VkSampleLocationsInfoEXT, *cgoAllocMap) { + if x.refd8f3bd2d != nil { + return *x.refd8f3bd2d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21511,92 +48460,89 @@ func (x DisplayPlaneCapabilities) PassValue() (C.VkDisplayPlaneCapabilitiesKHR, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayPlaneCapabilities) Deref() { - if x.ref6f31fcaf == nil { +func (x *SampleLocationsInfo) Deref() { + if x.refd8f3bd2d == nil { return } - x.SupportedAlpha = (DisplayPlaneAlphaFlags)(x.ref6f31fcaf.supportedAlpha) - x.MinSrcPosition = *NewOffset2DRef(unsafe.Pointer(&x.ref6f31fcaf.minSrcPosition)) - x.MaxSrcPosition = *NewOffset2DRef(unsafe.Pointer(&x.ref6f31fcaf.maxSrcPosition)) - x.MinSrcExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref6f31fcaf.minSrcExtent)) - x.MaxSrcExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref6f31fcaf.maxSrcExtent)) - x.MinDstPosition = *NewOffset2DRef(unsafe.Pointer(&x.ref6f31fcaf.minDstPosition)) - x.MaxDstPosition = *NewOffset2DRef(unsafe.Pointer(&x.ref6f31fcaf.maxDstPosition)) - x.MinDstExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref6f31fcaf.minDstExtent)) - x.MaxDstExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref6f31fcaf.maxDstExtent)) + x.SType = (StructureType)(x.refd8f3bd2d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd8f3bd2d.pNext)) + x.SampleLocationsPerPixel = (SampleCountFlagBits)(x.refd8f3bd2d.sampleLocationsPerPixel) + x.SampleLocationGridSize = *NewExtent2DRef(unsafe.Pointer(&x.refd8f3bd2d.sampleLocationGridSize)) + x.SampleLocationsCount = (uint32)(x.refd8f3bd2d.sampleLocationsCount) + packSSampleLocation(x.PSampleLocations, x.refd8f3bd2d.pSampleLocations) } -// allocDisplayPlanePropertiesMemory allocates memory for type C.VkDisplayPlanePropertiesKHR in C. +// allocAttachmentSampleLocationsMemory allocates memory for type C.VkAttachmentSampleLocationsEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayPlanePropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlanePropertiesValue)) +func allocAttachmentSampleLocationsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentSampleLocationsValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayPlanePropertiesValue = unsafe.Sizeof([1]C.VkDisplayPlanePropertiesKHR{}) +const sizeOfAttachmentSampleLocationsValue = unsafe.Sizeof([1]C.VkAttachmentSampleLocationsEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneProperties) Ref() *C.VkDisplayPlanePropertiesKHR { +func (x *AttachmentSampleLocations) Ref() *C.VkAttachmentSampleLocationsEXT { if x == nil { return nil } - return x.refce3db3f6 + return x.ref6a3dd41e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayPlaneProperties) Free() { - if x != nil && x.allocsce3db3f6 != nil { - x.allocsce3db3f6.(*cgoAllocMap).Free() - x.refce3db3f6 = nil +func (x *AttachmentSampleLocations) Free() { + if x != nil && x.allocs6a3dd41e != nil { + x.allocs6a3dd41e.(*cgoAllocMap).Free() + x.ref6a3dd41e = nil } } -// NewDisplayPlanePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewAttachmentSampleLocationsRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayPlanePropertiesRef(ref unsafe.Pointer) *DisplayPlaneProperties { +func NewAttachmentSampleLocationsRef(ref unsafe.Pointer) *AttachmentSampleLocations { if ref == nil { return nil } - obj := new(DisplayPlaneProperties) - obj.refce3db3f6 = (*C.VkDisplayPlanePropertiesKHR)(unsafe.Pointer(ref)) + obj := new(AttachmentSampleLocations) + obj.ref6a3dd41e = (*C.VkAttachmentSampleLocationsEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayPlaneProperties) PassRef() (*C.VkDisplayPlanePropertiesKHR, *cgoAllocMap) { +func (x *AttachmentSampleLocations) PassRef() (*C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refce3db3f6 != nil { - return x.refce3db3f6, nil + } else if x.ref6a3dd41e != nil { + return x.ref6a3dd41e, nil } - memce3db3f6 := allocDisplayPlanePropertiesMemory(1) - refce3db3f6 := (*C.VkDisplayPlanePropertiesKHR)(memce3db3f6) - allocsce3db3f6 := new(cgoAllocMap) - allocsce3db3f6.Add(memce3db3f6) + mem6a3dd41e := allocAttachmentSampleLocationsMemory(1) + ref6a3dd41e := (*C.VkAttachmentSampleLocationsEXT)(mem6a3dd41e) + allocs6a3dd41e := new(cgoAllocMap) + allocs6a3dd41e.Add(mem6a3dd41e) - var ccurrentDisplay_allocs *cgoAllocMap - refce3db3f6.currentDisplay, ccurrentDisplay_allocs = *(*C.VkDisplayKHR)(unsafe.Pointer(&x.CurrentDisplay)), cgoAllocsUnknown - allocsce3db3f6.Borrow(ccurrentDisplay_allocs) + var cattachmentIndex_allocs *cgoAllocMap + ref6a3dd41e.attachmentIndex, cattachmentIndex_allocs = (C.uint32_t)(x.AttachmentIndex), cgoAllocsUnknown + allocs6a3dd41e.Borrow(cattachmentIndex_allocs) - var ccurrentStackIndex_allocs *cgoAllocMap - refce3db3f6.currentStackIndex, ccurrentStackIndex_allocs = (C.uint32_t)(x.CurrentStackIndex), cgoAllocsUnknown - allocsce3db3f6.Borrow(ccurrentStackIndex_allocs) + var csampleLocationsInfo_allocs *cgoAllocMap + ref6a3dd41e.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() + allocs6a3dd41e.Borrow(csampleLocationsInfo_allocs) - x.refce3db3f6 = refce3db3f6 - x.allocsce3db3f6 = allocsce3db3f6 - return refce3db3f6, allocsce3db3f6 + x.ref6a3dd41e = ref6a3dd41e + x.allocs6a3dd41e = allocs6a3dd41e + return ref6a3dd41e, allocs6a3dd41e } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayPlaneProperties) PassValue() (C.VkDisplayPlanePropertiesKHR, *cgoAllocMap) { - if x.refce3db3f6 != nil { - return *x.refce3db3f6, nil +func (x AttachmentSampleLocations) PassValue() (C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { + if x.ref6a3dd41e != nil { + return *x.ref6a3dd41e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21604,117 +48550,85 @@ func (x DisplayPlaneProperties) PassValue() (C.VkDisplayPlanePropertiesKHR, *cgo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayPlaneProperties) Deref() { - if x.refce3db3f6 == nil { +func (x *AttachmentSampleLocations) Deref() { + if x.ref6a3dd41e == nil { return } - x.CurrentDisplay = *(*Display)(unsafe.Pointer(&x.refce3db3f6.currentDisplay)) - x.CurrentStackIndex = (uint32)(x.refce3db3f6.currentStackIndex) + x.AttachmentIndex = (uint32)(x.ref6a3dd41e.attachmentIndex) + x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref6a3dd41e.sampleLocationsInfo)) } -// allocDisplaySurfaceCreateInfoMemory allocates memory for type C.VkDisplaySurfaceCreateInfoKHR in C. +// allocSubpassSampleLocationsMemory allocates memory for type C.VkSubpassSampleLocationsEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplaySurfaceCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplaySurfaceCreateInfoValue)) +func allocSubpassSampleLocationsMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassSampleLocationsValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplaySurfaceCreateInfoValue = unsafe.Sizeof([1]C.VkDisplaySurfaceCreateInfoKHR{}) +const sizeOfSubpassSampleLocationsValue = unsafe.Sizeof([1]C.VkSubpassSampleLocationsEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplaySurfaceCreateInfo) Ref() *C.VkDisplaySurfaceCreateInfoKHR { +func (x *SubpassSampleLocations) Ref() *C.VkSubpassSampleLocationsEXT { if x == nil { return nil } - return x.ref58445c35 + return x.ref1f612812 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplaySurfaceCreateInfo) Free() { - if x != nil && x.allocs58445c35 != nil { - x.allocs58445c35.(*cgoAllocMap).Free() - x.ref58445c35 = nil +func (x *SubpassSampleLocations) Free() { + if x != nil && x.allocs1f612812 != nil { + x.allocs1f612812.(*cgoAllocMap).Free() + x.ref1f612812 = nil } } -// NewDisplaySurfaceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSubpassSampleLocationsRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplaySurfaceCreateInfoRef(ref unsafe.Pointer) *DisplaySurfaceCreateInfo { +func NewSubpassSampleLocationsRef(ref unsafe.Pointer) *SubpassSampleLocations { if ref == nil { return nil } - obj := new(DisplaySurfaceCreateInfo) - obj.ref58445c35 = (*C.VkDisplaySurfaceCreateInfoKHR)(unsafe.Pointer(ref)) + obj := new(SubpassSampleLocations) + obj.ref1f612812 = (*C.VkSubpassSampleLocationsEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplaySurfaceCreateInfo) PassRef() (*C.VkDisplaySurfaceCreateInfoKHR, *cgoAllocMap) { +func (x *SubpassSampleLocations) PassRef() (*C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref58445c35 != nil { - return x.ref58445c35, nil + } else if x.ref1f612812 != nil { + return x.ref1f612812, nil } - mem58445c35 := allocDisplaySurfaceCreateInfoMemory(1) - ref58445c35 := (*C.VkDisplaySurfaceCreateInfoKHR)(mem58445c35) - allocs58445c35 := new(cgoAllocMap) - allocs58445c35.Add(mem58445c35) - - var csType_allocs *cgoAllocMap - ref58445c35.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs58445c35.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref58445c35.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs58445c35.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref58445c35.flags, cflags_allocs = (C.VkDisplaySurfaceCreateFlagsKHR)(x.Flags), cgoAllocsUnknown - allocs58445c35.Borrow(cflags_allocs) - - var cdisplayMode_allocs *cgoAllocMap - ref58445c35.displayMode, cdisplayMode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.DisplayMode)), cgoAllocsUnknown - allocs58445c35.Borrow(cdisplayMode_allocs) - - var cplaneIndex_allocs *cgoAllocMap - ref58445c35.planeIndex, cplaneIndex_allocs = (C.uint32_t)(x.PlaneIndex), cgoAllocsUnknown - allocs58445c35.Borrow(cplaneIndex_allocs) - - var cplaneStackIndex_allocs *cgoAllocMap - ref58445c35.planeStackIndex, cplaneStackIndex_allocs = (C.uint32_t)(x.PlaneStackIndex), cgoAllocsUnknown - allocs58445c35.Borrow(cplaneStackIndex_allocs) - - var ctransform_allocs *cgoAllocMap - ref58445c35.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown - allocs58445c35.Borrow(ctransform_allocs) - - var cglobalAlpha_allocs *cgoAllocMap - ref58445c35.globalAlpha, cglobalAlpha_allocs = (C.float)(x.GlobalAlpha), cgoAllocsUnknown - allocs58445c35.Borrow(cglobalAlpha_allocs) + mem1f612812 := allocSubpassSampleLocationsMemory(1) + ref1f612812 := (*C.VkSubpassSampleLocationsEXT)(mem1f612812) + allocs1f612812 := new(cgoAllocMap) + allocs1f612812.Add(mem1f612812) - var calphaMode_allocs *cgoAllocMap - ref58445c35.alphaMode, calphaMode_allocs = (C.VkDisplayPlaneAlphaFlagBitsKHR)(x.AlphaMode), cgoAllocsUnknown - allocs58445c35.Borrow(calphaMode_allocs) + var csubpassIndex_allocs *cgoAllocMap + ref1f612812.subpassIndex, csubpassIndex_allocs = (C.uint32_t)(x.SubpassIndex), cgoAllocsUnknown + allocs1f612812.Borrow(csubpassIndex_allocs) - var cimageExtent_allocs *cgoAllocMap - ref58445c35.imageExtent, cimageExtent_allocs = x.ImageExtent.PassValue() - allocs58445c35.Borrow(cimageExtent_allocs) + var csampleLocationsInfo_allocs *cgoAllocMap + ref1f612812.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() + allocs1f612812.Borrow(csampleLocationsInfo_allocs) - x.ref58445c35 = ref58445c35 - x.allocs58445c35 = allocs58445c35 - return ref58445c35, allocs58445c35 + x.ref1f612812 = ref1f612812 + x.allocs1f612812 = allocs1f612812 + return ref1f612812, allocs1f612812 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplaySurfaceCreateInfo) PassValue() (C.VkDisplaySurfaceCreateInfoKHR, *cgoAllocMap) { - if x.ref58445c35 != nil { - return *x.ref58445c35, nil +func (x SubpassSampleLocations) PassValue() (C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { + if x.ref1f612812 != nil { + return *x.ref1f612812, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21722,105 +48636,177 @@ func (x DisplaySurfaceCreateInfo) PassValue() (C.VkDisplaySurfaceCreateInfoKHR, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplaySurfaceCreateInfo) Deref() { - if x.ref58445c35 == nil { +func (x *SubpassSampleLocations) Deref() { + if x.ref1f612812 == nil { return } - x.SType = (StructureType)(x.ref58445c35.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref58445c35.pNext)) - x.Flags = (DisplaySurfaceCreateFlags)(x.ref58445c35.flags) - x.DisplayMode = *(*DisplayMode)(unsafe.Pointer(&x.ref58445c35.displayMode)) - x.PlaneIndex = (uint32)(x.ref58445c35.planeIndex) - x.PlaneStackIndex = (uint32)(x.ref58445c35.planeStackIndex) - x.Transform = (SurfaceTransformFlagBits)(x.ref58445c35.transform) - x.GlobalAlpha = (float32)(x.ref58445c35.globalAlpha) - x.AlphaMode = (DisplayPlaneAlphaFlagBits)(x.ref58445c35.alphaMode) - x.ImageExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref58445c35.imageExtent)) + x.SubpassIndex = (uint32)(x.ref1f612812.subpassIndex) + x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref1f612812.sampleLocationsInfo)) } -// allocDisplayPresentInfoMemory allocates memory for type C.VkDisplayPresentInfoKHR in C. +// allocRenderPassSampleLocationsBeginInfoMemory allocates memory for type C.VkRenderPassSampleLocationsBeginInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayPresentInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPresentInfoValue)) +func allocRenderPassSampleLocationsBeginInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassSampleLocationsBeginInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayPresentInfoValue = unsafe.Sizeof([1]C.VkDisplayPresentInfoKHR{}) +const sizeOfRenderPassSampleLocationsBeginInfoValue = unsafe.Sizeof([1]C.VkRenderPassSampleLocationsBeginInfoEXT{}) + +// unpackSAttachmentSampleLocations transforms a sliced Go data structure into plain C format. +func unpackSAttachmentSampleLocations(x []AttachmentSampleLocations) (unpacked *C.VkAttachmentSampleLocationsEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentSampleLocationsEXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocAttachmentSampleLocationsMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkAttachmentSampleLocationsEXT)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkAttachmentSampleLocationsEXT)(h.Data) + return +} + +// unpackSSubpassSampleLocations transforms a sliced Go data structure into plain C format. +func unpackSSubpassSampleLocations(x []SubpassSampleLocations) (unpacked *C.VkSubpassSampleLocationsEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassSampleLocationsEXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocSubpassSampleLocationsMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkSubpassSampleLocationsEXT)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkSubpassSampleLocationsEXT)(h.Data) + return +} + +// packSAttachmentSampleLocations reads sliced Go data structure out from plain C format. +func packSAttachmentSampleLocations(v []AttachmentSampleLocations, ptr0 *C.VkAttachmentSampleLocationsEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfAttachmentSampleLocationsValue]C.VkAttachmentSampleLocationsEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewAttachmentSampleLocationsRef(unsafe.Pointer(&ptr1)) + } +} + +// packSSubpassSampleLocations reads sliced Go data structure out from plain C format. +func packSSubpassSampleLocations(v []SubpassSampleLocations, ptr0 *C.VkSubpassSampleLocationsEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfSubpassSampleLocationsValue]C.VkSubpassSampleLocationsEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSubpassSampleLocationsRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPresentInfo) Ref() *C.VkDisplayPresentInfoKHR { +func (x *RenderPassSampleLocationsBeginInfo) Ref() *C.VkRenderPassSampleLocationsBeginInfoEXT { if x == nil { return nil } - return x.ref8d2571e4 + return x.refb61b51d4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayPresentInfo) Free() { - if x != nil && x.allocs8d2571e4 != nil { - x.allocs8d2571e4.(*cgoAllocMap).Free() - x.ref8d2571e4 = nil +func (x *RenderPassSampleLocationsBeginInfo) Free() { + if x != nil && x.allocsb61b51d4 != nil { + x.allocsb61b51d4.(*cgoAllocMap).Free() + x.refb61b51d4 = nil } } -// NewDisplayPresentInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewRenderPassSampleLocationsBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayPresentInfoRef(ref unsafe.Pointer) *DisplayPresentInfo { +func NewRenderPassSampleLocationsBeginInfoRef(ref unsafe.Pointer) *RenderPassSampleLocationsBeginInfo { if ref == nil { return nil } - obj := new(DisplayPresentInfo) - obj.ref8d2571e4 = (*C.VkDisplayPresentInfoKHR)(unsafe.Pointer(ref)) + obj := new(RenderPassSampleLocationsBeginInfo) + obj.refb61b51d4 = (*C.VkRenderPassSampleLocationsBeginInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayPresentInfo) PassRef() (*C.VkDisplayPresentInfoKHR, *cgoAllocMap) { +func (x *RenderPassSampleLocationsBeginInfo) PassRef() (*C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8d2571e4 != nil { - return x.ref8d2571e4, nil + } else if x.refb61b51d4 != nil { + return x.refb61b51d4, nil } - mem8d2571e4 := allocDisplayPresentInfoMemory(1) - ref8d2571e4 := (*C.VkDisplayPresentInfoKHR)(mem8d2571e4) - allocs8d2571e4 := new(cgoAllocMap) - allocs8d2571e4.Add(mem8d2571e4) + memb61b51d4 := allocRenderPassSampleLocationsBeginInfoMemory(1) + refb61b51d4 := (*C.VkRenderPassSampleLocationsBeginInfoEXT)(memb61b51d4) + allocsb61b51d4 := new(cgoAllocMap) + allocsb61b51d4.Add(memb61b51d4) var csType_allocs *cgoAllocMap - ref8d2571e4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8d2571e4.Borrow(csType_allocs) + refb61b51d4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb61b51d4.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8d2571e4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8d2571e4.Borrow(cpNext_allocs) + refb61b51d4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb61b51d4.Borrow(cpNext_allocs) - var csrcRect_allocs *cgoAllocMap - ref8d2571e4.srcRect, csrcRect_allocs = x.SrcRect.PassValue() - allocs8d2571e4.Borrow(csrcRect_allocs) + var cattachmentInitialSampleLocationsCount_allocs *cgoAllocMap + refb61b51d4.attachmentInitialSampleLocationsCount, cattachmentInitialSampleLocationsCount_allocs = (C.uint32_t)(x.AttachmentInitialSampleLocationsCount), cgoAllocsUnknown + allocsb61b51d4.Borrow(cattachmentInitialSampleLocationsCount_allocs) - var cdstRect_allocs *cgoAllocMap - ref8d2571e4.dstRect, cdstRect_allocs = x.DstRect.PassValue() - allocs8d2571e4.Borrow(cdstRect_allocs) + var cpAttachmentInitialSampleLocations_allocs *cgoAllocMap + refb61b51d4.pAttachmentInitialSampleLocations, cpAttachmentInitialSampleLocations_allocs = unpackSAttachmentSampleLocations(x.PAttachmentInitialSampleLocations) + allocsb61b51d4.Borrow(cpAttachmentInitialSampleLocations_allocs) - var cpersistent_allocs *cgoAllocMap - ref8d2571e4.persistent, cpersistent_allocs = (C.VkBool32)(x.Persistent), cgoAllocsUnknown - allocs8d2571e4.Borrow(cpersistent_allocs) + var cpostSubpassSampleLocationsCount_allocs *cgoAllocMap + refb61b51d4.postSubpassSampleLocationsCount, cpostSubpassSampleLocationsCount_allocs = (C.uint32_t)(x.PostSubpassSampleLocationsCount), cgoAllocsUnknown + allocsb61b51d4.Borrow(cpostSubpassSampleLocationsCount_allocs) - x.ref8d2571e4 = ref8d2571e4 - x.allocs8d2571e4 = allocs8d2571e4 - return ref8d2571e4, allocs8d2571e4 + var cpPostSubpassSampleLocations_allocs *cgoAllocMap + refb61b51d4.pPostSubpassSampleLocations, cpPostSubpassSampleLocations_allocs = unpackSSubpassSampleLocations(x.PPostSubpassSampleLocations) + allocsb61b51d4.Borrow(cpPostSubpassSampleLocations_allocs) + + x.refb61b51d4 = refb61b51d4 + x.allocsb61b51d4 = allocsb61b51d4 + return refb61b51d4, allocsb61b51d4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayPresentInfo) PassValue() (C.VkDisplayPresentInfoKHR, *cgoAllocMap) { - if x.ref8d2571e4 != nil { - return *x.ref8d2571e4, nil +func (x RenderPassSampleLocationsBeginInfo) PassValue() (C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { + if x.refb61b51d4 != nil { + return *x.refb61b51d4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21828,96 +48814,97 @@ func (x DisplayPresentInfo) PassValue() (C.VkDisplayPresentInfoKHR, *cgoAllocMap // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayPresentInfo) Deref() { - if x.ref8d2571e4 == nil { +func (x *RenderPassSampleLocationsBeginInfo) Deref() { + if x.refb61b51d4 == nil { return } - x.SType = (StructureType)(x.ref8d2571e4.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8d2571e4.pNext)) - x.SrcRect = *NewRect2DRef(unsafe.Pointer(&x.ref8d2571e4.srcRect)) - x.DstRect = *NewRect2DRef(unsafe.Pointer(&x.ref8d2571e4.dstRect)) - x.Persistent = (Bool32)(x.ref8d2571e4.persistent) + x.SType = (StructureType)(x.refb61b51d4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb61b51d4.pNext)) + x.AttachmentInitialSampleLocationsCount = (uint32)(x.refb61b51d4.attachmentInitialSampleLocationsCount) + packSAttachmentSampleLocations(x.PAttachmentInitialSampleLocations, x.refb61b51d4.pAttachmentInitialSampleLocations) + x.PostSubpassSampleLocationsCount = (uint32)(x.refb61b51d4.postSubpassSampleLocationsCount) + packSSubpassSampleLocations(x.PPostSubpassSampleLocations, x.refb61b51d4.pPostSubpassSampleLocations) } -// allocImportMemoryFdInfoMemory allocates memory for type C.VkImportMemoryFdInfoKHR in C. +// allocPipelineSampleLocationsStateCreateInfoMemory allocates memory for type C.VkPipelineSampleLocationsStateCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocImportMemoryFdInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportMemoryFdInfoValue)) +func allocPipelineSampleLocationsStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineSampleLocationsStateCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImportMemoryFdInfoValue = unsafe.Sizeof([1]C.VkImportMemoryFdInfoKHR{}) +const sizeOfPipelineSampleLocationsStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineSampleLocationsStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportMemoryFdInfo) Ref() *C.VkImportMemoryFdInfoKHR { +func (x *PipelineSampleLocationsStateCreateInfo) Ref() *C.VkPipelineSampleLocationsStateCreateInfoEXT { if x == nil { return nil } - return x.ref73f83287 + return x.ref93a2968f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImportMemoryFdInfo) Free() { - if x != nil && x.allocs73f83287 != nil { - x.allocs73f83287.(*cgoAllocMap).Free() - x.ref73f83287 = nil +func (x *PipelineSampleLocationsStateCreateInfo) Free() { + if x != nil && x.allocs93a2968f != nil { + x.allocs93a2968f.(*cgoAllocMap).Free() + x.ref93a2968f = nil } } -// NewImportMemoryFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineSampleLocationsStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImportMemoryFdInfoRef(ref unsafe.Pointer) *ImportMemoryFdInfo { +func NewPipelineSampleLocationsStateCreateInfoRef(ref unsafe.Pointer) *PipelineSampleLocationsStateCreateInfo { if ref == nil { return nil } - obj := new(ImportMemoryFdInfo) - obj.ref73f83287 = (*C.VkImportMemoryFdInfoKHR)(unsafe.Pointer(ref)) + obj := new(PipelineSampleLocationsStateCreateInfo) + obj.ref93a2968f = (*C.VkPipelineSampleLocationsStateCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImportMemoryFdInfo) PassRef() (*C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { +func (x *PipelineSampleLocationsStateCreateInfo) PassRef() (*C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref73f83287 != nil { - return x.ref73f83287, nil + } else if x.ref93a2968f != nil { + return x.ref93a2968f, nil } - mem73f83287 := allocImportMemoryFdInfoMemory(1) - ref73f83287 := (*C.VkImportMemoryFdInfoKHR)(mem73f83287) - allocs73f83287 := new(cgoAllocMap) - allocs73f83287.Add(mem73f83287) + mem93a2968f := allocPipelineSampleLocationsStateCreateInfoMemory(1) + ref93a2968f := (*C.VkPipelineSampleLocationsStateCreateInfoEXT)(mem93a2968f) + allocs93a2968f := new(cgoAllocMap) + allocs93a2968f.Add(mem93a2968f) var csType_allocs *cgoAllocMap - ref73f83287.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs73f83287.Borrow(csType_allocs) + ref93a2968f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs93a2968f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref73f83287.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs73f83287.Borrow(cpNext_allocs) + ref93a2968f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs93a2968f.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - ref73f83287.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs73f83287.Borrow(chandleType_allocs) + var csampleLocationsEnable_allocs *cgoAllocMap + ref93a2968f.sampleLocationsEnable, csampleLocationsEnable_allocs = (C.VkBool32)(x.SampleLocationsEnable), cgoAllocsUnknown + allocs93a2968f.Borrow(csampleLocationsEnable_allocs) - var cfd_allocs *cgoAllocMap - ref73f83287.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown - allocs73f83287.Borrow(cfd_allocs) + var csampleLocationsInfo_allocs *cgoAllocMap + ref93a2968f.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() + allocs93a2968f.Borrow(csampleLocationsInfo_allocs) - x.ref73f83287 = ref73f83287 - x.allocs73f83287 = allocs73f83287 - return ref73f83287, allocs73f83287 + x.ref93a2968f = ref93a2968f + x.allocs93a2968f = allocs93a2968f + return ref93a2968f, allocs93a2968f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImportMemoryFdInfo) PassValue() (C.VkImportMemoryFdInfoKHR, *cgoAllocMap) { - if x.ref73f83287 != nil { - return *x.ref73f83287, nil +func (x PipelineSampleLocationsStateCreateInfo) PassValue() (C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { + if x.ref93a2968f != nil { + return *x.ref93a2968f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -21925,91 +48912,107 @@ func (x ImportMemoryFdInfo) PassValue() (C.VkImportMemoryFdInfoKHR, *cgoAllocMap // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImportMemoryFdInfo) Deref() { - if x.ref73f83287 == nil { +func (x *PipelineSampleLocationsStateCreateInfo) Deref() { + if x.ref93a2968f == nil { return } - x.SType = (StructureType)(x.ref73f83287.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref73f83287.pNext)) - x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.ref73f83287.handleType) - x.Fd = (int32)(x.ref73f83287.fd) + x.SType = (StructureType)(x.ref93a2968f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref93a2968f.pNext)) + x.SampleLocationsEnable = (Bool32)(x.ref93a2968f.sampleLocationsEnable) + x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref93a2968f.sampleLocationsInfo)) } -// allocMemoryFdPropertiesMemory allocates memory for type C.VkMemoryFdPropertiesKHR in C. +// allocPhysicalDeviceSampleLocationsPropertiesMemory allocates memory for type C.VkPhysicalDeviceSampleLocationsPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryFdPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryFdPropertiesValue)) +func allocPhysicalDeviceSampleLocationsPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSampleLocationsPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryFdPropertiesValue = unsafe.Sizeof([1]C.VkMemoryFdPropertiesKHR{}) +const sizeOfPhysicalDeviceSampleLocationsPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSampleLocationsPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryFdProperties) Ref() *C.VkMemoryFdPropertiesKHR { +func (x *PhysicalDeviceSampleLocationsProperties) Ref() *C.VkPhysicalDeviceSampleLocationsPropertiesEXT { if x == nil { return nil } - return x.ref51e16d38 + return x.refaf801323 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryFdProperties) Free() { - if x != nil && x.allocs51e16d38 != nil { - x.allocs51e16d38.(*cgoAllocMap).Free() - x.ref51e16d38 = nil +func (x *PhysicalDeviceSampleLocationsProperties) Free() { + if x != nil && x.allocsaf801323 != nil { + x.allocsaf801323.(*cgoAllocMap).Free() + x.refaf801323 = nil } } -// NewMemoryFdPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceSampleLocationsPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryFdPropertiesRef(ref unsafe.Pointer) *MemoryFdProperties { +func NewPhysicalDeviceSampleLocationsPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSampleLocationsProperties { if ref == nil { return nil } - obj := new(MemoryFdProperties) - obj.ref51e16d38 = (*C.VkMemoryFdPropertiesKHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceSampleLocationsProperties) + obj.refaf801323 = (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryFdProperties) PassRef() (*C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { +func (x *PhysicalDeviceSampleLocationsProperties) PassRef() (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref51e16d38 != nil { - return x.ref51e16d38, nil + } else if x.refaf801323 != nil { + return x.refaf801323, nil } - mem51e16d38 := allocMemoryFdPropertiesMemory(1) - ref51e16d38 := (*C.VkMemoryFdPropertiesKHR)(mem51e16d38) - allocs51e16d38 := new(cgoAllocMap) - allocs51e16d38.Add(mem51e16d38) + memaf801323 := allocPhysicalDeviceSampleLocationsPropertiesMemory(1) + refaf801323 := (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT)(memaf801323) + allocsaf801323 := new(cgoAllocMap) + allocsaf801323.Add(memaf801323) var csType_allocs *cgoAllocMap - ref51e16d38.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs51e16d38.Borrow(csType_allocs) + refaf801323.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaf801323.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref51e16d38.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs51e16d38.Borrow(cpNext_allocs) + refaf801323.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaf801323.Borrow(cpNext_allocs) - var cmemoryTypeBits_allocs *cgoAllocMap - ref51e16d38.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown - allocs51e16d38.Borrow(cmemoryTypeBits_allocs) + var csampleLocationSampleCounts_allocs *cgoAllocMap + refaf801323.sampleLocationSampleCounts, csampleLocationSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleLocationSampleCounts), cgoAllocsUnknown + allocsaf801323.Borrow(csampleLocationSampleCounts_allocs) - x.ref51e16d38 = ref51e16d38 - x.allocs51e16d38 = allocs51e16d38 - return ref51e16d38, allocs51e16d38 + var cmaxSampleLocationGridSize_allocs *cgoAllocMap + refaf801323.maxSampleLocationGridSize, cmaxSampleLocationGridSize_allocs = x.MaxSampleLocationGridSize.PassValue() + allocsaf801323.Borrow(cmaxSampleLocationGridSize_allocs) + + var csampleLocationCoordinateRange_allocs *cgoAllocMap + refaf801323.sampleLocationCoordinateRange, csampleLocationCoordinateRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.SampleLocationCoordinateRange)), cgoAllocsUnknown + allocsaf801323.Borrow(csampleLocationCoordinateRange_allocs) + + var csampleLocationSubPixelBits_allocs *cgoAllocMap + refaf801323.sampleLocationSubPixelBits, csampleLocationSubPixelBits_allocs = (C.uint32_t)(x.SampleLocationSubPixelBits), cgoAllocsUnknown + allocsaf801323.Borrow(csampleLocationSubPixelBits_allocs) + + var cvariableSampleLocations_allocs *cgoAllocMap + refaf801323.variableSampleLocations, cvariableSampleLocations_allocs = (C.VkBool32)(x.VariableSampleLocations), cgoAllocsUnknown + allocsaf801323.Borrow(cvariableSampleLocations_allocs) + + x.refaf801323 = refaf801323 + x.allocsaf801323 = allocsaf801323 + return refaf801323, allocsaf801323 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryFdProperties) PassValue() (C.VkMemoryFdPropertiesKHR, *cgoAllocMap) { - if x.ref51e16d38 != nil { - return *x.ref51e16d38, nil +func (x PhysicalDeviceSampleLocationsProperties) PassValue() (C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { + if x.refaf801323 != nil { + return *x.refaf801323, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22017,94 +49020,94 @@ func (x MemoryFdProperties) PassValue() (C.VkMemoryFdPropertiesKHR, *cgoAllocMap // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryFdProperties) Deref() { - if x.ref51e16d38 == nil { +func (x *PhysicalDeviceSampleLocationsProperties) Deref() { + if x.refaf801323 == nil { return } - x.SType = (StructureType)(x.ref51e16d38.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref51e16d38.pNext)) - x.MemoryTypeBits = (uint32)(x.ref51e16d38.memoryTypeBits) + x.SType = (StructureType)(x.refaf801323.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaf801323.pNext)) + x.SampleLocationSampleCounts = (SampleCountFlags)(x.refaf801323.sampleLocationSampleCounts) + x.MaxSampleLocationGridSize = *NewExtent2DRef(unsafe.Pointer(&x.refaf801323.maxSampleLocationGridSize)) + x.SampleLocationCoordinateRange = *(*[2]float32)(unsafe.Pointer(&x.refaf801323.sampleLocationCoordinateRange)) + x.SampleLocationSubPixelBits = (uint32)(x.refaf801323.sampleLocationSubPixelBits) + x.VariableSampleLocations = (Bool32)(x.refaf801323.variableSampleLocations) } -// allocMemoryGetFdInfoMemory allocates memory for type C.VkMemoryGetFdInfoKHR in C. +// allocMultisamplePropertiesMemory allocates memory for type C.VkMultisamplePropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryGetFdInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryGetFdInfoValue)) +func allocMultisamplePropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultisamplePropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryGetFdInfoValue = unsafe.Sizeof([1]C.VkMemoryGetFdInfoKHR{}) +const sizeOfMultisamplePropertiesValue = unsafe.Sizeof([1]C.VkMultisamplePropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryGetFdInfo) Ref() *C.VkMemoryGetFdInfoKHR { +func (x *MultisampleProperties) Ref() *C.VkMultisamplePropertiesEXT { if x == nil { return nil } - return x.ref75a079b1 + return x.ref3e47f337 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryGetFdInfo) Free() { - if x != nil && x.allocs75a079b1 != nil { - x.allocs75a079b1.(*cgoAllocMap).Free() - x.ref75a079b1 = nil +func (x *MultisampleProperties) Free() { + if x != nil && x.allocs3e47f337 != nil { + x.allocs3e47f337.(*cgoAllocMap).Free() + x.ref3e47f337 = nil } } -// NewMemoryGetFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMultisamplePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryGetFdInfoRef(ref unsafe.Pointer) *MemoryGetFdInfo { +func NewMultisamplePropertiesRef(ref unsafe.Pointer) *MultisampleProperties { if ref == nil { return nil } - obj := new(MemoryGetFdInfo) - obj.ref75a079b1 = (*C.VkMemoryGetFdInfoKHR)(unsafe.Pointer(ref)) + obj := new(MultisampleProperties) + obj.ref3e47f337 = (*C.VkMultisamplePropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryGetFdInfo) PassRef() (*C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { +func (x *MultisampleProperties) PassRef() (*C.VkMultisamplePropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref75a079b1 != nil { - return x.ref75a079b1, nil + } else if x.ref3e47f337 != nil { + return x.ref3e47f337, nil } - mem75a079b1 := allocMemoryGetFdInfoMemory(1) - ref75a079b1 := (*C.VkMemoryGetFdInfoKHR)(mem75a079b1) - allocs75a079b1 := new(cgoAllocMap) - allocs75a079b1.Add(mem75a079b1) + mem3e47f337 := allocMultisamplePropertiesMemory(1) + ref3e47f337 := (*C.VkMultisamplePropertiesEXT)(mem3e47f337) + allocs3e47f337 := new(cgoAllocMap) + allocs3e47f337.Add(mem3e47f337) var csType_allocs *cgoAllocMap - ref75a079b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs75a079b1.Borrow(csType_allocs) + ref3e47f337.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e47f337.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref75a079b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs75a079b1.Borrow(cpNext_allocs) - - var cmemory_allocs *cgoAllocMap - ref75a079b1.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocs75a079b1.Borrow(cmemory_allocs) + ref3e47f337.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e47f337.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - ref75a079b1.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs75a079b1.Borrow(chandleType_allocs) + var cmaxSampleLocationGridSize_allocs *cgoAllocMap + ref3e47f337.maxSampleLocationGridSize, cmaxSampleLocationGridSize_allocs = x.MaxSampleLocationGridSize.PassValue() + allocs3e47f337.Borrow(cmaxSampleLocationGridSize_allocs) - x.ref75a079b1 = ref75a079b1 - x.allocs75a079b1 = allocs75a079b1 - return ref75a079b1, allocs75a079b1 + x.ref3e47f337 = ref3e47f337 + x.allocs3e47f337 = allocs3e47f337 + return ref3e47f337, allocs3e47f337 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryGetFdInfo) PassValue() (C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { - if x.ref75a079b1 != nil { - return *x.ref75a079b1, nil +func (x MultisampleProperties) PassValue() (C.VkMultisamplePropertiesEXT, *cgoAllocMap) { + if x.ref3e47f337 != nil { + return *x.ref3e47f337, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22112,103 +49115,90 @@ func (x MemoryGetFdInfo) PassValue() (C.VkMemoryGetFdInfoKHR, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryGetFdInfo) Deref() { - if x.ref75a079b1 == nil { +func (x *MultisampleProperties) Deref() { + if x.ref3e47f337 == nil { return } - x.SType = (StructureType)(x.ref75a079b1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref75a079b1.pNext)) - x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.ref75a079b1.memory)) - x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.ref75a079b1.handleType) + x.SType = (StructureType)(x.ref3e47f337.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3e47f337.pNext)) + x.MaxSampleLocationGridSize = *NewExtent2DRef(unsafe.Pointer(&x.ref3e47f337.maxSampleLocationGridSize)) } -// allocImportSemaphoreFdInfoMemory allocates memory for type C.VkImportSemaphoreFdInfoKHR in C. +// allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocImportSemaphoreFdInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportSemaphoreFdInfoValue)) +func allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceBlendOperationAdvancedFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImportSemaphoreFdInfoValue = unsafe.Sizeof([1]C.VkImportSemaphoreFdInfoKHR{}) +const sizeOfPhysicalDeviceBlendOperationAdvancedFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportSemaphoreFdInfo) Ref() *C.VkImportSemaphoreFdInfoKHR { +func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { if x == nil { return nil } - return x.refbc2f829a + return x.ref8514bc93 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImportSemaphoreFdInfo) Free() { - if x != nil && x.allocsbc2f829a != nil { - x.allocsbc2f829a.(*cgoAllocMap).Free() - x.refbc2f829a = nil +func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Free() { + if x != nil && x.allocs8514bc93 != nil { + x.allocs8514bc93.(*cgoAllocMap).Free() + x.ref8514bc93 = nil } } -// NewImportSemaphoreFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceBlendOperationAdvancedFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImportSemaphoreFdInfoRef(ref unsafe.Pointer) *ImportSemaphoreFdInfo { +func NewPhysicalDeviceBlendOperationAdvancedFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedFeatures { if ref == nil { return nil } - obj := new(ImportSemaphoreFdInfo) - obj.refbc2f829a = (*C.VkImportSemaphoreFdInfoKHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceBlendOperationAdvancedFeatures) + obj.ref8514bc93 = (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImportSemaphoreFdInfo) PassRef() (*C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceBlendOperationAdvancedFeatures) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbc2f829a != nil { - return x.refbc2f829a, nil + } else if x.ref8514bc93 != nil { + return x.ref8514bc93, nil } - membc2f829a := allocImportSemaphoreFdInfoMemory(1) - refbc2f829a := (*C.VkImportSemaphoreFdInfoKHR)(membc2f829a) - allocsbc2f829a := new(cgoAllocMap) - allocsbc2f829a.Add(membc2f829a) + mem8514bc93 := allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory(1) + ref8514bc93 := (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)(mem8514bc93) + allocs8514bc93 := new(cgoAllocMap) + allocs8514bc93.Add(mem8514bc93) var csType_allocs *cgoAllocMap - refbc2f829a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbc2f829a.Borrow(csType_allocs) + ref8514bc93.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8514bc93.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbc2f829a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbc2f829a.Borrow(cpNext_allocs) - - var csemaphore_allocs *cgoAllocMap - refbc2f829a.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown - allocsbc2f829a.Borrow(csemaphore_allocs) - - var cflags_allocs *cgoAllocMap - refbc2f829a.flags, cflags_allocs = (C.VkSemaphoreImportFlags)(x.Flags), cgoAllocsUnknown - allocsbc2f829a.Borrow(cflags_allocs) - - var chandleType_allocs *cgoAllocMap - refbc2f829a.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsbc2f829a.Borrow(chandleType_allocs) + ref8514bc93.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8514bc93.Borrow(cpNext_allocs) - var cfd_allocs *cgoAllocMap - refbc2f829a.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown - allocsbc2f829a.Borrow(cfd_allocs) + var cadvancedBlendCoherentOperations_allocs *cgoAllocMap + ref8514bc93.advancedBlendCoherentOperations, cadvancedBlendCoherentOperations_allocs = (C.VkBool32)(x.AdvancedBlendCoherentOperations), cgoAllocsUnknown + allocs8514bc93.Borrow(cadvancedBlendCoherentOperations_allocs) - x.refbc2f829a = refbc2f829a - x.allocsbc2f829a = allocsbc2f829a - return refbc2f829a, allocsbc2f829a + x.ref8514bc93 = ref8514bc93 + x.allocs8514bc93 = allocs8514bc93 + return ref8514bc93, allocs8514bc93 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImportSemaphoreFdInfo) PassValue() (C.VkImportSemaphoreFdInfoKHR, *cgoAllocMap) { - if x.refbc2f829a != nil { - return *x.refbc2f829a, nil +func (x PhysicalDeviceBlendOperationAdvancedFeatures) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { + if x.ref8514bc93 != nil { + return *x.ref8514bc93, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22216,97 +49206,110 @@ func (x ImportSemaphoreFdInfo) PassValue() (C.VkImportSemaphoreFdInfoKHR, *cgoAl // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImportSemaphoreFdInfo) Deref() { - if x.refbc2f829a == nil { +func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Deref() { + if x.ref8514bc93 == nil { return } - x.SType = (StructureType)(x.refbc2f829a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc2f829a.pNext)) - x.Semaphore = *(*Semaphore)(unsafe.Pointer(&x.refbc2f829a.semaphore)) - x.Flags = (SemaphoreImportFlags)(x.refbc2f829a.flags) - x.HandleType = (ExternalSemaphoreHandleTypeFlagBits)(x.refbc2f829a.handleType) - x.Fd = (int32)(x.refbc2f829a.fd) + x.SType = (StructureType)(x.ref8514bc93.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8514bc93.pNext)) + x.AdvancedBlendCoherentOperations = (Bool32)(x.ref8514bc93.advancedBlendCoherentOperations) } -// allocSemaphoreGetFdInfoMemory allocates memory for type C.VkSemaphoreGetFdInfoKHR in C. +// allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSemaphoreGetFdInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSemaphoreGetFdInfoValue)) +func allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceBlendOperationAdvancedPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSemaphoreGetFdInfoValue = unsafe.Sizeof([1]C.VkSemaphoreGetFdInfoKHR{}) +const sizeOfPhysicalDeviceBlendOperationAdvancedPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SemaphoreGetFdInfo) Ref() *C.VkSemaphoreGetFdInfoKHR { +func (x *PhysicalDeviceBlendOperationAdvancedProperties) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { if x == nil { return nil } - return x.refd9bd07cf + return x.ref94cb3fa6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SemaphoreGetFdInfo) Free() { - if x != nil && x.allocsd9bd07cf != nil { - x.allocsd9bd07cf.(*cgoAllocMap).Free() - x.refd9bd07cf = nil +func (x *PhysicalDeviceBlendOperationAdvancedProperties) Free() { + if x != nil && x.allocs94cb3fa6 != nil { + x.allocs94cb3fa6.(*cgoAllocMap).Free() + x.ref94cb3fa6 = nil } } -// NewSemaphoreGetFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceBlendOperationAdvancedPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSemaphoreGetFdInfoRef(ref unsafe.Pointer) *SemaphoreGetFdInfo { +func NewPhysicalDeviceBlendOperationAdvancedPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedProperties { if ref == nil { return nil } - obj := new(SemaphoreGetFdInfo) - obj.refd9bd07cf = (*C.VkSemaphoreGetFdInfoKHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceBlendOperationAdvancedProperties) + obj.ref94cb3fa6 = (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SemaphoreGetFdInfo) PassRef() (*C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap) { +func (x *PhysicalDeviceBlendOperationAdvancedProperties) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd9bd07cf != nil { - return x.refd9bd07cf, nil + } else if x.ref94cb3fa6 != nil { + return x.ref94cb3fa6, nil } - memd9bd07cf := allocSemaphoreGetFdInfoMemory(1) - refd9bd07cf := (*C.VkSemaphoreGetFdInfoKHR)(memd9bd07cf) - allocsd9bd07cf := new(cgoAllocMap) - allocsd9bd07cf.Add(memd9bd07cf) + mem94cb3fa6 := allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory(1) + ref94cb3fa6 := (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)(mem94cb3fa6) + allocs94cb3fa6 := new(cgoAllocMap) + allocs94cb3fa6.Add(mem94cb3fa6) var csType_allocs *cgoAllocMap - refd9bd07cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd9bd07cf.Borrow(csType_allocs) + ref94cb3fa6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs94cb3fa6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd9bd07cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd9bd07cf.Borrow(cpNext_allocs) + ref94cb3fa6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cpNext_allocs) - var csemaphore_allocs *cgoAllocMap - refd9bd07cf.semaphore, csemaphore_allocs = *(*C.VkSemaphore)(unsafe.Pointer(&x.Semaphore)), cgoAllocsUnknown - allocsd9bd07cf.Borrow(csemaphore_allocs) + var cadvancedBlendMaxColorAttachments_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendMaxColorAttachments, cadvancedBlendMaxColorAttachments_allocs = (C.uint32_t)(x.AdvancedBlendMaxColorAttachments), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendMaxColorAttachments_allocs) - var chandleType_allocs *cgoAllocMap - refd9bd07cf.handleType, chandleType_allocs = (C.VkExternalSemaphoreHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsd9bd07cf.Borrow(chandleType_allocs) + var cadvancedBlendIndependentBlend_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendIndependentBlend, cadvancedBlendIndependentBlend_allocs = (C.VkBool32)(x.AdvancedBlendIndependentBlend), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendIndependentBlend_allocs) - x.refd9bd07cf = refd9bd07cf - x.allocsd9bd07cf = allocsd9bd07cf - return refd9bd07cf, allocsd9bd07cf + var cadvancedBlendNonPremultipliedSrcColor_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendNonPremultipliedSrcColor, cadvancedBlendNonPremultipliedSrcColor_allocs = (C.VkBool32)(x.AdvancedBlendNonPremultipliedSrcColor), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendNonPremultipliedSrcColor_allocs) + + var cadvancedBlendNonPremultipliedDstColor_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendNonPremultipliedDstColor, cadvancedBlendNonPremultipliedDstColor_allocs = (C.VkBool32)(x.AdvancedBlendNonPremultipliedDstColor), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendNonPremultipliedDstColor_allocs) + + var cadvancedBlendCorrelatedOverlap_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendCorrelatedOverlap, cadvancedBlendCorrelatedOverlap_allocs = (C.VkBool32)(x.AdvancedBlendCorrelatedOverlap), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendCorrelatedOverlap_allocs) + + var cadvancedBlendAllOperations_allocs *cgoAllocMap + ref94cb3fa6.advancedBlendAllOperations, cadvancedBlendAllOperations_allocs = (C.VkBool32)(x.AdvancedBlendAllOperations), cgoAllocsUnknown + allocs94cb3fa6.Borrow(cadvancedBlendAllOperations_allocs) + + x.ref94cb3fa6 = ref94cb3fa6 + x.allocs94cb3fa6 = allocs94cb3fa6 + return ref94cb3fa6, allocs94cb3fa6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SemaphoreGetFdInfo) PassValue() (C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap) { - if x.refd9bd07cf != nil { - return *x.refd9bd07cf, nil +func (x PhysicalDeviceBlendOperationAdvancedProperties) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { + if x.ref94cb3fa6 != nil { + return *x.ref94cb3fa6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22314,91 +49317,103 @@ func (x SemaphoreGetFdInfo) PassValue() (C.VkSemaphoreGetFdInfoKHR, *cgoAllocMap // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SemaphoreGetFdInfo) Deref() { - if x.refd9bd07cf == nil { +func (x *PhysicalDeviceBlendOperationAdvancedProperties) Deref() { + if x.ref94cb3fa6 == nil { return } - x.SType = (StructureType)(x.refd9bd07cf.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd9bd07cf.pNext)) - x.Semaphore = *(*Semaphore)(unsafe.Pointer(&x.refd9bd07cf.semaphore)) - x.HandleType = (ExternalSemaphoreHandleTypeFlagBits)(x.refd9bd07cf.handleType) + x.SType = (StructureType)(x.ref94cb3fa6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref94cb3fa6.pNext)) + x.AdvancedBlendMaxColorAttachments = (uint32)(x.ref94cb3fa6.advancedBlendMaxColorAttachments) + x.AdvancedBlendIndependentBlend = (Bool32)(x.ref94cb3fa6.advancedBlendIndependentBlend) + x.AdvancedBlendNonPremultipliedSrcColor = (Bool32)(x.ref94cb3fa6.advancedBlendNonPremultipliedSrcColor) + x.AdvancedBlendNonPremultipliedDstColor = (Bool32)(x.ref94cb3fa6.advancedBlendNonPremultipliedDstColor) + x.AdvancedBlendCorrelatedOverlap = (Bool32)(x.ref94cb3fa6.advancedBlendCorrelatedOverlap) + x.AdvancedBlendAllOperations = (Bool32)(x.ref94cb3fa6.advancedBlendAllOperations) } -// allocPhysicalDevicePushDescriptorPropertiesMemory allocates memory for type C.VkPhysicalDevicePushDescriptorPropertiesKHR in C. +// allocPipelineColorBlendAdvancedStateCreateInfoMemory allocates memory for type C.VkPipelineColorBlendAdvancedStateCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePushDescriptorPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePushDescriptorPropertiesValue)) +func allocPipelineColorBlendAdvancedStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineColorBlendAdvancedStateCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDevicePushDescriptorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePushDescriptorPropertiesKHR{}) +const sizeOfPipelineColorBlendAdvancedStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorBlendAdvancedStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePushDescriptorProperties) Ref() *C.VkPhysicalDevicePushDescriptorPropertiesKHR { +func (x *PipelineColorBlendAdvancedStateCreateInfo) Ref() *C.VkPipelineColorBlendAdvancedStateCreateInfoEXT { if x == nil { return nil } - return x.ref8c58a1a5 + return x.refcd374989 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDevicePushDescriptorProperties) Free() { - if x != nil && x.allocs8c58a1a5 != nil { - x.allocs8c58a1a5.(*cgoAllocMap).Free() - x.ref8c58a1a5 = nil +func (x *PipelineColorBlendAdvancedStateCreateInfo) Free() { + if x != nil && x.allocscd374989 != nil { + x.allocscd374989.(*cgoAllocMap).Free() + x.refcd374989 = nil } } -// NewPhysicalDevicePushDescriptorPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineColorBlendAdvancedStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDevicePushDescriptorPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePushDescriptorProperties { +func NewPipelineColorBlendAdvancedStateCreateInfoRef(ref unsafe.Pointer) *PipelineColorBlendAdvancedStateCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDevicePushDescriptorProperties) - obj.ref8c58a1a5 = (*C.VkPhysicalDevicePushDescriptorPropertiesKHR)(unsafe.Pointer(ref)) + obj := new(PipelineColorBlendAdvancedStateCreateInfo) + obj.refcd374989 = (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDevicePushDescriptorProperties) PassRef() (*C.VkPhysicalDevicePushDescriptorPropertiesKHR, *cgoAllocMap) { +func (x *PipelineColorBlendAdvancedStateCreateInfo) PassRef() (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8c58a1a5 != nil { - return x.ref8c58a1a5, nil + } else if x.refcd374989 != nil { + return x.refcd374989, nil } - mem8c58a1a5 := allocPhysicalDevicePushDescriptorPropertiesMemory(1) - ref8c58a1a5 := (*C.VkPhysicalDevicePushDescriptorPropertiesKHR)(mem8c58a1a5) - allocs8c58a1a5 := new(cgoAllocMap) - allocs8c58a1a5.Add(mem8c58a1a5) + memcd374989 := allocPipelineColorBlendAdvancedStateCreateInfoMemory(1) + refcd374989 := (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT)(memcd374989) + allocscd374989 := new(cgoAllocMap) + allocscd374989.Add(memcd374989) var csType_allocs *cgoAllocMap - ref8c58a1a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8c58a1a5.Borrow(csType_allocs) + refcd374989.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscd374989.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8c58a1a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8c58a1a5.Borrow(cpNext_allocs) + refcd374989.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscd374989.Borrow(cpNext_allocs) - var cmaxPushDescriptors_allocs *cgoAllocMap - ref8c58a1a5.maxPushDescriptors, cmaxPushDescriptors_allocs = (C.uint32_t)(x.MaxPushDescriptors), cgoAllocsUnknown - allocs8c58a1a5.Borrow(cmaxPushDescriptors_allocs) + var csrcPremultiplied_allocs *cgoAllocMap + refcd374989.srcPremultiplied, csrcPremultiplied_allocs = (C.VkBool32)(x.SrcPremultiplied), cgoAllocsUnknown + allocscd374989.Borrow(csrcPremultiplied_allocs) - x.ref8c58a1a5 = ref8c58a1a5 - x.allocs8c58a1a5 = allocs8c58a1a5 - return ref8c58a1a5, allocs8c58a1a5 + var cdstPremultiplied_allocs *cgoAllocMap + refcd374989.dstPremultiplied, cdstPremultiplied_allocs = (C.VkBool32)(x.DstPremultiplied), cgoAllocsUnknown + allocscd374989.Borrow(cdstPremultiplied_allocs) + + var cblendOverlap_allocs *cgoAllocMap + refcd374989.blendOverlap, cblendOverlap_allocs = (C.VkBlendOverlapEXT)(x.BlendOverlap), cgoAllocsUnknown + allocscd374989.Borrow(cblendOverlap_allocs) + + x.refcd374989 = refcd374989 + x.allocscd374989 = allocscd374989 + return refcd374989, allocscd374989 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDevicePushDescriptorProperties) PassValue() (C.VkPhysicalDevicePushDescriptorPropertiesKHR, *cgoAllocMap) { - if x.ref8c58a1a5 != nil { - return *x.ref8c58a1a5, nil +func (x PipelineColorBlendAdvancedStateCreateInfo) PassValue() (C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { + if x.refcd374989 != nil { + return *x.refcd374989, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22406,215 +49421,209 @@ func (x PhysicalDevicePushDescriptorProperties) PassValue() (C.VkPhysicalDeviceP // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDevicePushDescriptorProperties) Deref() { - if x.ref8c58a1a5 == nil { +func (x *PipelineColorBlendAdvancedStateCreateInfo) Deref() { + if x.refcd374989 == nil { return } - x.SType = (StructureType)(x.ref8c58a1a5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8c58a1a5.pNext)) - x.MaxPushDescriptors = (uint32)(x.ref8c58a1a5.maxPushDescriptors) + x.SType = (StructureType)(x.refcd374989.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd374989.pNext)) + x.SrcPremultiplied = (Bool32)(x.refcd374989.srcPremultiplied) + x.DstPremultiplied = (Bool32)(x.refcd374989.dstPremultiplied) + x.BlendOverlap = (BlendOverlap)(x.refcd374989.blendOverlap) } -// allocRectLayerMemory allocates memory for type C.VkRectLayerKHR in C. +// allocPipelineCoverageToColorStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageToColorStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocRectLayerMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRectLayerValue)) +func allocPipelineCoverageToColorStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCoverageToColorStateCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfRectLayerValue = unsafe.Sizeof([1]C.VkRectLayerKHR{}) +const sizeOfPipelineCoverageToColorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageToColorStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RectLayer) Ref() *C.VkRectLayerKHR { +func (x *PipelineCoverageToColorStateCreateInfoNV) Ref() *C.VkPipelineCoverageToColorStateCreateInfoNV { if x == nil { return nil } - return x.refaf248476 + return x.refcc6b7b68 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *RectLayer) Free() { - if x != nil && x.allocsaf248476 != nil { - x.allocsaf248476.(*cgoAllocMap).Free() - x.refaf248476 = nil +func (x *PipelineCoverageToColorStateCreateInfoNV) Free() { + if x != nil && x.allocscc6b7b68 != nil { + x.allocscc6b7b68.(*cgoAllocMap).Free() + x.refcc6b7b68 = nil } } -// NewRectLayerRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineCoverageToColorStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewRectLayerRef(ref unsafe.Pointer) *RectLayer { +func NewPipelineCoverageToColorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageToColorStateCreateInfoNV { if ref == nil { return nil } - obj := new(RectLayer) - obj.refaf248476 = (*C.VkRectLayerKHR)(unsafe.Pointer(ref)) + obj := new(PipelineCoverageToColorStateCreateInfoNV) + obj.refcc6b7b68 = (*C.VkPipelineCoverageToColorStateCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *RectLayer) PassRef() (*C.VkRectLayerKHR, *cgoAllocMap) { +func (x *PipelineCoverageToColorStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaf248476 != nil { - return x.refaf248476, nil + } else if x.refcc6b7b68 != nil { + return x.refcc6b7b68, nil } - memaf248476 := allocRectLayerMemory(1) - refaf248476 := (*C.VkRectLayerKHR)(memaf248476) - allocsaf248476 := new(cgoAllocMap) - allocsaf248476.Add(memaf248476) + memcc6b7b68 := allocPipelineCoverageToColorStateCreateInfoNVMemory(1) + refcc6b7b68 := (*C.VkPipelineCoverageToColorStateCreateInfoNV)(memcc6b7b68) + allocscc6b7b68 := new(cgoAllocMap) + allocscc6b7b68.Add(memcc6b7b68) - var coffset_allocs *cgoAllocMap - refaf248476.offset, coffset_allocs = x.Offset.PassValue() - allocsaf248476.Borrow(coffset_allocs) + var csType_allocs *cgoAllocMap + refcc6b7b68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscc6b7b68.Borrow(csType_allocs) - var cextent_allocs *cgoAllocMap - refaf248476.extent, cextent_allocs = x.Extent.PassValue() - allocsaf248476.Borrow(cextent_allocs) + var cpNext_allocs *cgoAllocMap + refcc6b7b68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscc6b7b68.Borrow(cpNext_allocs) - var clayer_allocs *cgoAllocMap - refaf248476.layer, clayer_allocs = (C.uint32_t)(x.Layer), cgoAllocsUnknown - allocsaf248476.Borrow(clayer_allocs) + var cflags_allocs *cgoAllocMap + refcc6b7b68.flags, cflags_allocs = (C.VkPipelineCoverageToColorStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocscc6b7b68.Borrow(cflags_allocs) - x.refaf248476 = refaf248476 - x.allocsaf248476 = allocsaf248476 - return refaf248476, allocsaf248476 + var ccoverageToColorEnable_allocs *cgoAllocMap + refcc6b7b68.coverageToColorEnable, ccoverageToColorEnable_allocs = (C.VkBool32)(x.CoverageToColorEnable), cgoAllocsUnknown + allocscc6b7b68.Borrow(ccoverageToColorEnable_allocs) + + var ccoverageToColorLocation_allocs *cgoAllocMap + refcc6b7b68.coverageToColorLocation, ccoverageToColorLocation_allocs = (C.uint32_t)(x.CoverageToColorLocation), cgoAllocsUnknown + allocscc6b7b68.Borrow(ccoverageToColorLocation_allocs) + + x.refcc6b7b68 = refcc6b7b68 + x.allocscc6b7b68 = allocscc6b7b68 + return refcc6b7b68, allocscc6b7b68 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x RectLayer) PassValue() (C.VkRectLayerKHR, *cgoAllocMap) { - if x.refaf248476 != nil { - return *x.refaf248476, nil +func (x PipelineCoverageToColorStateCreateInfoNV) PassValue() (C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { + if x.refcc6b7b68 != nil { + return *x.refcc6b7b68, nil } ref, allocs := x.PassRef() return *ref, allocs } -// Deref uses the underlying reference to C object and fills the wrapping struct with values. -// Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RectLayer) Deref() { - if x.refaf248476 == nil { - return - } - x.Offset = *NewOffset2DRef(unsafe.Pointer(&x.refaf248476.offset)) - x.Extent = *NewExtent2DRef(unsafe.Pointer(&x.refaf248476.extent)) - x.Layer = (uint32)(x.refaf248476.layer) -} - -// allocPresentRegionMemory allocates memory for type C.VkPresentRegionKHR in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPresentRegionMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentRegionValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfPresentRegionValue = unsafe.Sizeof([1]C.VkPresentRegionKHR{}) - -// unpackSRectLayer transforms a sliced Go data structure into plain C format. -func unpackSRectLayer(x []RectLayer) (unpacked *C.VkRectLayerKHR, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkRectLayerKHR) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocRectLayerMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkRectLayerKHR)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PipelineCoverageToColorStateCreateInfoNV) Deref() { + if x.refcc6b7b68 == nil { + return } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkRectLayerKHR)(h.Data) - return + x.SType = (StructureType)(x.refcc6b7b68.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcc6b7b68.pNext)) + x.Flags = (PipelineCoverageToColorStateCreateFlagsNV)(x.refcc6b7b68.flags) + x.CoverageToColorEnable = (Bool32)(x.refcc6b7b68.coverageToColorEnable) + x.CoverageToColorLocation = (uint32)(x.refcc6b7b68.coverageToColorLocation) } -// packSRectLayer reads sliced Go data structure out from plain C format. -func packSRectLayer(v []RectLayer, ptr0 *C.VkRectLayerKHR) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfRectLayerValue]C.VkRectLayerKHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewRectLayerRef(unsafe.Pointer(&ptr1)) +// allocPipelineCoverageModulationStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageModulationStateCreateInfoNV in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineCoverageModulationStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCoverageModulationStateCreateInfoNVValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) } + return mem } +const sizeOfPipelineCoverageModulationStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageModulationStateCreateInfoNV{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentRegion) Ref() *C.VkPresentRegionKHR { +func (x *PipelineCoverageModulationStateCreateInfoNV) Ref() *C.VkPipelineCoverageModulationStateCreateInfoNV { if x == nil { return nil } - return x.refbbc0d1b9 + return x.refa081b0ea } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PresentRegion) Free() { - if x != nil && x.allocsbbc0d1b9 != nil { - x.allocsbbc0d1b9.(*cgoAllocMap).Free() - x.refbbc0d1b9 = nil +func (x *PipelineCoverageModulationStateCreateInfoNV) Free() { + if x != nil && x.allocsa081b0ea != nil { + x.allocsa081b0ea.(*cgoAllocMap).Free() + x.refa081b0ea = nil } } -// NewPresentRegionRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineCoverageModulationStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPresentRegionRef(ref unsafe.Pointer) *PresentRegion { +func NewPipelineCoverageModulationStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageModulationStateCreateInfoNV { if ref == nil { return nil } - obj := new(PresentRegion) - obj.refbbc0d1b9 = (*C.VkPresentRegionKHR)(unsafe.Pointer(ref)) + obj := new(PipelineCoverageModulationStateCreateInfoNV) + obj.refa081b0ea = (*C.VkPipelineCoverageModulationStateCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PresentRegion) PassRef() (*C.VkPresentRegionKHR, *cgoAllocMap) { +func (x *PipelineCoverageModulationStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbbc0d1b9 != nil { - return x.refbbc0d1b9, nil + } else if x.refa081b0ea != nil { + return x.refa081b0ea, nil } - membbc0d1b9 := allocPresentRegionMemory(1) - refbbc0d1b9 := (*C.VkPresentRegionKHR)(membbc0d1b9) - allocsbbc0d1b9 := new(cgoAllocMap) - allocsbbc0d1b9.Add(membbc0d1b9) + mema081b0ea := allocPipelineCoverageModulationStateCreateInfoNVMemory(1) + refa081b0ea := (*C.VkPipelineCoverageModulationStateCreateInfoNV)(mema081b0ea) + allocsa081b0ea := new(cgoAllocMap) + allocsa081b0ea.Add(mema081b0ea) - var crectangleCount_allocs *cgoAllocMap - refbbc0d1b9.rectangleCount, crectangleCount_allocs = (C.uint32_t)(x.RectangleCount), cgoAllocsUnknown - allocsbbc0d1b9.Borrow(crectangleCount_allocs) + var csType_allocs *cgoAllocMap + refa081b0ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa081b0ea.Borrow(csType_allocs) - var cpRectangles_allocs *cgoAllocMap - refbbc0d1b9.pRectangles, cpRectangles_allocs = unpackSRectLayer(x.PRectangles) - allocsbbc0d1b9.Borrow(cpRectangles_allocs) + var cpNext_allocs *cgoAllocMap + refa081b0ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa081b0ea.Borrow(cpNext_allocs) - x.refbbc0d1b9 = refbbc0d1b9 - x.allocsbbc0d1b9 = allocsbbc0d1b9 - return refbbc0d1b9, allocsbbc0d1b9 + var cflags_allocs *cgoAllocMap + refa081b0ea.flags, cflags_allocs = (C.VkPipelineCoverageModulationStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocsa081b0ea.Borrow(cflags_allocs) + + var ccoverageModulationMode_allocs *cgoAllocMap + refa081b0ea.coverageModulationMode, ccoverageModulationMode_allocs = (C.VkCoverageModulationModeNV)(x.CoverageModulationMode), cgoAllocsUnknown + allocsa081b0ea.Borrow(ccoverageModulationMode_allocs) + + var ccoverageModulationTableEnable_allocs *cgoAllocMap + refa081b0ea.coverageModulationTableEnable, ccoverageModulationTableEnable_allocs = (C.VkBool32)(x.CoverageModulationTableEnable), cgoAllocsUnknown + allocsa081b0ea.Borrow(ccoverageModulationTableEnable_allocs) + + var ccoverageModulationTableCount_allocs *cgoAllocMap + refa081b0ea.coverageModulationTableCount, ccoverageModulationTableCount_allocs = (C.uint32_t)(x.CoverageModulationTableCount), cgoAllocsUnknown + allocsa081b0ea.Borrow(ccoverageModulationTableCount_allocs) + + var cpCoverageModulationTable_allocs *cgoAllocMap + refa081b0ea.pCoverageModulationTable, cpCoverageModulationTable_allocs = (*C.float)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable)).Data)), cgoAllocsUnknown + allocsa081b0ea.Borrow(cpCoverageModulationTable_allocs) + + x.refa081b0ea = refa081b0ea + x.allocsa081b0ea = allocsa081b0ea + return refa081b0ea, allocsa081b0ea } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PresentRegion) PassValue() (C.VkPresentRegionKHR, *cgoAllocMap) { - if x.refbbc0d1b9 != nil { - return *x.refbbc0d1b9, nil +func (x PipelineCoverageModulationStateCreateInfoNV) PassValue() (C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { + if x.refa081b0ea != nil { + return *x.refa081b0ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22622,131 +49631,102 @@ func (x PresentRegion) PassValue() (C.VkPresentRegionKHR, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PresentRegion) Deref() { - if x.refbbc0d1b9 == nil { +func (x *PipelineCoverageModulationStateCreateInfoNV) Deref() { + if x.refa081b0ea == nil { return } - x.RectangleCount = (uint32)(x.refbbc0d1b9.rectangleCount) - packSRectLayer(x.PRectangles, x.refbbc0d1b9.pRectangles) + x.SType = (StructureType)(x.refa081b0ea.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa081b0ea.pNext)) + x.Flags = (PipelineCoverageModulationStateCreateFlagsNV)(x.refa081b0ea.flags) + x.CoverageModulationMode = (CoverageModulationModeNV)(x.refa081b0ea.coverageModulationMode) + x.CoverageModulationTableEnable = (Bool32)(x.refa081b0ea.coverageModulationTableEnable) + x.CoverageModulationTableCount = (uint32)(x.refa081b0ea.coverageModulationTableCount) + hxf766ff8 := (*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable)) + hxf766ff8.Data = unsafe.Pointer(x.refa081b0ea.pCoverageModulationTable) + hxf766ff8.Cap = 0x7fffffff + // hxf766ff8.Len = ? + } -// allocPresentRegionsMemory allocates memory for type C.VkPresentRegionsKHR in C. +// allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPresentRegionsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentRegionsValue)) +func allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSMBuiltinsPropertiesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPresentRegionsValue = unsafe.Sizeof([1]C.VkPresentRegionsKHR{}) - -// unpackSPresentRegion transforms a sliced Go data structure into plain C format. -func unpackSPresentRegion(x []PresentRegion) (unpacked *C.VkPresentRegionKHR, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkPresentRegionKHR) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocPresentRegionMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkPresentRegionKHR)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkPresentRegionKHR)(h.Data) - return -} - -// packSPresentRegion reads sliced Go data structure out from plain C format. -func packSPresentRegion(v []PresentRegion, ptr0 *C.VkPresentRegionKHR) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfPresentRegionValue]C.VkPresentRegionKHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewPresentRegionRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfPhysicalDeviceShaderSMBuiltinsPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentRegions) Ref() *C.VkPresentRegionsKHR { +func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Ref() *C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { if x == nil { return nil } - return x.ref62958060 + return x.refc083cf09 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PresentRegions) Free() { - if x != nil && x.allocs62958060 != nil { - x.allocs62958060.(*cgoAllocMap).Free() - x.ref62958060 = nil +func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Free() { + if x != nil && x.allocsc083cf09 != nil { + x.allocsc083cf09.(*cgoAllocMap).Free() + x.refc083cf09 = nil } } -// NewPresentRegionsRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderSMBuiltinsPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPresentRegionsRef(ref unsafe.Pointer) *PresentRegions { +func NewPhysicalDeviceShaderSMBuiltinsPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderSMBuiltinsPropertiesNV { if ref == nil { return nil } - obj := new(PresentRegions) - obj.ref62958060 = (*C.VkPresentRegionsKHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderSMBuiltinsPropertiesNV) + obj.refc083cf09 = (*C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PresentRegions) PassRef() (*C.VkPresentRegionsKHR, *cgoAllocMap) { +func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) PassRef() (*C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref62958060 != nil { - return x.ref62958060, nil + } else if x.refc083cf09 != nil { + return x.refc083cf09, nil } - mem62958060 := allocPresentRegionsMemory(1) - ref62958060 := (*C.VkPresentRegionsKHR)(mem62958060) - allocs62958060 := new(cgoAllocMap) - allocs62958060.Add(mem62958060) + memc083cf09 := allocPhysicalDeviceShaderSMBuiltinsPropertiesNVMemory(1) + refc083cf09 := (*C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV)(memc083cf09) + allocsc083cf09 := new(cgoAllocMap) + allocsc083cf09.Add(memc083cf09) var csType_allocs *cgoAllocMap - ref62958060.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs62958060.Borrow(csType_allocs) + refc083cf09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc083cf09.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref62958060.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs62958060.Borrow(cpNext_allocs) + refc083cf09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc083cf09.Borrow(cpNext_allocs) - var cswapchainCount_allocs *cgoAllocMap - ref62958060.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocs62958060.Borrow(cswapchainCount_allocs) + var cshaderSMCount_allocs *cgoAllocMap + refc083cf09.shaderSMCount, cshaderSMCount_allocs = (C.uint32_t)(x.ShaderSMCount), cgoAllocsUnknown + allocsc083cf09.Borrow(cshaderSMCount_allocs) - var cpRegions_allocs *cgoAllocMap - ref62958060.pRegions, cpRegions_allocs = unpackSPresentRegion(x.PRegions) - allocs62958060.Borrow(cpRegions_allocs) + var cshaderWarpsPerSM_allocs *cgoAllocMap + refc083cf09.shaderWarpsPerSM, cshaderWarpsPerSM_allocs = (C.uint32_t)(x.ShaderWarpsPerSM), cgoAllocsUnknown + allocsc083cf09.Borrow(cshaderWarpsPerSM_allocs) - x.ref62958060 = ref62958060 - x.allocs62958060 = allocs62958060 - return ref62958060, allocs62958060 + x.refc083cf09 = refc083cf09 + x.allocsc083cf09 = allocsc083cf09 + return refc083cf09, allocsc083cf09 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PresentRegions) PassValue() (C.VkPresentRegionsKHR, *cgoAllocMap) { - if x.ref62958060 != nil { - return *x.ref62958060, nil +func (x PhysicalDeviceShaderSMBuiltinsPropertiesNV) PassValue() (C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, *cgoAllocMap) { + if x.refc083cf09 != nil { + return *x.refc083cf09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22754,123 +49734,91 @@ func (x PresentRegions) PassValue() (C.VkPresentRegionsKHR, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PresentRegions) Deref() { - if x.ref62958060 == nil { +func (x *PhysicalDeviceShaderSMBuiltinsPropertiesNV) Deref() { + if x.refc083cf09 == nil { return } - x.SType = (StructureType)(x.ref62958060.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref62958060.pNext)) - x.SwapchainCount = (uint32)(x.ref62958060.swapchainCount) - packSPresentRegion(x.PRegions, x.ref62958060.pRegions) + x.SType = (StructureType)(x.refc083cf09.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc083cf09.pNext)) + x.ShaderSMCount = (uint32)(x.refc083cf09.shaderSMCount) + x.ShaderWarpsPerSM = (uint32)(x.refc083cf09.shaderWarpsPerSM) } -// allocAttachmentDescription2Memory allocates memory for type C.VkAttachmentDescription2KHR in C. +// allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocAttachmentDescription2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentDescription2Value)) +func allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderSMBuiltinsFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfAttachmentDescription2Value = unsafe.Sizeof([1]C.VkAttachmentDescription2KHR{}) +const sizeOfPhysicalDeviceShaderSMBuiltinsFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentDescription2) Ref() *C.VkAttachmentDescription2KHR { +func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Ref() *C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { if x == nil { return nil } - return x.refe0fc3d48 + return x.ref1965c1d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *AttachmentDescription2) Free() { - if x != nil && x.allocse0fc3d48 != nil { - x.allocse0fc3d48.(*cgoAllocMap).Free() - x.refe0fc3d48 = nil +func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Free() { + if x != nil && x.allocs1965c1d != nil { + x.allocs1965c1d.(*cgoAllocMap).Free() + x.ref1965c1d = nil } } -// NewAttachmentDescription2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderSMBuiltinsFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewAttachmentDescription2Ref(ref unsafe.Pointer) *AttachmentDescription2 { +func NewPhysicalDeviceShaderSMBuiltinsFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderSMBuiltinsFeaturesNV { if ref == nil { return nil } - obj := new(AttachmentDescription2) - obj.refe0fc3d48 = (*C.VkAttachmentDescription2KHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderSMBuiltinsFeaturesNV) + obj.ref1965c1d = (*C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *AttachmentDescription2) PassRef() (*C.VkAttachmentDescription2KHR, *cgoAllocMap) { +func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) PassRef() (*C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe0fc3d48 != nil { - return x.refe0fc3d48, nil + } else if x.ref1965c1d != nil { + return x.ref1965c1d, nil } - meme0fc3d48 := allocAttachmentDescription2Memory(1) - refe0fc3d48 := (*C.VkAttachmentDescription2KHR)(meme0fc3d48) - allocse0fc3d48 := new(cgoAllocMap) - allocse0fc3d48.Add(meme0fc3d48) + mem1965c1d := allocPhysicalDeviceShaderSMBuiltinsFeaturesNVMemory(1) + ref1965c1d := (*C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV)(mem1965c1d) + allocs1965c1d := new(cgoAllocMap) + allocs1965c1d.Add(mem1965c1d) var csType_allocs *cgoAllocMap - refe0fc3d48.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse0fc3d48.Borrow(csType_allocs) + ref1965c1d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1965c1d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe0fc3d48.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse0fc3d48.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refe0fc3d48.flags, cflags_allocs = (C.VkAttachmentDescriptionFlags)(x.Flags), cgoAllocsUnknown - allocse0fc3d48.Borrow(cflags_allocs) + ref1965c1d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1965c1d.Borrow(cpNext_allocs) - var cformat_allocs *cgoAllocMap - refe0fc3d48.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown - allocse0fc3d48.Borrow(cformat_allocs) - - var csamples_allocs *cgoAllocMap - refe0fc3d48.samples, csamples_allocs = (C.VkSampleCountFlagBits)(x.Samples), cgoAllocsUnknown - allocse0fc3d48.Borrow(csamples_allocs) - - var cloadOp_allocs *cgoAllocMap - refe0fc3d48.loadOp, cloadOp_allocs = (C.VkAttachmentLoadOp)(x.LoadOp), cgoAllocsUnknown - allocse0fc3d48.Borrow(cloadOp_allocs) - - var cstoreOp_allocs *cgoAllocMap - refe0fc3d48.storeOp, cstoreOp_allocs = (C.VkAttachmentStoreOp)(x.StoreOp), cgoAllocsUnknown - allocse0fc3d48.Borrow(cstoreOp_allocs) - - var cstencilLoadOp_allocs *cgoAllocMap - refe0fc3d48.stencilLoadOp, cstencilLoadOp_allocs = (C.VkAttachmentLoadOp)(x.StencilLoadOp), cgoAllocsUnknown - allocse0fc3d48.Borrow(cstencilLoadOp_allocs) - - var cstencilStoreOp_allocs *cgoAllocMap - refe0fc3d48.stencilStoreOp, cstencilStoreOp_allocs = (C.VkAttachmentStoreOp)(x.StencilStoreOp), cgoAllocsUnknown - allocse0fc3d48.Borrow(cstencilStoreOp_allocs) - - var cinitialLayout_allocs *cgoAllocMap - refe0fc3d48.initialLayout, cinitialLayout_allocs = (C.VkImageLayout)(x.InitialLayout), cgoAllocsUnknown - allocse0fc3d48.Borrow(cinitialLayout_allocs) - - var cfinalLayout_allocs *cgoAllocMap - refe0fc3d48.finalLayout, cfinalLayout_allocs = (C.VkImageLayout)(x.FinalLayout), cgoAllocsUnknown - allocse0fc3d48.Borrow(cfinalLayout_allocs) + var cshaderSMBuiltins_allocs *cgoAllocMap + ref1965c1d.shaderSMBuiltins, cshaderSMBuiltins_allocs = (C.VkBool32)(x.ShaderSMBuiltins), cgoAllocsUnknown + allocs1965c1d.Borrow(cshaderSMBuiltins_allocs) - x.refe0fc3d48 = refe0fc3d48 - x.allocse0fc3d48 = allocse0fc3d48 - return refe0fc3d48, allocse0fc3d48 + x.ref1965c1d = ref1965c1d + x.allocs1965c1d = allocs1965c1d + return ref1965c1d, allocs1965c1d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x AttachmentDescription2) PassValue() (C.VkAttachmentDescription2KHR, *cgoAllocMap) { - if x.refe0fc3d48 != nil { - return *x.refe0fc3d48, nil +func (x PhysicalDeviceShaderSMBuiltinsFeaturesNV) PassValue() (C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, *cgoAllocMap) { + if x.ref1965c1d != nil { + return *x.ref1965c1d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22878,106 +49826,90 @@ func (x AttachmentDescription2) PassValue() (C.VkAttachmentDescription2KHR, *cgo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AttachmentDescription2) Deref() { - if x.refe0fc3d48 == nil { +func (x *PhysicalDeviceShaderSMBuiltinsFeaturesNV) Deref() { + if x.ref1965c1d == nil { return } - x.SType = (StructureType)(x.refe0fc3d48.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe0fc3d48.pNext)) - x.Flags = (AttachmentDescriptionFlags)(x.refe0fc3d48.flags) - x.Format = (Format)(x.refe0fc3d48.format) - x.Samples = (SampleCountFlagBits)(x.refe0fc3d48.samples) - x.LoadOp = (AttachmentLoadOp)(x.refe0fc3d48.loadOp) - x.StoreOp = (AttachmentStoreOp)(x.refe0fc3d48.storeOp) - x.StencilLoadOp = (AttachmentLoadOp)(x.refe0fc3d48.stencilLoadOp) - x.StencilStoreOp = (AttachmentStoreOp)(x.refe0fc3d48.stencilStoreOp) - x.InitialLayout = (ImageLayout)(x.refe0fc3d48.initialLayout) - x.FinalLayout = (ImageLayout)(x.refe0fc3d48.finalLayout) + x.SType = (StructureType)(x.ref1965c1d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1965c1d.pNext)) + x.ShaderSMBuiltins = (Bool32)(x.ref1965c1d.shaderSMBuiltins) } -// allocAttachmentReference2Memory allocates memory for type C.VkAttachmentReference2KHR in C. +// allocDrmFormatModifierPropertiesMemory allocates memory for type C.VkDrmFormatModifierPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocAttachmentReference2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentReference2Value)) +func allocDrmFormatModifierPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfAttachmentReference2Value = unsafe.Sizeof([1]C.VkAttachmentReference2KHR{}) +const sizeOfDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentReference2) Ref() *C.VkAttachmentReference2KHR { +func (x *DrmFormatModifierProperties) Ref() *C.VkDrmFormatModifierPropertiesEXT { if x == nil { return nil } - return x.refa31684a1 + return x.ref7dcb7f85 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *AttachmentReference2) Free() { - if x != nil && x.allocsa31684a1 != nil { - x.allocsa31684a1.(*cgoAllocMap).Free() - x.refa31684a1 = nil +func (x *DrmFormatModifierProperties) Free() { + if x != nil && x.allocs7dcb7f85 != nil { + x.allocs7dcb7f85.(*cgoAllocMap).Free() + x.ref7dcb7f85 = nil } } -// NewAttachmentReference2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewDrmFormatModifierPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewAttachmentReference2Ref(ref unsafe.Pointer) *AttachmentReference2 { +func NewDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *DrmFormatModifierProperties { if ref == nil { return nil } - obj := new(AttachmentReference2) - obj.refa31684a1 = (*C.VkAttachmentReference2KHR)(unsafe.Pointer(ref)) + obj := new(DrmFormatModifierProperties) + obj.ref7dcb7f85 = (*C.VkDrmFormatModifierPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *AttachmentReference2) PassRef() (*C.VkAttachmentReference2KHR, *cgoAllocMap) { +func (x *DrmFormatModifierProperties) PassRef() (*C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa31684a1 != nil { - return x.refa31684a1, nil + } else if x.ref7dcb7f85 != nil { + return x.ref7dcb7f85, nil } - mema31684a1 := allocAttachmentReference2Memory(1) - refa31684a1 := (*C.VkAttachmentReference2KHR)(mema31684a1) - allocsa31684a1 := new(cgoAllocMap) - allocsa31684a1.Add(mema31684a1) - - var csType_allocs *cgoAllocMap - refa31684a1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa31684a1.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refa31684a1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa31684a1.Borrow(cpNext_allocs) + mem7dcb7f85 := allocDrmFormatModifierPropertiesMemory(1) + ref7dcb7f85 := (*C.VkDrmFormatModifierPropertiesEXT)(mem7dcb7f85) + allocs7dcb7f85 := new(cgoAllocMap) + allocs7dcb7f85.Add(mem7dcb7f85) - var cattachment_allocs *cgoAllocMap - refa31684a1.attachment, cattachment_allocs = (C.uint32_t)(x.Attachment), cgoAllocsUnknown - allocsa31684a1.Borrow(cattachment_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + ref7dcb7f85.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs7dcb7f85.Borrow(cdrmFormatModifier_allocs) - var clayout_allocs *cgoAllocMap - refa31684a1.layout, clayout_allocs = (C.VkImageLayout)(x.Layout), cgoAllocsUnknown - allocsa31684a1.Borrow(clayout_allocs) + var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap + ref7dcb7f85.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown + allocs7dcb7f85.Borrow(cdrmFormatModifierPlaneCount_allocs) - var caspectMask_allocs *cgoAllocMap - refa31684a1.aspectMask, caspectMask_allocs = (C.VkImageAspectFlags)(x.AspectMask), cgoAllocsUnknown - allocsa31684a1.Borrow(caspectMask_allocs) + var cdrmFormatModifierTilingFeatures_allocs *cgoAllocMap + ref7dcb7f85.drmFormatModifierTilingFeatures, cdrmFormatModifierTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.DrmFormatModifierTilingFeatures), cgoAllocsUnknown + allocs7dcb7f85.Borrow(cdrmFormatModifierTilingFeatures_allocs) - x.refa31684a1 = refa31684a1 - x.allocsa31684a1 = allocsa31684a1 - return refa31684a1, allocsa31684a1 + x.ref7dcb7f85 = ref7dcb7f85 + x.allocs7dcb7f85 = allocs7dcb7f85 + return ref7dcb7f85, allocs7dcb7f85 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x AttachmentReference2) PassValue() (C.VkAttachmentReference2KHR, *cgoAllocMap) { - if x.refa31684a1 != nil { - return *x.refa31684a1, nil +func (x DrmFormatModifierProperties) PassValue() (C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { + if x.ref7dcb7f85 != nil { + return *x.ref7dcb7f85, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -22985,170 +49917,132 @@ func (x AttachmentReference2) PassValue() (C.VkAttachmentReference2KHR, *cgoAllo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AttachmentReference2) Deref() { - if x.refa31684a1 == nil { +func (x *DrmFormatModifierProperties) Deref() { + if x.ref7dcb7f85 == nil { return } - x.SType = (StructureType)(x.refa31684a1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa31684a1.pNext)) - x.Attachment = (uint32)(x.refa31684a1.attachment) - x.Layout = (ImageLayout)(x.refa31684a1.layout) - x.AspectMask = (ImageAspectFlags)(x.refa31684a1.aspectMask) + x.DrmFormatModifier = (uint64)(x.ref7dcb7f85.drmFormatModifier) + x.DrmFormatModifierPlaneCount = (uint32)(x.ref7dcb7f85.drmFormatModifierPlaneCount) + x.DrmFormatModifierTilingFeatures = (FormatFeatureFlags)(x.ref7dcb7f85.drmFormatModifierTilingFeatures) } -// allocSubpassDescription2Memory allocates memory for type C.VkSubpassDescription2KHR in C. +// allocDrmFormatModifierPropertiesListMemory allocates memory for type C.VkDrmFormatModifierPropertiesListEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubpassDescription2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassDescription2Value)) +func allocDrmFormatModifierPropertiesListMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierPropertiesListValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubpassDescription2Value = unsafe.Sizeof([1]C.VkSubpassDescription2KHR{}) +const sizeOfDrmFormatModifierPropertiesListValue = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesListEXT{}) -// unpackSAttachmentReference2 transforms a sliced Go data structure into plain C format. -func unpackSAttachmentReference2(x []AttachmentReference2) (unpacked *C.VkAttachmentReference2KHR, allocs *cgoAllocMap) { +// unpackSDrmFormatModifierProperties transforms a sliced Go data structure into plain C format. +func unpackSDrmFormatModifierProperties(x []DrmFormatModifierProperties) (unpacked *C.VkDrmFormatModifierPropertiesEXT, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentReference2KHR) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkDrmFormatModifierPropertiesEXT) { go allocs.Free() }) len0 := len(x) - mem0 := allocAttachmentReference2Memory(len0) + mem0 := allocDrmFormatModifierPropertiesMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkAttachmentReference2KHR)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkDrmFormatModifierPropertiesEXT)(unsafe.Pointer(h0)) for i0 := range x { allocs0 := new(cgoAllocMap) v0[i0], allocs0 = x[i0].PassValue() allocs.Borrow(allocs0) } h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkAttachmentReference2KHR)(h.Data) + unpacked = (*C.VkDrmFormatModifierPropertiesEXT)(h.Data) return } -// packSAttachmentReference2 reads sliced Go data structure out from plain C format. -func packSAttachmentReference2(v []AttachmentReference2, ptr0 *C.VkAttachmentReference2KHR) { +// packSDrmFormatModifierProperties reads sliced Go data structure out from plain C format. +func packSDrmFormatModifierProperties(v []DrmFormatModifierProperties, ptr0 *C.VkDrmFormatModifierPropertiesEXT) { const m = 0x7fffffff for i0 := range v { - ptr1 := (*(*[m / sizeOfAttachmentReference2Value]C.VkAttachmentReference2KHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewAttachmentReference2Ref(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfDrmFormatModifierPropertiesValue]C.VkDrmFormatModifierPropertiesEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewDrmFormatModifierPropertiesRef(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassDescription2) Ref() *C.VkSubpassDescription2KHR { +func (x *DrmFormatModifierPropertiesList) Ref() *C.VkDrmFormatModifierPropertiesListEXT { if x == nil { return nil } - return x.ref89a293f3 + return x.ref7e3ede2 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubpassDescription2) Free() { - if x != nil && x.allocs89a293f3 != nil { - x.allocs89a293f3.(*cgoAllocMap).Free() - x.ref89a293f3 = nil +func (x *DrmFormatModifierPropertiesList) Free() { + if x != nil && x.allocs7e3ede2 != nil { + x.allocs7e3ede2.(*cgoAllocMap).Free() + x.ref7e3ede2 = nil } } -// NewSubpassDescription2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewDrmFormatModifierPropertiesListRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubpassDescription2Ref(ref unsafe.Pointer) *SubpassDescription2 { +func NewDrmFormatModifierPropertiesListRef(ref unsafe.Pointer) *DrmFormatModifierPropertiesList { if ref == nil { return nil } - obj := new(SubpassDescription2) - obj.ref89a293f3 = (*C.VkSubpassDescription2KHR)(unsafe.Pointer(ref)) + obj := new(DrmFormatModifierPropertiesList) + obj.ref7e3ede2 = (*C.VkDrmFormatModifierPropertiesListEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubpassDescription2) PassRef() (*C.VkSubpassDescription2KHR, *cgoAllocMap) { +func (x *DrmFormatModifierPropertiesList) PassRef() (*C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref89a293f3 != nil { - return x.ref89a293f3, nil + } else if x.ref7e3ede2 != nil { + return x.ref7e3ede2, nil } - mem89a293f3 := allocSubpassDescription2Memory(1) - ref89a293f3 := (*C.VkSubpassDescription2KHR)(mem89a293f3) - allocs89a293f3 := new(cgoAllocMap) - allocs89a293f3.Add(mem89a293f3) + mem7e3ede2 := allocDrmFormatModifierPropertiesListMemory(1) + ref7e3ede2 := (*C.VkDrmFormatModifierPropertiesListEXT)(mem7e3ede2) + allocs7e3ede2 := new(cgoAllocMap) + allocs7e3ede2.Add(mem7e3ede2) var csType_allocs *cgoAllocMap - ref89a293f3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs89a293f3.Borrow(csType_allocs) + ref7e3ede2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7e3ede2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref89a293f3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs89a293f3.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref89a293f3.flags, cflags_allocs = (C.VkSubpassDescriptionFlags)(x.Flags), cgoAllocsUnknown - allocs89a293f3.Borrow(cflags_allocs) - - var cpipelineBindPoint_allocs *cgoAllocMap - ref89a293f3.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown - allocs89a293f3.Borrow(cpipelineBindPoint_allocs) - - var cviewMask_allocs *cgoAllocMap - ref89a293f3.viewMask, cviewMask_allocs = (C.uint32_t)(x.ViewMask), cgoAllocsUnknown - allocs89a293f3.Borrow(cviewMask_allocs) - - var cinputAttachmentCount_allocs *cgoAllocMap - ref89a293f3.inputAttachmentCount, cinputAttachmentCount_allocs = (C.uint32_t)(x.InputAttachmentCount), cgoAllocsUnknown - allocs89a293f3.Borrow(cinputAttachmentCount_allocs) - - var cpInputAttachments_allocs *cgoAllocMap - ref89a293f3.pInputAttachments, cpInputAttachments_allocs = unpackSAttachmentReference2(x.PInputAttachments) - allocs89a293f3.Borrow(cpInputAttachments_allocs) - - var ccolorAttachmentCount_allocs *cgoAllocMap - ref89a293f3.colorAttachmentCount, ccolorAttachmentCount_allocs = (C.uint32_t)(x.ColorAttachmentCount), cgoAllocsUnknown - allocs89a293f3.Borrow(ccolorAttachmentCount_allocs) - - var cpColorAttachments_allocs *cgoAllocMap - ref89a293f3.pColorAttachments, cpColorAttachments_allocs = unpackSAttachmentReference2(x.PColorAttachments) - allocs89a293f3.Borrow(cpColorAttachments_allocs) - - var cpResolveAttachments_allocs *cgoAllocMap - ref89a293f3.pResolveAttachments, cpResolveAttachments_allocs = unpackSAttachmentReference2(x.PResolveAttachments) - allocs89a293f3.Borrow(cpResolveAttachments_allocs) - - var cpDepthStencilAttachment_allocs *cgoAllocMap - ref89a293f3.pDepthStencilAttachment, cpDepthStencilAttachment_allocs = unpackSAttachmentReference2(x.PDepthStencilAttachment) - allocs89a293f3.Borrow(cpDepthStencilAttachment_allocs) + ref7e3ede2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7e3ede2.Borrow(cpNext_allocs) - var cpreserveAttachmentCount_allocs *cgoAllocMap - ref89a293f3.preserveAttachmentCount, cpreserveAttachmentCount_allocs = (C.uint32_t)(x.PreserveAttachmentCount), cgoAllocsUnknown - allocs89a293f3.Borrow(cpreserveAttachmentCount_allocs) + var cdrmFormatModifierCount_allocs *cgoAllocMap + ref7e3ede2.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown + allocs7e3ede2.Borrow(cdrmFormatModifierCount_allocs) - var cpPreserveAttachments_allocs *cgoAllocMap - ref89a293f3.pPreserveAttachments, cpPreserveAttachments_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments)).Data)), cgoAllocsUnknown - allocs89a293f3.Borrow(cpPreserveAttachments_allocs) + var cpDrmFormatModifierProperties_allocs *cgoAllocMap + ref7e3ede2.pDrmFormatModifierProperties, cpDrmFormatModifierProperties_allocs = unpackSDrmFormatModifierProperties(x.PDrmFormatModifierProperties) + allocs7e3ede2.Borrow(cpDrmFormatModifierProperties_allocs) - x.ref89a293f3 = ref89a293f3 - x.allocs89a293f3 = allocs89a293f3 - return ref89a293f3, allocs89a293f3 + x.ref7e3ede2 = ref7e3ede2 + x.allocs7e3ede2 = allocs7e3ede2 + return ref7e3ede2, allocs7e3ede2 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubpassDescription2) PassValue() (C.VkSubpassDescription2KHR, *cgoAllocMap) { - if x.ref89a293f3 != nil { - return *x.ref89a293f3, nil +func (x DrmFormatModifierPropertiesList) PassValue() (C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { + if x.ref7e3ede2 != nil { + return *x.ref7e3ede2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23156,132 +50050,103 @@ func (x SubpassDescription2) PassValue() (C.VkSubpassDescription2KHR, *cgoAllocM // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubpassDescription2) Deref() { - if x.ref89a293f3 == nil { - return - } - x.SType = (StructureType)(x.ref89a293f3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref89a293f3.pNext)) - x.Flags = (SubpassDescriptionFlags)(x.ref89a293f3.flags) - x.PipelineBindPoint = (PipelineBindPoint)(x.ref89a293f3.pipelineBindPoint) - x.ViewMask = (uint32)(x.ref89a293f3.viewMask) - x.InputAttachmentCount = (uint32)(x.ref89a293f3.inputAttachmentCount) - packSAttachmentReference2(x.PInputAttachments, x.ref89a293f3.pInputAttachments) - x.ColorAttachmentCount = (uint32)(x.ref89a293f3.colorAttachmentCount) - packSAttachmentReference2(x.PColorAttachments, x.ref89a293f3.pColorAttachments) - packSAttachmentReference2(x.PResolveAttachments, x.ref89a293f3.pResolveAttachments) - packSAttachmentReference2(x.PDepthStencilAttachment, x.ref89a293f3.pDepthStencilAttachment) - x.PreserveAttachmentCount = (uint32)(x.ref89a293f3.preserveAttachmentCount) - hxf09ea94 := (*sliceHeader)(unsafe.Pointer(&x.PPreserveAttachments)) - hxf09ea94.Data = unsafe.Pointer(x.ref89a293f3.pPreserveAttachments) - hxf09ea94.Cap = 0x7fffffff - // hxf09ea94.Len = ? - +func (x *DrmFormatModifierPropertiesList) Deref() { + if x.ref7e3ede2 == nil { + return + } + x.SType = (StructureType)(x.ref7e3ede2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7e3ede2.pNext)) + x.DrmFormatModifierCount = (uint32)(x.ref7e3ede2.drmFormatModifierCount) + packSDrmFormatModifierProperties(x.PDrmFormatModifierProperties, x.ref7e3ede2.pDrmFormatModifierProperties) } -// allocSubpassDependency2Memory allocates memory for type C.VkSubpassDependency2KHR in C. +// allocPhysicalDeviceImageDrmFormatModifierInfoMemory allocates memory for type C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubpassDependency2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassDependency2Value)) +func allocPhysicalDeviceImageDrmFormatModifierInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageDrmFormatModifierInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubpassDependency2Value = unsafe.Sizeof([1]C.VkSubpassDependency2KHR{}) +const sizeOfPhysicalDeviceImageDrmFormatModifierInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassDependency2) Ref() *C.VkSubpassDependency2KHR { +func (x *PhysicalDeviceImageDrmFormatModifierInfo) Ref() *C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT { if x == nil { return nil } - return x.ref985e0998 + return x.refd7abef44 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubpassDependency2) Free() { - if x != nil && x.allocs985e0998 != nil { - x.allocs985e0998.(*cgoAllocMap).Free() - x.ref985e0998 = nil +func (x *PhysicalDeviceImageDrmFormatModifierInfo) Free() { + if x != nil && x.allocsd7abef44 != nil { + x.allocsd7abef44.(*cgoAllocMap).Free() + x.refd7abef44 = nil } } -// NewSubpassDependency2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceImageDrmFormatModifierInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubpassDependency2Ref(ref unsafe.Pointer) *SubpassDependency2 { +func NewPhysicalDeviceImageDrmFormatModifierInfoRef(ref unsafe.Pointer) *PhysicalDeviceImageDrmFormatModifierInfo { if ref == nil { return nil } - obj := new(SubpassDependency2) - obj.ref985e0998 = (*C.VkSubpassDependency2KHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceImageDrmFormatModifierInfo) + obj.refd7abef44 = (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubpassDependency2) PassRef() (*C.VkSubpassDependency2KHR, *cgoAllocMap) { +func (x *PhysicalDeviceImageDrmFormatModifierInfo) PassRef() (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref985e0998 != nil { - return x.ref985e0998, nil + } else if x.refd7abef44 != nil { + return x.refd7abef44, nil } - mem985e0998 := allocSubpassDependency2Memory(1) - ref985e0998 := (*C.VkSubpassDependency2KHR)(mem985e0998) - allocs985e0998 := new(cgoAllocMap) - allocs985e0998.Add(mem985e0998) + memd7abef44 := allocPhysicalDeviceImageDrmFormatModifierInfoMemory(1) + refd7abef44 := (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT)(memd7abef44) + allocsd7abef44 := new(cgoAllocMap) + allocsd7abef44.Add(memd7abef44) var csType_allocs *cgoAllocMap - ref985e0998.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs985e0998.Borrow(csType_allocs) + refd7abef44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd7abef44.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref985e0998.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs985e0998.Borrow(cpNext_allocs) - - var csrcSubpass_allocs *cgoAllocMap - ref985e0998.srcSubpass, csrcSubpass_allocs = (C.uint32_t)(x.SrcSubpass), cgoAllocsUnknown - allocs985e0998.Borrow(csrcSubpass_allocs) - - var cdstSubpass_allocs *cgoAllocMap - ref985e0998.dstSubpass, cdstSubpass_allocs = (C.uint32_t)(x.DstSubpass), cgoAllocsUnknown - allocs985e0998.Borrow(cdstSubpass_allocs) - - var csrcStageMask_allocs *cgoAllocMap - ref985e0998.srcStageMask, csrcStageMask_allocs = (C.VkPipelineStageFlags)(x.SrcStageMask), cgoAllocsUnknown - allocs985e0998.Borrow(csrcStageMask_allocs) - - var cdstStageMask_allocs *cgoAllocMap - ref985e0998.dstStageMask, cdstStageMask_allocs = (C.VkPipelineStageFlags)(x.DstStageMask), cgoAllocsUnknown - allocs985e0998.Borrow(cdstStageMask_allocs) + refd7abef44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd7abef44.Borrow(cpNext_allocs) - var csrcAccessMask_allocs *cgoAllocMap - ref985e0998.srcAccessMask, csrcAccessMask_allocs = (C.VkAccessFlags)(x.SrcAccessMask), cgoAllocsUnknown - allocs985e0998.Borrow(csrcAccessMask_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + refd7abef44.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocsd7abef44.Borrow(cdrmFormatModifier_allocs) - var cdstAccessMask_allocs *cgoAllocMap - ref985e0998.dstAccessMask, cdstAccessMask_allocs = (C.VkAccessFlags)(x.DstAccessMask), cgoAllocsUnknown - allocs985e0998.Borrow(cdstAccessMask_allocs) + var csharingMode_allocs *cgoAllocMap + refd7abef44.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown + allocsd7abef44.Borrow(csharingMode_allocs) - var cdependencyFlags_allocs *cgoAllocMap - ref985e0998.dependencyFlags, cdependencyFlags_allocs = (C.VkDependencyFlags)(x.DependencyFlags), cgoAllocsUnknown - allocs985e0998.Borrow(cdependencyFlags_allocs) + var cqueueFamilyIndexCount_allocs *cgoAllocMap + refd7abef44.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown + allocsd7abef44.Borrow(cqueueFamilyIndexCount_allocs) - var cviewOffset_allocs *cgoAllocMap - ref985e0998.viewOffset, cviewOffset_allocs = (C.int32_t)(x.ViewOffset), cgoAllocsUnknown - allocs985e0998.Borrow(cviewOffset_allocs) + var cpQueueFamilyIndices_allocs *cgoAllocMap + refd7abef44.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown + allocsd7abef44.Borrow(cpQueueFamilyIndices_allocs) - x.ref985e0998 = ref985e0998 - x.allocs985e0998 = allocs985e0998 - return ref985e0998, allocs985e0998 + x.refd7abef44 = refd7abef44 + x.allocsd7abef44 = allocsd7abef44 + return refd7abef44, allocsd7abef44 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubpassDependency2) PassValue() (C.VkSubpassDependency2KHR, *cgoAllocMap) { - if x.ref985e0998 != nil { - return *x.ref985e0998, nil +func (x PhysicalDeviceImageDrmFormatModifierInfo) PassValue() (C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { + if x.refd7abef44 != nil { + return *x.refd7abef44, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23289,243 +50154,243 @@ func (x SubpassDependency2) PassValue() (C.VkSubpassDependency2KHR, *cgoAllocMap // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubpassDependency2) Deref() { - if x.ref985e0998 == nil { +func (x *PhysicalDeviceImageDrmFormatModifierInfo) Deref() { + if x.refd7abef44 == nil { return } - x.SType = (StructureType)(x.ref985e0998.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref985e0998.pNext)) - x.SrcSubpass = (uint32)(x.ref985e0998.srcSubpass) - x.DstSubpass = (uint32)(x.ref985e0998.dstSubpass) - x.SrcStageMask = (PipelineStageFlags)(x.ref985e0998.srcStageMask) - x.DstStageMask = (PipelineStageFlags)(x.ref985e0998.dstStageMask) - x.SrcAccessMask = (AccessFlags)(x.ref985e0998.srcAccessMask) - x.DstAccessMask = (AccessFlags)(x.ref985e0998.dstAccessMask) - x.DependencyFlags = (DependencyFlags)(x.ref985e0998.dependencyFlags) - x.ViewOffset = (int32)(x.ref985e0998.viewOffset) + x.SType = (StructureType)(x.refd7abef44.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd7abef44.pNext)) + x.DrmFormatModifier = (uint64)(x.refd7abef44.drmFormatModifier) + x.SharingMode = (SharingMode)(x.refd7abef44.sharingMode) + x.QueueFamilyIndexCount = (uint32)(x.refd7abef44.queueFamilyIndexCount) + hxf9b1633 := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) + hxf9b1633.Data = unsafe.Pointer(x.refd7abef44.pQueueFamilyIndices) + hxf9b1633.Cap = 0x7fffffff + // hxf9b1633.Len = ? + } -// allocRenderPassCreateInfo2Memory allocates memory for type C.VkRenderPassCreateInfo2KHR in C. +// allocImageDrmFormatModifierListCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierListCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocRenderPassCreateInfo2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassCreateInfo2Value)) +func allocImageDrmFormatModifierListCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageDrmFormatModifierListCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfRenderPassCreateInfo2Value = unsafe.Sizeof([1]C.VkRenderPassCreateInfo2KHR{}) +const sizeOfImageDrmFormatModifierListCreateInfoValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierListCreateInfoEXT{}) -// unpackSAttachmentDescription2 transforms a sliced Go data structure into plain C format. -func unpackSAttachmentDescription2(x []AttachmentDescription2) (unpacked *C.VkAttachmentDescription2KHR, allocs *cgoAllocMap) { +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *ImageDrmFormatModifierListCreateInfo) Ref() *C.VkImageDrmFormatModifierListCreateInfoEXT { if x == nil { - return nil, nil + return nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentDescription2KHR) { - go allocs.Free() - }) + return x.ref544538ab +} - len0 := len(x) - mem0 := allocAttachmentDescription2Memory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *ImageDrmFormatModifierListCreateInfo) Free() { + if x != nil && x.allocs544538ab != nil { + x.allocs544538ab.(*cgoAllocMap).Free() + x.ref544538ab = nil } - v0 := *(*[]C.VkAttachmentDescription2KHR)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) +} + +// NewImageDrmFormatModifierListCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewImageDrmFormatModifierListCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierListCreateInfo { + if ref == nil { + return nil } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkAttachmentDescription2KHR)(h.Data) - return + obj := new(ImageDrmFormatModifierListCreateInfo) + obj.ref544538ab = (*C.VkImageDrmFormatModifierListCreateInfoEXT)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *ImageDrmFormatModifierListCreateInfo) PassRef() (*C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref544538ab != nil { + return x.ref544538ab, nil + } + mem544538ab := allocImageDrmFormatModifierListCreateInfoMemory(1) + ref544538ab := (*C.VkImageDrmFormatModifierListCreateInfoEXT)(mem544538ab) + allocs544538ab := new(cgoAllocMap) + allocs544538ab.Add(mem544538ab) + + var csType_allocs *cgoAllocMap + ref544538ab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs544538ab.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref544538ab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs544538ab.Borrow(cpNext_allocs) + + var cdrmFormatModifierCount_allocs *cgoAllocMap + ref544538ab.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown + allocs544538ab.Borrow(cdrmFormatModifierCount_allocs) + + var cpDrmFormatModifiers_allocs *cgoAllocMap + ref544538ab.pDrmFormatModifiers, cpDrmFormatModifiers_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDrmFormatModifiers)).Data)), cgoAllocsUnknown + allocs544538ab.Borrow(cpDrmFormatModifiers_allocs) + + x.ref544538ab = ref544538ab + x.allocs544538ab = allocs544538ab + return ref544538ab, allocs544538ab + } -// unpackSSubpassDescription2 transforms a sliced Go data structure into plain C format. -func unpackSSubpassDescription2(x []SubpassDescription2) (unpacked *C.VkSubpassDescription2KHR, allocs *cgoAllocMap) { - if x == nil { - return nil, nil +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x ImageDrmFormatModifierListCreateInfo) PassValue() (C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { + if x.ref544538ab != nil { + return *x.ref544538ab, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDescription2KHR) { - go allocs.Free() - }) + ref, allocs := x.PassRef() + return *ref, allocs +} - len0 := len(x) - mem0 := allocSubpassDescription2Memory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *ImageDrmFormatModifierListCreateInfo) Deref() { + if x.ref544538ab == nil { + return } - v0 := *(*[]C.VkSubpassDescription2KHR)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) + x.SType = (StructureType)(x.ref544538ab.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref544538ab.pNext)) + x.DrmFormatModifierCount = (uint32)(x.ref544538ab.drmFormatModifierCount) + hxf502c9a := (*sliceHeader)(unsafe.Pointer(&x.PDrmFormatModifiers)) + hxf502c9a.Data = unsafe.Pointer(x.ref544538ab.pDrmFormatModifiers) + hxf502c9a.Cap = 0x7fffffff + // hxf502c9a.Len = ? + +} + +// allocImageDrmFormatModifierExplicitCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierExplicitCreateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocImageDrmFormatModifierExplicitCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageDrmFormatModifierExplicitCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSubpassDescription2KHR)(h.Data) - return + return mem } -// unpackSSubpassDependency2 transforms a sliced Go data structure into plain C format. -func unpackSSubpassDependency2(x []SubpassDependency2) (unpacked *C.VkSubpassDependency2KHR, allocs *cgoAllocMap) { +const sizeOfImageDrmFormatModifierExplicitCreateInfoValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierExplicitCreateInfoEXT{}) + +// unpackSSubresourceLayout transforms a sliced Go data structure into plain C format. +func unpackSSubresourceLayout(x []SubresourceLayout) (unpacked *C.VkSubresourceLayout, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassDependency2KHR) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkSubresourceLayout) { go allocs.Free() }) len0 := len(x) - mem0 := allocSubpassDependency2Memory(len0) + mem0 := allocSubresourceLayoutMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkSubpassDependency2KHR)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkSubresourceLayout)(unsafe.Pointer(h0)) for i0 := range x { allocs0 := new(cgoAllocMap) v0[i0], allocs0 = x[i0].PassValue() allocs.Borrow(allocs0) } h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSubpassDependency2KHR)(h.Data) + unpacked = (*C.VkSubresourceLayout)(h.Data) return } -// packSAttachmentDescription2 reads sliced Go data structure out from plain C format. -func packSAttachmentDescription2(v []AttachmentDescription2, ptr0 *C.VkAttachmentDescription2KHR) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfAttachmentDescription2Value]C.VkAttachmentDescription2KHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewAttachmentDescription2Ref(unsafe.Pointer(&ptr1)) - } -} - -// packSSubpassDescription2 reads sliced Go data structure out from plain C format. -func packSSubpassDescription2(v []SubpassDescription2, ptr0 *C.VkSubpassDescription2KHR) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSubpassDescription2Value]C.VkSubpassDescription2KHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSubpassDescription2Ref(unsafe.Pointer(&ptr1)) - } -} - -// packSSubpassDependency2 reads sliced Go data structure out from plain C format. -func packSSubpassDependency2(v []SubpassDependency2, ptr0 *C.VkSubpassDependency2KHR) { +// packSSubresourceLayout reads sliced Go data structure out from plain C format. +func packSSubresourceLayout(v []SubresourceLayout, ptr0 *C.VkSubresourceLayout) { const m = 0x7fffffff for i0 := range v { - ptr1 := (*(*[m / sizeOfSubpassDependency2Value]C.VkSubpassDependency2KHR)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSubpassDependency2Ref(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfSubresourceLayoutValue]C.VkSubresourceLayout)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewSubresourceLayoutRef(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassCreateInfo2) Ref() *C.VkRenderPassCreateInfo2KHR { +func (x *ImageDrmFormatModifierExplicitCreateInfo) Ref() *C.VkImageDrmFormatModifierExplicitCreateInfoEXT { if x == nil { return nil } - return x.ref1d4774de + return x.ref8fb45ca9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *RenderPassCreateInfo2) Free() { - if x != nil && x.allocs1d4774de != nil { - x.allocs1d4774de.(*cgoAllocMap).Free() - x.ref1d4774de = nil +func (x *ImageDrmFormatModifierExplicitCreateInfo) Free() { + if x != nil && x.allocs8fb45ca9 != nil { + x.allocs8fb45ca9.(*cgoAllocMap).Free() + x.ref8fb45ca9 = nil } } -// NewRenderPassCreateInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewImageDrmFormatModifierExplicitCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewRenderPassCreateInfo2Ref(ref unsafe.Pointer) *RenderPassCreateInfo2 { +func NewImageDrmFormatModifierExplicitCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierExplicitCreateInfo { if ref == nil { return nil } - obj := new(RenderPassCreateInfo2) - obj.ref1d4774de = (*C.VkRenderPassCreateInfo2KHR)(unsafe.Pointer(ref)) + obj := new(ImageDrmFormatModifierExplicitCreateInfo) + obj.ref8fb45ca9 = (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *RenderPassCreateInfo2) PassRef() (*C.VkRenderPassCreateInfo2KHR, *cgoAllocMap) { +func (x *ImageDrmFormatModifierExplicitCreateInfo) PassRef() (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1d4774de != nil { - return x.ref1d4774de, nil + } else if x.ref8fb45ca9 != nil { + return x.ref8fb45ca9, nil } - mem1d4774de := allocRenderPassCreateInfo2Memory(1) - ref1d4774de := (*C.VkRenderPassCreateInfo2KHR)(mem1d4774de) - allocs1d4774de := new(cgoAllocMap) - allocs1d4774de.Add(mem1d4774de) + mem8fb45ca9 := allocImageDrmFormatModifierExplicitCreateInfoMemory(1) + ref8fb45ca9 := (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT)(mem8fb45ca9) + allocs8fb45ca9 := new(cgoAllocMap) + allocs8fb45ca9.Add(mem8fb45ca9) var csType_allocs *cgoAllocMap - ref1d4774de.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1d4774de.Borrow(csType_allocs) + ref8fb45ca9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8fb45ca9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1d4774de.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1d4774de.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref1d4774de.flags, cflags_allocs = (C.VkRenderPassCreateFlags)(x.Flags), cgoAllocsUnknown - allocs1d4774de.Borrow(cflags_allocs) - - var cattachmentCount_allocs *cgoAllocMap - ref1d4774de.attachmentCount, cattachmentCount_allocs = (C.uint32_t)(x.AttachmentCount), cgoAllocsUnknown - allocs1d4774de.Borrow(cattachmentCount_allocs) - - var cpAttachments_allocs *cgoAllocMap - ref1d4774de.pAttachments, cpAttachments_allocs = unpackSAttachmentDescription2(x.PAttachments) - allocs1d4774de.Borrow(cpAttachments_allocs) - - var csubpassCount_allocs *cgoAllocMap - ref1d4774de.subpassCount, csubpassCount_allocs = (C.uint32_t)(x.SubpassCount), cgoAllocsUnknown - allocs1d4774de.Borrow(csubpassCount_allocs) - - var cpSubpasses_allocs *cgoAllocMap - ref1d4774de.pSubpasses, cpSubpasses_allocs = unpackSSubpassDescription2(x.PSubpasses) - allocs1d4774de.Borrow(cpSubpasses_allocs) - - var cdependencyCount_allocs *cgoAllocMap - ref1d4774de.dependencyCount, cdependencyCount_allocs = (C.uint32_t)(x.DependencyCount), cgoAllocsUnknown - allocs1d4774de.Borrow(cdependencyCount_allocs) + ref8fb45ca9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8fb45ca9.Borrow(cpNext_allocs) - var cpDependencies_allocs *cgoAllocMap - ref1d4774de.pDependencies, cpDependencies_allocs = unpackSSubpassDependency2(x.PDependencies) - allocs1d4774de.Borrow(cpDependencies_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + ref8fb45ca9.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs8fb45ca9.Borrow(cdrmFormatModifier_allocs) - var ccorrelatedViewMaskCount_allocs *cgoAllocMap - ref1d4774de.correlatedViewMaskCount, ccorrelatedViewMaskCount_allocs = (C.uint32_t)(x.CorrelatedViewMaskCount), cgoAllocsUnknown - allocs1d4774de.Borrow(ccorrelatedViewMaskCount_allocs) + var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap + ref8fb45ca9.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown + allocs8fb45ca9.Borrow(cdrmFormatModifierPlaneCount_allocs) - var cpCorrelatedViewMasks_allocs *cgoAllocMap - ref1d4774de.pCorrelatedViewMasks, cpCorrelatedViewMasks_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCorrelatedViewMasks)).Data)), cgoAllocsUnknown - allocs1d4774de.Borrow(cpCorrelatedViewMasks_allocs) + var cpPlaneLayouts_allocs *cgoAllocMap + ref8fb45ca9.pPlaneLayouts, cpPlaneLayouts_allocs = unpackSSubresourceLayout(x.PPlaneLayouts) + allocs8fb45ca9.Borrow(cpPlaneLayouts_allocs) - x.ref1d4774de = ref1d4774de - x.allocs1d4774de = allocs1d4774de - return ref1d4774de, allocs1d4774de + x.ref8fb45ca9 = ref8fb45ca9 + x.allocs8fb45ca9 = allocs8fb45ca9 + return ref8fb45ca9, allocs8fb45ca9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x RenderPassCreateInfo2) PassValue() (C.VkRenderPassCreateInfo2KHR, *cgoAllocMap) { - if x.ref1d4774de != nil { - return *x.ref1d4774de, nil +func (x ImageDrmFormatModifierExplicitCreateInfo) PassValue() (C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { + if x.ref8fb45ca9 != nil { + return *x.ref8fb45ca9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23533,102 +50398,92 @@ func (x RenderPassCreateInfo2) PassValue() (C.VkRenderPassCreateInfo2KHR, *cgoAl // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RenderPassCreateInfo2) Deref() { - if x.ref1d4774de == nil { - return - } - x.SType = (StructureType)(x.ref1d4774de.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1d4774de.pNext)) - x.Flags = (RenderPassCreateFlags)(x.ref1d4774de.flags) - x.AttachmentCount = (uint32)(x.ref1d4774de.attachmentCount) - packSAttachmentDescription2(x.PAttachments, x.ref1d4774de.pAttachments) - x.SubpassCount = (uint32)(x.ref1d4774de.subpassCount) - packSSubpassDescription2(x.PSubpasses, x.ref1d4774de.pSubpasses) - x.DependencyCount = (uint32)(x.ref1d4774de.dependencyCount) - packSSubpassDependency2(x.PDependencies, x.ref1d4774de.pDependencies) - x.CorrelatedViewMaskCount = (uint32)(x.ref1d4774de.correlatedViewMaskCount) - hxfd687ee := (*sliceHeader)(unsafe.Pointer(&x.PCorrelatedViewMasks)) - hxfd687ee.Data = unsafe.Pointer(x.ref1d4774de.pCorrelatedViewMasks) - hxfd687ee.Cap = 0x7fffffff - // hxfd687ee.Len = ? - +func (x *ImageDrmFormatModifierExplicitCreateInfo) Deref() { + if x.ref8fb45ca9 == nil { + return + } + x.SType = (StructureType)(x.ref8fb45ca9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8fb45ca9.pNext)) + x.DrmFormatModifier = (uint64)(x.ref8fb45ca9.drmFormatModifier) + x.DrmFormatModifierPlaneCount = (uint32)(x.ref8fb45ca9.drmFormatModifierPlaneCount) + packSSubresourceLayout(x.PPlaneLayouts, x.ref8fb45ca9.pPlaneLayouts) } -// allocSubpassBeginInfoMemory allocates memory for type C.VkSubpassBeginInfoKHR in C. +// allocImageDrmFormatModifierPropertiesMemory allocates memory for type C.VkImageDrmFormatModifierPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubpassBeginInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassBeginInfoValue)) +func allocImageDrmFormatModifierPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageDrmFormatModifierPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubpassBeginInfoValue = unsafe.Sizeof([1]C.VkSubpassBeginInfoKHR{}) +const sizeOfImageDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassBeginInfo) Ref() *C.VkSubpassBeginInfoKHR { +func (x *ImageDrmFormatModifierProperties) Ref() *C.VkImageDrmFormatModifierPropertiesEXT { if x == nil { return nil } - return x.ref7b9f19b8 + return x.ref86a0f149 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubpassBeginInfo) Free() { - if x != nil && x.allocs7b9f19b8 != nil { - x.allocs7b9f19b8.(*cgoAllocMap).Free() - x.ref7b9f19b8 = nil +func (x *ImageDrmFormatModifierProperties) Free() { + if x != nil && x.allocs86a0f149 != nil { + x.allocs86a0f149.(*cgoAllocMap).Free() + x.ref86a0f149 = nil } } -// NewSubpassBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageDrmFormatModifierPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubpassBeginInfoRef(ref unsafe.Pointer) *SubpassBeginInfo { +func NewImageDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *ImageDrmFormatModifierProperties { if ref == nil { return nil } - obj := new(SubpassBeginInfo) - obj.ref7b9f19b8 = (*C.VkSubpassBeginInfoKHR)(unsafe.Pointer(ref)) + obj := new(ImageDrmFormatModifierProperties) + obj.ref86a0f149 = (*C.VkImageDrmFormatModifierPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubpassBeginInfo) PassRef() (*C.VkSubpassBeginInfoKHR, *cgoAllocMap) { +func (x *ImageDrmFormatModifierProperties) PassRef() (*C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7b9f19b8 != nil { - return x.ref7b9f19b8, nil + } else if x.ref86a0f149 != nil { + return x.ref86a0f149, nil } - mem7b9f19b8 := allocSubpassBeginInfoMemory(1) - ref7b9f19b8 := (*C.VkSubpassBeginInfoKHR)(mem7b9f19b8) - allocs7b9f19b8 := new(cgoAllocMap) - allocs7b9f19b8.Add(mem7b9f19b8) + mem86a0f149 := allocImageDrmFormatModifierPropertiesMemory(1) + ref86a0f149 := (*C.VkImageDrmFormatModifierPropertiesEXT)(mem86a0f149) + allocs86a0f149 := new(cgoAllocMap) + allocs86a0f149.Add(mem86a0f149) var csType_allocs *cgoAllocMap - ref7b9f19b8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7b9f19b8.Borrow(csType_allocs) + ref86a0f149.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs86a0f149.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7b9f19b8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7b9f19b8.Borrow(cpNext_allocs) + ref86a0f149.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs86a0f149.Borrow(cpNext_allocs) - var ccontents_allocs *cgoAllocMap - ref7b9f19b8.contents, ccontents_allocs = (C.VkSubpassContents)(x.Contents), cgoAllocsUnknown - allocs7b9f19b8.Borrow(ccontents_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + ref86a0f149.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs86a0f149.Borrow(cdrmFormatModifier_allocs) - x.ref7b9f19b8 = ref7b9f19b8 - x.allocs7b9f19b8 = allocs7b9f19b8 - return ref7b9f19b8, allocs7b9f19b8 + x.ref86a0f149 = ref86a0f149 + x.allocs86a0f149 = allocs86a0f149 + return ref86a0f149, allocs86a0f149 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubpassBeginInfo) PassValue() (C.VkSubpassBeginInfoKHR, *cgoAllocMap) { - if x.ref7b9f19b8 != nil { - return *x.ref7b9f19b8, nil +func (x ImageDrmFormatModifierProperties) PassValue() (C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { + if x.ref86a0f149 != nil { + return *x.ref86a0f149, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23636,86 +50491,90 @@ func (x SubpassBeginInfo) PassValue() (C.VkSubpassBeginInfoKHR, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubpassBeginInfo) Deref() { - if x.ref7b9f19b8 == nil { +func (x *ImageDrmFormatModifierProperties) Deref() { + if x.ref86a0f149 == nil { return } - x.SType = (StructureType)(x.ref7b9f19b8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7b9f19b8.pNext)) - x.Contents = (SubpassContents)(x.ref7b9f19b8.contents) + x.SType = (StructureType)(x.ref86a0f149.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86a0f149.pNext)) + x.DrmFormatModifier = (uint64)(x.ref86a0f149.drmFormatModifier) } -// allocSubpassEndInfoMemory allocates memory for type C.VkSubpassEndInfoKHR in C. +// allocDrmFormatModifierProperties2Memory allocates memory for type C.VkDrmFormatModifierProperties2EXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubpassEndInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassEndInfoValue)) +func allocDrmFormatModifierProperties2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierProperties2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubpassEndInfoValue = unsafe.Sizeof([1]C.VkSubpassEndInfoKHR{}) +const sizeOfDrmFormatModifierProperties2Value = unsafe.Sizeof([1]C.VkDrmFormatModifierProperties2EXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassEndInfo) Ref() *C.VkSubpassEndInfoKHR { +func (x *DrmFormatModifierProperties2) Ref() *C.VkDrmFormatModifierProperties2EXT { if x == nil { return nil } - return x.refb755d027 + return x.ref6d0821ba } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubpassEndInfo) Free() { - if x != nil && x.allocsb755d027 != nil { - x.allocsb755d027.(*cgoAllocMap).Free() - x.refb755d027 = nil +func (x *DrmFormatModifierProperties2) Free() { + if x != nil && x.allocs6d0821ba != nil { + x.allocs6d0821ba.(*cgoAllocMap).Free() + x.ref6d0821ba = nil } } -// NewSubpassEndInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDrmFormatModifierProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubpassEndInfoRef(ref unsafe.Pointer) *SubpassEndInfo { +func NewDrmFormatModifierProperties2Ref(ref unsafe.Pointer) *DrmFormatModifierProperties2 { if ref == nil { return nil } - obj := new(SubpassEndInfo) - obj.refb755d027 = (*C.VkSubpassEndInfoKHR)(unsafe.Pointer(ref)) + obj := new(DrmFormatModifierProperties2) + obj.ref6d0821ba = (*C.VkDrmFormatModifierProperties2EXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubpassEndInfo) PassRef() (*C.VkSubpassEndInfoKHR, *cgoAllocMap) { +func (x *DrmFormatModifierProperties2) PassRef() (*C.VkDrmFormatModifierProperties2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb755d027 != nil { - return x.refb755d027, nil + } else if x.ref6d0821ba != nil { + return x.ref6d0821ba, nil } - memb755d027 := allocSubpassEndInfoMemory(1) - refb755d027 := (*C.VkSubpassEndInfoKHR)(memb755d027) - allocsb755d027 := new(cgoAllocMap) - allocsb755d027.Add(memb755d027) + mem6d0821ba := allocDrmFormatModifierProperties2Memory(1) + ref6d0821ba := (*C.VkDrmFormatModifierProperties2EXT)(mem6d0821ba) + allocs6d0821ba := new(cgoAllocMap) + allocs6d0821ba.Add(mem6d0821ba) - var csType_allocs *cgoAllocMap - refb755d027.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb755d027.Borrow(csType_allocs) + var cdrmFormatModifier_allocs *cgoAllocMap + ref6d0821ba.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown + allocs6d0821ba.Borrow(cdrmFormatModifier_allocs) - var cpNext_allocs *cgoAllocMap - refb755d027.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb755d027.Borrow(cpNext_allocs) + var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap + ref6d0821ba.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown + allocs6d0821ba.Borrow(cdrmFormatModifierPlaneCount_allocs) + + var cdrmFormatModifierTilingFeatures_allocs *cgoAllocMap + ref6d0821ba.drmFormatModifierTilingFeatures, cdrmFormatModifierTilingFeatures_allocs = (C.VkFormatFeatureFlags2)(x.DrmFormatModifierTilingFeatures), cgoAllocsUnknown + allocs6d0821ba.Borrow(cdrmFormatModifierTilingFeatures_allocs) - x.refb755d027 = refb755d027 - x.allocsb755d027 = allocsb755d027 - return refb755d027, allocsb755d027 + x.ref6d0821ba = ref6d0821ba + x.allocs6d0821ba = allocs6d0821ba + return ref6d0821ba, allocs6d0821ba } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubpassEndInfo) PassValue() (C.VkSubpassEndInfoKHR, *cgoAllocMap) { - if x.refb755d027 != nil { - return *x.refb755d027, nil +func (x DrmFormatModifierProperties2) PassValue() (C.VkDrmFormatModifierProperties2EXT, *cgoAllocMap) { + if x.ref6d0821ba != nil { + return *x.ref6d0821ba, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23723,89 +50582,132 @@ func (x SubpassEndInfo) PassValue() (C.VkSubpassEndInfoKHR, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubpassEndInfo) Deref() { - if x.refb755d027 == nil { +func (x *DrmFormatModifierProperties2) Deref() { + if x.ref6d0821ba == nil { return } - x.SType = (StructureType)(x.refb755d027.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb755d027.pNext)) + x.DrmFormatModifier = (uint64)(x.ref6d0821ba.drmFormatModifier) + x.DrmFormatModifierPlaneCount = (uint32)(x.ref6d0821ba.drmFormatModifierPlaneCount) + x.DrmFormatModifierTilingFeatures = (FormatFeatureFlags2)(x.ref6d0821ba.drmFormatModifierTilingFeatures) } -// allocSharedPresentSurfaceCapabilitiesMemory allocates memory for type C.VkSharedPresentSurfaceCapabilitiesKHR in C. +// allocDrmFormatModifierPropertiesList2Memory allocates memory for type C.VkDrmFormatModifierPropertiesList2EXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSharedPresentSurfaceCapabilitiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSharedPresentSurfaceCapabilitiesValue)) +func allocDrmFormatModifierPropertiesList2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierPropertiesList2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSharedPresentSurfaceCapabilitiesValue = unsafe.Sizeof([1]C.VkSharedPresentSurfaceCapabilitiesKHR{}) +const sizeOfDrmFormatModifierPropertiesList2Value = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesList2EXT{}) + +// unpackSDrmFormatModifierProperties2 transforms a sliced Go data structure into plain C format. +func unpackSDrmFormatModifierProperties2(x []DrmFormatModifierProperties2) (unpacked *C.VkDrmFormatModifierProperties2EXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkDrmFormatModifierProperties2EXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocDrmFormatModifierProperties2Memory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkDrmFormatModifierProperties2EXT)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkDrmFormatModifierProperties2EXT)(h.Data) + return +} + +// packSDrmFormatModifierProperties2 reads sliced Go data structure out from plain C format. +func packSDrmFormatModifierProperties2(v []DrmFormatModifierProperties2, ptr0 *C.VkDrmFormatModifierProperties2EXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfDrmFormatModifierProperties2Value]C.VkDrmFormatModifierProperties2EXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewDrmFormatModifierProperties2Ref(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SharedPresentSurfaceCapabilities) Ref() *C.VkSharedPresentSurfaceCapabilitiesKHR { +func (x *DrmFormatModifierPropertiesList2) Ref() *C.VkDrmFormatModifierPropertiesList2EXT { if x == nil { return nil } - return x.ref3f98a814 + return x.refbea4fdd3 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SharedPresentSurfaceCapabilities) Free() { - if x != nil && x.allocs3f98a814 != nil { - x.allocs3f98a814.(*cgoAllocMap).Free() - x.ref3f98a814 = nil +func (x *DrmFormatModifierPropertiesList2) Free() { + if x != nil && x.allocsbea4fdd3 != nil { + x.allocsbea4fdd3.(*cgoAllocMap).Free() + x.refbea4fdd3 = nil } } -// NewSharedPresentSurfaceCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDrmFormatModifierPropertiesList2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSharedPresentSurfaceCapabilitiesRef(ref unsafe.Pointer) *SharedPresentSurfaceCapabilities { +func NewDrmFormatModifierPropertiesList2Ref(ref unsafe.Pointer) *DrmFormatModifierPropertiesList2 { if ref == nil { return nil } - obj := new(SharedPresentSurfaceCapabilities) - obj.ref3f98a814 = (*C.VkSharedPresentSurfaceCapabilitiesKHR)(unsafe.Pointer(ref)) + obj := new(DrmFormatModifierPropertiesList2) + obj.refbea4fdd3 = (*C.VkDrmFormatModifierPropertiesList2EXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SharedPresentSurfaceCapabilities) PassRef() (*C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { +func (x *DrmFormatModifierPropertiesList2) PassRef() (*C.VkDrmFormatModifierPropertiesList2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3f98a814 != nil { - return x.ref3f98a814, nil + } else if x.refbea4fdd3 != nil { + return x.refbea4fdd3, nil } - mem3f98a814 := allocSharedPresentSurfaceCapabilitiesMemory(1) - ref3f98a814 := (*C.VkSharedPresentSurfaceCapabilitiesKHR)(mem3f98a814) - allocs3f98a814 := new(cgoAllocMap) - allocs3f98a814.Add(mem3f98a814) + membea4fdd3 := allocDrmFormatModifierPropertiesList2Memory(1) + refbea4fdd3 := (*C.VkDrmFormatModifierPropertiesList2EXT)(membea4fdd3) + allocsbea4fdd3 := new(cgoAllocMap) + allocsbea4fdd3.Add(membea4fdd3) var csType_allocs *cgoAllocMap - ref3f98a814.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3f98a814.Borrow(csType_allocs) + refbea4fdd3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbea4fdd3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3f98a814.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3f98a814.Borrow(cpNext_allocs) + refbea4fdd3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbea4fdd3.Borrow(cpNext_allocs) - var csharedPresentSupportedUsageFlags_allocs *cgoAllocMap - ref3f98a814.sharedPresentSupportedUsageFlags, csharedPresentSupportedUsageFlags_allocs = (C.VkImageUsageFlags)(x.SharedPresentSupportedUsageFlags), cgoAllocsUnknown - allocs3f98a814.Borrow(csharedPresentSupportedUsageFlags_allocs) + var cdrmFormatModifierCount_allocs *cgoAllocMap + refbea4fdd3.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown + allocsbea4fdd3.Borrow(cdrmFormatModifierCount_allocs) - x.ref3f98a814 = ref3f98a814 - x.allocs3f98a814 = allocs3f98a814 - return ref3f98a814, allocs3f98a814 + var cpDrmFormatModifierProperties_allocs *cgoAllocMap + refbea4fdd3.pDrmFormatModifierProperties, cpDrmFormatModifierProperties_allocs = unpackSDrmFormatModifierProperties2(x.PDrmFormatModifierProperties) + allocsbea4fdd3.Borrow(cpDrmFormatModifierProperties_allocs) + + x.refbea4fdd3 = refbea4fdd3 + x.allocsbea4fdd3 = allocsbea4fdd3 + return refbea4fdd3, allocsbea4fdd3 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SharedPresentSurfaceCapabilities) PassValue() (C.VkSharedPresentSurfaceCapabilitiesKHR, *cgoAllocMap) { - if x.ref3f98a814 != nil { - return *x.ref3f98a814, nil +func (x DrmFormatModifierPropertiesList2) PassValue() (C.VkDrmFormatModifierPropertiesList2EXT, *cgoAllocMap) { + if x.refbea4fdd3 != nil { + return *x.refbea4fdd3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23813,102 +50715,99 @@ func (x SharedPresentSurfaceCapabilities) PassValue() (C.VkSharedPresentSurfaceC // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SharedPresentSurfaceCapabilities) Deref() { - if x.ref3f98a814 == nil { +func (x *DrmFormatModifierPropertiesList2) Deref() { + if x.refbea4fdd3 == nil { return } - x.SType = (StructureType)(x.ref3f98a814.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3f98a814.pNext)) - x.SharedPresentSupportedUsageFlags = (ImageUsageFlags)(x.ref3f98a814.sharedPresentSupportedUsageFlags) + x.SType = (StructureType)(x.refbea4fdd3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbea4fdd3.pNext)) + x.DrmFormatModifierCount = (uint32)(x.refbea4fdd3.drmFormatModifierCount) + packSDrmFormatModifierProperties2(x.PDrmFormatModifierProperties, x.refbea4fdd3.pDrmFormatModifierProperties) } -// allocImportFenceFdInfoMemory allocates memory for type C.VkImportFenceFdInfoKHR in C. +// allocValidationCacheCreateInfoMemory allocates memory for type C.VkValidationCacheCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocImportFenceFdInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportFenceFdInfoValue)) +func allocValidationCacheCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationCacheCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImportFenceFdInfoValue = unsafe.Sizeof([1]C.VkImportFenceFdInfoKHR{}) +const sizeOfValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkValidationCacheCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportFenceFdInfo) Ref() *C.VkImportFenceFdInfoKHR { +func (x *ValidationCacheCreateInfo) Ref() *C.VkValidationCacheCreateInfoEXT { if x == nil { return nil } - return x.ref86ebd28c + return x.ref3d8ac8aa } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImportFenceFdInfo) Free() { - if x != nil && x.allocs86ebd28c != nil { - x.allocs86ebd28c.(*cgoAllocMap).Free() - x.ref86ebd28c = nil +func (x *ValidationCacheCreateInfo) Free() { + if x != nil && x.allocs3d8ac8aa != nil { + x.allocs3d8ac8aa.(*cgoAllocMap).Free() + x.ref3d8ac8aa = nil } } -// NewImportFenceFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewValidationCacheCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImportFenceFdInfoRef(ref unsafe.Pointer) *ImportFenceFdInfo { +func NewValidationCacheCreateInfoRef(ref unsafe.Pointer) *ValidationCacheCreateInfo { if ref == nil { return nil } - obj := new(ImportFenceFdInfo) - obj.ref86ebd28c = (*C.VkImportFenceFdInfoKHR)(unsafe.Pointer(ref)) + obj := new(ValidationCacheCreateInfo) + obj.ref3d8ac8aa = (*C.VkValidationCacheCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImportFenceFdInfo) PassRef() (*C.VkImportFenceFdInfoKHR, *cgoAllocMap) { +func (x *ValidationCacheCreateInfo) PassRef() (*C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref86ebd28c != nil { - return x.ref86ebd28c, nil + } else if x.ref3d8ac8aa != nil { + return x.ref3d8ac8aa, nil } - mem86ebd28c := allocImportFenceFdInfoMemory(1) - ref86ebd28c := (*C.VkImportFenceFdInfoKHR)(mem86ebd28c) - allocs86ebd28c := new(cgoAllocMap) - allocs86ebd28c.Add(mem86ebd28c) + mem3d8ac8aa := allocValidationCacheCreateInfoMemory(1) + ref3d8ac8aa := (*C.VkValidationCacheCreateInfoEXT)(mem3d8ac8aa) + allocs3d8ac8aa := new(cgoAllocMap) + allocs3d8ac8aa.Add(mem3d8ac8aa) var csType_allocs *cgoAllocMap - ref86ebd28c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs86ebd28c.Borrow(csType_allocs) + ref3d8ac8aa.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref86ebd28c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs86ebd28c.Borrow(cpNext_allocs) - - var cfence_allocs *cgoAllocMap - ref86ebd28c.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown - allocs86ebd28c.Borrow(cfence_allocs) + ref3d8ac8aa.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(cpNext_allocs) var cflags_allocs *cgoAllocMap - ref86ebd28c.flags, cflags_allocs = (C.VkFenceImportFlags)(x.Flags), cgoAllocsUnknown - allocs86ebd28c.Borrow(cflags_allocs) + ref3d8ac8aa.flags, cflags_allocs = (C.VkValidationCacheCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(cflags_allocs) - var chandleType_allocs *cgoAllocMap - ref86ebd28c.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocs86ebd28c.Borrow(chandleType_allocs) + var cinitialDataSize_allocs *cgoAllocMap + ref3d8ac8aa.initialDataSize, cinitialDataSize_allocs = (C.size_t)(x.InitialDataSize), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(cinitialDataSize_allocs) - var cfd_allocs *cgoAllocMap - ref86ebd28c.fd, cfd_allocs = (C.int)(x.Fd), cgoAllocsUnknown - allocs86ebd28c.Borrow(cfd_allocs) + var cpInitialData_allocs *cgoAllocMap + ref3d8ac8aa.pInitialData, cpInitialData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PInitialData)), cgoAllocsUnknown + allocs3d8ac8aa.Borrow(cpInitialData_allocs) - x.ref86ebd28c = ref86ebd28c - x.allocs86ebd28c = allocs86ebd28c - return ref86ebd28c, allocs86ebd28c + x.ref3d8ac8aa = ref3d8ac8aa + x.allocs3d8ac8aa = allocs3d8ac8aa + return ref3d8ac8aa, allocs3d8ac8aa } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImportFenceFdInfo) PassValue() (C.VkImportFenceFdInfoKHR, *cgoAllocMap) { - if x.ref86ebd28c != nil { - return *x.ref86ebd28c, nil +func (x ValidationCacheCreateInfo) PassValue() (C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { + if x.ref3d8ac8aa != nil { + return *x.ref3d8ac8aa, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -23916,97 +50815,92 @@ func (x ImportFenceFdInfo) PassValue() (C.VkImportFenceFdInfoKHR, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImportFenceFdInfo) Deref() { - if x.ref86ebd28c == nil { +func (x *ValidationCacheCreateInfo) Deref() { + if x.ref3d8ac8aa == nil { return } - x.SType = (StructureType)(x.ref86ebd28c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86ebd28c.pNext)) - x.Fence = *(*Fence)(unsafe.Pointer(&x.ref86ebd28c.fence)) - x.Flags = (FenceImportFlags)(x.ref86ebd28c.flags) - x.HandleType = (ExternalFenceHandleTypeFlagBits)(x.ref86ebd28c.handleType) - x.Fd = (int32)(x.ref86ebd28c.fd) + x.SType = (StructureType)(x.ref3d8ac8aa.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3d8ac8aa.pNext)) + x.Flags = (ValidationCacheCreateFlags)(x.ref3d8ac8aa.flags) + x.InitialDataSize = (uint64)(x.ref3d8ac8aa.initialDataSize) + x.PInitialData = (unsafe.Pointer)(unsafe.Pointer(x.ref3d8ac8aa.pInitialData)) } -// allocFenceGetFdInfoMemory allocates memory for type C.VkFenceGetFdInfoKHR in C. +// allocShaderModuleValidationCacheCreateInfoMemory allocates memory for type C.VkShaderModuleValidationCacheCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocFenceGetFdInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFenceGetFdInfoValue)) +func allocShaderModuleValidationCacheCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderModuleValidationCacheCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfFenceGetFdInfoValue = unsafe.Sizeof([1]C.VkFenceGetFdInfoKHR{}) +const sizeOfShaderModuleValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkShaderModuleValidationCacheCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *FenceGetFdInfo) Ref() *C.VkFenceGetFdInfoKHR { +func (x *ShaderModuleValidationCacheCreateInfo) Ref() *C.VkShaderModuleValidationCacheCreateInfoEXT { if x == nil { return nil } - return x.refc2668bc3 + return x.ref37065f24 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *FenceGetFdInfo) Free() { - if x != nil && x.allocsc2668bc3 != nil { - x.allocsc2668bc3.(*cgoAllocMap).Free() - x.refc2668bc3 = nil +func (x *ShaderModuleValidationCacheCreateInfo) Free() { + if x != nil && x.allocs37065f24 != nil { + x.allocs37065f24.(*cgoAllocMap).Free() + x.ref37065f24 = nil } } -// NewFenceGetFdInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewShaderModuleValidationCacheCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewFenceGetFdInfoRef(ref unsafe.Pointer) *FenceGetFdInfo { +func NewShaderModuleValidationCacheCreateInfoRef(ref unsafe.Pointer) *ShaderModuleValidationCacheCreateInfo { if ref == nil { return nil } - obj := new(FenceGetFdInfo) - obj.refc2668bc3 = (*C.VkFenceGetFdInfoKHR)(unsafe.Pointer(ref)) + obj := new(ShaderModuleValidationCacheCreateInfo) + obj.ref37065f24 = (*C.VkShaderModuleValidationCacheCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *FenceGetFdInfo) PassRef() (*C.VkFenceGetFdInfoKHR, *cgoAllocMap) { +func (x *ShaderModuleValidationCacheCreateInfo) PassRef() (*C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc2668bc3 != nil { - return x.refc2668bc3, nil + } else if x.ref37065f24 != nil { + return x.ref37065f24, nil } - memc2668bc3 := allocFenceGetFdInfoMemory(1) - refc2668bc3 := (*C.VkFenceGetFdInfoKHR)(memc2668bc3) - allocsc2668bc3 := new(cgoAllocMap) - allocsc2668bc3.Add(memc2668bc3) + mem37065f24 := allocShaderModuleValidationCacheCreateInfoMemory(1) + ref37065f24 := (*C.VkShaderModuleValidationCacheCreateInfoEXT)(mem37065f24) + allocs37065f24 := new(cgoAllocMap) + allocs37065f24.Add(mem37065f24) var csType_allocs *cgoAllocMap - refc2668bc3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc2668bc3.Borrow(csType_allocs) + ref37065f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs37065f24.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc2668bc3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc2668bc3.Borrow(cpNext_allocs) - - var cfence_allocs *cgoAllocMap - refc2668bc3.fence, cfence_allocs = *(*C.VkFence)(unsafe.Pointer(&x.Fence)), cgoAllocsUnknown - allocsc2668bc3.Borrow(cfence_allocs) + ref37065f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs37065f24.Borrow(cpNext_allocs) - var chandleType_allocs *cgoAllocMap - refc2668bc3.handleType, chandleType_allocs = (C.VkExternalFenceHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsc2668bc3.Borrow(chandleType_allocs) + var cvalidationCache_allocs *cgoAllocMap + ref37065f24.validationCache, cvalidationCache_allocs = *(*C.VkValidationCacheEXT)(unsafe.Pointer(&x.ValidationCache)), cgoAllocsUnknown + allocs37065f24.Borrow(cvalidationCache_allocs) - x.refc2668bc3 = refc2668bc3 - x.allocsc2668bc3 = allocsc2668bc3 - return refc2668bc3, allocsc2668bc3 + x.ref37065f24 = ref37065f24 + x.allocs37065f24 = allocs37065f24 + return ref37065f24, allocs37065f24 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x FenceGetFdInfo) PassValue() (C.VkFenceGetFdInfoKHR, *cgoAllocMap) { - if x.refc2668bc3 != nil { - return *x.refc2668bc3, nil +func (x ShaderModuleValidationCacheCreateInfo) PassValue() (C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { + if x.ref37065f24 != nil { + return *x.ref37065f24, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24014,91 +50908,86 @@ func (x FenceGetFdInfo) PassValue() (C.VkFenceGetFdInfoKHR, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *FenceGetFdInfo) Deref() { - if x.refc2668bc3 == nil { +func (x *ShaderModuleValidationCacheCreateInfo) Deref() { + if x.ref37065f24 == nil { return } - x.SType = (StructureType)(x.refc2668bc3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc2668bc3.pNext)) - x.Fence = *(*Fence)(unsafe.Pointer(&x.refc2668bc3.fence)) - x.HandleType = (ExternalFenceHandleTypeFlagBits)(x.refc2668bc3.handleType) + x.SType = (StructureType)(x.ref37065f24.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref37065f24.pNext)) + x.ValidationCache = *(*ValidationCache)(unsafe.Pointer(&x.ref37065f24.validationCache)) } -// allocPhysicalDeviceSurfaceInfo2Memory allocates memory for type C.VkPhysicalDeviceSurfaceInfo2KHR in C. +// allocShadingRatePaletteNVMemory allocates memory for type C.VkShadingRatePaletteNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceSurfaceInfo2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSurfaceInfo2Value)) +func allocShadingRatePaletteNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShadingRatePaletteNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceSurfaceInfo2Value = unsafe.Sizeof([1]C.VkPhysicalDeviceSurfaceInfo2KHR{}) +const sizeOfShadingRatePaletteNVValue = unsafe.Sizeof([1]C.VkShadingRatePaletteNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSurfaceInfo2) Ref() *C.VkPhysicalDeviceSurfaceInfo2KHR { +func (x *ShadingRatePaletteNV) Ref() *C.VkShadingRatePaletteNV { if x == nil { return nil } - return x.refd22370ae + return x.refa5c4ae3a } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceSurfaceInfo2) Free() { - if x != nil && x.allocsd22370ae != nil { - x.allocsd22370ae.(*cgoAllocMap).Free() - x.refd22370ae = nil +func (x *ShadingRatePaletteNV) Free() { + if x != nil && x.allocsa5c4ae3a != nil { + x.allocsa5c4ae3a.(*cgoAllocMap).Free() + x.refa5c4ae3a = nil } } -// NewPhysicalDeviceSurfaceInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewShadingRatePaletteNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceSurfaceInfo2Ref(ref unsafe.Pointer) *PhysicalDeviceSurfaceInfo2 { +func NewShadingRatePaletteNVRef(ref unsafe.Pointer) *ShadingRatePaletteNV { if ref == nil { return nil } - obj := new(PhysicalDeviceSurfaceInfo2) - obj.refd22370ae = (*C.VkPhysicalDeviceSurfaceInfo2KHR)(unsafe.Pointer(ref)) + obj := new(ShadingRatePaletteNV) + obj.refa5c4ae3a = (*C.VkShadingRatePaletteNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceSurfaceInfo2) PassRef() (*C.VkPhysicalDeviceSurfaceInfo2KHR, *cgoAllocMap) { +func (x *ShadingRatePaletteNV) PassRef() (*C.VkShadingRatePaletteNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd22370ae != nil { - return x.refd22370ae, nil + } else if x.refa5c4ae3a != nil { + return x.refa5c4ae3a, nil } - memd22370ae := allocPhysicalDeviceSurfaceInfo2Memory(1) - refd22370ae := (*C.VkPhysicalDeviceSurfaceInfo2KHR)(memd22370ae) - allocsd22370ae := new(cgoAllocMap) - allocsd22370ae.Add(memd22370ae) - - var csType_allocs *cgoAllocMap - refd22370ae.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd22370ae.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refd22370ae.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd22370ae.Borrow(cpNext_allocs) + mema5c4ae3a := allocShadingRatePaletteNVMemory(1) + refa5c4ae3a := (*C.VkShadingRatePaletteNV)(mema5c4ae3a) + allocsa5c4ae3a := new(cgoAllocMap) + allocsa5c4ae3a.Add(mema5c4ae3a) - var csurface_allocs *cgoAllocMap - refd22370ae.surface, csurface_allocs = *(*C.VkSurfaceKHR)(unsafe.Pointer(&x.Surface)), cgoAllocsUnknown - allocsd22370ae.Borrow(csurface_allocs) + var cshadingRatePaletteEntryCount_allocs *cgoAllocMap + refa5c4ae3a.shadingRatePaletteEntryCount, cshadingRatePaletteEntryCount_allocs = (C.uint32_t)(x.ShadingRatePaletteEntryCount), cgoAllocsUnknown + allocsa5c4ae3a.Borrow(cshadingRatePaletteEntryCount_allocs) - x.refd22370ae = refd22370ae - x.allocsd22370ae = allocsd22370ae - return refd22370ae, allocsd22370ae + var cpShadingRatePaletteEntries_allocs *cgoAllocMap + refa5c4ae3a.pShadingRatePaletteEntries, cpShadingRatePaletteEntries_allocs = (*C.VkShadingRatePaletteEntryNV)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)).Data)), cgoAllocsUnknown + allocsa5c4ae3a.Borrow(cpShadingRatePaletteEntries_allocs) + + x.refa5c4ae3a = refa5c4ae3a + x.allocsa5c4ae3a = allocsa5c4ae3a + return refa5c4ae3a, allocsa5c4ae3a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceSurfaceInfo2) PassValue() (C.VkPhysicalDeviceSurfaceInfo2KHR, *cgoAllocMap) { - if x.refd22370ae != nil { - return *x.refd22370ae, nil +func (x ShadingRatePaletteNV) PassValue() (C.VkShadingRatePaletteNV, *cgoAllocMap) { + if x.refa5c4ae3a != nil { + return *x.refa5c4ae3a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24106,90 +50995,139 @@ func (x PhysicalDeviceSurfaceInfo2) PassValue() (C.VkPhysicalDeviceSurfaceInfo2K // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceSurfaceInfo2) Deref() { - if x.refd22370ae == nil { +func (x *ShadingRatePaletteNV) Deref() { + if x.refa5c4ae3a == nil { return } - x.SType = (StructureType)(x.refd22370ae.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd22370ae.pNext)) - x.Surface = *(*Surface)(unsafe.Pointer(&x.refd22370ae.surface)) + x.ShadingRatePaletteEntryCount = (uint32)(x.refa5c4ae3a.shadingRatePaletteEntryCount) + hxf4a9453 := (*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)) + hxf4a9453.Data = unsafe.Pointer(x.refa5c4ae3a.pShadingRatePaletteEntries) + hxf4a9453.Cap = 0x7fffffff + // hxf4a9453.Len = ? + } -// allocSurfaceCapabilities2Memory allocates memory for type C.VkSurfaceCapabilities2KHR in C. +// allocPipelineViewportShadingRateImageStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportShadingRateImageStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocSurfaceCapabilities2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceCapabilities2Value)) +func allocPipelineViewportShadingRateImageStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportShadingRateImageStateCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSurfaceCapabilities2Value = unsafe.Sizeof([1]C.VkSurfaceCapabilities2KHR{}) +const sizeOfPipelineViewportShadingRateImageStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportShadingRateImageStateCreateInfoNV{}) + +// unpackSShadingRatePaletteNV transforms a sliced Go data structure into plain C format. +func unpackSShadingRatePaletteNV(x []ShadingRatePaletteNV) (unpacked *C.VkShadingRatePaletteNV, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkShadingRatePaletteNV) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocShadingRatePaletteNVMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkShadingRatePaletteNV)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkShadingRatePaletteNV)(h.Data) + return +} + +// packSShadingRatePaletteNV reads sliced Go data structure out from plain C format. +func packSShadingRatePaletteNV(v []ShadingRatePaletteNV, ptr0 *C.VkShadingRatePaletteNV) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfShadingRatePaletteNVValue]C.VkShadingRatePaletteNV)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewShadingRatePaletteNVRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SurfaceCapabilities2) Ref() *C.VkSurfaceCapabilities2KHR { +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Ref() *C.VkPipelineViewportShadingRateImageStateCreateInfoNV { if x == nil { return nil } - return x.refea469745 + return x.ref6f2ec732 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SurfaceCapabilities2) Free() { - if x != nil && x.allocsea469745 != nil { - x.allocsea469745.(*cgoAllocMap).Free() - x.refea469745 = nil +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Free() { + if x != nil && x.allocs6f2ec732 != nil { + x.allocs6f2ec732.(*cgoAllocMap).Free() + x.ref6f2ec732 = nil } } -// NewSurfaceCapabilities2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineViewportShadingRateImageStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSurfaceCapabilities2Ref(ref unsafe.Pointer) *SurfaceCapabilities2 { +func NewPipelineViewportShadingRateImageStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportShadingRateImageStateCreateInfoNV { if ref == nil { return nil } - obj := new(SurfaceCapabilities2) - obj.refea469745 = (*C.VkSurfaceCapabilities2KHR)(unsafe.Pointer(ref)) + obj := new(PipelineViewportShadingRateImageStateCreateInfoNV) + obj.ref6f2ec732 = (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SurfaceCapabilities2) PassRef() (*C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) PassRef() (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refea469745 != nil { - return x.refea469745, nil + } else if x.ref6f2ec732 != nil { + return x.ref6f2ec732, nil } - memea469745 := allocSurfaceCapabilities2Memory(1) - refea469745 := (*C.VkSurfaceCapabilities2KHR)(memea469745) - allocsea469745 := new(cgoAllocMap) - allocsea469745.Add(memea469745) + mem6f2ec732 := allocPipelineViewportShadingRateImageStateCreateInfoNVMemory(1) + ref6f2ec732 := (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV)(mem6f2ec732) + allocs6f2ec732 := new(cgoAllocMap) + allocs6f2ec732.Add(mem6f2ec732) var csType_allocs *cgoAllocMap - refea469745.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsea469745.Borrow(csType_allocs) + ref6f2ec732.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6f2ec732.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refea469745.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsea469745.Borrow(cpNext_allocs) + ref6f2ec732.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6f2ec732.Borrow(cpNext_allocs) - var csurfaceCapabilities_allocs *cgoAllocMap - refea469745.surfaceCapabilities, csurfaceCapabilities_allocs = x.SurfaceCapabilities.PassValue() - allocsea469745.Borrow(csurfaceCapabilities_allocs) + var cshadingRateImageEnable_allocs *cgoAllocMap + ref6f2ec732.shadingRateImageEnable, cshadingRateImageEnable_allocs = (C.VkBool32)(x.ShadingRateImageEnable), cgoAllocsUnknown + allocs6f2ec732.Borrow(cshadingRateImageEnable_allocs) - x.refea469745 = refea469745 - x.allocsea469745 = allocsea469745 - return refea469745, allocsea469745 + var cviewportCount_allocs *cgoAllocMap + ref6f2ec732.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown + allocs6f2ec732.Borrow(cviewportCount_allocs) + + var cpShadingRatePalettes_allocs *cgoAllocMap + ref6f2ec732.pShadingRatePalettes, cpShadingRatePalettes_allocs = unpackSShadingRatePaletteNV(x.PShadingRatePalettes) + allocs6f2ec732.Borrow(cpShadingRatePalettes_allocs) + + x.ref6f2ec732 = ref6f2ec732 + x.allocs6f2ec732 = allocs6f2ec732 + return ref6f2ec732, allocs6f2ec732 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SurfaceCapabilities2) PassValue() (C.VkSurfaceCapabilities2KHR, *cgoAllocMap) { - if x.refea469745 != nil { - return *x.refea469745, nil +func (x PipelineViewportShadingRateImageStateCreateInfoNV) PassValue() (C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { + if x.ref6f2ec732 != nil { + return *x.ref6f2ec732, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24197,90 +51135,96 @@ func (x SurfaceCapabilities2) PassValue() (C.VkSurfaceCapabilities2KHR, *cgoAllo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SurfaceCapabilities2) Deref() { - if x.refea469745 == nil { +func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Deref() { + if x.ref6f2ec732 == nil { return } - x.SType = (StructureType)(x.refea469745.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refea469745.pNext)) - x.SurfaceCapabilities = *NewSurfaceCapabilitiesRef(unsafe.Pointer(&x.refea469745.surfaceCapabilities)) + x.SType = (StructureType)(x.ref6f2ec732.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6f2ec732.pNext)) + x.ShadingRateImageEnable = (Bool32)(x.ref6f2ec732.shadingRateImageEnable) + x.ViewportCount = (uint32)(x.ref6f2ec732.viewportCount) + packSShadingRatePaletteNV(x.PShadingRatePalettes, x.ref6f2ec732.pShadingRatePalettes) } -// allocSurfaceFormat2Memory allocates memory for type C.VkSurfaceFormat2KHR in C. +// allocPhysicalDeviceShadingRateImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImageFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocSurfaceFormat2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceFormat2Value)) +func allocPhysicalDeviceShadingRateImageFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShadingRateImageFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSurfaceFormat2Value = unsafe.Sizeof([1]C.VkSurfaceFormat2KHR{}) +const sizeOfPhysicalDeviceShadingRateImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImageFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SurfaceFormat2) Ref() *C.VkSurfaceFormat2KHR { +func (x *PhysicalDeviceShadingRateImageFeaturesNV) Ref() *C.VkPhysicalDeviceShadingRateImageFeaturesNV { if x == nil { return nil } - return x.ref8867f0ed + return x.ref199a921b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SurfaceFormat2) Free() { - if x != nil && x.allocs8867f0ed != nil { - x.allocs8867f0ed.(*cgoAllocMap).Free() - x.ref8867f0ed = nil +func (x *PhysicalDeviceShadingRateImageFeaturesNV) Free() { + if x != nil && x.allocs199a921b != nil { + x.allocs199a921b.(*cgoAllocMap).Free() + x.ref199a921b = nil } } -// NewSurfaceFormat2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShadingRateImageFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSurfaceFormat2Ref(ref unsafe.Pointer) *SurfaceFormat2 { +func NewPhysicalDeviceShadingRateImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShadingRateImageFeaturesNV { if ref == nil { return nil } - obj := new(SurfaceFormat2) - obj.ref8867f0ed = (*C.VkSurfaceFormat2KHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShadingRateImageFeaturesNV) + obj.ref199a921b = (*C.VkPhysicalDeviceShadingRateImageFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SurfaceFormat2) PassRef() (*C.VkSurfaceFormat2KHR, *cgoAllocMap) { +func (x *PhysicalDeviceShadingRateImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceShadingRateImageFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8867f0ed != nil { - return x.ref8867f0ed, nil + } else if x.ref199a921b != nil { + return x.ref199a921b, nil } - mem8867f0ed := allocSurfaceFormat2Memory(1) - ref8867f0ed := (*C.VkSurfaceFormat2KHR)(mem8867f0ed) - allocs8867f0ed := new(cgoAllocMap) - allocs8867f0ed.Add(mem8867f0ed) + mem199a921b := allocPhysicalDeviceShadingRateImageFeaturesNVMemory(1) + ref199a921b := (*C.VkPhysicalDeviceShadingRateImageFeaturesNV)(mem199a921b) + allocs199a921b := new(cgoAllocMap) + allocs199a921b.Add(mem199a921b) var csType_allocs *cgoAllocMap - ref8867f0ed.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8867f0ed.Borrow(csType_allocs) + ref199a921b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs199a921b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8867f0ed.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8867f0ed.Borrow(cpNext_allocs) + ref199a921b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs199a921b.Borrow(cpNext_allocs) - var csurfaceFormat_allocs *cgoAllocMap - ref8867f0ed.surfaceFormat, csurfaceFormat_allocs = x.SurfaceFormat.PassValue() - allocs8867f0ed.Borrow(csurfaceFormat_allocs) + var cshadingRateImage_allocs *cgoAllocMap + ref199a921b.shadingRateImage, cshadingRateImage_allocs = (C.VkBool32)(x.ShadingRateImage), cgoAllocsUnknown + allocs199a921b.Borrow(cshadingRateImage_allocs) - x.ref8867f0ed = ref8867f0ed - x.allocs8867f0ed = allocs8867f0ed - return ref8867f0ed, allocs8867f0ed + var cshadingRateCoarseSampleOrder_allocs *cgoAllocMap + ref199a921b.shadingRateCoarseSampleOrder, cshadingRateCoarseSampleOrder_allocs = (C.VkBool32)(x.ShadingRateCoarseSampleOrder), cgoAllocsUnknown + allocs199a921b.Borrow(cshadingRateCoarseSampleOrder_allocs) + + x.ref199a921b = ref199a921b + x.allocs199a921b = allocs199a921b + return ref199a921b, allocs199a921b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SurfaceFormat2) PassValue() (C.VkSurfaceFormat2KHR, *cgoAllocMap) { - if x.ref8867f0ed != nil { - return *x.ref8867f0ed, nil +func (x PhysicalDeviceShadingRateImageFeaturesNV) PassValue() (C.VkPhysicalDeviceShadingRateImageFeaturesNV, *cgoAllocMap) { + if x.ref199a921b != nil { + return *x.ref199a921b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24288,90 +51232,99 @@ func (x SurfaceFormat2) PassValue() (C.VkSurfaceFormat2KHR, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SurfaceFormat2) Deref() { - if x.ref8867f0ed == nil { +func (x *PhysicalDeviceShadingRateImageFeaturesNV) Deref() { + if x.ref199a921b == nil { return } - x.SType = (StructureType)(x.ref8867f0ed.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8867f0ed.pNext)) - x.SurfaceFormat = *NewSurfaceFormatRef(unsafe.Pointer(&x.ref8867f0ed.surfaceFormat)) + x.SType = (StructureType)(x.ref199a921b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref199a921b.pNext)) + x.ShadingRateImage = (Bool32)(x.ref199a921b.shadingRateImage) + x.ShadingRateCoarseSampleOrder = (Bool32)(x.ref199a921b.shadingRateCoarseSampleOrder) } -// allocDisplayProperties2Memory allocates memory for type C.VkDisplayProperties2KHR in C. +// allocPhysicalDeviceShadingRateImagePropertiesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImagePropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayProperties2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayProperties2Value)) +func allocPhysicalDeviceShadingRateImagePropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShadingRateImagePropertiesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayProperties2Value = unsafe.Sizeof([1]C.VkDisplayProperties2KHR{}) +const sizeOfPhysicalDeviceShadingRateImagePropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImagePropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayProperties2) Ref() *C.VkDisplayProperties2KHR { +func (x *PhysicalDeviceShadingRateImagePropertiesNV) Ref() *C.VkPhysicalDeviceShadingRateImagePropertiesNV { if x == nil { return nil } - return x.ref80194833 + return x.refea059f34 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayProperties2) Free() { - if x != nil && x.allocs80194833 != nil { - x.allocs80194833.(*cgoAllocMap).Free() - x.ref80194833 = nil +func (x *PhysicalDeviceShadingRateImagePropertiesNV) Free() { + if x != nil && x.allocsea059f34 != nil { + x.allocsea059f34.(*cgoAllocMap).Free() + x.refea059f34 = nil } } -// NewDisplayProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShadingRateImagePropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayProperties2Ref(ref unsafe.Pointer) *DisplayProperties2 { +func NewPhysicalDeviceShadingRateImagePropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceShadingRateImagePropertiesNV { if ref == nil { return nil } - obj := new(DisplayProperties2) - obj.ref80194833 = (*C.VkDisplayProperties2KHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShadingRateImagePropertiesNV) + obj.refea059f34 = (*C.VkPhysicalDeviceShadingRateImagePropertiesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayProperties2) PassRef() (*C.VkDisplayProperties2KHR, *cgoAllocMap) { +func (x *PhysicalDeviceShadingRateImagePropertiesNV) PassRef() (*C.VkPhysicalDeviceShadingRateImagePropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref80194833 != nil { - return x.ref80194833, nil + } else if x.refea059f34 != nil { + return x.refea059f34, nil } - mem80194833 := allocDisplayProperties2Memory(1) - ref80194833 := (*C.VkDisplayProperties2KHR)(mem80194833) - allocs80194833 := new(cgoAllocMap) - allocs80194833.Add(mem80194833) + memea059f34 := allocPhysicalDeviceShadingRateImagePropertiesNVMemory(1) + refea059f34 := (*C.VkPhysicalDeviceShadingRateImagePropertiesNV)(memea059f34) + allocsea059f34 := new(cgoAllocMap) + allocsea059f34.Add(memea059f34) var csType_allocs *cgoAllocMap - ref80194833.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs80194833.Borrow(csType_allocs) + refea059f34.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsea059f34.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref80194833.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs80194833.Borrow(cpNext_allocs) + refea059f34.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsea059f34.Borrow(cpNext_allocs) - var cdisplayProperties_allocs *cgoAllocMap - ref80194833.displayProperties, cdisplayProperties_allocs = x.DisplayProperties.PassValue() - allocs80194833.Borrow(cdisplayProperties_allocs) + var cshadingRateTexelSize_allocs *cgoAllocMap + refea059f34.shadingRateTexelSize, cshadingRateTexelSize_allocs = x.ShadingRateTexelSize.PassValue() + allocsea059f34.Borrow(cshadingRateTexelSize_allocs) - x.ref80194833 = ref80194833 - x.allocs80194833 = allocs80194833 - return ref80194833, allocs80194833 + var cshadingRatePaletteSize_allocs *cgoAllocMap + refea059f34.shadingRatePaletteSize, cshadingRatePaletteSize_allocs = (C.uint32_t)(x.ShadingRatePaletteSize), cgoAllocsUnknown + allocsea059f34.Borrow(cshadingRatePaletteSize_allocs) + + var cshadingRateMaxCoarseSamples_allocs *cgoAllocMap + refea059f34.shadingRateMaxCoarseSamples, cshadingRateMaxCoarseSamples_allocs = (C.uint32_t)(x.ShadingRateMaxCoarseSamples), cgoAllocsUnknown + allocsea059f34.Borrow(cshadingRateMaxCoarseSamples_allocs) + + x.refea059f34 = refea059f34 + x.allocsea059f34 = allocsea059f34 + return refea059f34, allocsea059f34 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayProperties2) PassValue() (C.VkDisplayProperties2KHR, *cgoAllocMap) { - if x.ref80194833 != nil { - return *x.ref80194833, nil +func (x PhysicalDeviceShadingRateImagePropertiesNV) PassValue() (C.VkPhysicalDeviceShadingRateImagePropertiesNV, *cgoAllocMap) { + if x.refea059f34 != nil { + return *x.refea059f34, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24379,90 +51332,92 @@ func (x DisplayProperties2) PassValue() (C.VkDisplayProperties2KHR, *cgoAllocMap // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayProperties2) Deref() { - if x.ref80194833 == nil { +func (x *PhysicalDeviceShadingRateImagePropertiesNV) Deref() { + if x.refea059f34 == nil { return } - x.SType = (StructureType)(x.ref80194833.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref80194833.pNext)) - x.DisplayProperties = *NewDisplayPropertiesRef(unsafe.Pointer(&x.ref80194833.displayProperties)) + x.SType = (StructureType)(x.refea059f34.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refea059f34.pNext)) + x.ShadingRateTexelSize = *NewExtent2DRef(unsafe.Pointer(&x.refea059f34.shadingRateTexelSize)) + x.ShadingRatePaletteSize = (uint32)(x.refea059f34.shadingRatePaletteSize) + x.ShadingRateMaxCoarseSamples = (uint32)(x.refea059f34.shadingRateMaxCoarseSamples) } -// allocDisplayPlaneProperties2Memory allocates memory for type C.VkDisplayPlaneProperties2KHR in C. +// allocCoarseSampleLocationNVMemory allocates memory for type C.VkCoarseSampleLocationNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayPlaneProperties2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneProperties2Value)) +func allocCoarseSampleLocationNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCoarseSampleLocationNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayPlaneProperties2Value = unsafe.Sizeof([1]C.VkDisplayPlaneProperties2KHR{}) +const sizeOfCoarseSampleLocationNVValue = unsafe.Sizeof([1]C.VkCoarseSampleLocationNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneProperties2) Ref() *C.VkDisplayPlaneProperties2KHR { +func (x *CoarseSampleLocationNV) Ref() *C.VkCoarseSampleLocationNV { if x == nil { return nil } - return x.refa72b1e5b + return x.ref2f447beb } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayPlaneProperties2) Free() { - if x != nil && x.allocsa72b1e5b != nil { - x.allocsa72b1e5b.(*cgoAllocMap).Free() - x.refa72b1e5b = nil +func (x *CoarseSampleLocationNV) Free() { + if x != nil && x.allocs2f447beb != nil { + x.allocs2f447beb.(*cgoAllocMap).Free() + x.ref2f447beb = nil } } -// NewDisplayPlaneProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewCoarseSampleLocationNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayPlaneProperties2Ref(ref unsafe.Pointer) *DisplayPlaneProperties2 { +func NewCoarseSampleLocationNVRef(ref unsafe.Pointer) *CoarseSampleLocationNV { if ref == nil { return nil } - obj := new(DisplayPlaneProperties2) - obj.refa72b1e5b = (*C.VkDisplayPlaneProperties2KHR)(unsafe.Pointer(ref)) + obj := new(CoarseSampleLocationNV) + obj.ref2f447beb = (*C.VkCoarseSampleLocationNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayPlaneProperties2) PassRef() (*C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { +func (x *CoarseSampleLocationNV) PassRef() (*C.VkCoarseSampleLocationNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa72b1e5b != nil { - return x.refa72b1e5b, nil + } else if x.ref2f447beb != nil { + return x.ref2f447beb, nil } - mema72b1e5b := allocDisplayPlaneProperties2Memory(1) - refa72b1e5b := (*C.VkDisplayPlaneProperties2KHR)(mema72b1e5b) - allocsa72b1e5b := new(cgoAllocMap) - allocsa72b1e5b.Add(mema72b1e5b) + mem2f447beb := allocCoarseSampleLocationNVMemory(1) + ref2f447beb := (*C.VkCoarseSampleLocationNV)(mem2f447beb) + allocs2f447beb := new(cgoAllocMap) + allocs2f447beb.Add(mem2f447beb) - var csType_allocs *cgoAllocMap - refa72b1e5b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa72b1e5b.Borrow(csType_allocs) + var cpixelX_allocs *cgoAllocMap + ref2f447beb.pixelX, cpixelX_allocs = (C.uint32_t)(x.PixelX), cgoAllocsUnknown + allocs2f447beb.Borrow(cpixelX_allocs) - var cpNext_allocs *cgoAllocMap - refa72b1e5b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa72b1e5b.Borrow(cpNext_allocs) + var cpixelY_allocs *cgoAllocMap + ref2f447beb.pixelY, cpixelY_allocs = (C.uint32_t)(x.PixelY), cgoAllocsUnknown + allocs2f447beb.Borrow(cpixelY_allocs) - var cdisplayPlaneProperties_allocs *cgoAllocMap - refa72b1e5b.displayPlaneProperties, cdisplayPlaneProperties_allocs = x.DisplayPlaneProperties.PassValue() - allocsa72b1e5b.Borrow(cdisplayPlaneProperties_allocs) + var csample_allocs *cgoAllocMap + ref2f447beb.sample, csample_allocs = (C.uint32_t)(x.Sample), cgoAllocsUnknown + allocs2f447beb.Borrow(csample_allocs) - x.refa72b1e5b = refa72b1e5b - x.allocsa72b1e5b = allocsa72b1e5b - return refa72b1e5b, allocsa72b1e5b + x.ref2f447beb = ref2f447beb + x.allocs2f447beb = allocs2f447beb + return ref2f447beb, allocs2f447beb } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayPlaneProperties2) PassValue() (C.VkDisplayPlaneProperties2KHR, *cgoAllocMap) { - if x.refa72b1e5b != nil { - return *x.refa72b1e5b, nil +func (x CoarseSampleLocationNV) PassValue() (C.VkCoarseSampleLocationNV, *cgoAllocMap) { + if x.ref2f447beb != nil { + return *x.ref2f447beb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24470,90 +51425,132 @@ func (x DisplayPlaneProperties2) PassValue() (C.VkDisplayPlaneProperties2KHR, *c // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayPlaneProperties2) Deref() { - if x.refa72b1e5b == nil { +func (x *CoarseSampleLocationNV) Deref() { + if x.ref2f447beb == nil { return } - x.SType = (StructureType)(x.refa72b1e5b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa72b1e5b.pNext)) - x.DisplayPlaneProperties = *NewDisplayPlanePropertiesRef(unsafe.Pointer(&x.refa72b1e5b.displayPlaneProperties)) + x.PixelX = (uint32)(x.ref2f447beb.pixelX) + x.PixelY = (uint32)(x.ref2f447beb.pixelY) + x.Sample = (uint32)(x.ref2f447beb.sample) } -// allocDisplayModeProperties2Memory allocates memory for type C.VkDisplayModeProperties2KHR in C. +// allocCoarseSampleOrderCustomNVMemory allocates memory for type C.VkCoarseSampleOrderCustomNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayModeProperties2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayModeProperties2Value)) +func allocCoarseSampleOrderCustomNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCoarseSampleOrderCustomNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayModeProperties2Value = unsafe.Sizeof([1]C.VkDisplayModeProperties2KHR{}) +const sizeOfCoarseSampleOrderCustomNVValue = unsafe.Sizeof([1]C.VkCoarseSampleOrderCustomNV{}) + +// unpackSCoarseSampleLocationNV transforms a sliced Go data structure into plain C format. +func unpackSCoarseSampleLocationNV(x []CoarseSampleLocationNV) (unpacked *C.VkCoarseSampleLocationNV, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkCoarseSampleLocationNV) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocCoarseSampleLocationNVMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkCoarseSampleLocationNV)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkCoarseSampleLocationNV)(h.Data) + return +} + +// packSCoarseSampleLocationNV reads sliced Go data structure out from plain C format. +func packSCoarseSampleLocationNV(v []CoarseSampleLocationNV, ptr0 *C.VkCoarseSampleLocationNV) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfCoarseSampleLocationNVValue]C.VkCoarseSampleLocationNV)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewCoarseSampleLocationNVRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayModeProperties2) Ref() *C.VkDisplayModeProperties2KHR { +func (x *CoarseSampleOrderCustomNV) Ref() *C.VkCoarseSampleOrderCustomNV { if x == nil { return nil } - return x.refc566048d + return x.ref4524fa09 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayModeProperties2) Free() { - if x != nil && x.allocsc566048d != nil { - x.allocsc566048d.(*cgoAllocMap).Free() - x.refc566048d = nil +func (x *CoarseSampleOrderCustomNV) Free() { + if x != nil && x.allocs4524fa09 != nil { + x.allocs4524fa09.(*cgoAllocMap).Free() + x.ref4524fa09 = nil } } -// NewDisplayModeProperties2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewCoarseSampleOrderCustomNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayModeProperties2Ref(ref unsafe.Pointer) *DisplayModeProperties2 { +func NewCoarseSampleOrderCustomNVRef(ref unsafe.Pointer) *CoarseSampleOrderCustomNV { if ref == nil { return nil } - obj := new(DisplayModeProperties2) - obj.refc566048d = (*C.VkDisplayModeProperties2KHR)(unsafe.Pointer(ref)) + obj := new(CoarseSampleOrderCustomNV) + obj.ref4524fa09 = (*C.VkCoarseSampleOrderCustomNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayModeProperties2) PassRef() (*C.VkDisplayModeProperties2KHR, *cgoAllocMap) { +func (x *CoarseSampleOrderCustomNV) PassRef() (*C.VkCoarseSampleOrderCustomNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc566048d != nil { - return x.refc566048d, nil + } else if x.ref4524fa09 != nil { + return x.ref4524fa09, nil } - memc566048d := allocDisplayModeProperties2Memory(1) - refc566048d := (*C.VkDisplayModeProperties2KHR)(memc566048d) - allocsc566048d := new(cgoAllocMap) - allocsc566048d.Add(memc566048d) + mem4524fa09 := allocCoarseSampleOrderCustomNVMemory(1) + ref4524fa09 := (*C.VkCoarseSampleOrderCustomNV)(mem4524fa09) + allocs4524fa09 := new(cgoAllocMap) + allocs4524fa09.Add(mem4524fa09) - var csType_allocs *cgoAllocMap - refc566048d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc566048d.Borrow(csType_allocs) + var cshadingRate_allocs *cgoAllocMap + ref4524fa09.shadingRate, cshadingRate_allocs = (C.VkShadingRatePaletteEntryNV)(x.ShadingRate), cgoAllocsUnknown + allocs4524fa09.Borrow(cshadingRate_allocs) - var cpNext_allocs *cgoAllocMap - refc566048d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc566048d.Borrow(cpNext_allocs) + var csampleCount_allocs *cgoAllocMap + ref4524fa09.sampleCount, csampleCount_allocs = (C.uint32_t)(x.SampleCount), cgoAllocsUnknown + allocs4524fa09.Borrow(csampleCount_allocs) - var cdisplayModeProperties_allocs *cgoAllocMap - refc566048d.displayModeProperties, cdisplayModeProperties_allocs = x.DisplayModeProperties.PassValue() - allocsc566048d.Borrow(cdisplayModeProperties_allocs) + var csampleLocationCount_allocs *cgoAllocMap + ref4524fa09.sampleLocationCount, csampleLocationCount_allocs = (C.uint32_t)(x.SampleLocationCount), cgoAllocsUnknown + allocs4524fa09.Borrow(csampleLocationCount_allocs) - x.refc566048d = refc566048d - x.allocsc566048d = allocsc566048d - return refc566048d, allocsc566048d + var cpSampleLocations_allocs *cgoAllocMap + ref4524fa09.pSampleLocations, cpSampleLocations_allocs = unpackSCoarseSampleLocationNV(x.PSampleLocations) + allocs4524fa09.Borrow(cpSampleLocations_allocs) + + x.ref4524fa09 = ref4524fa09 + x.allocs4524fa09 = allocs4524fa09 + return ref4524fa09, allocs4524fa09 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayModeProperties2) PassValue() (C.VkDisplayModeProperties2KHR, *cgoAllocMap) { - if x.refc566048d != nil { - return *x.refc566048d, nil +func (x CoarseSampleOrderCustomNV) PassValue() (C.VkCoarseSampleOrderCustomNV, *cgoAllocMap) { + if x.ref4524fa09 != nil { + return *x.ref4524fa09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24561,94 +51558,137 @@ func (x DisplayModeProperties2) PassValue() (C.VkDisplayModeProperties2KHR, *cgo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayModeProperties2) Deref() { - if x.refc566048d == nil { +func (x *CoarseSampleOrderCustomNV) Deref() { + if x.ref4524fa09 == nil { return } - x.SType = (StructureType)(x.refc566048d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc566048d.pNext)) - x.DisplayModeProperties = *NewDisplayModePropertiesRef(unsafe.Pointer(&x.refc566048d.displayModeProperties)) + x.ShadingRate = (ShadingRatePaletteEntryNV)(x.ref4524fa09.shadingRate) + x.SampleCount = (uint32)(x.ref4524fa09.sampleCount) + x.SampleLocationCount = (uint32)(x.ref4524fa09.sampleLocationCount) + packSCoarseSampleLocationNV(x.PSampleLocations, x.ref4524fa09.pSampleLocations) } -// allocDisplayPlaneInfo2Memory allocates memory for type C.VkDisplayPlaneInfo2KHR in C. +// allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayPlaneInfo2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneInfo2Value)) +func allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportCoarseSampleOrderStateCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayPlaneInfo2Value = unsafe.Sizeof([1]C.VkDisplayPlaneInfo2KHR{}) +const sizeOfPipelineViewportCoarseSampleOrderStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV{}) + +// unpackSCoarseSampleOrderCustomNV transforms a sliced Go data structure into plain C format. +func unpackSCoarseSampleOrderCustomNV(x []CoarseSampleOrderCustomNV) (unpacked *C.VkCoarseSampleOrderCustomNV, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkCoarseSampleOrderCustomNV) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocCoarseSampleOrderCustomNVMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkCoarseSampleOrderCustomNV)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkCoarseSampleOrderCustomNV)(h.Data) + return +} + +// packSCoarseSampleOrderCustomNV reads sliced Go data structure out from plain C format. +func packSCoarseSampleOrderCustomNV(v []CoarseSampleOrderCustomNV, ptr0 *C.VkCoarseSampleOrderCustomNV) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfCoarseSampleOrderCustomNVValue]C.VkCoarseSampleOrderCustomNV)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewCoarseSampleOrderCustomNVRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneInfo2) Ref() *C.VkDisplayPlaneInfo2KHR { +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Ref() *C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { if x == nil { return nil } - return x.reff355ccbf + return x.ref54de8ca6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayPlaneInfo2) Free() { - if x != nil && x.allocsf355ccbf != nil { - x.allocsf355ccbf.(*cgoAllocMap).Free() - x.reff355ccbf = nil +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Free() { + if x != nil && x.allocs54de8ca6 != nil { + x.allocs54de8ca6.(*cgoAllocMap).Free() + x.ref54de8ca6 = nil } } -// NewDisplayPlaneInfo2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineViewportCoarseSampleOrderStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayPlaneInfo2Ref(ref unsafe.Pointer) *DisplayPlaneInfo2 { +func NewPipelineViewportCoarseSampleOrderStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportCoarseSampleOrderStateCreateInfoNV { if ref == nil { return nil } - obj := new(DisplayPlaneInfo2) - obj.reff355ccbf = (*C.VkDisplayPlaneInfo2KHR)(unsafe.Pointer(ref)) + obj := new(PipelineViewportCoarseSampleOrderStateCreateInfoNV) + obj.ref54de8ca6 = (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayPlaneInfo2) PassRef() (*C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassRef() (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff355ccbf != nil { - return x.reff355ccbf, nil + } else if x.ref54de8ca6 != nil { + return x.ref54de8ca6, nil } - memf355ccbf := allocDisplayPlaneInfo2Memory(1) - reff355ccbf := (*C.VkDisplayPlaneInfo2KHR)(memf355ccbf) - allocsf355ccbf := new(cgoAllocMap) - allocsf355ccbf.Add(memf355ccbf) + mem54de8ca6 := allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory(1) + ref54de8ca6 := (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)(mem54de8ca6) + allocs54de8ca6 := new(cgoAllocMap) + allocs54de8ca6.Add(mem54de8ca6) var csType_allocs *cgoAllocMap - reff355ccbf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf355ccbf.Borrow(csType_allocs) + ref54de8ca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs54de8ca6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff355ccbf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf355ccbf.Borrow(cpNext_allocs) + ref54de8ca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs54de8ca6.Borrow(cpNext_allocs) - var cmode_allocs *cgoAllocMap - reff355ccbf.mode, cmode_allocs = *(*C.VkDisplayModeKHR)(unsafe.Pointer(&x.Mode)), cgoAllocsUnknown - allocsf355ccbf.Borrow(cmode_allocs) + var csampleOrderType_allocs *cgoAllocMap + ref54de8ca6.sampleOrderType, csampleOrderType_allocs = (C.VkCoarseSampleOrderTypeNV)(x.SampleOrderType), cgoAllocsUnknown + allocs54de8ca6.Borrow(csampleOrderType_allocs) - var cplaneIndex_allocs *cgoAllocMap - reff355ccbf.planeIndex, cplaneIndex_allocs = (C.uint32_t)(x.PlaneIndex), cgoAllocsUnknown - allocsf355ccbf.Borrow(cplaneIndex_allocs) + var ccustomSampleOrderCount_allocs *cgoAllocMap + ref54de8ca6.customSampleOrderCount, ccustomSampleOrderCount_allocs = (C.uint32_t)(x.CustomSampleOrderCount), cgoAllocsUnknown + allocs54de8ca6.Borrow(ccustomSampleOrderCount_allocs) - x.reff355ccbf = reff355ccbf - x.allocsf355ccbf = allocsf355ccbf - return reff355ccbf, allocsf355ccbf + var cpCustomSampleOrders_allocs *cgoAllocMap + ref54de8ca6.pCustomSampleOrders, cpCustomSampleOrders_allocs = unpackSCoarseSampleOrderCustomNV(x.PCustomSampleOrders) + allocs54de8ca6.Borrow(cpCustomSampleOrders_allocs) + + x.ref54de8ca6 = ref54de8ca6 + x.allocs54de8ca6 = allocs54de8ca6 + return ref54de8ca6, allocs54de8ca6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayPlaneInfo2) PassValue() (C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) { - if x.reff355ccbf != nil { - return *x.reff355ccbf, nil +func (x PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassValue() (C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, *cgoAllocMap) { + if x.ref54de8ca6 != nil { + return *x.ref54de8ca6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24656,91 +51696,92 @@ func (x DisplayPlaneInfo2) PassValue() (C.VkDisplayPlaneInfo2KHR, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayPlaneInfo2) Deref() { - if x.reff355ccbf == nil { +func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Deref() { + if x.ref54de8ca6 == nil { return } - x.SType = (StructureType)(x.reff355ccbf.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff355ccbf.pNext)) - x.Mode = *(*DisplayMode)(unsafe.Pointer(&x.reff355ccbf.mode)) - x.PlaneIndex = (uint32)(x.reff355ccbf.planeIndex) + x.SType = (StructureType)(x.ref54de8ca6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref54de8ca6.pNext)) + x.SampleOrderType = (CoarseSampleOrderTypeNV)(x.ref54de8ca6.sampleOrderType) + x.CustomSampleOrderCount = (uint32)(x.ref54de8ca6.customSampleOrderCount) + packSCoarseSampleOrderCustomNV(x.PCustomSampleOrders, x.ref54de8ca6.pCustomSampleOrders) } -// allocDisplayPlaneCapabilities2Memory allocates memory for type C.VkDisplayPlaneCapabilities2KHR in C. +// allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayPlaneCapabilities2Memory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlaneCapabilities2Value)) +func allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRepresentativeFragmentTestFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayPlaneCapabilities2Value = unsafe.Sizeof([1]C.VkDisplayPlaneCapabilities2KHR{}) +const sizeOfPhysicalDeviceRepresentativeFragmentTestFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPlaneCapabilities2) Ref() *C.VkDisplayPlaneCapabilities2KHR { +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Ref() *C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { if x == nil { return nil } - return x.refb53dfb44 + return x.reff1f69e03 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayPlaneCapabilities2) Free() { - if x != nil && x.allocsb53dfb44 != nil { - x.allocsb53dfb44.(*cgoAllocMap).Free() - x.refb53dfb44 = nil +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Free() { + if x != nil && x.allocsf1f69e03 != nil { + x.allocsf1f69e03.(*cgoAllocMap).Free() + x.reff1f69e03 = nil } } -// NewDisplayPlaneCapabilities2Ref creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceRepresentativeFragmentTestFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayPlaneCapabilities2Ref(ref unsafe.Pointer) *DisplayPlaneCapabilities2 { +func NewPhysicalDeviceRepresentativeFragmentTestFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceRepresentativeFragmentTestFeaturesNV { if ref == nil { return nil } - obj := new(DisplayPlaneCapabilities2) - obj.refb53dfb44 = (*C.VkDisplayPlaneCapabilities2KHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceRepresentativeFragmentTestFeaturesNV) + obj.reff1f69e03 = (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayPlaneCapabilities2) PassRef() (*C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassRef() (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb53dfb44 != nil { - return x.refb53dfb44, nil + } else if x.reff1f69e03 != nil { + return x.reff1f69e03, nil } - memb53dfb44 := allocDisplayPlaneCapabilities2Memory(1) - refb53dfb44 := (*C.VkDisplayPlaneCapabilities2KHR)(memb53dfb44) - allocsb53dfb44 := new(cgoAllocMap) - allocsb53dfb44.Add(memb53dfb44) + memf1f69e03 := allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory(1) + reff1f69e03 := (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)(memf1f69e03) + allocsf1f69e03 := new(cgoAllocMap) + allocsf1f69e03.Add(memf1f69e03) var csType_allocs *cgoAllocMap - refb53dfb44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb53dfb44.Borrow(csType_allocs) + reff1f69e03.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf1f69e03.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb53dfb44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb53dfb44.Borrow(cpNext_allocs) + reff1f69e03.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf1f69e03.Borrow(cpNext_allocs) - var ccapabilities_allocs *cgoAllocMap - refb53dfb44.capabilities, ccapabilities_allocs = x.Capabilities.PassValue() - allocsb53dfb44.Borrow(ccapabilities_allocs) + var crepresentativeFragmentTest_allocs *cgoAllocMap + reff1f69e03.representativeFragmentTest, crepresentativeFragmentTest_allocs = (C.VkBool32)(x.RepresentativeFragmentTest), cgoAllocsUnknown + allocsf1f69e03.Borrow(crepresentativeFragmentTest_allocs) - x.refb53dfb44 = refb53dfb44 - x.allocsb53dfb44 = allocsb53dfb44 - return refb53dfb44, allocsb53dfb44 + x.reff1f69e03 = reff1f69e03 + x.allocsf1f69e03 = allocsf1f69e03 + return reff1f69e03, allocsf1f69e03 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayPlaneCapabilities2) PassValue() (C.VkDisplayPlaneCapabilities2KHR, *cgoAllocMap) { - if x.refb53dfb44 != nil { - return *x.refb53dfb44, nil +func (x PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassValue() (C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, *cgoAllocMap) { + if x.reff1f69e03 != nil { + return *x.reff1f69e03, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24748,94 +51789,90 @@ func (x DisplayPlaneCapabilities2) PassValue() (C.VkDisplayPlaneCapabilities2KHR // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayPlaneCapabilities2) Deref() { - if x.refb53dfb44 == nil { +func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Deref() { + if x.reff1f69e03 == nil { return } - x.SType = (StructureType)(x.refb53dfb44.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb53dfb44.pNext)) - x.Capabilities = *NewDisplayPlaneCapabilitiesRef(unsafe.Pointer(&x.refb53dfb44.capabilities)) + x.SType = (StructureType)(x.reff1f69e03.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff1f69e03.pNext)) + x.RepresentativeFragmentTest = (Bool32)(x.reff1f69e03.representativeFragmentTest) } -// allocImageFormatListCreateInfoMemory allocates memory for type C.VkImageFormatListCreateInfoKHR in C. +// allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory allocates memory for type C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageFormatListCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageFormatListCreateInfoValue)) +func allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRepresentativeFragmentTestStateCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageFormatListCreateInfoValue = unsafe.Sizeof([1]C.VkImageFormatListCreateInfoKHR{}) +const sizeOfPipelineRepresentativeFragmentTestStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageFormatListCreateInfo) Ref() *C.VkImageFormatListCreateInfoKHR { +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Ref() *C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV { if x == nil { return nil } - return x.ref815daf8c + return x.ref9c224e21 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageFormatListCreateInfo) Free() { - if x != nil && x.allocs815daf8c != nil { - x.allocs815daf8c.(*cgoAllocMap).Free() - x.ref815daf8c = nil +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Free() { + if x != nil && x.allocs9c224e21 != nil { + x.allocs9c224e21.(*cgoAllocMap).Free() + x.ref9c224e21 = nil } } -// NewImageFormatListCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineRepresentativeFragmentTestStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageFormatListCreateInfoRef(ref unsafe.Pointer) *ImageFormatListCreateInfo { +func NewPipelineRepresentativeFragmentTestStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineRepresentativeFragmentTestStateCreateInfoNV { if ref == nil { return nil } - obj := new(ImageFormatListCreateInfo) - obj.ref815daf8c = (*C.VkImageFormatListCreateInfoKHR)(unsafe.Pointer(ref)) + obj := new(PipelineRepresentativeFragmentTestStateCreateInfoNV) + obj.ref9c224e21 = (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageFormatListCreateInfo) PassRef() (*C.VkImageFormatListCreateInfoKHR, *cgoAllocMap) { +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) PassRef() (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref815daf8c != nil { - return x.ref815daf8c, nil + } else if x.ref9c224e21 != nil { + return x.ref9c224e21, nil } - mem815daf8c := allocImageFormatListCreateInfoMemory(1) - ref815daf8c := (*C.VkImageFormatListCreateInfoKHR)(mem815daf8c) - allocs815daf8c := new(cgoAllocMap) - allocs815daf8c.Add(mem815daf8c) + mem9c224e21 := allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory(1) + ref9c224e21 := (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV)(mem9c224e21) + allocs9c224e21 := new(cgoAllocMap) + allocs9c224e21.Add(mem9c224e21) var csType_allocs *cgoAllocMap - ref815daf8c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs815daf8c.Borrow(csType_allocs) + ref9c224e21.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9c224e21.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref815daf8c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs815daf8c.Borrow(cpNext_allocs) - - var cviewFormatCount_allocs *cgoAllocMap - ref815daf8c.viewFormatCount, cviewFormatCount_allocs = (C.uint32_t)(x.ViewFormatCount), cgoAllocsUnknown - allocs815daf8c.Borrow(cviewFormatCount_allocs) + ref9c224e21.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9c224e21.Borrow(cpNext_allocs) - var cpViewFormats_allocs *cgoAllocMap - ref815daf8c.pViewFormats, cpViewFormats_allocs = (*C.VkFormat)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PViewFormats)).Data)), cgoAllocsUnknown - allocs815daf8c.Borrow(cpViewFormats_allocs) + var crepresentativeFragmentTestEnable_allocs *cgoAllocMap + ref9c224e21.representativeFragmentTestEnable, crepresentativeFragmentTestEnable_allocs = (C.VkBool32)(x.RepresentativeFragmentTestEnable), cgoAllocsUnknown + allocs9c224e21.Borrow(crepresentativeFragmentTestEnable_allocs) - x.ref815daf8c = ref815daf8c - x.allocs815daf8c = allocs815daf8c - return ref815daf8c, allocs815daf8c + x.ref9c224e21 = ref9c224e21 + x.allocs9c224e21 = allocs9c224e21 + return ref9c224e21, allocs9c224e21 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageFormatListCreateInfo) PassValue() (C.VkImageFormatListCreateInfoKHR, *cgoAllocMap) { - if x.ref815daf8c != nil { - return *x.ref815daf8c, nil +func (x PipelineRepresentativeFragmentTestStateCreateInfoNV) PassValue() (C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV, *cgoAllocMap) { + if x.ref9c224e21 != nil { + return *x.ref9c224e21, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24843,103 +51880,90 @@ func (x ImageFormatListCreateInfo) PassValue() (C.VkImageFormatListCreateInfoKHR // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageFormatListCreateInfo) Deref() { - if x.ref815daf8c == nil { +func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Deref() { + if x.ref9c224e21 == nil { return } - x.SType = (StructureType)(x.ref815daf8c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref815daf8c.pNext)) - x.ViewFormatCount = (uint32)(x.ref815daf8c.viewFormatCount) - hxf15a567 := (*sliceHeader)(unsafe.Pointer(&x.PViewFormats)) - hxf15a567.Data = unsafe.Pointer(x.ref815daf8c.pViewFormats) - hxf15a567.Cap = 0x7fffffff - // hxf15a567.Len = ? - + x.SType = (StructureType)(x.ref9c224e21.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9c224e21.pNext)) + x.RepresentativeFragmentTestEnable = (Bool32)(x.ref9c224e21.representativeFragmentTestEnable) } -// allocPhysicalDevice8BitStorageFeaturesMemory allocates memory for type C.VkPhysicalDevice8BitStorageFeaturesKHR in C. +// allocPhysicalDeviceImageViewImageFormatInfoMemory allocates memory for type C.VkPhysicalDeviceImageViewImageFormatInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevice8BitStorageFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevice8BitStorageFeaturesValue)) +func allocPhysicalDeviceImageViewImageFormatInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageViewImageFormatInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDevice8BitStorageFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevice8BitStorageFeaturesKHR{}) +const sizeOfPhysicalDeviceImageViewImageFormatInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageViewImageFormatInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevice8BitStorageFeatures) Ref() *C.VkPhysicalDevice8BitStorageFeaturesKHR { +func (x *PhysicalDeviceImageViewImageFormatInfo) Ref() *C.VkPhysicalDeviceImageViewImageFormatInfoEXT { if x == nil { return nil } - return x.ref906ef48e + return x.ref99e4ab46 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDevice8BitStorageFeatures) Free() { - if x != nil && x.allocs906ef48e != nil { - x.allocs906ef48e.(*cgoAllocMap).Free() - x.ref906ef48e = nil +func (x *PhysicalDeviceImageViewImageFormatInfo) Free() { + if x != nil && x.allocs99e4ab46 != nil { + x.allocs99e4ab46.(*cgoAllocMap).Free() + x.ref99e4ab46 = nil } } -// NewPhysicalDevice8BitStorageFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceImageViewImageFormatInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDevice8BitStorageFeaturesRef(ref unsafe.Pointer) *PhysicalDevice8BitStorageFeatures { +func NewPhysicalDeviceImageViewImageFormatInfoRef(ref unsafe.Pointer) *PhysicalDeviceImageViewImageFormatInfo { if ref == nil { return nil } - obj := new(PhysicalDevice8BitStorageFeatures) - obj.ref906ef48e = (*C.VkPhysicalDevice8BitStorageFeaturesKHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceImageViewImageFormatInfo) + obj.ref99e4ab46 = (*C.VkPhysicalDeviceImageViewImageFormatInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDevice8BitStorageFeatures) PassRef() (*C.VkPhysicalDevice8BitStorageFeaturesKHR, *cgoAllocMap) { +func (x *PhysicalDeviceImageViewImageFormatInfo) PassRef() (*C.VkPhysicalDeviceImageViewImageFormatInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref906ef48e != nil { - return x.ref906ef48e, nil + } else if x.ref99e4ab46 != nil { + return x.ref99e4ab46, nil } - mem906ef48e := allocPhysicalDevice8BitStorageFeaturesMemory(1) - ref906ef48e := (*C.VkPhysicalDevice8BitStorageFeaturesKHR)(mem906ef48e) - allocs906ef48e := new(cgoAllocMap) - allocs906ef48e.Add(mem906ef48e) + mem99e4ab46 := allocPhysicalDeviceImageViewImageFormatInfoMemory(1) + ref99e4ab46 := (*C.VkPhysicalDeviceImageViewImageFormatInfoEXT)(mem99e4ab46) + allocs99e4ab46 := new(cgoAllocMap) + allocs99e4ab46.Add(mem99e4ab46) var csType_allocs *cgoAllocMap - ref906ef48e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs906ef48e.Borrow(csType_allocs) + ref99e4ab46.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs99e4ab46.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref906ef48e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs906ef48e.Borrow(cpNext_allocs) - - var cstorageBuffer8BitAccess_allocs *cgoAllocMap - ref906ef48e.storageBuffer8BitAccess, cstorageBuffer8BitAccess_allocs = (C.VkBool32)(x.StorageBuffer8BitAccess), cgoAllocsUnknown - allocs906ef48e.Borrow(cstorageBuffer8BitAccess_allocs) - - var cuniformAndStorageBuffer8BitAccess_allocs *cgoAllocMap - ref906ef48e.uniformAndStorageBuffer8BitAccess, cuniformAndStorageBuffer8BitAccess_allocs = (C.VkBool32)(x.UniformAndStorageBuffer8BitAccess), cgoAllocsUnknown - allocs906ef48e.Borrow(cuniformAndStorageBuffer8BitAccess_allocs) + ref99e4ab46.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs99e4ab46.Borrow(cpNext_allocs) - var cstoragePushConstant8_allocs *cgoAllocMap - ref906ef48e.storagePushConstant8, cstoragePushConstant8_allocs = (C.VkBool32)(x.StoragePushConstant8), cgoAllocsUnknown - allocs906ef48e.Borrow(cstoragePushConstant8_allocs) + var cimageViewType_allocs *cgoAllocMap + ref99e4ab46.imageViewType, cimageViewType_allocs = (C.VkImageViewType)(x.ImageViewType), cgoAllocsUnknown + allocs99e4ab46.Borrow(cimageViewType_allocs) - x.ref906ef48e = ref906ef48e - x.allocs906ef48e = allocs906ef48e - return ref906ef48e, allocs906ef48e + x.ref99e4ab46 = ref99e4ab46 + x.allocs99e4ab46 = allocs99e4ab46 + return ref99e4ab46, allocs99e4ab46 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDevice8BitStorageFeatures) PassValue() (C.VkPhysicalDevice8BitStorageFeaturesKHR, *cgoAllocMap) { - if x.ref906ef48e != nil { - return *x.ref906ef48e, nil +func (x PhysicalDeviceImageViewImageFormatInfo) PassValue() (C.VkPhysicalDeviceImageViewImageFormatInfoEXT, *cgoAllocMap) { + if x.ref99e4ab46 != nil { + return *x.ref99e4ab46, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -24947,96 +51971,94 @@ func (x PhysicalDevice8BitStorageFeatures) PassValue() (C.VkPhysicalDevice8BitSt // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDevice8BitStorageFeatures) Deref() { - if x.ref906ef48e == nil { +func (x *PhysicalDeviceImageViewImageFormatInfo) Deref() { + if x.ref99e4ab46 == nil { return } - x.SType = (StructureType)(x.ref906ef48e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref906ef48e.pNext)) - x.StorageBuffer8BitAccess = (Bool32)(x.ref906ef48e.storageBuffer8BitAccess) - x.UniformAndStorageBuffer8BitAccess = (Bool32)(x.ref906ef48e.uniformAndStorageBuffer8BitAccess) - x.StoragePushConstant8 = (Bool32)(x.ref906ef48e.storagePushConstant8) + x.SType = (StructureType)(x.ref99e4ab46.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref99e4ab46.pNext)) + x.ImageViewType = (ImageViewType)(x.ref99e4ab46.imageViewType) } -// allocPhysicalDeviceShaderAtomicInt64FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR in C. +// allocFilterCubicImageViewImageFormatPropertiesMemory allocates memory for type C.VkFilterCubicImageViewImageFormatPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderAtomicInt64FeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderAtomicInt64FeaturesValue)) +func allocFilterCubicImageViewImageFormatPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFilterCubicImageViewImageFormatPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceShaderAtomicInt64FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR{}) +const sizeOfFilterCubicImageViewImageFormatPropertiesValue = unsafe.Sizeof([1]C.VkFilterCubicImageViewImageFormatPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderAtomicInt64Features) Ref() *C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { +func (x *FilterCubicImageViewImageFormatProperties) Ref() *C.VkFilterCubicImageViewImageFormatPropertiesEXT { if x == nil { return nil } - return x.ref51c409c6 + return x.refcf60927c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceShaderAtomicInt64Features) Free() { - if x != nil && x.allocs51c409c6 != nil { - x.allocs51c409c6.(*cgoAllocMap).Free() - x.ref51c409c6 = nil +func (x *FilterCubicImageViewImageFormatProperties) Free() { + if x != nil && x.allocscf60927c != nil { + x.allocscf60927c.(*cgoAllocMap).Free() + x.refcf60927c = nil } } -// NewPhysicalDeviceShaderAtomicInt64FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewFilterCubicImageViewImageFormatPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceShaderAtomicInt64FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicInt64Features { +func NewFilterCubicImageViewImageFormatPropertiesRef(ref unsafe.Pointer) *FilterCubicImageViewImageFormatProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderAtomicInt64Features) - obj.ref51c409c6 = (*C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR)(unsafe.Pointer(ref)) + obj := new(FilterCubicImageViewImageFormatProperties) + obj.refcf60927c = (*C.VkFilterCubicImageViewImageFormatPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceShaderAtomicInt64Features) PassRef() (*C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR, *cgoAllocMap) { +func (x *FilterCubicImageViewImageFormatProperties) PassRef() (*C.VkFilterCubicImageViewImageFormatPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref51c409c6 != nil { - return x.ref51c409c6, nil + } else if x.refcf60927c != nil { + return x.refcf60927c, nil } - mem51c409c6 := allocPhysicalDeviceShaderAtomicInt64FeaturesMemory(1) - ref51c409c6 := (*C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR)(mem51c409c6) - allocs51c409c6 := new(cgoAllocMap) - allocs51c409c6.Add(mem51c409c6) + memcf60927c := allocFilterCubicImageViewImageFormatPropertiesMemory(1) + refcf60927c := (*C.VkFilterCubicImageViewImageFormatPropertiesEXT)(memcf60927c) + allocscf60927c := new(cgoAllocMap) + allocscf60927c.Add(memcf60927c) var csType_allocs *cgoAllocMap - ref51c409c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs51c409c6.Borrow(csType_allocs) + refcf60927c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscf60927c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref51c409c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs51c409c6.Borrow(cpNext_allocs) + refcf60927c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscf60927c.Borrow(cpNext_allocs) - var cshaderBufferInt64Atomics_allocs *cgoAllocMap - ref51c409c6.shaderBufferInt64Atomics, cshaderBufferInt64Atomics_allocs = (C.VkBool32)(x.ShaderBufferInt64Atomics), cgoAllocsUnknown - allocs51c409c6.Borrow(cshaderBufferInt64Atomics_allocs) + var cfilterCubic_allocs *cgoAllocMap + refcf60927c.filterCubic, cfilterCubic_allocs = (C.VkBool32)(x.FilterCubic), cgoAllocsUnknown + allocscf60927c.Borrow(cfilterCubic_allocs) - var cshaderSharedInt64Atomics_allocs *cgoAllocMap - ref51c409c6.shaderSharedInt64Atomics, cshaderSharedInt64Atomics_allocs = (C.VkBool32)(x.ShaderSharedInt64Atomics), cgoAllocsUnknown - allocs51c409c6.Borrow(cshaderSharedInt64Atomics_allocs) + var cfilterCubicMinmax_allocs *cgoAllocMap + refcf60927c.filterCubicMinmax, cfilterCubicMinmax_allocs = (C.VkBool32)(x.FilterCubicMinmax), cgoAllocsUnknown + allocscf60927c.Borrow(cfilterCubicMinmax_allocs) - x.ref51c409c6 = ref51c409c6 - x.allocs51c409c6 = allocs51c409c6 - return ref51c409c6, allocs51c409c6 + x.refcf60927c = refcf60927c + x.allocscf60927c = allocscf60927c + return refcf60927c, allocscf60927c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceShaderAtomicInt64Features) PassValue() (C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR, *cgoAllocMap) { - if x.ref51c409c6 != nil { - return *x.ref51c409c6, nil +func (x FilterCubicImageViewImageFormatProperties) PassValue() (C.VkFilterCubicImageViewImageFormatPropertiesEXT, *cgoAllocMap) { + if x.refcf60927c != nil { + return *x.refcf60927c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25044,95 +52066,95 @@ func (x PhysicalDeviceShaderAtomicInt64Features) PassValue() (C.VkPhysicalDevice // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceShaderAtomicInt64Features) Deref() { - if x.ref51c409c6 == nil { +func (x *FilterCubicImageViewImageFormatProperties) Deref() { + if x.refcf60927c == nil { return } - x.SType = (StructureType)(x.ref51c409c6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref51c409c6.pNext)) - x.ShaderBufferInt64Atomics = (Bool32)(x.ref51c409c6.shaderBufferInt64Atomics) - x.ShaderSharedInt64Atomics = (Bool32)(x.ref51c409c6.shaderSharedInt64Atomics) + x.SType = (StructureType)(x.refcf60927c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcf60927c.pNext)) + x.FilterCubic = (Bool32)(x.refcf60927c.filterCubic) + x.FilterCubicMinmax = (Bool32)(x.refcf60927c.filterCubicMinmax) } -// allocConformanceVersionMemory allocates memory for type C.VkConformanceVersionKHR in C. +// allocImportMemoryHostPointerInfoMemory allocates memory for type C.VkImportMemoryHostPointerInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocConformanceVersionMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfConformanceVersionValue)) +func allocImportMemoryHostPointerInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportMemoryHostPointerInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfConformanceVersionValue = unsafe.Sizeof([1]C.VkConformanceVersionKHR{}) +const sizeOfImportMemoryHostPointerInfoValue = unsafe.Sizeof([1]C.VkImportMemoryHostPointerInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ConformanceVersion) Ref() *C.VkConformanceVersionKHR { +func (x *ImportMemoryHostPointerInfo) Ref() *C.VkImportMemoryHostPointerInfoEXT { if x == nil { return nil } - return x.refe4627a5f + return x.reffe09253e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ConformanceVersion) Free() { - if x != nil && x.allocse4627a5f != nil { - x.allocse4627a5f.(*cgoAllocMap).Free() - x.refe4627a5f = nil +func (x *ImportMemoryHostPointerInfo) Free() { + if x != nil && x.allocsfe09253e != nil { + x.allocsfe09253e.(*cgoAllocMap).Free() + x.reffe09253e = nil } } -// NewConformanceVersionRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImportMemoryHostPointerInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewConformanceVersionRef(ref unsafe.Pointer) *ConformanceVersion { +func NewImportMemoryHostPointerInfoRef(ref unsafe.Pointer) *ImportMemoryHostPointerInfo { if ref == nil { return nil } - obj := new(ConformanceVersion) - obj.refe4627a5f = (*C.VkConformanceVersionKHR)(unsafe.Pointer(ref)) + obj := new(ImportMemoryHostPointerInfo) + obj.reffe09253e = (*C.VkImportMemoryHostPointerInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ConformanceVersion) PassRef() (*C.VkConformanceVersionKHR, *cgoAllocMap) { +func (x *ImportMemoryHostPointerInfo) PassRef() (*C.VkImportMemoryHostPointerInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe4627a5f != nil { - return x.refe4627a5f, nil + } else if x.reffe09253e != nil { + return x.reffe09253e, nil } - meme4627a5f := allocConformanceVersionMemory(1) - refe4627a5f := (*C.VkConformanceVersionKHR)(meme4627a5f) - allocse4627a5f := new(cgoAllocMap) - allocse4627a5f.Add(meme4627a5f) + memfe09253e := allocImportMemoryHostPointerInfoMemory(1) + reffe09253e := (*C.VkImportMemoryHostPointerInfoEXT)(memfe09253e) + allocsfe09253e := new(cgoAllocMap) + allocsfe09253e.Add(memfe09253e) - var cmajor_allocs *cgoAllocMap - refe4627a5f.major, cmajor_allocs = (C.uint8_t)(x.Major), cgoAllocsUnknown - allocse4627a5f.Borrow(cmajor_allocs) + var csType_allocs *cgoAllocMap + reffe09253e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfe09253e.Borrow(csType_allocs) - var cminor_allocs *cgoAllocMap - refe4627a5f.minor, cminor_allocs = (C.uint8_t)(x.Minor), cgoAllocsUnknown - allocse4627a5f.Borrow(cminor_allocs) + var cpNext_allocs *cgoAllocMap + reffe09253e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfe09253e.Borrow(cpNext_allocs) - var csubminor_allocs *cgoAllocMap - refe4627a5f.subminor, csubminor_allocs = (C.uint8_t)(x.Subminor), cgoAllocsUnknown - allocse4627a5f.Borrow(csubminor_allocs) + var chandleType_allocs *cgoAllocMap + reffe09253e.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown + allocsfe09253e.Borrow(chandleType_allocs) - var cpatch_allocs *cgoAllocMap - refe4627a5f.patch, cpatch_allocs = (C.uint8_t)(x.Patch), cgoAllocsUnknown - allocse4627a5f.Borrow(cpatch_allocs) + var cpHostPointer_allocs *cgoAllocMap + reffe09253e.pHostPointer, cpHostPointer_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PHostPointer)), cgoAllocsUnknown + allocsfe09253e.Borrow(cpHostPointer_allocs) - x.refe4627a5f = refe4627a5f - x.allocse4627a5f = allocse4627a5f - return refe4627a5f, allocse4627a5f + x.reffe09253e = reffe09253e + x.allocsfe09253e = allocsfe09253e + return reffe09253e, allocsfe09253e } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ConformanceVersion) PassValue() (C.VkConformanceVersionKHR, *cgoAllocMap) { - if x.refe4627a5f != nil { - return *x.refe4627a5f, nil +func (x ImportMemoryHostPointerInfo) PassValue() (C.VkImportMemoryHostPointerInfoEXT, *cgoAllocMap) { + if x.reffe09253e != nil { + return *x.reffe09253e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25140,103 +52162,91 @@ func (x ConformanceVersion) PassValue() (C.VkConformanceVersionKHR, *cgoAllocMap // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ConformanceVersion) Deref() { - if x.refe4627a5f == nil { +func (x *ImportMemoryHostPointerInfo) Deref() { + if x.reffe09253e == nil { return } - x.Major = (byte)(x.refe4627a5f.major) - x.Minor = (byte)(x.refe4627a5f.minor) - x.Subminor = (byte)(x.refe4627a5f.subminor) - x.Patch = (byte)(x.refe4627a5f.patch) + x.SType = (StructureType)(x.reffe09253e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffe09253e.pNext)) + x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.reffe09253e.handleType) + x.PHostPointer = (unsafe.Pointer)(unsafe.Pointer(x.reffe09253e.pHostPointer)) } -// allocPhysicalDeviceDriverPropertiesMemory allocates memory for type C.VkPhysicalDeviceDriverPropertiesKHR in C. +// allocMemoryHostPointerPropertiesMemory allocates memory for type C.VkMemoryHostPointerPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDriverPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDriverPropertiesValue)) +func allocMemoryHostPointerPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryHostPointerPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceDriverPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDriverPropertiesKHR{}) +const sizeOfMemoryHostPointerPropertiesValue = unsafe.Sizeof([1]C.VkMemoryHostPointerPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDriverProperties) Ref() *C.VkPhysicalDeviceDriverPropertiesKHR { +func (x *MemoryHostPointerProperties) Ref() *C.VkMemoryHostPointerPropertiesEXT { if x == nil { return nil } - return x.ref9220f954 + return x.refebf46a84 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceDriverProperties) Free() { - if x != nil && x.allocs9220f954 != nil { - x.allocs9220f954.(*cgoAllocMap).Free() - x.ref9220f954 = nil +func (x *MemoryHostPointerProperties) Free() { + if x != nil && x.allocsebf46a84 != nil { + x.allocsebf46a84.(*cgoAllocMap).Free() + x.refebf46a84 = nil } } -// NewPhysicalDeviceDriverPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMemoryHostPointerPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceDriverPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDriverProperties { +func NewMemoryHostPointerPropertiesRef(ref unsafe.Pointer) *MemoryHostPointerProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceDriverProperties) - obj.ref9220f954 = (*C.VkPhysicalDeviceDriverPropertiesKHR)(unsafe.Pointer(ref)) + obj := new(MemoryHostPointerProperties) + obj.refebf46a84 = (*C.VkMemoryHostPointerPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceDriverProperties) PassRef() (*C.VkPhysicalDeviceDriverPropertiesKHR, *cgoAllocMap) { +func (x *MemoryHostPointerProperties) PassRef() (*C.VkMemoryHostPointerPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9220f954 != nil { - return x.ref9220f954, nil + } else if x.refebf46a84 != nil { + return x.refebf46a84, nil } - mem9220f954 := allocPhysicalDeviceDriverPropertiesMemory(1) - ref9220f954 := (*C.VkPhysicalDeviceDriverPropertiesKHR)(mem9220f954) - allocs9220f954 := new(cgoAllocMap) - allocs9220f954.Add(mem9220f954) + memebf46a84 := allocMemoryHostPointerPropertiesMemory(1) + refebf46a84 := (*C.VkMemoryHostPointerPropertiesEXT)(memebf46a84) + allocsebf46a84 := new(cgoAllocMap) + allocsebf46a84.Add(memebf46a84) var csType_allocs *cgoAllocMap - ref9220f954.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9220f954.Borrow(csType_allocs) + refebf46a84.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsebf46a84.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9220f954.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9220f954.Borrow(cpNext_allocs) - - var cdriverID_allocs *cgoAllocMap - ref9220f954.driverID, cdriverID_allocs = (C.VkDriverIdKHR)(x.DriverID), cgoAllocsUnknown - allocs9220f954.Borrow(cdriverID_allocs) - - var cdriverName_allocs *cgoAllocMap - ref9220f954.driverName, cdriverName_allocs = *(*[256]C.char)(unsafe.Pointer(&x.DriverName)), cgoAllocsUnknown - allocs9220f954.Borrow(cdriverName_allocs) - - var cdriverInfo_allocs *cgoAllocMap - ref9220f954.driverInfo, cdriverInfo_allocs = *(*[256]C.char)(unsafe.Pointer(&x.DriverInfo)), cgoAllocsUnknown - allocs9220f954.Borrow(cdriverInfo_allocs) + refebf46a84.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsebf46a84.Borrow(cpNext_allocs) - var cconformanceVersion_allocs *cgoAllocMap - ref9220f954.conformanceVersion, cconformanceVersion_allocs = x.ConformanceVersion.PassValue() - allocs9220f954.Borrow(cconformanceVersion_allocs) + var cmemoryTypeBits_allocs *cgoAllocMap + refebf46a84.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown + allocsebf46a84.Borrow(cmemoryTypeBits_allocs) - x.ref9220f954 = ref9220f954 - x.allocs9220f954 = allocs9220f954 - return ref9220f954, allocs9220f954 + x.refebf46a84 = refebf46a84 + x.allocsebf46a84 = allocsebf46a84 + return refebf46a84, allocsebf46a84 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceDriverProperties) PassValue() (C.VkPhysicalDeviceDriverPropertiesKHR, *cgoAllocMap) { - if x.ref9220f954 != nil { - return *x.ref9220f954, nil +func (x MemoryHostPointerProperties) PassValue() (C.VkMemoryHostPointerPropertiesEXT, *cgoAllocMap) { + if x.refebf46a84 != nil { + return *x.refebf46a84, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25244,97 +52254,90 @@ func (x PhysicalDeviceDriverProperties) PassValue() (C.VkPhysicalDeviceDriverPro // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceDriverProperties) Deref() { - if x.ref9220f954 == nil { +func (x *MemoryHostPointerProperties) Deref() { + if x.refebf46a84 == nil { return } - x.SType = (StructureType)(x.ref9220f954.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9220f954.pNext)) - x.DriverID = (DriverId)(x.ref9220f954.driverID) - x.DriverName = *(*[256]byte)(unsafe.Pointer(&x.ref9220f954.driverName)) - x.DriverInfo = *(*[256]byte)(unsafe.Pointer(&x.ref9220f954.driverInfo)) - x.ConformanceVersion = *NewConformanceVersionRef(unsafe.Pointer(&x.ref9220f954.conformanceVersion)) + x.SType = (StructureType)(x.refebf46a84.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refebf46a84.pNext)) + x.MemoryTypeBits = (uint32)(x.refebf46a84.memoryTypeBits) } -// allocPhysicalDeviceVulkanMemoryModelFeaturesMemory allocates memory for type C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR in C. +// allocPhysicalDeviceExternalMemoryHostPropertiesMemory allocates memory for type C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceVulkanMemoryModelFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVulkanMemoryModelFeaturesValue)) +func allocPhysicalDeviceExternalMemoryHostPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalMemoryHostPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceVulkanMemoryModelFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR{}) +const sizeOfPhysicalDeviceExternalMemoryHostPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVulkanMemoryModelFeatures) Ref() *C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { +func (x *PhysicalDeviceExternalMemoryHostProperties) Ref() *C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT { if x == nil { return nil } - return x.ref2b17642b + return x.ref7f697d15 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceVulkanMemoryModelFeatures) Free() { - if x != nil && x.allocs2b17642b != nil { - x.allocs2b17642b.(*cgoAllocMap).Free() - x.ref2b17642b = nil +func (x *PhysicalDeviceExternalMemoryHostProperties) Free() { + if x != nil && x.allocs7f697d15 != nil { + x.allocs7f697d15.(*cgoAllocMap).Free() + x.ref7f697d15 = nil } } -// NewPhysicalDeviceVulkanMemoryModelFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceExternalMemoryHostPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceVulkanMemoryModelFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVulkanMemoryModelFeatures { +func NewPhysicalDeviceExternalMemoryHostPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceExternalMemoryHostProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceVulkanMemoryModelFeatures) - obj.ref2b17642b = (*C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceExternalMemoryHostProperties) + obj.ref7f697d15 = (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceVulkanMemoryModelFeatures) PassRef() (*C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR, *cgoAllocMap) { +func (x *PhysicalDeviceExternalMemoryHostProperties) PassRef() (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2b17642b != nil { - return x.ref2b17642b, nil + } else if x.ref7f697d15 != nil { + return x.ref7f697d15, nil } - mem2b17642b := allocPhysicalDeviceVulkanMemoryModelFeaturesMemory(1) - ref2b17642b := (*C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR)(mem2b17642b) - allocs2b17642b := new(cgoAllocMap) - allocs2b17642b.Add(mem2b17642b) + mem7f697d15 := allocPhysicalDeviceExternalMemoryHostPropertiesMemory(1) + ref7f697d15 := (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT)(mem7f697d15) + allocs7f697d15 := new(cgoAllocMap) + allocs7f697d15.Add(mem7f697d15) var csType_allocs *cgoAllocMap - ref2b17642b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2b17642b.Borrow(csType_allocs) + ref7f697d15.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7f697d15.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2b17642b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2b17642b.Borrow(cpNext_allocs) - - var cvulkanMemoryModel_allocs *cgoAllocMap - ref2b17642b.vulkanMemoryModel, cvulkanMemoryModel_allocs = (C.VkBool32)(x.VulkanMemoryModel), cgoAllocsUnknown - allocs2b17642b.Borrow(cvulkanMemoryModel_allocs) + ref7f697d15.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7f697d15.Borrow(cpNext_allocs) - var cvulkanMemoryModelDeviceScope_allocs *cgoAllocMap - ref2b17642b.vulkanMemoryModelDeviceScope, cvulkanMemoryModelDeviceScope_allocs = (C.VkBool32)(x.VulkanMemoryModelDeviceScope), cgoAllocsUnknown - allocs2b17642b.Borrow(cvulkanMemoryModelDeviceScope_allocs) + var cminImportedHostPointerAlignment_allocs *cgoAllocMap + ref7f697d15.minImportedHostPointerAlignment, cminImportedHostPointerAlignment_allocs = (C.VkDeviceSize)(x.MinImportedHostPointerAlignment), cgoAllocsUnknown + allocs7f697d15.Borrow(cminImportedHostPointerAlignment_allocs) - x.ref2b17642b = ref2b17642b - x.allocs2b17642b = allocs2b17642b - return ref2b17642b, allocs2b17642b + x.ref7f697d15 = ref7f697d15 + x.allocs7f697d15 = allocs7f697d15 + return ref7f697d15, allocs7f697d15 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceVulkanMemoryModelFeatures) PassValue() (C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR, *cgoAllocMap) { - if x.ref2b17642b != nil { - return *x.ref2b17642b, nil +func (x PhysicalDeviceExternalMemoryHostProperties) PassValue() (C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT, *cgoAllocMap) { + if x.ref7f697d15 != nil { + return *x.ref7f697d15, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25342,143 +52345,90 @@ func (x PhysicalDeviceVulkanMemoryModelFeatures) PassValue() (C.VkPhysicalDevice // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceVulkanMemoryModelFeatures) Deref() { - if x.ref2b17642b == nil { +func (x *PhysicalDeviceExternalMemoryHostProperties) Deref() { + if x.ref7f697d15 == nil { return } - x.SType = (StructureType)(x.ref2b17642b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2b17642b.pNext)) - x.VulkanMemoryModel = (Bool32)(x.ref2b17642b.vulkanMemoryModel) - x.VulkanMemoryModelDeviceScope = (Bool32)(x.ref2b17642b.vulkanMemoryModelDeviceScope) -} - -func (x DebugReportCallbackFunc) PassRef() (ref *C.PFN_vkDebugReportCallbackEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - if debugReportCallbackFuncC918AAC4Func == nil { - debugReportCallbackFuncC918AAC4Func = x - } - return (*C.PFN_vkDebugReportCallbackEXT)(C.PFN_vkDebugReportCallbackEXT_c918aac4), nil -} - -func (x DebugReportCallbackFunc) PassValue() (ref C.PFN_vkDebugReportCallbackEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - if debugReportCallbackFuncC918AAC4Func == nil { - debugReportCallbackFuncC918AAC4Func = x - } - return (C.PFN_vkDebugReportCallbackEXT)(C.PFN_vkDebugReportCallbackEXT_c918aac4), nil -} - -func NewDebugReportCallbackFuncRef(ref unsafe.Pointer) *DebugReportCallbackFunc { - return (*DebugReportCallbackFunc)(ref) -} - -//export debugReportCallbackFuncC918AAC4 -func debugReportCallbackFuncC918AAC4(cflags C.VkDebugReportFlagsEXT, cobjectType C.VkDebugReportObjectTypeEXT, cobject C.uint64_t, clocation C.size_t, cmessageCode C.int32_t, cpLayerPrefix *C.char, cpMessage *C.char, cpUserData unsafe.Pointer) C.VkBool32 { - if debugReportCallbackFuncC918AAC4Func != nil { - flagsc918aac4 := (DebugReportFlags)(cflags) - objectTypec918aac4 := (DebugReportObjectType)(cobjectType) - objectc918aac4 := (uint64)(cobject) - locationc918aac4 := (uint)(clocation) - messageCodec918aac4 := (int32)(cmessageCode) - pLayerPrefixc918aac4 := packPCharString(cpLayerPrefix) - pMessagec918aac4 := packPCharString(cpMessage) - pUserDatac918aac4 := (unsafe.Pointer)(unsafe.Pointer(cpUserData)) - retc918aac4 := debugReportCallbackFuncC918AAC4Func(flagsc918aac4, objectTypec918aac4, objectc918aac4, locationc918aac4, messageCodec918aac4, pLayerPrefixc918aac4, pMessagec918aac4, pUserDatac918aac4) - ret, _ := (C.VkBool32)(retc918aac4), cgoAllocsUnknown - return ret - } - panic("callback func has not been set (race?)") + x.SType = (StructureType)(x.ref7f697d15.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7f697d15.pNext)) + x.MinImportedHostPointerAlignment = (DeviceSize)(x.ref7f697d15.minImportedHostPointerAlignment) } -var debugReportCallbackFuncC918AAC4Func DebugReportCallbackFunc - -// allocDebugReportCallbackCreateInfoMemory allocates memory for type C.VkDebugReportCallbackCreateInfoEXT in C. +// allocPipelineCompilerControlCreateInfoAMDMemory allocates memory for type C.VkPipelineCompilerControlCreateInfoAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocDebugReportCallbackCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugReportCallbackCreateInfoValue)) +func allocPipelineCompilerControlCreateInfoAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCompilerControlCreateInfoAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDebugReportCallbackCreateInfoValue = unsafe.Sizeof([1]C.VkDebugReportCallbackCreateInfoEXT{}) +const sizeOfPipelineCompilerControlCreateInfoAMDValue = unsafe.Sizeof([1]C.VkPipelineCompilerControlCreateInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugReportCallbackCreateInfo) Ref() *C.VkDebugReportCallbackCreateInfoEXT { +func (x *PipelineCompilerControlCreateInfoAMD) Ref() *C.VkPipelineCompilerControlCreateInfoAMD { if x == nil { return nil } - return x.refc8238563 + return x.ref46a09e46 } - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *DebugReportCallbackCreateInfo) Free() { - if x != nil && x.allocsc8238563 != nil { - x.allocsc8238563.(*cgoAllocMap).Free() - x.refc8238563 = nil + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PipelineCompilerControlCreateInfoAMD) Free() { + if x != nil && x.allocs46a09e46 != nil { + x.allocs46a09e46.(*cgoAllocMap).Free() + x.ref46a09e46 = nil } } -// NewDebugReportCallbackCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineCompilerControlCreateInfoAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDebugReportCallbackCreateInfoRef(ref unsafe.Pointer) *DebugReportCallbackCreateInfo { +func NewPipelineCompilerControlCreateInfoAMDRef(ref unsafe.Pointer) *PipelineCompilerControlCreateInfoAMD { if ref == nil { return nil } - obj := new(DebugReportCallbackCreateInfo) - obj.refc8238563 = (*C.VkDebugReportCallbackCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(PipelineCompilerControlCreateInfoAMD) + obj.ref46a09e46 = (*C.VkPipelineCompilerControlCreateInfoAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DebugReportCallbackCreateInfo) PassRef() (*C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { +func (x *PipelineCompilerControlCreateInfoAMD) PassRef() (*C.VkPipelineCompilerControlCreateInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc8238563 != nil { - return x.refc8238563, nil + } else if x.ref46a09e46 != nil { + return x.ref46a09e46, nil } - memc8238563 := allocDebugReportCallbackCreateInfoMemory(1) - refc8238563 := (*C.VkDebugReportCallbackCreateInfoEXT)(memc8238563) - allocsc8238563 := new(cgoAllocMap) - allocsc8238563.Add(memc8238563) + mem46a09e46 := allocPipelineCompilerControlCreateInfoAMDMemory(1) + ref46a09e46 := (*C.VkPipelineCompilerControlCreateInfoAMD)(mem46a09e46) + allocs46a09e46 := new(cgoAllocMap) + allocs46a09e46.Add(mem46a09e46) var csType_allocs *cgoAllocMap - refc8238563.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc8238563.Borrow(csType_allocs) + ref46a09e46.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs46a09e46.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc8238563.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc8238563.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refc8238563.flags, cflags_allocs = (C.VkDebugReportFlagsEXT)(x.Flags), cgoAllocsUnknown - allocsc8238563.Borrow(cflags_allocs) - - var cpfnCallback_allocs *cgoAllocMap - refc8238563.pfnCallback, cpfnCallback_allocs = x.PfnCallback.PassValue() - allocsc8238563.Borrow(cpfnCallback_allocs) + ref46a09e46.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs46a09e46.Borrow(cpNext_allocs) - var cpUserData_allocs *cgoAllocMap - refc8238563.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown - allocsc8238563.Borrow(cpUserData_allocs) + var ccompilerControlFlags_allocs *cgoAllocMap + ref46a09e46.compilerControlFlags, ccompilerControlFlags_allocs = (C.VkPipelineCompilerControlFlagsAMD)(x.CompilerControlFlags), cgoAllocsUnknown + allocs46a09e46.Borrow(ccompilerControlFlags_allocs) - x.refc8238563 = refc8238563 - x.allocsc8238563 = allocsc8238563 - return refc8238563, allocsc8238563 + x.ref46a09e46 = ref46a09e46 + x.allocs46a09e46 = allocs46a09e46 + return ref46a09e46, allocs46a09e46 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DebugReportCallbackCreateInfo) PassValue() (C.VkDebugReportCallbackCreateInfoEXT, *cgoAllocMap) { - if x.refc8238563 != nil { - return *x.refc8238563, nil +func (x PipelineCompilerControlCreateInfoAMD) PassValue() (C.VkPipelineCompilerControlCreateInfoAMD, *cgoAllocMap) { + if x.ref46a09e46 != nil { + return *x.ref46a09e46, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25486,92 +52436,90 @@ func (x DebugReportCallbackCreateInfo) PassValue() (C.VkDebugReportCallbackCreat // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DebugReportCallbackCreateInfo) Deref() { - if x.refc8238563 == nil { +func (x *PipelineCompilerControlCreateInfoAMD) Deref() { + if x.ref46a09e46 == nil { return } - x.SType = (StructureType)(x.refc8238563.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc8238563.pNext)) - x.Flags = (DebugReportFlags)(x.refc8238563.flags) - x.PfnCallback = *NewDebugReportCallbackFuncRef(unsafe.Pointer(&x.refc8238563.pfnCallback)) - x.PUserData = (unsafe.Pointer)(unsafe.Pointer(x.refc8238563.pUserData)) + x.SType = (StructureType)(x.ref46a09e46.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref46a09e46.pNext)) + x.CompilerControlFlags = (PipelineCompilerControlFlagsAMD)(x.ref46a09e46.compilerControlFlags) } -// allocPipelineRasterizationStateRasterizationOrderAMDMemory allocates memory for type C.VkPipelineRasterizationStateRasterizationOrderAMD in C. +// allocCalibratedTimestampInfoMemory allocates memory for type C.VkCalibratedTimestampInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineRasterizationStateRasterizationOrderAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationStateRasterizationOrderAMDValue)) +func allocCalibratedTimestampInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCalibratedTimestampInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineRasterizationStateRasterizationOrderAMDValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateRasterizationOrderAMD{}) +const sizeOfCalibratedTimestampInfoValue = unsafe.Sizeof([1]C.VkCalibratedTimestampInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationStateRasterizationOrderAMD) Ref() *C.VkPipelineRasterizationStateRasterizationOrderAMD { +func (x *CalibratedTimestampInfo) Ref() *C.VkCalibratedTimestampInfoEXT { if x == nil { return nil } - return x.ref5098cf82 + return x.ref5f061d2a } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineRasterizationStateRasterizationOrderAMD) Free() { - if x != nil && x.allocs5098cf82 != nil { - x.allocs5098cf82.(*cgoAllocMap).Free() - x.ref5098cf82 = nil +func (x *CalibratedTimestampInfo) Free() { + if x != nil && x.allocs5f061d2a != nil { + x.allocs5f061d2a.(*cgoAllocMap).Free() + x.ref5f061d2a = nil } } -// NewPipelineRasterizationStateRasterizationOrderAMDRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCalibratedTimestampInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineRasterizationStateRasterizationOrderAMDRef(ref unsafe.Pointer) *PipelineRasterizationStateRasterizationOrderAMD { +func NewCalibratedTimestampInfoRef(ref unsafe.Pointer) *CalibratedTimestampInfo { if ref == nil { return nil } - obj := new(PipelineRasterizationStateRasterizationOrderAMD) - obj.ref5098cf82 = (*C.VkPipelineRasterizationStateRasterizationOrderAMD)(unsafe.Pointer(ref)) + obj := new(CalibratedTimestampInfo) + obj.ref5f061d2a = (*C.VkCalibratedTimestampInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineRasterizationStateRasterizationOrderAMD) PassRef() (*C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { +func (x *CalibratedTimestampInfo) PassRef() (*C.VkCalibratedTimestampInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5098cf82 != nil { - return x.ref5098cf82, nil + } else if x.ref5f061d2a != nil { + return x.ref5f061d2a, nil } - mem5098cf82 := allocPipelineRasterizationStateRasterizationOrderAMDMemory(1) - ref5098cf82 := (*C.VkPipelineRasterizationStateRasterizationOrderAMD)(mem5098cf82) - allocs5098cf82 := new(cgoAllocMap) - allocs5098cf82.Add(mem5098cf82) + mem5f061d2a := allocCalibratedTimestampInfoMemory(1) + ref5f061d2a := (*C.VkCalibratedTimestampInfoEXT)(mem5f061d2a) + allocs5f061d2a := new(cgoAllocMap) + allocs5f061d2a.Add(mem5f061d2a) var csType_allocs *cgoAllocMap - ref5098cf82.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5098cf82.Borrow(csType_allocs) + ref5f061d2a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5f061d2a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5098cf82.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5098cf82.Borrow(cpNext_allocs) + ref5f061d2a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5f061d2a.Borrow(cpNext_allocs) - var crasterizationOrder_allocs *cgoAllocMap - ref5098cf82.rasterizationOrder, crasterizationOrder_allocs = (C.VkRasterizationOrderAMD)(x.RasterizationOrder), cgoAllocsUnknown - allocs5098cf82.Borrow(crasterizationOrder_allocs) + var ctimeDomain_allocs *cgoAllocMap + ref5f061d2a.timeDomain, ctimeDomain_allocs = (C.VkTimeDomainEXT)(x.TimeDomain), cgoAllocsUnknown + allocs5f061d2a.Borrow(ctimeDomain_allocs) - x.ref5098cf82 = ref5098cf82 - x.allocs5098cf82 = allocs5098cf82 - return ref5098cf82, allocs5098cf82 + x.ref5f061d2a = ref5f061d2a + x.allocs5f061d2a = allocs5f061d2a + return ref5f061d2a, allocs5f061d2a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineRasterizationStateRasterizationOrderAMD) PassValue() (C.VkPipelineRasterizationStateRasterizationOrderAMD, *cgoAllocMap) { - if x.ref5098cf82 != nil { - return *x.ref5098cf82, nil +func (x CalibratedTimestampInfo) PassValue() (C.VkCalibratedTimestampInfoEXT, *cgoAllocMap) { + if x.ref5f061d2a != nil { + return *x.ref5f061d2a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25579,98 +52527,142 @@ func (x PipelineRasterizationStateRasterizationOrderAMD) PassValue() (C.VkPipeli // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineRasterizationStateRasterizationOrderAMD) Deref() { - if x.ref5098cf82 == nil { +func (x *CalibratedTimestampInfo) Deref() { + if x.ref5f061d2a == nil { return } - x.SType = (StructureType)(x.ref5098cf82.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5098cf82.pNext)) - x.RasterizationOrder = (RasterizationOrderAMD)(x.ref5098cf82.rasterizationOrder) + x.SType = (StructureType)(x.ref5f061d2a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5f061d2a.pNext)) + x.TimeDomain = (TimeDomain)(x.ref5f061d2a.timeDomain) } -// allocDebugMarkerObjectNameInfoMemory allocates memory for type C.VkDebugMarkerObjectNameInfoEXT in C. +// allocPhysicalDeviceShaderCorePropertiesAMDMemory allocates memory for type C.VkPhysicalDeviceShaderCorePropertiesAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocDebugMarkerObjectNameInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugMarkerObjectNameInfoValue)) +func allocPhysicalDeviceShaderCorePropertiesAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderCorePropertiesAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDebugMarkerObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectNameInfoEXT{}) +const sizeOfPhysicalDeviceShaderCorePropertiesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderCorePropertiesAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugMarkerObjectNameInfo) Ref() *C.VkDebugMarkerObjectNameInfoEXT { +func (x *PhysicalDeviceShaderCorePropertiesAMD) Ref() *C.VkPhysicalDeviceShaderCorePropertiesAMD { if x == nil { return nil } - return x.refe4983fab + return x.refde4b3b09 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DebugMarkerObjectNameInfo) Free() { - if x != nil && x.allocse4983fab != nil { - x.allocse4983fab.(*cgoAllocMap).Free() - x.refe4983fab = nil +func (x *PhysicalDeviceShaderCorePropertiesAMD) Free() { + if x != nil && x.allocsde4b3b09 != nil { + x.allocsde4b3b09.(*cgoAllocMap).Free() + x.refde4b3b09 = nil } } -// NewDebugMarkerObjectNameInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderCorePropertiesAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDebugMarkerObjectNameInfoRef(ref unsafe.Pointer) *DebugMarkerObjectNameInfo { +func NewPhysicalDeviceShaderCorePropertiesAMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderCorePropertiesAMD { if ref == nil { return nil } - obj := new(DebugMarkerObjectNameInfo) - obj.refe4983fab = (*C.VkDebugMarkerObjectNameInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderCorePropertiesAMD) + obj.refde4b3b09 = (*C.VkPhysicalDeviceShaderCorePropertiesAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DebugMarkerObjectNameInfo) PassRef() (*C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderCorePropertiesAMD) PassRef() (*C.VkPhysicalDeviceShaderCorePropertiesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe4983fab != nil { - return x.refe4983fab, nil + } else if x.refde4b3b09 != nil { + return x.refde4b3b09, nil } - meme4983fab := allocDebugMarkerObjectNameInfoMemory(1) - refe4983fab := (*C.VkDebugMarkerObjectNameInfoEXT)(meme4983fab) - allocse4983fab := new(cgoAllocMap) - allocse4983fab.Add(meme4983fab) + memde4b3b09 := allocPhysicalDeviceShaderCorePropertiesAMDMemory(1) + refde4b3b09 := (*C.VkPhysicalDeviceShaderCorePropertiesAMD)(memde4b3b09) + allocsde4b3b09 := new(cgoAllocMap) + allocsde4b3b09.Add(memde4b3b09) var csType_allocs *cgoAllocMap - refe4983fab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse4983fab.Borrow(csType_allocs) + refde4b3b09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsde4b3b09.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe4983fab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse4983fab.Borrow(cpNext_allocs) + refde4b3b09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsde4b3b09.Borrow(cpNext_allocs) - var cobjectType_allocs *cgoAllocMap - refe4983fab.objectType, cobjectType_allocs = (C.VkDebugReportObjectTypeEXT)(x.ObjectType), cgoAllocsUnknown - allocse4983fab.Borrow(cobjectType_allocs) + var cshaderEngineCount_allocs *cgoAllocMap + refde4b3b09.shaderEngineCount, cshaderEngineCount_allocs = (C.uint32_t)(x.ShaderEngineCount), cgoAllocsUnknown + allocsde4b3b09.Borrow(cshaderEngineCount_allocs) - var cobject_allocs *cgoAllocMap - refe4983fab.object, cobject_allocs = (C.uint64_t)(x.Object), cgoAllocsUnknown - allocse4983fab.Borrow(cobject_allocs) + var cshaderArraysPerEngineCount_allocs *cgoAllocMap + refde4b3b09.shaderArraysPerEngineCount, cshaderArraysPerEngineCount_allocs = (C.uint32_t)(x.ShaderArraysPerEngineCount), cgoAllocsUnknown + allocsde4b3b09.Borrow(cshaderArraysPerEngineCount_allocs) - var cpObjectName_allocs *cgoAllocMap - refe4983fab.pObjectName, cpObjectName_allocs = unpackPCharString(x.PObjectName) - allocse4983fab.Borrow(cpObjectName_allocs) + var ccomputeUnitsPerShaderArray_allocs *cgoAllocMap + refde4b3b09.computeUnitsPerShaderArray, ccomputeUnitsPerShaderArray_allocs = (C.uint32_t)(x.ComputeUnitsPerShaderArray), cgoAllocsUnknown + allocsde4b3b09.Borrow(ccomputeUnitsPerShaderArray_allocs) - x.refe4983fab = refe4983fab - x.allocse4983fab = allocse4983fab - return refe4983fab, allocse4983fab + var csimdPerComputeUnit_allocs *cgoAllocMap + refde4b3b09.simdPerComputeUnit, csimdPerComputeUnit_allocs = (C.uint32_t)(x.SimdPerComputeUnit), cgoAllocsUnknown + allocsde4b3b09.Borrow(csimdPerComputeUnit_allocs) + + var cwavefrontsPerSimd_allocs *cgoAllocMap + refde4b3b09.wavefrontsPerSimd, cwavefrontsPerSimd_allocs = (C.uint32_t)(x.WavefrontsPerSimd), cgoAllocsUnknown + allocsde4b3b09.Borrow(cwavefrontsPerSimd_allocs) + + var cwavefrontSize_allocs *cgoAllocMap + refde4b3b09.wavefrontSize, cwavefrontSize_allocs = (C.uint32_t)(x.WavefrontSize), cgoAllocsUnknown + allocsde4b3b09.Borrow(cwavefrontSize_allocs) + + var csgprsPerSimd_allocs *cgoAllocMap + refde4b3b09.sgprsPerSimd, csgprsPerSimd_allocs = (C.uint32_t)(x.SgprsPerSimd), cgoAllocsUnknown + allocsde4b3b09.Borrow(csgprsPerSimd_allocs) + + var cminSgprAllocation_allocs *cgoAllocMap + refde4b3b09.minSgprAllocation, cminSgprAllocation_allocs = (C.uint32_t)(x.MinSgprAllocation), cgoAllocsUnknown + allocsde4b3b09.Borrow(cminSgprAllocation_allocs) + + var cmaxSgprAllocation_allocs *cgoAllocMap + refde4b3b09.maxSgprAllocation, cmaxSgprAllocation_allocs = (C.uint32_t)(x.MaxSgprAllocation), cgoAllocsUnknown + allocsde4b3b09.Borrow(cmaxSgprAllocation_allocs) + + var csgprAllocationGranularity_allocs *cgoAllocMap + refde4b3b09.sgprAllocationGranularity, csgprAllocationGranularity_allocs = (C.uint32_t)(x.SgprAllocationGranularity), cgoAllocsUnknown + allocsde4b3b09.Borrow(csgprAllocationGranularity_allocs) + + var cvgprsPerSimd_allocs *cgoAllocMap + refde4b3b09.vgprsPerSimd, cvgprsPerSimd_allocs = (C.uint32_t)(x.VgprsPerSimd), cgoAllocsUnknown + allocsde4b3b09.Borrow(cvgprsPerSimd_allocs) + + var cminVgprAllocation_allocs *cgoAllocMap + refde4b3b09.minVgprAllocation, cminVgprAllocation_allocs = (C.uint32_t)(x.MinVgprAllocation), cgoAllocsUnknown + allocsde4b3b09.Borrow(cminVgprAllocation_allocs) + + var cmaxVgprAllocation_allocs *cgoAllocMap + refde4b3b09.maxVgprAllocation, cmaxVgprAllocation_allocs = (C.uint32_t)(x.MaxVgprAllocation), cgoAllocsUnknown + allocsde4b3b09.Borrow(cmaxVgprAllocation_allocs) + + var cvgprAllocationGranularity_allocs *cgoAllocMap + refde4b3b09.vgprAllocationGranularity, cvgprAllocationGranularity_allocs = (C.uint32_t)(x.VgprAllocationGranularity), cgoAllocsUnknown + allocsde4b3b09.Borrow(cvgprAllocationGranularity_allocs) + + x.refde4b3b09 = refde4b3b09 + x.allocsde4b3b09 = allocsde4b3b09 + return refde4b3b09, allocsde4b3b09 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DebugMarkerObjectNameInfo) PassValue() (C.VkDebugMarkerObjectNameInfoEXT, *cgoAllocMap) { - if x.refe4983fab != nil { - return *x.refe4983fab, nil +func (x PhysicalDeviceShaderCorePropertiesAMD) PassValue() (C.VkPhysicalDeviceShaderCorePropertiesAMD, *cgoAllocMap) { + if x.refde4b3b09 != nil { + return *x.refde4b3b09, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25678,108 +52670,103 @@ func (x DebugMarkerObjectNameInfo) PassValue() (C.VkDebugMarkerObjectNameInfoEXT // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DebugMarkerObjectNameInfo) Deref() { - if x.refe4983fab == nil { +func (x *PhysicalDeviceShaderCorePropertiesAMD) Deref() { + if x.refde4b3b09 == nil { return } - x.SType = (StructureType)(x.refe4983fab.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe4983fab.pNext)) - x.ObjectType = (DebugReportObjectType)(x.refe4983fab.objectType) - x.Object = (uint64)(x.refe4983fab.object) - x.PObjectName = packPCharString(x.refe4983fab.pObjectName) + x.SType = (StructureType)(x.refde4b3b09.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refde4b3b09.pNext)) + x.ShaderEngineCount = (uint32)(x.refde4b3b09.shaderEngineCount) + x.ShaderArraysPerEngineCount = (uint32)(x.refde4b3b09.shaderArraysPerEngineCount) + x.ComputeUnitsPerShaderArray = (uint32)(x.refde4b3b09.computeUnitsPerShaderArray) + x.SimdPerComputeUnit = (uint32)(x.refde4b3b09.simdPerComputeUnit) + x.WavefrontsPerSimd = (uint32)(x.refde4b3b09.wavefrontsPerSimd) + x.WavefrontSize = (uint32)(x.refde4b3b09.wavefrontSize) + x.SgprsPerSimd = (uint32)(x.refde4b3b09.sgprsPerSimd) + x.MinSgprAllocation = (uint32)(x.refde4b3b09.minSgprAllocation) + x.MaxSgprAllocation = (uint32)(x.refde4b3b09.maxSgprAllocation) + x.SgprAllocationGranularity = (uint32)(x.refde4b3b09.sgprAllocationGranularity) + x.VgprsPerSimd = (uint32)(x.refde4b3b09.vgprsPerSimd) + x.MinVgprAllocation = (uint32)(x.refde4b3b09.minVgprAllocation) + x.MaxVgprAllocation = (uint32)(x.refde4b3b09.maxVgprAllocation) + x.VgprAllocationGranularity = (uint32)(x.refde4b3b09.vgprAllocationGranularity) } -// allocDebugMarkerObjectTagInfoMemory allocates memory for type C.VkDebugMarkerObjectTagInfoEXT in C. +// allocDeviceMemoryOverallocationCreateInfoAMDMemory allocates memory for type C.VkDeviceMemoryOverallocationCreateInfoAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocDebugMarkerObjectTagInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugMarkerObjectTagInfoValue)) +func allocDeviceMemoryOverallocationCreateInfoAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceMemoryOverallocationCreateInfoAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDebugMarkerObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerObjectTagInfoEXT{}) +const sizeOfDeviceMemoryOverallocationCreateInfoAMDValue = unsafe.Sizeof([1]C.VkDeviceMemoryOverallocationCreateInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugMarkerObjectTagInfo) Ref() *C.VkDebugMarkerObjectTagInfoEXT { +func (x *DeviceMemoryOverallocationCreateInfoAMD) Ref() *C.VkDeviceMemoryOverallocationCreateInfoAMD { if x == nil { return nil } - return x.refa41a5c3b + return x.ref5ccee475 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DebugMarkerObjectTagInfo) Free() { - if x != nil && x.allocsa41a5c3b != nil { - x.allocsa41a5c3b.(*cgoAllocMap).Free() - x.refa41a5c3b = nil +func (x *DeviceMemoryOverallocationCreateInfoAMD) Free() { + if x != nil && x.allocs5ccee475 != nil { + x.allocs5ccee475.(*cgoAllocMap).Free() + x.ref5ccee475 = nil } } -// NewDebugMarkerObjectTagInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceMemoryOverallocationCreateInfoAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDebugMarkerObjectTagInfoRef(ref unsafe.Pointer) *DebugMarkerObjectTagInfo { +func NewDeviceMemoryOverallocationCreateInfoAMDRef(ref unsafe.Pointer) *DeviceMemoryOverallocationCreateInfoAMD { if ref == nil { return nil } - obj := new(DebugMarkerObjectTagInfo) - obj.refa41a5c3b = (*C.VkDebugMarkerObjectTagInfoEXT)(unsafe.Pointer(ref)) + obj := new(DeviceMemoryOverallocationCreateInfoAMD) + obj.ref5ccee475 = (*C.VkDeviceMemoryOverallocationCreateInfoAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DebugMarkerObjectTagInfo) PassRef() (*C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { +func (x *DeviceMemoryOverallocationCreateInfoAMD) PassRef() (*C.VkDeviceMemoryOverallocationCreateInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa41a5c3b != nil { - return x.refa41a5c3b, nil + } else if x.ref5ccee475 != nil { + return x.ref5ccee475, nil } - mema41a5c3b := allocDebugMarkerObjectTagInfoMemory(1) - refa41a5c3b := (*C.VkDebugMarkerObjectTagInfoEXT)(mema41a5c3b) - allocsa41a5c3b := new(cgoAllocMap) - allocsa41a5c3b.Add(mema41a5c3b) + mem5ccee475 := allocDeviceMemoryOverallocationCreateInfoAMDMemory(1) + ref5ccee475 := (*C.VkDeviceMemoryOverallocationCreateInfoAMD)(mem5ccee475) + allocs5ccee475 := new(cgoAllocMap) + allocs5ccee475.Add(mem5ccee475) var csType_allocs *cgoAllocMap - refa41a5c3b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa41a5c3b.Borrow(csType_allocs) + ref5ccee475.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs5ccee475.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa41a5c3b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa41a5c3b.Borrow(cpNext_allocs) - - var cobjectType_allocs *cgoAllocMap - refa41a5c3b.objectType, cobjectType_allocs = (C.VkDebugReportObjectTypeEXT)(x.ObjectType), cgoAllocsUnknown - allocsa41a5c3b.Borrow(cobjectType_allocs) - - var cobject_allocs *cgoAllocMap - refa41a5c3b.object, cobject_allocs = (C.uint64_t)(x.Object), cgoAllocsUnknown - allocsa41a5c3b.Borrow(cobject_allocs) - - var ctagName_allocs *cgoAllocMap - refa41a5c3b.tagName, ctagName_allocs = (C.uint64_t)(x.TagName), cgoAllocsUnknown - allocsa41a5c3b.Borrow(ctagName_allocs) - - var ctagSize_allocs *cgoAllocMap - refa41a5c3b.tagSize, ctagSize_allocs = (C.size_t)(x.TagSize), cgoAllocsUnknown - allocsa41a5c3b.Borrow(ctagSize_allocs) + ref5ccee475.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs5ccee475.Borrow(cpNext_allocs) - var cpTag_allocs *cgoAllocMap - refa41a5c3b.pTag, cpTag_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PTag)), cgoAllocsUnknown - allocsa41a5c3b.Borrow(cpTag_allocs) + var coverallocationBehavior_allocs *cgoAllocMap + ref5ccee475.overallocationBehavior, coverallocationBehavior_allocs = (C.VkMemoryOverallocationBehaviorAMD)(x.OverallocationBehavior), cgoAllocsUnknown + allocs5ccee475.Borrow(coverallocationBehavior_allocs) - x.refa41a5c3b = refa41a5c3b - x.allocsa41a5c3b = allocsa41a5c3b - return refa41a5c3b, allocsa41a5c3b + x.ref5ccee475 = ref5ccee475 + x.allocs5ccee475 = allocs5ccee475 + return ref5ccee475, allocs5ccee475 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DebugMarkerObjectTagInfo) PassValue() (C.VkDebugMarkerObjectTagInfoEXT, *cgoAllocMap) { - if x.refa41a5c3b != nil { - return *x.refa41a5c3b, nil +func (x DeviceMemoryOverallocationCreateInfoAMD) PassValue() (C.VkDeviceMemoryOverallocationCreateInfoAMD, *cgoAllocMap) { + if x.ref5ccee475 != nil { + return *x.ref5ccee475, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25787,98 +52774,90 @@ func (x DebugMarkerObjectTagInfo) PassValue() (C.VkDebugMarkerObjectTagInfoEXT, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DebugMarkerObjectTagInfo) Deref() { - if x.refa41a5c3b == nil { +func (x *DeviceMemoryOverallocationCreateInfoAMD) Deref() { + if x.ref5ccee475 == nil { return } - x.SType = (StructureType)(x.refa41a5c3b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa41a5c3b.pNext)) - x.ObjectType = (DebugReportObjectType)(x.refa41a5c3b.objectType) - x.Object = (uint64)(x.refa41a5c3b.object) - x.TagName = (uint64)(x.refa41a5c3b.tagName) - x.TagSize = (uint)(x.refa41a5c3b.tagSize) - x.PTag = (unsafe.Pointer)(unsafe.Pointer(x.refa41a5c3b.pTag)) + x.SType = (StructureType)(x.ref5ccee475.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5ccee475.pNext)) + x.OverallocationBehavior = (MemoryOverallocationBehaviorAMD)(x.ref5ccee475.overallocationBehavior) } -// allocDebugMarkerMarkerInfoMemory allocates memory for type C.VkDebugMarkerMarkerInfoEXT in C. +// allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDebugMarkerMarkerInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugMarkerMarkerInfoValue)) +func allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVertexAttributeDivisorPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDebugMarkerMarkerInfoValue = unsafe.Sizeof([1]C.VkDebugMarkerMarkerInfoEXT{}) +const sizeOfPhysicalDeviceVertexAttributeDivisorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugMarkerMarkerInfo) Ref() *C.VkDebugMarkerMarkerInfoEXT { +func (x *PhysicalDeviceVertexAttributeDivisorProperties) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { if x == nil { return nil } - return x.ref234b91fd + return x.refbd6b5075 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DebugMarkerMarkerInfo) Free() { - if x != nil && x.allocs234b91fd != nil { - x.allocs234b91fd.(*cgoAllocMap).Free() - x.ref234b91fd = nil +func (x *PhysicalDeviceVertexAttributeDivisorProperties) Free() { + if x != nil && x.allocsbd6b5075 != nil { + x.allocsbd6b5075.(*cgoAllocMap).Free() + x.refbd6b5075 = nil } } -// NewDebugMarkerMarkerInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceVertexAttributeDivisorPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDebugMarkerMarkerInfoRef(ref unsafe.Pointer) *DebugMarkerMarkerInfo { +func NewPhysicalDeviceVertexAttributeDivisorPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceVertexAttributeDivisorProperties { if ref == nil { return nil } - obj := new(DebugMarkerMarkerInfo) - obj.ref234b91fd = (*C.VkDebugMarkerMarkerInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceVertexAttributeDivisorProperties) + obj.refbd6b5075 = (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DebugMarkerMarkerInfo) PassRef() (*C.VkDebugMarkerMarkerInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceVertexAttributeDivisorProperties) PassRef() (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref234b91fd != nil { - return x.ref234b91fd, nil + } else if x.refbd6b5075 != nil { + return x.refbd6b5075, nil } - mem234b91fd := allocDebugMarkerMarkerInfoMemory(1) - ref234b91fd := (*C.VkDebugMarkerMarkerInfoEXT)(mem234b91fd) - allocs234b91fd := new(cgoAllocMap) - allocs234b91fd.Add(mem234b91fd) + membd6b5075 := allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory(1) + refbd6b5075 := (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)(membd6b5075) + allocsbd6b5075 := new(cgoAllocMap) + allocsbd6b5075.Add(membd6b5075) var csType_allocs *cgoAllocMap - ref234b91fd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs234b91fd.Borrow(csType_allocs) + refbd6b5075.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbd6b5075.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref234b91fd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs234b91fd.Borrow(cpNext_allocs) - - var cpMarkerName_allocs *cgoAllocMap - ref234b91fd.pMarkerName, cpMarkerName_allocs = unpackPCharString(x.PMarkerName) - allocs234b91fd.Borrow(cpMarkerName_allocs) + refbd6b5075.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbd6b5075.Borrow(cpNext_allocs) - var ccolor_allocs *cgoAllocMap - ref234b91fd.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown - allocs234b91fd.Borrow(ccolor_allocs) + var cmaxVertexAttribDivisor_allocs *cgoAllocMap + refbd6b5075.maxVertexAttribDivisor, cmaxVertexAttribDivisor_allocs = (C.uint32_t)(x.MaxVertexAttribDivisor), cgoAllocsUnknown + allocsbd6b5075.Borrow(cmaxVertexAttribDivisor_allocs) - x.ref234b91fd = ref234b91fd - x.allocs234b91fd = allocs234b91fd - return ref234b91fd, allocs234b91fd + x.refbd6b5075 = refbd6b5075 + x.allocsbd6b5075 = allocsbd6b5075 + return refbd6b5075, allocsbd6b5075 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DebugMarkerMarkerInfo) PassValue() (C.VkDebugMarkerMarkerInfoEXT, *cgoAllocMap) { - if x.ref234b91fd != nil { - return *x.ref234b91fd, nil +func (x PhysicalDeviceVertexAttributeDivisorProperties) PassValue() (C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, *cgoAllocMap) { + if x.refbd6b5075 != nil { + return *x.refbd6b5075, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25886,91 +52865,86 @@ func (x DebugMarkerMarkerInfo) PassValue() (C.VkDebugMarkerMarkerInfoEXT, *cgoAl // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DebugMarkerMarkerInfo) Deref() { - if x.ref234b91fd == nil { +func (x *PhysicalDeviceVertexAttributeDivisorProperties) Deref() { + if x.refbd6b5075 == nil { return } - x.SType = (StructureType)(x.ref234b91fd.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref234b91fd.pNext)) - x.PMarkerName = packPCharString(x.ref234b91fd.pMarkerName) - x.Color = *(*[4]float32)(unsafe.Pointer(&x.ref234b91fd.color)) + x.SType = (StructureType)(x.refbd6b5075.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbd6b5075.pNext)) + x.MaxVertexAttribDivisor = (uint32)(x.refbd6b5075.maxVertexAttribDivisor) } -// allocDedicatedAllocationImageCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationImageCreateInfoNV in C. +// allocVertexInputBindingDivisorDescriptionMemory allocates memory for type C.VkVertexInputBindingDivisorDescriptionEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDedicatedAllocationImageCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDedicatedAllocationImageCreateInfoNVValue)) +func allocVertexInputBindingDivisorDescriptionMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputBindingDivisorDescriptionValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDedicatedAllocationImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationImageCreateInfoNV{}) +const sizeOfVertexInputBindingDivisorDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputBindingDivisorDescriptionEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DedicatedAllocationImageCreateInfoNV) Ref() *C.VkDedicatedAllocationImageCreateInfoNV { +func (x *VertexInputBindingDivisorDescription) Ref() *C.VkVertexInputBindingDivisorDescriptionEXT { if x == nil { return nil } - return x.ref685d878b + return x.refd64d4396 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DedicatedAllocationImageCreateInfoNV) Free() { - if x != nil && x.allocs685d878b != nil { - x.allocs685d878b.(*cgoAllocMap).Free() - x.ref685d878b = nil +func (x *VertexInputBindingDivisorDescription) Free() { + if x != nil && x.allocsd64d4396 != nil { + x.allocsd64d4396.(*cgoAllocMap).Free() + x.refd64d4396 = nil } } -// NewDedicatedAllocationImageCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewVertexInputBindingDivisorDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDedicatedAllocationImageCreateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationImageCreateInfoNV { +func NewVertexInputBindingDivisorDescriptionRef(ref unsafe.Pointer) *VertexInputBindingDivisorDescription { if ref == nil { return nil } - obj := new(DedicatedAllocationImageCreateInfoNV) - obj.ref685d878b = (*C.VkDedicatedAllocationImageCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(VertexInputBindingDivisorDescription) + obj.refd64d4396 = (*C.VkVertexInputBindingDivisorDescriptionEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DedicatedAllocationImageCreateInfoNV) PassRef() (*C.VkDedicatedAllocationImageCreateInfoNV, *cgoAllocMap) { +func (x *VertexInputBindingDivisorDescription) PassRef() (*C.VkVertexInputBindingDivisorDescriptionEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref685d878b != nil { - return x.ref685d878b, nil + } else if x.refd64d4396 != nil { + return x.refd64d4396, nil } - mem685d878b := allocDedicatedAllocationImageCreateInfoNVMemory(1) - ref685d878b := (*C.VkDedicatedAllocationImageCreateInfoNV)(mem685d878b) - allocs685d878b := new(cgoAllocMap) - allocs685d878b.Add(mem685d878b) - - var csType_allocs *cgoAllocMap - ref685d878b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs685d878b.Borrow(csType_allocs) + memd64d4396 := allocVertexInputBindingDivisorDescriptionMemory(1) + refd64d4396 := (*C.VkVertexInputBindingDivisorDescriptionEXT)(memd64d4396) + allocsd64d4396 := new(cgoAllocMap) + allocsd64d4396.Add(memd64d4396) - var cpNext_allocs *cgoAllocMap - ref685d878b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs685d878b.Borrow(cpNext_allocs) + var cbinding_allocs *cgoAllocMap + refd64d4396.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown + allocsd64d4396.Borrow(cbinding_allocs) - var cdedicatedAllocation_allocs *cgoAllocMap - ref685d878b.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown - allocs685d878b.Borrow(cdedicatedAllocation_allocs) + var cdivisor_allocs *cgoAllocMap + refd64d4396.divisor, cdivisor_allocs = (C.uint32_t)(x.Divisor), cgoAllocsUnknown + allocsd64d4396.Borrow(cdivisor_allocs) - x.ref685d878b = ref685d878b - x.allocs685d878b = allocs685d878b - return ref685d878b, allocs685d878b + x.refd64d4396 = refd64d4396 + x.allocsd64d4396 = allocsd64d4396 + return refd64d4396, allocsd64d4396 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DedicatedAllocationImageCreateInfoNV) PassValue() (C.VkDedicatedAllocationImageCreateInfoNV, *cgoAllocMap) { - if x.ref685d878b != nil { - return *x.ref685d878b, nil +func (x VertexInputBindingDivisorDescription) PassValue() (C.VkVertexInputBindingDivisorDescriptionEXT, *cgoAllocMap) { + if x.refd64d4396 != nil { + return *x.refd64d4396, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -25978,90 +52952,131 @@ func (x DedicatedAllocationImageCreateInfoNV) PassValue() (C.VkDedicatedAllocati // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DedicatedAllocationImageCreateInfoNV) Deref() { - if x.ref685d878b == nil { +func (x *VertexInputBindingDivisorDescription) Deref() { + if x.refd64d4396 == nil { return } - x.SType = (StructureType)(x.ref685d878b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref685d878b.pNext)) - x.DedicatedAllocation = (Bool32)(x.ref685d878b.dedicatedAllocation) + x.Binding = (uint32)(x.refd64d4396.binding) + x.Divisor = (uint32)(x.refd64d4396.divisor) +} + +// allocPipelineVertexInputDivisorStateCreateInfoMemory allocates memory for type C.VkPipelineVertexInputDivisorStateCreateInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPipelineVertexInputDivisorStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineVertexInputDivisorStateCreateInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfPipelineVertexInputDivisorStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineVertexInputDivisorStateCreateInfoEXT{}) + +// unpackSVertexInputBindingDivisorDescription transforms a sliced Go data structure into plain C format. +func unpackSVertexInputBindingDivisorDescription(x []VertexInputBindingDivisorDescription) (unpacked *C.VkVertexInputBindingDivisorDescriptionEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkVertexInputBindingDivisorDescriptionEXT) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocVertexInputBindingDivisorDescriptionMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkVertexInputBindingDivisorDescriptionEXT)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkVertexInputBindingDivisorDescriptionEXT)(h.Data) + return } -// allocDedicatedAllocationBufferCreateInfoNVMemory allocates memory for type C.VkDedicatedAllocationBufferCreateInfoNV in C. -// The caller is responsible for freeing the this memory via C.free. -func allocDedicatedAllocationBufferCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDedicatedAllocationBufferCreateInfoNVValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) +// packSVertexInputBindingDivisorDescription reads sliced Go data structure out from plain C format. +func packSVertexInputBindingDivisorDescription(v []VertexInputBindingDivisorDescription, ptr0 *C.VkVertexInputBindingDivisorDescriptionEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfVertexInputBindingDivisorDescriptionValue]C.VkVertexInputBindingDivisorDescriptionEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewVertexInputBindingDivisorDescriptionRef(unsafe.Pointer(&ptr1)) } - return mem } -const sizeOfDedicatedAllocationBufferCreateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationBufferCreateInfoNV{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DedicatedAllocationBufferCreateInfoNV) Ref() *C.VkDedicatedAllocationBufferCreateInfoNV { +func (x *PipelineVertexInputDivisorStateCreateInfo) Ref() *C.VkPipelineVertexInputDivisorStateCreateInfoEXT { if x == nil { return nil } - return x.refbc745a8 + return x.ref86096bfd } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DedicatedAllocationBufferCreateInfoNV) Free() { - if x != nil && x.allocsbc745a8 != nil { - x.allocsbc745a8.(*cgoAllocMap).Free() - x.refbc745a8 = nil +func (x *PipelineVertexInputDivisorStateCreateInfo) Free() { + if x != nil && x.allocs86096bfd != nil { + x.allocs86096bfd.(*cgoAllocMap).Free() + x.ref86096bfd = nil } } -// NewDedicatedAllocationBufferCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineVertexInputDivisorStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDedicatedAllocationBufferCreateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationBufferCreateInfoNV { +func NewPipelineVertexInputDivisorStateCreateInfoRef(ref unsafe.Pointer) *PipelineVertexInputDivisorStateCreateInfo { if ref == nil { return nil } - obj := new(DedicatedAllocationBufferCreateInfoNV) - obj.refbc745a8 = (*C.VkDedicatedAllocationBufferCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(PipelineVertexInputDivisorStateCreateInfo) + obj.ref86096bfd = (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DedicatedAllocationBufferCreateInfoNV) PassRef() (*C.VkDedicatedAllocationBufferCreateInfoNV, *cgoAllocMap) { +func (x *PipelineVertexInputDivisorStateCreateInfo) PassRef() (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbc745a8 != nil { - return x.refbc745a8, nil + } else if x.ref86096bfd != nil { + return x.ref86096bfd, nil } - membc745a8 := allocDedicatedAllocationBufferCreateInfoNVMemory(1) - refbc745a8 := (*C.VkDedicatedAllocationBufferCreateInfoNV)(membc745a8) - allocsbc745a8 := new(cgoAllocMap) - allocsbc745a8.Add(membc745a8) + mem86096bfd := allocPipelineVertexInputDivisorStateCreateInfoMemory(1) + ref86096bfd := (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT)(mem86096bfd) + allocs86096bfd := new(cgoAllocMap) + allocs86096bfd.Add(mem86096bfd) var csType_allocs *cgoAllocMap - refbc745a8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbc745a8.Borrow(csType_allocs) + ref86096bfd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs86096bfd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbc745a8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbc745a8.Borrow(cpNext_allocs) + ref86096bfd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs86096bfd.Borrow(cpNext_allocs) - var cdedicatedAllocation_allocs *cgoAllocMap - refbc745a8.dedicatedAllocation, cdedicatedAllocation_allocs = (C.VkBool32)(x.DedicatedAllocation), cgoAllocsUnknown - allocsbc745a8.Borrow(cdedicatedAllocation_allocs) + var cvertexBindingDivisorCount_allocs *cgoAllocMap + ref86096bfd.vertexBindingDivisorCount, cvertexBindingDivisorCount_allocs = (C.uint32_t)(x.VertexBindingDivisorCount), cgoAllocsUnknown + allocs86096bfd.Borrow(cvertexBindingDivisorCount_allocs) - x.refbc745a8 = refbc745a8 - x.allocsbc745a8 = allocsbc745a8 - return refbc745a8, allocsbc745a8 + var cpVertexBindingDivisors_allocs *cgoAllocMap + ref86096bfd.pVertexBindingDivisors, cpVertexBindingDivisors_allocs = unpackSVertexInputBindingDivisorDescription(x.PVertexBindingDivisors) + allocs86096bfd.Borrow(cpVertexBindingDivisors_allocs) + + x.ref86096bfd = ref86096bfd + x.allocs86096bfd = allocs86096bfd + return ref86096bfd, allocs86096bfd } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DedicatedAllocationBufferCreateInfoNV) PassValue() (C.VkDedicatedAllocationBufferCreateInfoNV, *cgoAllocMap) { - if x.refbc745a8 != nil { - return *x.refbc745a8, nil +func (x PipelineVertexInputDivisorStateCreateInfo) PassValue() (C.VkPipelineVertexInputDivisorStateCreateInfoEXT, *cgoAllocMap) { + if x.ref86096bfd != nil { + return *x.ref86096bfd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26069,94 +53084,95 @@ func (x DedicatedAllocationBufferCreateInfoNV) PassValue() (C.VkDedicatedAllocat // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DedicatedAllocationBufferCreateInfoNV) Deref() { - if x.refbc745a8 == nil { +func (x *PipelineVertexInputDivisorStateCreateInfo) Deref() { + if x.ref86096bfd == nil { return } - x.SType = (StructureType)(x.refbc745a8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc745a8.pNext)) - x.DedicatedAllocation = (Bool32)(x.refbc745a8.dedicatedAllocation) + x.SType = (StructureType)(x.ref86096bfd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86096bfd.pNext)) + x.VertexBindingDivisorCount = (uint32)(x.ref86096bfd.vertexBindingDivisorCount) + packSVertexInputBindingDivisorDescription(x.PVertexBindingDivisors, x.ref86096bfd.pVertexBindingDivisors) } -// allocDedicatedAllocationMemoryAllocateInfoNVMemory allocates memory for type C.VkDedicatedAllocationMemoryAllocateInfoNV in C. +// allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDedicatedAllocationMemoryAllocateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDedicatedAllocationMemoryAllocateInfoNVValue)) +func allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVertexAttributeDivisorFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDedicatedAllocationMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkDedicatedAllocationMemoryAllocateInfoNV{}) +const sizeOfPhysicalDeviceVertexAttributeDivisorFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DedicatedAllocationMemoryAllocateInfoNV) Ref() *C.VkDedicatedAllocationMemoryAllocateInfoNV { +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { if x == nil { return nil } - return x.ref9a72b107 + return x.refffe7619a } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DedicatedAllocationMemoryAllocateInfoNV) Free() { - if x != nil && x.allocs9a72b107 != nil { - x.allocs9a72b107.(*cgoAllocMap).Free() - x.ref9a72b107 = nil +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Free() { + if x != nil && x.allocsffe7619a != nil { + x.allocsffe7619a.(*cgoAllocMap).Free() + x.refffe7619a = nil } } -// NewDedicatedAllocationMemoryAllocateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceVertexAttributeDivisorFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDedicatedAllocationMemoryAllocateInfoNVRef(ref unsafe.Pointer) *DedicatedAllocationMemoryAllocateInfoNV { +func NewPhysicalDeviceVertexAttributeDivisorFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVertexAttributeDivisorFeatures { if ref == nil { return nil } - obj := new(DedicatedAllocationMemoryAllocateInfoNV) - obj.ref9a72b107 = (*C.VkDedicatedAllocationMemoryAllocateInfoNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceVertexAttributeDivisorFeatures) + obj.refffe7619a = (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DedicatedAllocationMemoryAllocateInfoNV) PassRef() (*C.VkDedicatedAllocationMemoryAllocateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) PassRef() (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9a72b107 != nil { - return x.ref9a72b107, nil + } else if x.refffe7619a != nil { + return x.refffe7619a, nil } - mem9a72b107 := allocDedicatedAllocationMemoryAllocateInfoNVMemory(1) - ref9a72b107 := (*C.VkDedicatedAllocationMemoryAllocateInfoNV)(mem9a72b107) - allocs9a72b107 := new(cgoAllocMap) - allocs9a72b107.Add(mem9a72b107) + memffe7619a := allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory(1) + refffe7619a := (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)(memffe7619a) + allocsffe7619a := new(cgoAllocMap) + allocsffe7619a.Add(memffe7619a) var csType_allocs *cgoAllocMap - ref9a72b107.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9a72b107.Borrow(csType_allocs) + refffe7619a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsffe7619a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9a72b107.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9a72b107.Borrow(cpNext_allocs) + refffe7619a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsffe7619a.Borrow(cpNext_allocs) - var cimage_allocs *cgoAllocMap - ref9a72b107.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown - allocs9a72b107.Borrow(cimage_allocs) + var cvertexAttributeInstanceRateDivisor_allocs *cgoAllocMap + refffe7619a.vertexAttributeInstanceRateDivisor, cvertexAttributeInstanceRateDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateDivisor), cgoAllocsUnknown + allocsffe7619a.Borrow(cvertexAttributeInstanceRateDivisor_allocs) - var cbuffer_allocs *cgoAllocMap - ref9a72b107.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocs9a72b107.Borrow(cbuffer_allocs) + var cvertexAttributeInstanceRateZeroDivisor_allocs *cgoAllocMap + refffe7619a.vertexAttributeInstanceRateZeroDivisor, cvertexAttributeInstanceRateZeroDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateZeroDivisor), cgoAllocsUnknown + allocsffe7619a.Borrow(cvertexAttributeInstanceRateZeroDivisor_allocs) - x.ref9a72b107 = ref9a72b107 - x.allocs9a72b107 = allocs9a72b107 - return ref9a72b107, allocs9a72b107 + x.refffe7619a = refffe7619a + x.allocsffe7619a = allocsffe7619a + return refffe7619a, allocsffe7619a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DedicatedAllocationMemoryAllocateInfoNV) PassValue() (C.VkDedicatedAllocationMemoryAllocateInfoNV, *cgoAllocMap) { - if x.ref9a72b107 != nil { - return *x.ref9a72b107, nil +func (x PhysicalDeviceVertexAttributeDivisorFeatures) PassValue() (C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, *cgoAllocMap) { + if x.refffe7619a != nil { + return *x.refffe7619a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26164,95 +53180,95 @@ func (x DedicatedAllocationMemoryAllocateInfoNV) PassValue() (C.VkDedicatedAlloc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DedicatedAllocationMemoryAllocateInfoNV) Deref() { - if x.ref9a72b107 == nil { +func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Deref() { + if x.refffe7619a == nil { return } - x.SType = (StructureType)(x.ref9a72b107.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9a72b107.pNext)) - x.Image = *(*Image)(unsafe.Pointer(&x.ref9a72b107.image)) - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref9a72b107.buffer)) + x.SType = (StructureType)(x.refffe7619a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffe7619a.pNext)) + x.VertexAttributeInstanceRateDivisor = (Bool32)(x.refffe7619a.vertexAttributeInstanceRateDivisor) + x.VertexAttributeInstanceRateZeroDivisor = (Bool32)(x.refffe7619a.vertexAttributeInstanceRateZeroDivisor) } -// allocPhysicalDeviceTransformFeedbackFeaturesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackFeaturesEXT in C. +// allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceTransformFeedbackFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTransformFeedbackFeaturesValue)) +func allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceComputeShaderDerivativesFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceTransformFeedbackFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackFeaturesEXT{}) +const sizeOfPhysicalDeviceComputeShaderDerivativesFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceTransformFeedbackFeatures) Ref() *C.VkPhysicalDeviceTransformFeedbackFeaturesEXT { +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Ref() *C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { if x == nil { return nil } - return x.ref64b2a913 + return x.reff31d599c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceTransformFeedbackFeatures) Free() { - if x != nil && x.allocs64b2a913 != nil { - x.allocs64b2a913.(*cgoAllocMap).Free() - x.ref64b2a913 = nil +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Free() { + if x != nil && x.allocsf31d599c != nil { + x.allocsf31d599c.(*cgoAllocMap).Free() + x.reff31d599c = nil } } -// NewPhysicalDeviceTransformFeedbackFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceComputeShaderDerivativesFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceTransformFeedbackFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackFeatures { +func NewPhysicalDeviceComputeShaderDerivativesFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceComputeShaderDerivativesFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceTransformFeedbackFeatures) - obj.ref64b2a913 = (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceComputeShaderDerivativesFeaturesNV) + obj.reff31d599c = (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceTransformFeedbackFeatures) PassRef() (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassRef() (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref64b2a913 != nil { - return x.ref64b2a913, nil + } else if x.reff31d599c != nil { + return x.reff31d599c, nil } - mem64b2a913 := allocPhysicalDeviceTransformFeedbackFeaturesMemory(1) - ref64b2a913 := (*C.VkPhysicalDeviceTransformFeedbackFeaturesEXT)(mem64b2a913) - allocs64b2a913 := new(cgoAllocMap) - allocs64b2a913.Add(mem64b2a913) + memf31d599c := allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory(1) + reff31d599c := (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)(memf31d599c) + allocsf31d599c := new(cgoAllocMap) + allocsf31d599c.Add(memf31d599c) var csType_allocs *cgoAllocMap - ref64b2a913.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs64b2a913.Borrow(csType_allocs) + reff31d599c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf31d599c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref64b2a913.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs64b2a913.Borrow(cpNext_allocs) + reff31d599c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf31d599c.Borrow(cpNext_allocs) - var ctransformFeedback_allocs *cgoAllocMap - ref64b2a913.transformFeedback, ctransformFeedback_allocs = (C.VkBool32)(x.TransformFeedback), cgoAllocsUnknown - allocs64b2a913.Borrow(ctransformFeedback_allocs) + var ccomputeDerivativeGroupQuads_allocs *cgoAllocMap + reff31d599c.computeDerivativeGroupQuads, ccomputeDerivativeGroupQuads_allocs = (C.VkBool32)(x.ComputeDerivativeGroupQuads), cgoAllocsUnknown + allocsf31d599c.Borrow(ccomputeDerivativeGroupQuads_allocs) - var cgeometryStreams_allocs *cgoAllocMap - ref64b2a913.geometryStreams, cgeometryStreams_allocs = (C.VkBool32)(x.GeometryStreams), cgoAllocsUnknown - allocs64b2a913.Borrow(cgeometryStreams_allocs) + var ccomputeDerivativeGroupLinear_allocs *cgoAllocMap + reff31d599c.computeDerivativeGroupLinear, ccomputeDerivativeGroupLinear_allocs = (C.VkBool32)(x.ComputeDerivativeGroupLinear), cgoAllocsUnknown + allocsf31d599c.Borrow(ccomputeDerivativeGroupLinear_allocs) - x.ref64b2a913 = ref64b2a913 - x.allocs64b2a913 = allocs64b2a913 - return ref64b2a913, allocs64b2a913 + x.reff31d599c = reff31d599c + x.allocsf31d599c = allocsf31d599c + return reff31d599c, allocsf31d599c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceTransformFeedbackFeatures) PassValue() (C.VkPhysicalDeviceTransformFeedbackFeaturesEXT, *cgoAllocMap) { - if x.ref64b2a913 != nil { - return *x.ref64b2a913, nil +func (x PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassValue() (C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, *cgoAllocMap) { + if x.reff31d599c != nil { + return *x.reff31d599c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26260,127 +53276,95 @@ func (x PhysicalDeviceTransformFeedbackFeatures) PassValue() (C.VkPhysicalDevice // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceTransformFeedbackFeatures) Deref() { - if x.ref64b2a913 == nil { +func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Deref() { + if x.reff31d599c == nil { return } - x.SType = (StructureType)(x.ref64b2a913.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref64b2a913.pNext)) - x.TransformFeedback = (Bool32)(x.ref64b2a913.transformFeedback) - x.GeometryStreams = (Bool32)(x.ref64b2a913.geometryStreams) + x.SType = (StructureType)(x.reff31d599c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff31d599c.pNext)) + x.ComputeDerivativeGroupQuads = (Bool32)(x.reff31d599c.computeDerivativeGroupQuads) + x.ComputeDerivativeGroupLinear = (Bool32)(x.reff31d599c.computeDerivativeGroupLinear) } -// allocPhysicalDeviceTransformFeedbackPropertiesMemory allocates memory for type C.VkPhysicalDeviceTransformFeedbackPropertiesEXT in C. +// allocPhysicalDeviceMeshShaderFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceTransformFeedbackPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTransformFeedbackPropertiesValue)) +func allocPhysicalDeviceMeshShaderFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMeshShaderFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceTransformFeedbackPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTransformFeedbackPropertiesEXT{}) +const sizeOfPhysicalDeviceMeshShaderFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceTransformFeedbackProperties) Ref() *C.VkPhysicalDeviceTransformFeedbackPropertiesEXT { +func (x *PhysicalDeviceMeshShaderFeaturesNV) Ref() *C.VkPhysicalDeviceMeshShaderFeaturesNV { if x == nil { return nil } - return x.refc295a2a0 + return x.ref802b98a } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceTransformFeedbackProperties) Free() { - if x != nil && x.allocsc295a2a0 != nil { - x.allocsc295a2a0.(*cgoAllocMap).Free() - x.refc295a2a0 = nil +func (x *PhysicalDeviceMeshShaderFeaturesNV) Free() { + if x != nil && x.allocs802b98a != nil { + x.allocs802b98a.(*cgoAllocMap).Free() + x.ref802b98a = nil } } -// NewPhysicalDeviceTransformFeedbackPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceMeshShaderFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceTransformFeedbackPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceTransformFeedbackProperties { +func NewPhysicalDeviceMeshShaderFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceMeshShaderFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceTransformFeedbackProperties) - obj.refc295a2a0 = (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceMeshShaderFeaturesNV) + obj.ref802b98a = (*C.VkPhysicalDeviceMeshShaderFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceTransformFeedbackProperties) PassRef() (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceMeshShaderFeaturesNV) PassRef() (*C.VkPhysicalDeviceMeshShaderFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refc295a2a0 != nil { - return x.refc295a2a0, nil + } else if x.ref802b98a != nil { + return x.ref802b98a, nil } - memc295a2a0 := allocPhysicalDeviceTransformFeedbackPropertiesMemory(1) - refc295a2a0 := (*C.VkPhysicalDeviceTransformFeedbackPropertiesEXT)(memc295a2a0) - allocsc295a2a0 := new(cgoAllocMap) - allocsc295a2a0.Add(memc295a2a0) + mem802b98a := allocPhysicalDeviceMeshShaderFeaturesNVMemory(1) + ref802b98a := (*C.VkPhysicalDeviceMeshShaderFeaturesNV)(mem802b98a) + allocs802b98a := new(cgoAllocMap) + allocs802b98a.Add(mem802b98a) var csType_allocs *cgoAllocMap - refc295a2a0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsc295a2a0.Borrow(csType_allocs) + ref802b98a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs802b98a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refc295a2a0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsc295a2a0.Borrow(cpNext_allocs) - - var cmaxTransformFeedbackStreams_allocs *cgoAllocMap - refc295a2a0.maxTransformFeedbackStreams, cmaxTransformFeedbackStreams_allocs = (C.uint32_t)(x.MaxTransformFeedbackStreams), cgoAllocsUnknown - allocsc295a2a0.Borrow(cmaxTransformFeedbackStreams_allocs) - - var cmaxTransformFeedbackBuffers_allocs *cgoAllocMap - refc295a2a0.maxTransformFeedbackBuffers, cmaxTransformFeedbackBuffers_allocs = (C.uint32_t)(x.MaxTransformFeedbackBuffers), cgoAllocsUnknown - allocsc295a2a0.Borrow(cmaxTransformFeedbackBuffers_allocs) - - var cmaxTransformFeedbackBufferSize_allocs *cgoAllocMap - refc295a2a0.maxTransformFeedbackBufferSize, cmaxTransformFeedbackBufferSize_allocs = (C.VkDeviceSize)(x.MaxTransformFeedbackBufferSize), cgoAllocsUnknown - allocsc295a2a0.Borrow(cmaxTransformFeedbackBufferSize_allocs) - - var cmaxTransformFeedbackStreamDataSize_allocs *cgoAllocMap - refc295a2a0.maxTransformFeedbackStreamDataSize, cmaxTransformFeedbackStreamDataSize_allocs = (C.uint32_t)(x.MaxTransformFeedbackStreamDataSize), cgoAllocsUnknown - allocsc295a2a0.Borrow(cmaxTransformFeedbackStreamDataSize_allocs) - - var cmaxTransformFeedbackBufferDataSize_allocs *cgoAllocMap - refc295a2a0.maxTransformFeedbackBufferDataSize, cmaxTransformFeedbackBufferDataSize_allocs = (C.uint32_t)(x.MaxTransformFeedbackBufferDataSize), cgoAllocsUnknown - allocsc295a2a0.Borrow(cmaxTransformFeedbackBufferDataSize_allocs) - - var cmaxTransformFeedbackBufferDataStride_allocs *cgoAllocMap - refc295a2a0.maxTransformFeedbackBufferDataStride, cmaxTransformFeedbackBufferDataStride_allocs = (C.uint32_t)(x.MaxTransformFeedbackBufferDataStride), cgoAllocsUnknown - allocsc295a2a0.Borrow(cmaxTransformFeedbackBufferDataStride_allocs) - - var ctransformFeedbackQueries_allocs *cgoAllocMap - refc295a2a0.transformFeedbackQueries, ctransformFeedbackQueries_allocs = (C.VkBool32)(x.TransformFeedbackQueries), cgoAllocsUnknown - allocsc295a2a0.Borrow(ctransformFeedbackQueries_allocs) - - var ctransformFeedbackStreamsLinesTriangles_allocs *cgoAllocMap - refc295a2a0.transformFeedbackStreamsLinesTriangles, ctransformFeedbackStreamsLinesTriangles_allocs = (C.VkBool32)(x.TransformFeedbackStreamsLinesTriangles), cgoAllocsUnknown - allocsc295a2a0.Borrow(ctransformFeedbackStreamsLinesTriangles_allocs) + ref802b98a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs802b98a.Borrow(cpNext_allocs) - var ctransformFeedbackRasterizationStreamSelect_allocs *cgoAllocMap - refc295a2a0.transformFeedbackRasterizationStreamSelect, ctransformFeedbackRasterizationStreamSelect_allocs = (C.VkBool32)(x.TransformFeedbackRasterizationStreamSelect), cgoAllocsUnknown - allocsc295a2a0.Borrow(ctransformFeedbackRasterizationStreamSelect_allocs) + var ctaskShader_allocs *cgoAllocMap + ref802b98a.taskShader, ctaskShader_allocs = (C.VkBool32)(x.TaskShader), cgoAllocsUnknown + allocs802b98a.Borrow(ctaskShader_allocs) - var ctransformFeedbackDraw_allocs *cgoAllocMap - refc295a2a0.transformFeedbackDraw, ctransformFeedbackDraw_allocs = (C.VkBool32)(x.TransformFeedbackDraw), cgoAllocsUnknown - allocsc295a2a0.Borrow(ctransformFeedbackDraw_allocs) + var cmeshShader_allocs *cgoAllocMap + ref802b98a.meshShader, cmeshShader_allocs = (C.VkBool32)(x.MeshShader), cgoAllocsUnknown + allocs802b98a.Borrow(cmeshShader_allocs) - x.refc295a2a0 = refc295a2a0 - x.allocsc295a2a0 = allocsc295a2a0 - return refc295a2a0, allocsc295a2a0 + x.ref802b98a = ref802b98a + x.allocs802b98a = allocs802b98a + return ref802b98a, allocs802b98a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceTransformFeedbackProperties) PassValue() (C.VkPhysicalDeviceTransformFeedbackPropertiesEXT, *cgoAllocMap) { - if x.refc295a2a0 != nil { - return *x.refc295a2a0, nil +func (x PhysicalDeviceMeshShaderFeaturesNV) PassValue() (C.VkPhysicalDeviceMeshShaderFeaturesNV, *cgoAllocMap) { + if x.ref802b98a != nil { + return *x.ref802b98a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26388,195 +53372,139 @@ func (x PhysicalDeviceTransformFeedbackProperties) PassValue() (C.VkPhysicalDevi // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceTransformFeedbackProperties) Deref() { - if x.refc295a2a0 == nil { +func (x *PhysicalDeviceMeshShaderFeaturesNV) Deref() { + if x.ref802b98a == nil { return } - x.SType = (StructureType)(x.refc295a2a0.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc295a2a0.pNext)) - x.MaxTransformFeedbackStreams = (uint32)(x.refc295a2a0.maxTransformFeedbackStreams) - x.MaxTransformFeedbackBuffers = (uint32)(x.refc295a2a0.maxTransformFeedbackBuffers) - x.MaxTransformFeedbackBufferSize = (DeviceSize)(x.refc295a2a0.maxTransformFeedbackBufferSize) - x.MaxTransformFeedbackStreamDataSize = (uint32)(x.refc295a2a0.maxTransformFeedbackStreamDataSize) - x.MaxTransformFeedbackBufferDataSize = (uint32)(x.refc295a2a0.maxTransformFeedbackBufferDataSize) - x.MaxTransformFeedbackBufferDataStride = (uint32)(x.refc295a2a0.maxTransformFeedbackBufferDataStride) - x.TransformFeedbackQueries = (Bool32)(x.refc295a2a0.transformFeedbackQueries) - x.TransformFeedbackStreamsLinesTriangles = (Bool32)(x.refc295a2a0.transformFeedbackStreamsLinesTriangles) - x.TransformFeedbackRasterizationStreamSelect = (Bool32)(x.refc295a2a0.transformFeedbackRasterizationStreamSelect) - x.TransformFeedbackDraw = (Bool32)(x.refc295a2a0.transformFeedbackDraw) + x.SType = (StructureType)(x.ref802b98a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref802b98a.pNext)) + x.TaskShader = (Bool32)(x.ref802b98a.taskShader) + x.MeshShader = (Bool32)(x.ref802b98a.meshShader) } -// allocPipelineRasterizationStateStreamCreateInfoMemory allocates memory for type C.VkPipelineRasterizationStateStreamCreateInfoEXT in C. +// allocPhysicalDeviceMeshShaderPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderPropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineRasterizationStateStreamCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationStateStreamCreateInfoValue)) +func allocPhysicalDeviceMeshShaderPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMeshShaderPropertiesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineRasterizationStateStreamCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationStateStreamCreateInfoEXT{}) +const sizeOfPhysicalDeviceMeshShaderPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationStateStreamCreateInfo) Ref() *C.VkPipelineRasterizationStateStreamCreateInfoEXT { +func (x *PhysicalDeviceMeshShaderPropertiesNV) Ref() *C.VkPhysicalDeviceMeshShaderPropertiesNV { if x == nil { return nil } - return x.refed6e1fb9 + return x.ref2ee3ccb7 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineRasterizationStateStreamCreateInfo) Free() { - if x != nil && x.allocsed6e1fb9 != nil { - x.allocsed6e1fb9.(*cgoAllocMap).Free() - x.refed6e1fb9 = nil +func (x *PhysicalDeviceMeshShaderPropertiesNV) Free() { + if x != nil && x.allocs2ee3ccb7 != nil { + x.allocs2ee3ccb7.(*cgoAllocMap).Free() + x.ref2ee3ccb7 = nil } } -// NewPipelineRasterizationStateStreamCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceMeshShaderPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineRasterizationStateStreamCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationStateStreamCreateInfo { +func NewPhysicalDeviceMeshShaderPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceMeshShaderPropertiesNV { if ref == nil { return nil } - obj := new(PipelineRasterizationStateStreamCreateInfo) - obj.refed6e1fb9 = (*C.VkPipelineRasterizationStateStreamCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceMeshShaderPropertiesNV) + obj.ref2ee3ccb7 = (*C.VkPhysicalDeviceMeshShaderPropertiesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineRasterizationStateStreamCreateInfo) PassRef() (*C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceMeshShaderPropertiesNV) PassRef() (*C.VkPhysicalDeviceMeshShaderPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refed6e1fb9 != nil { - return x.refed6e1fb9, nil + } else if x.ref2ee3ccb7 != nil { + return x.ref2ee3ccb7, nil } - memed6e1fb9 := allocPipelineRasterizationStateStreamCreateInfoMemory(1) - refed6e1fb9 := (*C.VkPipelineRasterizationStateStreamCreateInfoEXT)(memed6e1fb9) - allocsed6e1fb9 := new(cgoAllocMap) - allocsed6e1fb9.Add(memed6e1fb9) + mem2ee3ccb7 := allocPhysicalDeviceMeshShaderPropertiesNVMemory(1) + ref2ee3ccb7 := (*C.VkPhysicalDeviceMeshShaderPropertiesNV)(mem2ee3ccb7) + allocs2ee3ccb7 := new(cgoAllocMap) + allocs2ee3ccb7.Add(mem2ee3ccb7) var csType_allocs *cgoAllocMap - refed6e1fb9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsed6e1fb9.Borrow(csType_allocs) + ref2ee3ccb7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refed6e1fb9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsed6e1fb9.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refed6e1fb9.flags, cflags_allocs = (C.VkPipelineRasterizationStateStreamCreateFlagsEXT)(x.Flags), cgoAllocsUnknown - allocsed6e1fb9.Borrow(cflags_allocs) - - var crasterizationStream_allocs *cgoAllocMap - refed6e1fb9.rasterizationStream, crasterizationStream_allocs = (C.uint32_t)(x.RasterizationStream), cgoAllocsUnknown - allocsed6e1fb9.Borrow(crasterizationStream_allocs) + ref2ee3ccb7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cpNext_allocs) - x.refed6e1fb9 = refed6e1fb9 - x.allocsed6e1fb9 = allocsed6e1fb9 - return refed6e1fb9, allocsed6e1fb9 + var cmaxDrawMeshTasksCount_allocs *cgoAllocMap + ref2ee3ccb7.maxDrawMeshTasksCount, cmaxDrawMeshTasksCount_allocs = (C.uint32_t)(x.MaxDrawMeshTasksCount), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxDrawMeshTasksCount_allocs) -} + var cmaxTaskWorkGroupInvocations_allocs *cgoAllocMap + ref2ee3ccb7.maxTaskWorkGroupInvocations, cmaxTaskWorkGroupInvocations_allocs = (C.uint32_t)(x.MaxTaskWorkGroupInvocations), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxTaskWorkGroupInvocations_allocs) -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineRasterizationStateStreamCreateInfo) PassValue() (C.VkPipelineRasterizationStateStreamCreateInfoEXT, *cgoAllocMap) { - if x.refed6e1fb9 != nil { - return *x.refed6e1fb9, nil - } - ref, allocs := x.PassRef() - return *ref, allocs -} + var cmaxTaskWorkGroupSize_allocs *cgoAllocMap + ref2ee3ccb7.maxTaskWorkGroupSize, cmaxTaskWorkGroupSize_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.MaxTaskWorkGroupSize)), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxTaskWorkGroupSize_allocs) -// Deref uses the underlying reference to C object and fills the wrapping struct with values. -// Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineRasterizationStateStreamCreateInfo) Deref() { - if x.refed6e1fb9 == nil { - return - } - x.SType = (StructureType)(x.refed6e1fb9.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refed6e1fb9.pNext)) - x.Flags = (PipelineRasterizationStateStreamCreateFlags)(x.refed6e1fb9.flags) - x.RasterizationStream = (uint32)(x.refed6e1fb9.rasterizationStream) -} + var cmaxTaskTotalMemorySize_allocs *cgoAllocMap + ref2ee3ccb7.maxTaskTotalMemorySize, cmaxTaskTotalMemorySize_allocs = (C.uint32_t)(x.MaxTaskTotalMemorySize), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxTaskTotalMemorySize_allocs) -// allocTextureLODGatherFormatPropertiesAMDMemory allocates memory for type C.VkTextureLODGatherFormatPropertiesAMD in C. -// The caller is responsible for freeing the this memory via C.free. -func allocTextureLODGatherFormatPropertiesAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfTextureLODGatherFormatPropertiesAMDValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} + var cmaxTaskOutputCount_allocs *cgoAllocMap + ref2ee3ccb7.maxTaskOutputCount, cmaxTaskOutputCount_allocs = (C.uint32_t)(x.MaxTaskOutputCount), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxTaskOutputCount_allocs) -const sizeOfTextureLODGatherFormatPropertiesAMDValue = unsafe.Sizeof([1]C.VkTextureLODGatherFormatPropertiesAMD{}) + var cmaxMeshWorkGroupInvocations_allocs *cgoAllocMap + ref2ee3ccb7.maxMeshWorkGroupInvocations, cmaxMeshWorkGroupInvocations_allocs = (C.uint32_t)(x.MaxMeshWorkGroupInvocations), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxMeshWorkGroupInvocations_allocs) -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *TextureLODGatherFormatPropertiesAMD) Ref() *C.VkTextureLODGatherFormatPropertiesAMD { - if x == nil { - return nil - } - return x.ref519ba3a9 -} + var cmaxMeshWorkGroupSize_allocs *cgoAllocMap + ref2ee3ccb7.maxMeshWorkGroupSize, cmaxMeshWorkGroupSize_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.MaxMeshWorkGroupSize)), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxMeshWorkGroupSize_allocs) -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *TextureLODGatherFormatPropertiesAMD) Free() { - if x != nil && x.allocs519ba3a9 != nil { - x.allocs519ba3a9.(*cgoAllocMap).Free() - x.ref519ba3a9 = nil - } -} + var cmaxMeshTotalMemorySize_allocs *cgoAllocMap + ref2ee3ccb7.maxMeshTotalMemorySize, cmaxMeshTotalMemorySize_allocs = (C.uint32_t)(x.MaxMeshTotalMemorySize), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxMeshTotalMemorySize_allocs) -// NewTextureLODGatherFormatPropertiesAMDRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewTextureLODGatherFormatPropertiesAMDRef(ref unsafe.Pointer) *TextureLODGatherFormatPropertiesAMD { - if ref == nil { - return nil - } - obj := new(TextureLODGatherFormatPropertiesAMD) - obj.ref519ba3a9 = (*C.VkTextureLODGatherFormatPropertiesAMD)(unsafe.Pointer(ref)) - return obj -} + var cmaxMeshOutputVertices_allocs *cgoAllocMap + ref2ee3ccb7.maxMeshOutputVertices, cmaxMeshOutputVertices_allocs = (C.uint32_t)(x.MaxMeshOutputVertices), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxMeshOutputVertices_allocs) -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *TextureLODGatherFormatPropertiesAMD) PassRef() (*C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.ref519ba3a9 != nil { - return x.ref519ba3a9, nil - } - mem519ba3a9 := allocTextureLODGatherFormatPropertiesAMDMemory(1) - ref519ba3a9 := (*C.VkTextureLODGatherFormatPropertiesAMD)(mem519ba3a9) - allocs519ba3a9 := new(cgoAllocMap) - allocs519ba3a9.Add(mem519ba3a9) + var cmaxMeshOutputPrimitives_allocs *cgoAllocMap + ref2ee3ccb7.maxMeshOutputPrimitives, cmaxMeshOutputPrimitives_allocs = (C.uint32_t)(x.MaxMeshOutputPrimitives), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxMeshOutputPrimitives_allocs) - var csType_allocs *cgoAllocMap - ref519ba3a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs519ba3a9.Borrow(csType_allocs) + var cmaxMeshMultiviewViewCount_allocs *cgoAllocMap + ref2ee3ccb7.maxMeshMultiviewViewCount, cmaxMeshMultiviewViewCount_allocs = (C.uint32_t)(x.MaxMeshMultiviewViewCount), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmaxMeshMultiviewViewCount_allocs) - var cpNext_allocs *cgoAllocMap - ref519ba3a9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs519ba3a9.Borrow(cpNext_allocs) + var cmeshOutputPerVertexGranularity_allocs *cgoAllocMap + ref2ee3ccb7.meshOutputPerVertexGranularity, cmeshOutputPerVertexGranularity_allocs = (C.uint32_t)(x.MeshOutputPerVertexGranularity), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmeshOutputPerVertexGranularity_allocs) - var csupportsTextureGatherLODBiasAMD_allocs *cgoAllocMap - ref519ba3a9.supportsTextureGatherLODBiasAMD, csupportsTextureGatherLODBiasAMD_allocs = (C.VkBool32)(x.SupportsTextureGatherLODBiasAMD), cgoAllocsUnknown - allocs519ba3a9.Borrow(csupportsTextureGatherLODBiasAMD_allocs) + var cmeshOutputPerPrimitiveGranularity_allocs *cgoAllocMap + ref2ee3ccb7.meshOutputPerPrimitiveGranularity, cmeshOutputPerPrimitiveGranularity_allocs = (C.uint32_t)(x.MeshOutputPerPrimitiveGranularity), cgoAllocsUnknown + allocs2ee3ccb7.Borrow(cmeshOutputPerPrimitiveGranularity_allocs) - x.ref519ba3a9 = ref519ba3a9 - x.allocs519ba3a9 = allocs519ba3a9 - return ref519ba3a9, allocs519ba3a9 + x.ref2ee3ccb7 = ref2ee3ccb7 + x.allocs2ee3ccb7 = allocs2ee3ccb7 + return ref2ee3ccb7, allocs2ee3ccb7 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x TextureLODGatherFormatPropertiesAMD) PassValue() (C.VkTextureLODGatherFormatPropertiesAMD, *cgoAllocMap) { - if x.ref519ba3a9 != nil { - return *x.ref519ba3a9, nil +func (x PhysicalDeviceMeshShaderPropertiesNV) PassValue() (C.VkPhysicalDeviceMeshShaderPropertiesNV, *cgoAllocMap) { + if x.ref2ee3ccb7 != nil { + return *x.ref2ee3ccb7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26584,98 +53512,98 @@ func (x TextureLODGatherFormatPropertiesAMD) PassValue() (C.VkTextureLODGatherFo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *TextureLODGatherFormatPropertiesAMD) Deref() { - if x.ref519ba3a9 == nil { +func (x *PhysicalDeviceMeshShaderPropertiesNV) Deref() { + if x.ref2ee3ccb7 == nil { return } - x.SType = (StructureType)(x.ref519ba3a9.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref519ba3a9.pNext)) - x.SupportsTextureGatherLODBiasAMD = (Bool32)(x.ref519ba3a9.supportsTextureGatherLODBiasAMD) + x.SType = (StructureType)(x.ref2ee3ccb7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2ee3ccb7.pNext)) + x.MaxDrawMeshTasksCount = (uint32)(x.ref2ee3ccb7.maxDrawMeshTasksCount) + x.MaxTaskWorkGroupInvocations = (uint32)(x.ref2ee3ccb7.maxTaskWorkGroupInvocations) + x.MaxTaskWorkGroupSize = *(*[3]uint32)(unsafe.Pointer(&x.ref2ee3ccb7.maxTaskWorkGroupSize)) + x.MaxTaskTotalMemorySize = (uint32)(x.ref2ee3ccb7.maxTaskTotalMemorySize) + x.MaxTaskOutputCount = (uint32)(x.ref2ee3ccb7.maxTaskOutputCount) + x.MaxMeshWorkGroupInvocations = (uint32)(x.ref2ee3ccb7.maxMeshWorkGroupInvocations) + x.MaxMeshWorkGroupSize = *(*[3]uint32)(unsafe.Pointer(&x.ref2ee3ccb7.maxMeshWorkGroupSize)) + x.MaxMeshTotalMemorySize = (uint32)(x.ref2ee3ccb7.maxMeshTotalMemorySize) + x.MaxMeshOutputVertices = (uint32)(x.ref2ee3ccb7.maxMeshOutputVertices) + x.MaxMeshOutputPrimitives = (uint32)(x.ref2ee3ccb7.maxMeshOutputPrimitives) + x.MaxMeshMultiviewViewCount = (uint32)(x.ref2ee3ccb7.maxMeshMultiviewViewCount) + x.MeshOutputPerVertexGranularity = (uint32)(x.ref2ee3ccb7.meshOutputPerVertexGranularity) + x.MeshOutputPerPrimitiveGranularity = (uint32)(x.ref2ee3ccb7.meshOutputPerPrimitiveGranularity) } -// allocShaderResourceUsageAMDMemory allocates memory for type C.VkShaderResourceUsageAMD in C. +// allocDrawMeshTasksIndirectCommandNVMemory allocates memory for type C.VkDrawMeshTasksIndirectCommandNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocShaderResourceUsageAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderResourceUsageAMDValue)) +func allocDrawMeshTasksIndirectCommandNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrawMeshTasksIndirectCommandNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfShaderResourceUsageAMDValue = unsafe.Sizeof([1]C.VkShaderResourceUsageAMD{}) +const sizeOfDrawMeshTasksIndirectCommandNVValue = unsafe.Sizeof([1]C.VkDrawMeshTasksIndirectCommandNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderResourceUsageAMD) Ref() *C.VkShaderResourceUsageAMD { +func (x *DrawMeshTasksIndirectCommandNV) Ref() *C.VkDrawMeshTasksIndirectCommandNV { if x == nil { return nil } - return x.ref8a688131 + return x.refda6c46ea } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ShaderResourceUsageAMD) Free() { - if x != nil && x.allocs8a688131 != nil { - x.allocs8a688131.(*cgoAllocMap).Free() - x.ref8a688131 = nil +func (x *DrawMeshTasksIndirectCommandNV) Free() { + if x != nil && x.allocsda6c46ea != nil { + x.allocsda6c46ea.(*cgoAllocMap).Free() + x.refda6c46ea = nil } } -// NewShaderResourceUsageAMDRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDrawMeshTasksIndirectCommandNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewShaderResourceUsageAMDRef(ref unsafe.Pointer) *ShaderResourceUsageAMD { +func NewDrawMeshTasksIndirectCommandNVRef(ref unsafe.Pointer) *DrawMeshTasksIndirectCommandNV { if ref == nil { return nil } - obj := new(ShaderResourceUsageAMD) - obj.ref8a688131 = (*C.VkShaderResourceUsageAMD)(unsafe.Pointer(ref)) + obj := new(DrawMeshTasksIndirectCommandNV) + obj.refda6c46ea = (*C.VkDrawMeshTasksIndirectCommandNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ShaderResourceUsageAMD) PassRef() (*C.VkShaderResourceUsageAMD, *cgoAllocMap) { +func (x *DrawMeshTasksIndirectCommandNV) PassRef() (*C.VkDrawMeshTasksIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8a688131 != nil { - return x.ref8a688131, nil + } else if x.refda6c46ea != nil { + return x.refda6c46ea, nil } - mem8a688131 := allocShaderResourceUsageAMDMemory(1) - ref8a688131 := (*C.VkShaderResourceUsageAMD)(mem8a688131) - allocs8a688131 := new(cgoAllocMap) - allocs8a688131.Add(mem8a688131) - - var cnumUsedVgprs_allocs *cgoAllocMap - ref8a688131.numUsedVgprs, cnumUsedVgprs_allocs = (C.uint32_t)(x.NumUsedVgprs), cgoAllocsUnknown - allocs8a688131.Borrow(cnumUsedVgprs_allocs) - - var cnumUsedSgprs_allocs *cgoAllocMap - ref8a688131.numUsedSgprs, cnumUsedSgprs_allocs = (C.uint32_t)(x.NumUsedSgprs), cgoAllocsUnknown - allocs8a688131.Borrow(cnumUsedSgprs_allocs) - - var cldsSizePerLocalWorkGroup_allocs *cgoAllocMap - ref8a688131.ldsSizePerLocalWorkGroup, cldsSizePerLocalWorkGroup_allocs = (C.uint32_t)(x.LdsSizePerLocalWorkGroup), cgoAllocsUnknown - allocs8a688131.Borrow(cldsSizePerLocalWorkGroup_allocs) + memda6c46ea := allocDrawMeshTasksIndirectCommandNVMemory(1) + refda6c46ea := (*C.VkDrawMeshTasksIndirectCommandNV)(memda6c46ea) + allocsda6c46ea := new(cgoAllocMap) + allocsda6c46ea.Add(memda6c46ea) - var cldsUsageSizeInBytes_allocs *cgoAllocMap - ref8a688131.ldsUsageSizeInBytes, cldsUsageSizeInBytes_allocs = (C.size_t)(x.LdsUsageSizeInBytes), cgoAllocsUnknown - allocs8a688131.Borrow(cldsUsageSizeInBytes_allocs) + var ctaskCount_allocs *cgoAllocMap + refda6c46ea.taskCount, ctaskCount_allocs = (C.uint32_t)(x.TaskCount), cgoAllocsUnknown + allocsda6c46ea.Borrow(ctaskCount_allocs) - var cscratchMemUsageInBytes_allocs *cgoAllocMap - ref8a688131.scratchMemUsageInBytes, cscratchMemUsageInBytes_allocs = (C.size_t)(x.ScratchMemUsageInBytes), cgoAllocsUnknown - allocs8a688131.Borrow(cscratchMemUsageInBytes_allocs) + var cfirstTask_allocs *cgoAllocMap + refda6c46ea.firstTask, cfirstTask_allocs = (C.uint32_t)(x.FirstTask), cgoAllocsUnknown + allocsda6c46ea.Borrow(cfirstTask_allocs) - x.ref8a688131 = ref8a688131 - x.allocs8a688131 = allocs8a688131 - return ref8a688131, allocs8a688131 + x.refda6c46ea = refda6c46ea + x.allocsda6c46ea = allocsda6c46ea + return refda6c46ea, allocsda6c46ea } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ShaderResourceUsageAMD) PassValue() (C.VkShaderResourceUsageAMD, *cgoAllocMap) { - if x.ref8a688131 != nil { - return *x.ref8a688131, nil +func (x DrawMeshTasksIndirectCommandNV) PassValue() (C.VkDrawMeshTasksIndirectCommandNV, *cgoAllocMap) { + if x.refda6c46ea != nil { + return *x.refda6c46ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26683,108 +53611,77 @@ func (x ShaderResourceUsageAMD) PassValue() (C.VkShaderResourceUsageAMD, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ShaderResourceUsageAMD) Deref() { - if x.ref8a688131 == nil { +func (x *DrawMeshTasksIndirectCommandNV) Deref() { + if x.refda6c46ea == nil { return } - x.NumUsedVgprs = (uint32)(x.ref8a688131.numUsedVgprs) - x.NumUsedSgprs = (uint32)(x.ref8a688131.numUsedSgprs) - x.LdsSizePerLocalWorkGroup = (uint32)(x.ref8a688131.ldsSizePerLocalWorkGroup) - x.LdsUsageSizeInBytes = (uint)(x.ref8a688131.ldsUsageSizeInBytes) - x.ScratchMemUsageInBytes = (uint)(x.ref8a688131.scratchMemUsageInBytes) -} - -// allocShaderStatisticsInfoAMDMemory allocates memory for type C.VkShaderStatisticsInfoAMD in C. -// The caller is responsible for freeing the this memory via C.free. -func allocShaderStatisticsInfoAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderStatisticsInfoAMDValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem + x.TaskCount = (uint32)(x.refda6c46ea.taskCount) + x.FirstTask = (uint32)(x.refda6c46ea.firstTask) } -const sizeOfShaderStatisticsInfoAMDValue = unsafe.Sizeof([1]C.VkShaderStatisticsInfoAMD{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderStatisticsInfoAMD) Ref() *C.VkShaderStatisticsInfoAMD { +func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Ref() *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR { if x == nil { return nil } - return x.ref896a52bf + return x.reff7f35e73 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ShaderStatisticsInfoAMD) Free() { - if x != nil && x.allocs896a52bf != nil { - x.allocs896a52bf.(*cgoAllocMap).Free() - x.ref896a52bf = nil +func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Free() { + if x != nil && x.allocsf7f35e73 != nil { + x.allocsf7f35e73.(*cgoAllocMap).Free() + x.reff7f35e73 = nil } } -// NewShaderStatisticsInfoAMDRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentShaderBarycentricFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewShaderStatisticsInfoAMDRef(ref unsafe.Pointer) *ShaderStatisticsInfoAMD { +func NewPhysicalDeviceFragmentShaderBarycentricFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderBarycentricFeaturesNV { if ref == nil { return nil } - obj := new(ShaderStatisticsInfoAMD) - obj.ref896a52bf = (*C.VkShaderStatisticsInfoAMD)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentShaderBarycentricFeaturesNV) + obj.reff7f35e73 = (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ShaderStatisticsInfoAMD) PassRef() (*C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassRef() (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref896a52bf != nil { - return x.ref896a52bf, nil + } else if x.reff7f35e73 != nil { + return x.reff7f35e73, nil } - mem896a52bf := allocShaderStatisticsInfoAMDMemory(1) - ref896a52bf := (*C.VkShaderStatisticsInfoAMD)(mem896a52bf) - allocs896a52bf := new(cgoAllocMap) - allocs896a52bf.Add(mem896a52bf) + memf7f35e73 := allocPhysicalDeviceFragmentShaderBarycentricFeaturesMemory(1) + reff7f35e73 := (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR)(memf7f35e73) + allocsf7f35e73 := new(cgoAllocMap) + allocsf7f35e73.Add(memf7f35e73) - var cshaderStageMask_allocs *cgoAllocMap - ref896a52bf.shaderStageMask, cshaderStageMask_allocs = (C.VkShaderStageFlags)(x.ShaderStageMask), cgoAllocsUnknown - allocs896a52bf.Borrow(cshaderStageMask_allocs) - - var cresourceUsage_allocs *cgoAllocMap - ref896a52bf.resourceUsage, cresourceUsage_allocs = x.ResourceUsage.PassValue() - allocs896a52bf.Borrow(cresourceUsage_allocs) - - var cnumPhysicalVgprs_allocs *cgoAllocMap - ref896a52bf.numPhysicalVgprs, cnumPhysicalVgprs_allocs = (C.uint32_t)(x.NumPhysicalVgprs), cgoAllocsUnknown - allocs896a52bf.Borrow(cnumPhysicalVgprs_allocs) - - var cnumPhysicalSgprs_allocs *cgoAllocMap - ref896a52bf.numPhysicalSgprs, cnumPhysicalSgprs_allocs = (C.uint32_t)(x.NumPhysicalSgprs), cgoAllocsUnknown - allocs896a52bf.Borrow(cnumPhysicalSgprs_allocs) - - var cnumAvailableVgprs_allocs *cgoAllocMap - ref896a52bf.numAvailableVgprs, cnumAvailableVgprs_allocs = (C.uint32_t)(x.NumAvailableVgprs), cgoAllocsUnknown - allocs896a52bf.Borrow(cnumAvailableVgprs_allocs) + var csType_allocs *cgoAllocMap + reff7f35e73.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf7f35e73.Borrow(csType_allocs) - var cnumAvailableSgprs_allocs *cgoAllocMap - ref896a52bf.numAvailableSgprs, cnumAvailableSgprs_allocs = (C.uint32_t)(x.NumAvailableSgprs), cgoAllocsUnknown - allocs896a52bf.Borrow(cnumAvailableSgprs_allocs) + var cpNext_allocs *cgoAllocMap + reff7f35e73.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf7f35e73.Borrow(cpNext_allocs) - var ccomputeWorkGroupSize_allocs *cgoAllocMap - ref896a52bf.computeWorkGroupSize, ccomputeWorkGroupSize_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.ComputeWorkGroupSize)), cgoAllocsUnknown - allocs896a52bf.Borrow(ccomputeWorkGroupSize_allocs) + var cfragmentShaderBarycentric_allocs *cgoAllocMap + reff7f35e73.fragmentShaderBarycentric, cfragmentShaderBarycentric_allocs = (C.VkBool32)(x.FragmentShaderBarycentric), cgoAllocsUnknown + allocsf7f35e73.Borrow(cfragmentShaderBarycentric_allocs) - x.ref896a52bf = ref896a52bf - x.allocs896a52bf = allocs896a52bf - return ref896a52bf, allocs896a52bf + x.reff7f35e73 = reff7f35e73 + x.allocsf7f35e73 = allocsf7f35e73 + return reff7f35e73, allocsf7f35e73 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ShaderStatisticsInfoAMD) PassValue() (C.VkShaderStatisticsInfoAMD, *cgoAllocMap) { - if x.ref896a52bf != nil { - return *x.ref896a52bf, nil +func (x PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassValue() (C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, *cgoAllocMap) { + if x.reff7f35e73 != nil { + return *x.reff7f35e73, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26792,94 +53689,90 @@ func (x ShaderStatisticsInfoAMD) PassValue() (C.VkShaderStatisticsInfoAMD, *cgoA // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ShaderStatisticsInfoAMD) Deref() { - if x.ref896a52bf == nil { +func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Deref() { + if x.reff7f35e73 == nil { return } - x.ShaderStageMask = (ShaderStageFlags)(x.ref896a52bf.shaderStageMask) - x.ResourceUsage = *NewShaderResourceUsageAMDRef(unsafe.Pointer(&x.ref896a52bf.resourceUsage)) - x.NumPhysicalVgprs = (uint32)(x.ref896a52bf.numPhysicalVgprs) - x.NumPhysicalSgprs = (uint32)(x.ref896a52bf.numPhysicalSgprs) - x.NumAvailableVgprs = (uint32)(x.ref896a52bf.numAvailableVgprs) - x.NumAvailableSgprs = (uint32)(x.ref896a52bf.numAvailableSgprs) - x.ComputeWorkGroupSize = *(*[3]uint32)(unsafe.Pointer(&x.ref896a52bf.computeWorkGroupSize)) + x.SType = (StructureType)(x.reff7f35e73.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff7f35e73.pNext)) + x.FragmentShaderBarycentric = (Bool32)(x.reff7f35e73.fragmentShaderBarycentric) } -// allocPhysicalDeviceCornerSampledImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCornerSampledImageFeaturesNV in C. +// allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShaderImageFootprintFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceCornerSampledImageFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCornerSampledImageFeaturesNVValue)) +func allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderImageFootprintFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceCornerSampledImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCornerSampledImageFeaturesNV{}) +const sizeOfPhysicalDeviceShaderImageFootprintFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderImageFootprintFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Ref() *C.VkPhysicalDeviceCornerSampledImageFeaturesNV { +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Ref() *C.VkPhysicalDeviceShaderImageFootprintFeaturesNV { if x == nil { return nil } - return x.refdf4a62d1 + return x.ref9d61e1b2 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Free() { - if x != nil && x.allocsdf4a62d1 != nil { - x.allocsdf4a62d1.(*cgoAllocMap).Free() - x.refdf4a62d1 = nil +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Free() { + if x != nil && x.allocs9d61e1b2 != nil { + x.allocs9d61e1b2.(*cgoAllocMap).Free() + x.ref9d61e1b2 = nil } } -// NewPhysicalDeviceCornerSampledImageFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderImageFootprintFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceCornerSampledImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCornerSampledImageFeaturesNV { +func NewPhysicalDeviceShaderImageFootprintFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderImageFootprintFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceCornerSampledImageFeaturesNV) - obj.refdf4a62d1 = (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderImageFootprintFeaturesNV) + obj.ref9d61e1b2 = (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceCornerSampledImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) PassRef() (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdf4a62d1 != nil { - return x.refdf4a62d1, nil + } else if x.ref9d61e1b2 != nil { + return x.ref9d61e1b2, nil } - memdf4a62d1 := allocPhysicalDeviceCornerSampledImageFeaturesNVMemory(1) - refdf4a62d1 := (*C.VkPhysicalDeviceCornerSampledImageFeaturesNV)(memdf4a62d1) - allocsdf4a62d1 := new(cgoAllocMap) - allocsdf4a62d1.Add(memdf4a62d1) + mem9d61e1b2 := allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory(1) + ref9d61e1b2 := (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV)(mem9d61e1b2) + allocs9d61e1b2 := new(cgoAllocMap) + allocs9d61e1b2.Add(mem9d61e1b2) var csType_allocs *cgoAllocMap - refdf4a62d1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdf4a62d1.Borrow(csType_allocs) + ref9d61e1b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9d61e1b2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdf4a62d1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdf4a62d1.Borrow(cpNext_allocs) + ref9d61e1b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9d61e1b2.Borrow(cpNext_allocs) - var ccornerSampledImage_allocs *cgoAllocMap - refdf4a62d1.cornerSampledImage, ccornerSampledImage_allocs = (C.VkBool32)(x.CornerSampledImage), cgoAllocsUnknown - allocsdf4a62d1.Borrow(ccornerSampledImage_allocs) + var cimageFootprint_allocs *cgoAllocMap + ref9d61e1b2.imageFootprint, cimageFootprint_allocs = (C.VkBool32)(x.ImageFootprint), cgoAllocsUnknown + allocs9d61e1b2.Borrow(cimageFootprint_allocs) - x.refdf4a62d1 = refdf4a62d1 - x.allocsdf4a62d1 = allocsdf4a62d1 - return refdf4a62d1, allocsdf4a62d1 + x.ref9d61e1b2 = ref9d61e1b2 + x.allocs9d61e1b2 = allocs9d61e1b2 + return ref9d61e1b2, allocs9d61e1b2 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceCornerSampledImageFeaturesNV) PassValue() (C.VkPhysicalDeviceCornerSampledImageFeaturesNV, *cgoAllocMap) { - if x.refdf4a62d1 != nil { - return *x.refdf4a62d1, nil +func (x PhysicalDeviceShaderImageFootprintFeaturesNV) PassValue() (C.VkPhysicalDeviceShaderImageFootprintFeaturesNV, *cgoAllocMap) { + if x.ref9d61e1b2 != nil { + return *x.ref9d61e1b2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26887,94 +53780,94 @@ func (x PhysicalDeviceCornerSampledImageFeaturesNV) PassValue() (C.VkPhysicalDev // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceCornerSampledImageFeaturesNV) Deref() { - if x.refdf4a62d1 == nil { +func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Deref() { + if x.ref9d61e1b2 == nil { return } - x.SType = (StructureType)(x.refdf4a62d1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdf4a62d1.pNext)) - x.CornerSampledImage = (Bool32)(x.refdf4a62d1.cornerSampledImage) + x.SType = (StructureType)(x.ref9d61e1b2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9d61e1b2.pNext)) + x.ImageFootprint = (Bool32)(x.ref9d61e1b2.imageFootprint) } -// allocExternalImageFormatPropertiesNVMemory allocates memory for type C.VkExternalImageFormatPropertiesNV in C. +// allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportExclusiveScissorStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocExternalImageFormatPropertiesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalImageFormatPropertiesNVValue)) +func allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportExclusiveScissorStateCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExternalImageFormatPropertiesNVValue = unsafe.Sizeof([1]C.VkExternalImageFormatPropertiesNV{}) +const sizeOfPipelineViewportExclusiveScissorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportExclusiveScissorStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalImageFormatPropertiesNV) Ref() *C.VkExternalImageFormatPropertiesNV { +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Ref() *C.VkPipelineViewportExclusiveScissorStateCreateInfoNV { if x == nil { return nil } - return x.refa8900ce5 + return x.refa8715ba6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExternalImageFormatPropertiesNV) Free() { - if x != nil && x.allocsa8900ce5 != nil { - x.allocsa8900ce5.(*cgoAllocMap).Free() - x.refa8900ce5 = nil +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Free() { + if x != nil && x.allocsa8715ba6 != nil { + x.allocsa8715ba6.(*cgoAllocMap).Free() + x.refa8715ba6 = nil } } -// NewExternalImageFormatPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineViewportExclusiveScissorStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExternalImageFormatPropertiesNVRef(ref unsafe.Pointer) *ExternalImageFormatPropertiesNV { +func NewPipelineViewportExclusiveScissorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportExclusiveScissorStateCreateInfoNV { if ref == nil { return nil } - obj := new(ExternalImageFormatPropertiesNV) - obj.refa8900ce5 = (*C.VkExternalImageFormatPropertiesNV)(unsafe.Pointer(ref)) + obj := new(PipelineViewportExclusiveScissorStateCreateInfoNV) + obj.refa8715ba6 = (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExternalImageFormatPropertiesNV) PassRef() (*C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) PassRef() (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa8900ce5 != nil { - return x.refa8900ce5, nil + } else if x.refa8715ba6 != nil { + return x.refa8715ba6, nil } - mema8900ce5 := allocExternalImageFormatPropertiesNVMemory(1) - refa8900ce5 := (*C.VkExternalImageFormatPropertiesNV)(mema8900ce5) - allocsa8900ce5 := new(cgoAllocMap) - allocsa8900ce5.Add(mema8900ce5) + mema8715ba6 := allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory(1) + refa8715ba6 := (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV)(mema8715ba6) + allocsa8715ba6 := new(cgoAllocMap) + allocsa8715ba6.Add(mema8715ba6) - var cimageFormatProperties_allocs *cgoAllocMap - refa8900ce5.imageFormatProperties, cimageFormatProperties_allocs = x.ImageFormatProperties.PassValue() - allocsa8900ce5.Borrow(cimageFormatProperties_allocs) + var csType_allocs *cgoAllocMap + refa8715ba6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa8715ba6.Borrow(csType_allocs) - var cexternalMemoryFeatures_allocs *cgoAllocMap - refa8900ce5.externalMemoryFeatures, cexternalMemoryFeatures_allocs = (C.VkExternalMemoryFeatureFlagsNV)(x.ExternalMemoryFeatures), cgoAllocsUnknown - allocsa8900ce5.Borrow(cexternalMemoryFeatures_allocs) + var cpNext_allocs *cgoAllocMap + refa8715ba6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa8715ba6.Borrow(cpNext_allocs) - var cexportFromImportedHandleTypes_allocs *cgoAllocMap - refa8900ce5.exportFromImportedHandleTypes, cexportFromImportedHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.ExportFromImportedHandleTypes), cgoAllocsUnknown - allocsa8900ce5.Borrow(cexportFromImportedHandleTypes_allocs) + var cexclusiveScissorCount_allocs *cgoAllocMap + refa8715ba6.exclusiveScissorCount, cexclusiveScissorCount_allocs = (C.uint32_t)(x.ExclusiveScissorCount), cgoAllocsUnknown + allocsa8715ba6.Borrow(cexclusiveScissorCount_allocs) - var ccompatibleHandleTypes_allocs *cgoAllocMap - refa8900ce5.compatibleHandleTypes, ccompatibleHandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.CompatibleHandleTypes), cgoAllocsUnknown - allocsa8900ce5.Borrow(ccompatibleHandleTypes_allocs) + var cpExclusiveScissors_allocs *cgoAllocMap + refa8715ba6.pExclusiveScissors, cpExclusiveScissors_allocs = unpackSRect2D(x.PExclusiveScissors) + allocsa8715ba6.Borrow(cpExclusiveScissors_allocs) - x.refa8900ce5 = refa8900ce5 - x.allocsa8900ce5 = allocsa8900ce5 - return refa8900ce5, allocsa8900ce5 + x.refa8715ba6 = refa8715ba6 + x.allocsa8715ba6 = allocsa8715ba6 + return refa8715ba6, allocsa8715ba6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExternalImageFormatPropertiesNV) PassValue() (C.VkExternalImageFormatPropertiesNV, *cgoAllocMap) { - if x.refa8900ce5 != nil { - return *x.refa8900ce5, nil +func (x PipelineViewportExclusiveScissorStateCreateInfoNV) PassValue() (C.VkPipelineViewportExclusiveScissorStateCreateInfoNV, *cgoAllocMap) { + if x.refa8715ba6 != nil { + return *x.refa8715ba6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -26982,91 +53875,91 @@ func (x ExternalImageFormatPropertiesNV) PassValue() (C.VkExternalImageFormatPro // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExternalImageFormatPropertiesNV) Deref() { - if x.refa8900ce5 == nil { +func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Deref() { + if x.refa8715ba6 == nil { return } - x.ImageFormatProperties = *NewImageFormatPropertiesRef(unsafe.Pointer(&x.refa8900ce5.imageFormatProperties)) - x.ExternalMemoryFeatures = (ExternalMemoryFeatureFlagsNV)(x.refa8900ce5.externalMemoryFeatures) - x.ExportFromImportedHandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.refa8900ce5.exportFromImportedHandleTypes) - x.CompatibleHandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.refa8900ce5.compatibleHandleTypes) + x.SType = (StructureType)(x.refa8715ba6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa8715ba6.pNext)) + x.ExclusiveScissorCount = (uint32)(x.refa8715ba6.exclusiveScissorCount) + packSRect2D(x.PExclusiveScissors, x.refa8715ba6.pExclusiveScissors) } -// allocExternalMemoryImageCreateInfoNVMemory allocates memory for type C.VkExternalMemoryImageCreateInfoNV in C. +// allocPhysicalDeviceExclusiveScissorFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceExclusiveScissorFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocExternalMemoryImageCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExternalMemoryImageCreateInfoNVValue)) +func allocPhysicalDeviceExclusiveScissorFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExclusiveScissorFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExternalMemoryImageCreateInfoNVValue = unsafe.Sizeof([1]C.VkExternalMemoryImageCreateInfoNV{}) +const sizeOfPhysicalDeviceExclusiveScissorFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExclusiveScissorFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExternalMemoryImageCreateInfoNV) Ref() *C.VkExternalMemoryImageCreateInfoNV { +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Ref() *C.VkPhysicalDeviceExclusiveScissorFeaturesNV { if x == nil { return nil } - return x.ref9a7fb6c8 + return x.ref52c9fcfc } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExternalMemoryImageCreateInfoNV) Free() { - if x != nil && x.allocs9a7fb6c8 != nil { - x.allocs9a7fb6c8.(*cgoAllocMap).Free() - x.ref9a7fb6c8 = nil +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Free() { + if x != nil && x.allocs52c9fcfc != nil { + x.allocs52c9fcfc.(*cgoAllocMap).Free() + x.ref52c9fcfc = nil } } -// NewExternalMemoryImageCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceExclusiveScissorFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExternalMemoryImageCreateInfoNVRef(ref unsafe.Pointer) *ExternalMemoryImageCreateInfoNV { +func NewPhysicalDeviceExclusiveScissorFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceExclusiveScissorFeaturesNV { if ref == nil { return nil } - obj := new(ExternalMemoryImageCreateInfoNV) - obj.ref9a7fb6c8 = (*C.VkExternalMemoryImageCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceExclusiveScissorFeaturesNV) + obj.ref52c9fcfc = (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExternalMemoryImageCreateInfoNV) PassRef() (*C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) PassRef() (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9a7fb6c8 != nil { - return x.ref9a7fb6c8, nil + } else if x.ref52c9fcfc != nil { + return x.ref52c9fcfc, nil } - mem9a7fb6c8 := allocExternalMemoryImageCreateInfoNVMemory(1) - ref9a7fb6c8 := (*C.VkExternalMemoryImageCreateInfoNV)(mem9a7fb6c8) - allocs9a7fb6c8 := new(cgoAllocMap) - allocs9a7fb6c8.Add(mem9a7fb6c8) + mem52c9fcfc := allocPhysicalDeviceExclusiveScissorFeaturesNVMemory(1) + ref52c9fcfc := (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV)(mem52c9fcfc) + allocs52c9fcfc := new(cgoAllocMap) + allocs52c9fcfc.Add(mem52c9fcfc) var csType_allocs *cgoAllocMap - ref9a7fb6c8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9a7fb6c8.Borrow(csType_allocs) + ref52c9fcfc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs52c9fcfc.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9a7fb6c8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9a7fb6c8.Borrow(cpNext_allocs) + ref52c9fcfc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs52c9fcfc.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - ref9a7fb6c8.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown - allocs9a7fb6c8.Borrow(chandleTypes_allocs) + var cexclusiveScissor_allocs *cgoAllocMap + ref52c9fcfc.exclusiveScissor, cexclusiveScissor_allocs = (C.VkBool32)(x.ExclusiveScissor), cgoAllocsUnknown + allocs52c9fcfc.Borrow(cexclusiveScissor_allocs) - x.ref9a7fb6c8 = ref9a7fb6c8 - x.allocs9a7fb6c8 = allocs9a7fb6c8 - return ref9a7fb6c8, allocs9a7fb6c8 + x.ref52c9fcfc = ref52c9fcfc + x.allocs52c9fcfc = allocs52c9fcfc + return ref52c9fcfc, allocs52c9fcfc } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExternalMemoryImageCreateInfoNV) PassValue() (C.VkExternalMemoryImageCreateInfoNV, *cgoAllocMap) { - if x.ref9a7fb6c8 != nil { - return *x.ref9a7fb6c8, nil +func (x PhysicalDeviceExclusiveScissorFeaturesNV) PassValue() (C.VkPhysicalDeviceExclusiveScissorFeaturesNV, *cgoAllocMap) { + if x.ref52c9fcfc != nil { + return *x.ref52c9fcfc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27074,90 +53967,90 @@ func (x ExternalMemoryImageCreateInfoNV) PassValue() (C.VkExternalMemoryImageCre // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExternalMemoryImageCreateInfoNV) Deref() { - if x.ref9a7fb6c8 == nil { +func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Deref() { + if x.ref52c9fcfc == nil { return } - x.SType = (StructureType)(x.ref9a7fb6c8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9a7fb6c8.pNext)) - x.HandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.ref9a7fb6c8.handleTypes) + x.SType = (StructureType)(x.ref52c9fcfc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref52c9fcfc.pNext)) + x.ExclusiveScissor = (Bool32)(x.ref52c9fcfc.exclusiveScissor) } -// allocExportMemoryAllocateInfoNVMemory allocates memory for type C.VkExportMemoryAllocateInfoNV in C. +// allocQueueFamilyCheckpointPropertiesNVMemory allocates memory for type C.VkQueueFamilyCheckpointPropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocExportMemoryAllocateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfExportMemoryAllocateInfoNVValue)) +func allocQueueFamilyCheckpointPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyCheckpointPropertiesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfExportMemoryAllocateInfoNVValue = unsafe.Sizeof([1]C.VkExportMemoryAllocateInfoNV{}) +const sizeOfQueueFamilyCheckpointPropertiesNVValue = unsafe.Sizeof([1]C.VkQueueFamilyCheckpointPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ExportMemoryAllocateInfoNV) Ref() *C.VkExportMemoryAllocateInfoNV { +func (x *QueueFamilyCheckpointPropertiesNV) Ref() *C.VkQueueFamilyCheckpointPropertiesNV { if x == nil { return nil } - return x.ref5066f33 + return x.ref351f58c6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ExportMemoryAllocateInfoNV) Free() { - if x != nil && x.allocs5066f33 != nil { - x.allocs5066f33.(*cgoAllocMap).Free() - x.ref5066f33 = nil +func (x *QueueFamilyCheckpointPropertiesNV) Free() { + if x != nil && x.allocs351f58c6 != nil { + x.allocs351f58c6.(*cgoAllocMap).Free() + x.ref351f58c6 = nil } } -// NewExportMemoryAllocateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewQueueFamilyCheckpointPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewExportMemoryAllocateInfoNVRef(ref unsafe.Pointer) *ExportMemoryAllocateInfoNV { +func NewQueueFamilyCheckpointPropertiesNVRef(ref unsafe.Pointer) *QueueFamilyCheckpointPropertiesNV { if ref == nil { return nil } - obj := new(ExportMemoryAllocateInfoNV) - obj.ref5066f33 = (*C.VkExportMemoryAllocateInfoNV)(unsafe.Pointer(ref)) + obj := new(QueueFamilyCheckpointPropertiesNV) + obj.ref351f58c6 = (*C.VkQueueFamilyCheckpointPropertiesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ExportMemoryAllocateInfoNV) PassRef() (*C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { +func (x *QueueFamilyCheckpointPropertiesNV) PassRef() (*C.VkQueueFamilyCheckpointPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5066f33 != nil { - return x.ref5066f33, nil + } else if x.ref351f58c6 != nil { + return x.ref351f58c6, nil } - mem5066f33 := allocExportMemoryAllocateInfoNVMemory(1) - ref5066f33 := (*C.VkExportMemoryAllocateInfoNV)(mem5066f33) - allocs5066f33 := new(cgoAllocMap) - allocs5066f33.Add(mem5066f33) + mem351f58c6 := allocQueueFamilyCheckpointPropertiesNVMemory(1) + ref351f58c6 := (*C.VkQueueFamilyCheckpointPropertiesNV)(mem351f58c6) + allocs351f58c6 := new(cgoAllocMap) + allocs351f58c6.Add(mem351f58c6) var csType_allocs *cgoAllocMap - ref5066f33.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5066f33.Borrow(csType_allocs) + ref351f58c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs351f58c6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5066f33.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5066f33.Borrow(cpNext_allocs) + ref351f58c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs351f58c6.Borrow(cpNext_allocs) - var chandleTypes_allocs *cgoAllocMap - ref5066f33.handleTypes, chandleTypes_allocs = (C.VkExternalMemoryHandleTypeFlagsNV)(x.HandleTypes), cgoAllocsUnknown - allocs5066f33.Borrow(chandleTypes_allocs) + var ccheckpointExecutionStageMask_allocs *cgoAllocMap + ref351f58c6.checkpointExecutionStageMask, ccheckpointExecutionStageMask_allocs = (C.VkPipelineStageFlags)(x.CheckpointExecutionStageMask), cgoAllocsUnknown + allocs351f58c6.Borrow(ccheckpointExecutionStageMask_allocs) - x.ref5066f33 = ref5066f33 - x.allocs5066f33 = allocs5066f33 - return ref5066f33, allocs5066f33 + x.ref351f58c6 = ref351f58c6 + x.allocs351f58c6 = allocs351f58c6 + return ref351f58c6, allocs351f58c6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ExportMemoryAllocateInfoNV) PassValue() (C.VkExportMemoryAllocateInfoNV, *cgoAllocMap) { - if x.ref5066f33 != nil { - return *x.ref5066f33, nil +func (x QueueFamilyCheckpointPropertiesNV) PassValue() (C.VkQueueFamilyCheckpointPropertiesNV, *cgoAllocMap) { + if x.ref351f58c6 != nil { + return *x.ref351f58c6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27165,94 +54058,94 @@ func (x ExportMemoryAllocateInfoNV) PassValue() (C.VkExportMemoryAllocateInfoNV, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ExportMemoryAllocateInfoNV) Deref() { - if x.ref5066f33 == nil { +func (x *QueueFamilyCheckpointPropertiesNV) Deref() { + if x.ref351f58c6 == nil { return } - x.SType = (StructureType)(x.ref5066f33.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5066f33.pNext)) - x.HandleTypes = (ExternalMemoryHandleTypeFlagsNV)(x.ref5066f33.handleTypes) + x.SType = (StructureType)(x.ref351f58c6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref351f58c6.pNext)) + x.CheckpointExecutionStageMask = (PipelineStageFlags)(x.ref351f58c6.checkpointExecutionStageMask) } -// allocValidationFlagsMemory allocates memory for type C.VkValidationFlagsEXT in C. +// allocCheckpointDataNVMemory allocates memory for type C.VkCheckpointDataNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocValidationFlagsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFlagsValue)) +func allocCheckpointDataNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCheckpointDataNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfValidationFlagsValue = unsafe.Sizeof([1]C.VkValidationFlagsEXT{}) +const sizeOfCheckpointDataNVValue = unsafe.Sizeof([1]C.VkCheckpointDataNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ValidationFlags) Ref() *C.VkValidationFlagsEXT { +func (x *CheckpointDataNV) Ref() *C.VkCheckpointDataNV { if x == nil { return nil } - return x.refffe080ad + return x.refd1c9224b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ValidationFlags) Free() { - if x != nil && x.allocsffe080ad != nil { - x.allocsffe080ad.(*cgoAllocMap).Free() - x.refffe080ad = nil +func (x *CheckpointDataNV) Free() { + if x != nil && x.allocsd1c9224b != nil { + x.allocsd1c9224b.(*cgoAllocMap).Free() + x.refd1c9224b = nil } } -// NewValidationFlagsRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCheckpointDataNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewValidationFlagsRef(ref unsafe.Pointer) *ValidationFlags { +func NewCheckpointDataNVRef(ref unsafe.Pointer) *CheckpointDataNV { if ref == nil { return nil } - obj := new(ValidationFlags) - obj.refffe080ad = (*C.VkValidationFlagsEXT)(unsafe.Pointer(ref)) + obj := new(CheckpointDataNV) + obj.refd1c9224b = (*C.VkCheckpointDataNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ValidationFlags) PassRef() (*C.VkValidationFlagsEXT, *cgoAllocMap) { +func (x *CheckpointDataNV) PassRef() (*C.VkCheckpointDataNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refffe080ad != nil { - return x.refffe080ad, nil + } else if x.refd1c9224b != nil { + return x.refd1c9224b, nil } - memffe080ad := allocValidationFlagsMemory(1) - refffe080ad := (*C.VkValidationFlagsEXT)(memffe080ad) - allocsffe080ad := new(cgoAllocMap) - allocsffe080ad.Add(memffe080ad) + memd1c9224b := allocCheckpointDataNVMemory(1) + refd1c9224b := (*C.VkCheckpointDataNV)(memd1c9224b) + allocsd1c9224b := new(cgoAllocMap) + allocsd1c9224b.Add(memd1c9224b) var csType_allocs *cgoAllocMap - refffe080ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsffe080ad.Borrow(csType_allocs) + refd1c9224b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd1c9224b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refffe080ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsffe080ad.Borrow(cpNext_allocs) + refd1c9224b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd1c9224b.Borrow(cpNext_allocs) - var cdisabledValidationCheckCount_allocs *cgoAllocMap - refffe080ad.disabledValidationCheckCount, cdisabledValidationCheckCount_allocs = (C.uint32_t)(x.DisabledValidationCheckCount), cgoAllocsUnknown - allocsffe080ad.Borrow(cdisabledValidationCheckCount_allocs) + var cstage_allocs *cgoAllocMap + refd1c9224b.stage, cstage_allocs = (C.VkPipelineStageFlagBits)(x.Stage), cgoAllocsUnknown + allocsd1c9224b.Borrow(cstage_allocs) - var cpDisabledValidationChecks_allocs *cgoAllocMap - refffe080ad.pDisabledValidationChecks, cpDisabledValidationChecks_allocs = (*C.VkValidationCheckEXT)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationChecks)).Data)), cgoAllocsUnknown - allocsffe080ad.Borrow(cpDisabledValidationChecks_allocs) + var cpCheckpointMarker_allocs *cgoAllocMap + refd1c9224b.pCheckpointMarker, cpCheckpointMarker_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PCheckpointMarker)), cgoAllocsUnknown + allocsd1c9224b.Borrow(cpCheckpointMarker_allocs) - x.refffe080ad = refffe080ad - x.allocsffe080ad = allocsffe080ad - return refffe080ad, allocsffe080ad + x.refd1c9224b = refd1c9224b + x.allocsd1c9224b = allocsd1c9224b + return refd1c9224b, allocsd1c9224b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ValidationFlags) PassValue() (C.VkValidationFlagsEXT, *cgoAllocMap) { - if x.refffe080ad != nil { - return *x.refffe080ad, nil +func (x CheckpointDataNV) PassValue() (C.VkCheckpointDataNV, *cgoAllocMap) { + if x.refd1c9224b != nil { + return *x.refd1c9224b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27260,95 +54153,91 @@ func (x ValidationFlags) PassValue() (C.VkValidationFlagsEXT, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ValidationFlags) Deref() { - if x.refffe080ad == nil { +func (x *CheckpointDataNV) Deref() { + if x.refd1c9224b == nil { return } - x.SType = (StructureType)(x.refffe080ad.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffe080ad.pNext)) - x.DisabledValidationCheckCount = (uint32)(x.refffe080ad.disabledValidationCheckCount) - hxf8aebb5 := (*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationChecks)) - hxf8aebb5.Data = unsafe.Pointer(x.refffe080ad.pDisabledValidationChecks) - hxf8aebb5.Cap = 0x7fffffff - // hxf8aebb5.Len = ? - + x.SType = (StructureType)(x.refd1c9224b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd1c9224b.pNext)) + x.Stage = (PipelineStageFlagBits)(x.refd1c9224b.stage) + x.PCheckpointMarker = (unsafe.Pointer)(unsafe.Pointer(x.refd1c9224b.pCheckpointMarker)) } -// allocImageViewASTCDecodeModeMemory allocates memory for type C.VkImageViewASTCDecodeModeEXT in C. +// allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory allocates memory for type C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageViewASTCDecodeModeMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewASTCDecodeModeValue)) +func allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderIntegerFunctions2FeaturesINTELValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageViewASTCDecodeModeValue = unsafe.Sizeof([1]C.VkImageViewASTCDecodeModeEXT{}) +const sizeOfPhysicalDeviceShaderIntegerFunctions2FeaturesINTELValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageViewASTCDecodeMode) Ref() *C.VkImageViewASTCDecodeModeEXT { +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Ref() *C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { if x == nil { return nil } - return x.ref3a973fc0 + return x.refff2cd6c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageViewASTCDecodeMode) Free() { - if x != nil && x.allocs3a973fc0 != nil { - x.allocs3a973fc0.(*cgoAllocMap).Free() - x.ref3a973fc0 = nil +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Free() { + if x != nil && x.allocsff2cd6c != nil { + x.allocsff2cd6c.(*cgoAllocMap).Free() + x.refff2cd6c = nil } } -// NewImageViewASTCDecodeModeRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderIntegerFunctions2FeaturesINTELRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageViewASTCDecodeModeRef(ref unsafe.Pointer) *ImageViewASTCDecodeMode { +func NewPhysicalDeviceShaderIntegerFunctions2FeaturesINTELRef(ref unsafe.Pointer) *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { if ref == nil { return nil } - obj := new(ImageViewASTCDecodeMode) - obj.ref3a973fc0 = (*C.VkImageViewASTCDecodeModeEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) + obj.refff2cd6c = (*C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageViewASTCDecodeMode) PassRef() (*C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) PassRef() (*C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3a973fc0 != nil { - return x.ref3a973fc0, nil + } else if x.refff2cd6c != nil { + return x.refff2cd6c, nil } - mem3a973fc0 := allocImageViewASTCDecodeModeMemory(1) - ref3a973fc0 := (*C.VkImageViewASTCDecodeModeEXT)(mem3a973fc0) - allocs3a973fc0 := new(cgoAllocMap) - allocs3a973fc0.Add(mem3a973fc0) + memff2cd6c := allocPhysicalDeviceShaderIntegerFunctions2FeaturesINTELMemory(1) + refff2cd6c := (*C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)(memff2cd6c) + allocsff2cd6c := new(cgoAllocMap) + allocsff2cd6c.Add(memff2cd6c) var csType_allocs *cgoAllocMap - ref3a973fc0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3a973fc0.Borrow(csType_allocs) + refff2cd6c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsff2cd6c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3a973fc0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3a973fc0.Borrow(cpNext_allocs) + refff2cd6c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsff2cd6c.Borrow(cpNext_allocs) - var cdecodeMode_allocs *cgoAllocMap - ref3a973fc0.decodeMode, cdecodeMode_allocs = (C.VkFormat)(x.DecodeMode), cgoAllocsUnknown - allocs3a973fc0.Borrow(cdecodeMode_allocs) + var cshaderIntegerFunctions2_allocs *cgoAllocMap + refff2cd6c.shaderIntegerFunctions2, cshaderIntegerFunctions2_allocs = (C.VkBool32)(x.ShaderIntegerFunctions2), cgoAllocsUnknown + allocsff2cd6c.Borrow(cshaderIntegerFunctions2_allocs) - x.ref3a973fc0 = ref3a973fc0 - x.allocs3a973fc0 = allocs3a973fc0 - return ref3a973fc0, allocs3a973fc0 + x.refff2cd6c = refff2cd6c + x.allocsff2cd6c = allocsff2cd6c + return refff2cd6c, allocsff2cd6c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageViewASTCDecodeMode) PassValue() (C.VkImageViewASTCDecodeModeEXT, *cgoAllocMap) { - if x.ref3a973fc0 != nil { - return *x.ref3a973fc0, nil +func (x PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) PassValue() (C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, *cgoAllocMap) { + if x.refff2cd6c != nil { + return *x.refff2cd6c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27356,90 +54245,86 @@ func (x ImageViewASTCDecodeMode) PassValue() (C.VkImageViewASTCDecodeModeEXT, *c // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageViewASTCDecodeMode) Deref() { - if x.ref3a973fc0 == nil { +func (x *PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) Deref() { + if x.refff2cd6c == nil { return } - x.SType = (StructureType)(x.ref3a973fc0.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3a973fc0.pNext)) - x.DecodeMode = (Format)(x.ref3a973fc0.decodeMode) + x.SType = (StructureType)(x.refff2cd6c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refff2cd6c.pNext)) + x.ShaderIntegerFunctions2 = (Bool32)(x.refff2cd6c.shaderIntegerFunctions2) } -// allocPhysicalDeviceASTCDecodeFeaturesMemory allocates memory for type C.VkPhysicalDeviceASTCDecodeFeaturesEXT in C. +// allocPerformanceValueINTELMemory allocates memory for type C.VkPerformanceValueINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceASTCDecodeFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceASTCDecodeFeaturesValue)) +func allocPerformanceValueINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceValueINTELValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceASTCDecodeFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceASTCDecodeFeaturesEXT{}) +const sizeOfPerformanceValueINTELValue = unsafe.Sizeof([1]C.VkPerformanceValueINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceASTCDecodeFeatures) Ref() *C.VkPhysicalDeviceASTCDecodeFeaturesEXT { +func (x *PerformanceValueINTEL) Ref() *C.VkPerformanceValueINTEL { if x == nil { return nil } - return x.refd8af7d5a + return x.refe6a134ae } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceASTCDecodeFeatures) Free() { - if x != nil && x.allocsd8af7d5a != nil { - x.allocsd8af7d5a.(*cgoAllocMap).Free() - x.refd8af7d5a = nil +func (x *PerformanceValueINTEL) Free() { + if x != nil && x.allocse6a134ae != nil { + x.allocse6a134ae.(*cgoAllocMap).Free() + x.refe6a134ae = nil } } -// NewPhysicalDeviceASTCDecodeFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPerformanceValueINTELRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceASTCDecodeFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceASTCDecodeFeatures { +func NewPerformanceValueINTELRef(ref unsafe.Pointer) *PerformanceValueINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceASTCDecodeFeatures) - obj.refd8af7d5a = (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(PerformanceValueINTEL) + obj.refe6a134ae = (*C.VkPerformanceValueINTEL)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceASTCDecodeFeatures) PassRef() (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { +func (x *PerformanceValueINTEL) PassRef() (*C.VkPerformanceValueINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd8af7d5a != nil { - return x.refd8af7d5a, nil + } else if x.refe6a134ae != nil { + return x.refe6a134ae, nil } - memd8af7d5a := allocPhysicalDeviceASTCDecodeFeaturesMemory(1) - refd8af7d5a := (*C.VkPhysicalDeviceASTCDecodeFeaturesEXT)(memd8af7d5a) - allocsd8af7d5a := new(cgoAllocMap) - allocsd8af7d5a.Add(memd8af7d5a) - - var csType_allocs *cgoAllocMap - refd8af7d5a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd8af7d5a.Borrow(csType_allocs) + meme6a134ae := allocPerformanceValueINTELMemory(1) + refe6a134ae := (*C.VkPerformanceValueINTEL)(meme6a134ae) + allocse6a134ae := new(cgoAllocMap) + allocse6a134ae.Add(meme6a134ae) - var cpNext_allocs *cgoAllocMap - refd8af7d5a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd8af7d5a.Borrow(cpNext_allocs) + var c_type_allocs *cgoAllocMap + refe6a134ae._type, c_type_allocs = (C.VkPerformanceValueTypeINTEL)(x.Type), cgoAllocsUnknown + allocse6a134ae.Borrow(c_type_allocs) - var cdecodeModeSharedExponent_allocs *cgoAllocMap - refd8af7d5a.decodeModeSharedExponent, cdecodeModeSharedExponent_allocs = (C.VkBool32)(x.DecodeModeSharedExponent), cgoAllocsUnknown - allocsd8af7d5a.Borrow(cdecodeModeSharedExponent_allocs) + var cdata_allocs *cgoAllocMap + refe6a134ae.data, cdata_allocs = *(*C.VkPerformanceValueDataINTEL)(unsafe.Pointer(&x.Data)), cgoAllocsUnknown + allocse6a134ae.Borrow(cdata_allocs) - x.refd8af7d5a = refd8af7d5a - x.allocsd8af7d5a = allocsd8af7d5a - return refd8af7d5a, allocsd8af7d5a + x.refe6a134ae = refe6a134ae + x.allocse6a134ae = allocse6a134ae + return refe6a134ae, allocse6a134ae } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceASTCDecodeFeatures) PassValue() (C.VkPhysicalDeviceASTCDecodeFeaturesEXT, *cgoAllocMap) { - if x.refd8af7d5a != nil { - return *x.refd8af7d5a, nil +func (x PerformanceValueINTEL) PassValue() (C.VkPerformanceValueINTEL, *cgoAllocMap) { + if x.refe6a134ae != nil { + return *x.refe6a134ae, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27447,98 +54332,89 @@ func (x PhysicalDeviceASTCDecodeFeatures) PassValue() (C.VkPhysicalDeviceASTCDec // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceASTCDecodeFeatures) Deref() { - if x.refd8af7d5a == nil { +func (x *PerformanceValueINTEL) Deref() { + if x.refe6a134ae == nil { return } - x.SType = (StructureType)(x.refd8af7d5a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd8af7d5a.pNext)) - x.DecodeModeSharedExponent = (Bool32)(x.refd8af7d5a.decodeModeSharedExponent) + x.Type = (PerformanceValueTypeINTEL)(x.refe6a134ae._type) + x.Data = *(*PerformanceValueDataINTEL)(unsafe.Pointer(&x.refe6a134ae.data)) } -// allocConditionalRenderingBeginInfoMemory allocates memory for type C.VkConditionalRenderingBeginInfoEXT in C. +// allocInitializePerformanceApiInfoINTELMemory allocates memory for type C.VkInitializePerformanceApiInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocConditionalRenderingBeginInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfConditionalRenderingBeginInfoValue)) +func allocInitializePerformanceApiInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfInitializePerformanceApiInfoINTELValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfConditionalRenderingBeginInfoValue = unsafe.Sizeof([1]C.VkConditionalRenderingBeginInfoEXT{}) +const sizeOfInitializePerformanceApiInfoINTELValue = unsafe.Sizeof([1]C.VkInitializePerformanceApiInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ConditionalRenderingBeginInfo) Ref() *C.VkConditionalRenderingBeginInfoEXT { +func (x *InitializePerformanceApiInfoINTEL) Ref() *C.VkInitializePerformanceApiInfoINTEL { if x == nil { return nil } - return x.ref82da87c9 + return x.refb72b1cf3 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ConditionalRenderingBeginInfo) Free() { - if x != nil && x.allocs82da87c9 != nil { - x.allocs82da87c9.(*cgoAllocMap).Free() - x.ref82da87c9 = nil +func (x *InitializePerformanceApiInfoINTEL) Free() { + if x != nil && x.allocsb72b1cf3 != nil { + x.allocsb72b1cf3.(*cgoAllocMap).Free() + x.refb72b1cf3 = nil } } -// NewConditionalRenderingBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewInitializePerformanceApiInfoINTELRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewConditionalRenderingBeginInfoRef(ref unsafe.Pointer) *ConditionalRenderingBeginInfo { +func NewInitializePerformanceApiInfoINTELRef(ref unsafe.Pointer) *InitializePerformanceApiInfoINTEL { if ref == nil { return nil } - obj := new(ConditionalRenderingBeginInfo) - obj.ref82da87c9 = (*C.VkConditionalRenderingBeginInfoEXT)(unsafe.Pointer(ref)) + obj := new(InitializePerformanceApiInfoINTEL) + obj.refb72b1cf3 = (*C.VkInitializePerformanceApiInfoINTEL)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ConditionalRenderingBeginInfo) PassRef() (*C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { +func (x *InitializePerformanceApiInfoINTEL) PassRef() (*C.VkInitializePerformanceApiInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref82da87c9 != nil { - return x.ref82da87c9, nil + } else if x.refb72b1cf3 != nil { + return x.refb72b1cf3, nil } - mem82da87c9 := allocConditionalRenderingBeginInfoMemory(1) - ref82da87c9 := (*C.VkConditionalRenderingBeginInfoEXT)(mem82da87c9) - allocs82da87c9 := new(cgoAllocMap) - allocs82da87c9.Add(mem82da87c9) + memb72b1cf3 := allocInitializePerformanceApiInfoINTELMemory(1) + refb72b1cf3 := (*C.VkInitializePerformanceApiInfoINTEL)(memb72b1cf3) + allocsb72b1cf3 := new(cgoAllocMap) + allocsb72b1cf3.Add(memb72b1cf3) var csType_allocs *cgoAllocMap - ref82da87c9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs82da87c9.Borrow(csType_allocs) + refb72b1cf3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb72b1cf3.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref82da87c9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs82da87c9.Borrow(cpNext_allocs) - - var cbuffer_allocs *cgoAllocMap - ref82da87c9.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocs82da87c9.Borrow(cbuffer_allocs) - - var coffset_allocs *cgoAllocMap - ref82da87c9.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocs82da87c9.Borrow(coffset_allocs) + refb72b1cf3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb72b1cf3.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref82da87c9.flags, cflags_allocs = (C.VkConditionalRenderingFlagsEXT)(x.Flags), cgoAllocsUnknown - allocs82da87c9.Borrow(cflags_allocs) + var cpUserData_allocs *cgoAllocMap + refb72b1cf3.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown + allocsb72b1cf3.Borrow(cpUserData_allocs) - x.ref82da87c9 = ref82da87c9 - x.allocs82da87c9 = allocs82da87c9 - return ref82da87c9, allocs82da87c9 + x.refb72b1cf3 = refb72b1cf3 + x.allocsb72b1cf3 = allocsb72b1cf3 + return refb72b1cf3, allocsb72b1cf3 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ConditionalRenderingBeginInfo) PassValue() (C.VkConditionalRenderingBeginInfoEXT, *cgoAllocMap) { - if x.ref82da87c9 != nil { - return *x.ref82da87c9, nil +func (x InitializePerformanceApiInfoINTEL) PassValue() (C.VkInitializePerformanceApiInfoINTEL, *cgoAllocMap) { + if x.refb72b1cf3 != nil { + return *x.refb72b1cf3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27546,96 +54422,90 @@ func (x ConditionalRenderingBeginInfo) PassValue() (C.VkConditionalRenderingBegi // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ConditionalRenderingBeginInfo) Deref() { - if x.ref82da87c9 == nil { +func (x *InitializePerformanceApiInfoINTEL) Deref() { + if x.refb72b1cf3 == nil { return } - x.SType = (StructureType)(x.ref82da87c9.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref82da87c9.pNext)) - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref82da87c9.buffer)) - x.Offset = (DeviceSize)(x.ref82da87c9.offset) - x.Flags = (ConditionalRenderingFlags)(x.ref82da87c9.flags) + x.SType = (StructureType)(x.refb72b1cf3.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb72b1cf3.pNext)) + x.PUserData = (unsafe.Pointer)(unsafe.Pointer(x.refb72b1cf3.pUserData)) } -// allocPhysicalDeviceConditionalRenderingFeaturesMemory allocates memory for type C.VkPhysicalDeviceConditionalRenderingFeaturesEXT in C. +// allocQueryPoolPerformanceQueryCreateInfoINTELMemory allocates memory for type C.VkQueryPoolPerformanceQueryCreateInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceConditionalRenderingFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceConditionalRenderingFeaturesValue)) +func allocQueryPoolPerformanceQueryCreateInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueryPoolPerformanceQueryCreateInfoINTELValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceConditionalRenderingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConditionalRenderingFeaturesEXT{}) +const sizeOfQueryPoolPerformanceQueryCreateInfoINTELValue = unsafe.Sizeof([1]C.VkQueryPoolPerformanceQueryCreateInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceConditionalRenderingFeatures) Ref() *C.VkPhysicalDeviceConditionalRenderingFeaturesEXT { +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) Ref() *C.VkQueryPoolPerformanceQueryCreateInfoINTEL { if x == nil { return nil } - return x.ref89d2a224 + return x.refb8883992 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceConditionalRenderingFeatures) Free() { - if x != nil && x.allocs89d2a224 != nil { - x.allocs89d2a224.(*cgoAllocMap).Free() - x.ref89d2a224 = nil +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) Free() { + if x != nil && x.allocsb8883992 != nil { + x.allocsb8883992.(*cgoAllocMap).Free() + x.refb8883992 = nil } } -// NewPhysicalDeviceConditionalRenderingFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewQueryPoolPerformanceQueryCreateInfoINTELRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceConditionalRenderingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceConditionalRenderingFeatures { +func NewQueryPoolPerformanceQueryCreateInfoINTELRef(ref unsafe.Pointer) *QueryPoolPerformanceQueryCreateInfoINTEL { if ref == nil { return nil } - obj := new(PhysicalDeviceConditionalRenderingFeatures) - obj.ref89d2a224 = (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(QueryPoolPerformanceQueryCreateInfoINTEL) + obj.refb8883992 = (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceConditionalRenderingFeatures) PassRef() (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) PassRef() (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref89d2a224 != nil { - return x.ref89d2a224, nil + } else if x.refb8883992 != nil { + return x.refb8883992, nil } - mem89d2a224 := allocPhysicalDeviceConditionalRenderingFeaturesMemory(1) - ref89d2a224 := (*C.VkPhysicalDeviceConditionalRenderingFeaturesEXT)(mem89d2a224) - allocs89d2a224 := new(cgoAllocMap) - allocs89d2a224.Add(mem89d2a224) + memb8883992 := allocQueryPoolPerformanceQueryCreateInfoINTELMemory(1) + refb8883992 := (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(memb8883992) + allocsb8883992 := new(cgoAllocMap) + allocsb8883992.Add(memb8883992) var csType_allocs *cgoAllocMap - ref89d2a224.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs89d2a224.Borrow(csType_allocs) + refb8883992.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb8883992.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref89d2a224.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs89d2a224.Borrow(cpNext_allocs) - - var cconditionalRendering_allocs *cgoAllocMap - ref89d2a224.conditionalRendering, cconditionalRendering_allocs = (C.VkBool32)(x.ConditionalRendering), cgoAllocsUnknown - allocs89d2a224.Borrow(cconditionalRendering_allocs) + refb8883992.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb8883992.Borrow(cpNext_allocs) - var cinheritedConditionalRendering_allocs *cgoAllocMap - ref89d2a224.inheritedConditionalRendering, cinheritedConditionalRendering_allocs = (C.VkBool32)(x.InheritedConditionalRendering), cgoAllocsUnknown - allocs89d2a224.Borrow(cinheritedConditionalRendering_allocs) + var cperformanceCountersSampling_allocs *cgoAllocMap + refb8883992.performanceCountersSampling, cperformanceCountersSampling_allocs = (C.VkQueryPoolSamplingModeINTEL)(x.PerformanceCountersSampling), cgoAllocsUnknown + allocsb8883992.Borrow(cperformanceCountersSampling_allocs) - x.ref89d2a224 = ref89d2a224 - x.allocs89d2a224 = allocs89d2a224 - return ref89d2a224, allocs89d2a224 + x.refb8883992 = refb8883992 + x.allocsb8883992 = allocsb8883992 + return refb8883992, allocsb8883992 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceConditionalRenderingFeatures) PassValue() (C.VkPhysicalDeviceConditionalRenderingFeaturesEXT, *cgoAllocMap) { - if x.ref89d2a224 != nil { - return *x.ref89d2a224, nil +func (x QueryPoolPerformanceQueryCreateInfoINTEL) PassValue() (C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { + if x.refb8883992 != nil { + return *x.refb8883992, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27643,91 +54513,78 @@ func (x PhysicalDeviceConditionalRenderingFeatures) PassValue() (C.VkPhysicalDev // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceConditionalRenderingFeatures) Deref() { - if x.ref89d2a224 == nil { +func (x *QueryPoolPerformanceQueryCreateInfoINTEL) Deref() { + if x.refb8883992 == nil { return } - x.SType = (StructureType)(x.ref89d2a224.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref89d2a224.pNext)) - x.ConditionalRendering = (Bool32)(x.ref89d2a224.conditionalRendering) - x.InheritedConditionalRendering = (Bool32)(x.ref89d2a224.inheritedConditionalRendering) -} - -// allocCommandBufferInheritanceConditionalRenderingInfoMemory allocates memory for type C.VkCommandBufferInheritanceConditionalRenderingInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocCommandBufferInheritanceConditionalRenderingInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceConditionalRenderingInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem + x.SType = (StructureType)(x.refb8883992.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8883992.pNext)) + x.PerformanceCountersSampling = (QueryPoolSamplingModeINTEL)(x.refb8883992.performanceCountersSampling) } -const sizeOfCommandBufferInheritanceConditionalRenderingInfoValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceConditionalRenderingInfoEXT{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CommandBufferInheritanceConditionalRenderingInfo) Ref() *C.VkCommandBufferInheritanceConditionalRenderingInfoEXT { +func (x *QueryPoolCreateInfoINTEL) Ref() *C.VkQueryPoolPerformanceQueryCreateInfoINTEL { if x == nil { return nil } - return x.ref7155f49c + return x.refb8883992 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CommandBufferInheritanceConditionalRenderingInfo) Free() { - if x != nil && x.allocs7155f49c != nil { - x.allocs7155f49c.(*cgoAllocMap).Free() - x.ref7155f49c = nil +func (x *QueryPoolCreateInfoINTEL) Free() { + if x != nil && x.allocsb8883992 != nil { + x.allocsb8883992.(*cgoAllocMap).Free() + x.refb8883992 = nil } } -// NewCommandBufferInheritanceConditionalRenderingInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewQueryPoolCreateInfoINTELRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCommandBufferInheritanceConditionalRenderingInfoRef(ref unsafe.Pointer) *CommandBufferInheritanceConditionalRenderingInfo { +func NewQueryPoolCreateInfoINTELRef(ref unsafe.Pointer) *QueryPoolCreateInfoINTEL { if ref == nil { return nil } - obj := new(CommandBufferInheritanceConditionalRenderingInfo) - obj.ref7155f49c = (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT)(unsafe.Pointer(ref)) + obj := new(QueryPoolCreateInfoINTEL) + obj.refb8883992 = (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CommandBufferInheritanceConditionalRenderingInfo) PassRef() (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { +func (x *QueryPoolCreateInfoINTEL) PassRef() (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7155f49c != nil { - return x.ref7155f49c, nil + } else if x.refb8883992 != nil { + return x.refb8883992, nil } - mem7155f49c := allocCommandBufferInheritanceConditionalRenderingInfoMemory(1) - ref7155f49c := (*C.VkCommandBufferInheritanceConditionalRenderingInfoEXT)(mem7155f49c) - allocs7155f49c := new(cgoAllocMap) - allocs7155f49c.Add(mem7155f49c) + memb8883992 := allocQueryPoolPerformanceQueryCreateInfoINTELMemory(1) + refb8883992 := (*C.VkQueryPoolPerformanceQueryCreateInfoINTEL)(memb8883992) + allocsb8883992 := new(cgoAllocMap) + allocsb8883992.Add(memb8883992) var csType_allocs *cgoAllocMap - ref7155f49c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7155f49c.Borrow(csType_allocs) + refb8883992.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb8883992.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7155f49c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7155f49c.Borrow(cpNext_allocs) + refb8883992.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb8883992.Borrow(cpNext_allocs) - var cconditionalRenderingEnable_allocs *cgoAllocMap - ref7155f49c.conditionalRenderingEnable, cconditionalRenderingEnable_allocs = (C.VkBool32)(x.ConditionalRenderingEnable), cgoAllocsUnknown - allocs7155f49c.Borrow(cconditionalRenderingEnable_allocs) + var cperformanceCountersSampling_allocs *cgoAllocMap + refb8883992.performanceCountersSampling, cperformanceCountersSampling_allocs = (C.VkQueryPoolSamplingModeINTEL)(x.PerformanceCountersSampling), cgoAllocsUnknown + allocsb8883992.Borrow(cperformanceCountersSampling_allocs) - x.ref7155f49c = ref7155f49c - x.allocs7155f49c = allocs7155f49c - return ref7155f49c, allocs7155f49c + x.refb8883992 = refb8883992 + x.allocsb8883992 = allocsb8883992 + return refb8883992, allocsb8883992 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CommandBufferInheritanceConditionalRenderingInfo) PassValue() (C.VkCommandBufferInheritanceConditionalRenderingInfoEXT, *cgoAllocMap) { - if x.ref7155f49c != nil { - return *x.ref7155f49c, nil +func (x QueryPoolCreateInfoINTEL) PassValue() (C.VkQueryPoolPerformanceQueryCreateInfoINTEL, *cgoAllocMap) { + if x.refb8883992 != nil { + return *x.refb8883992, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27735,90 +54592,90 @@ func (x CommandBufferInheritanceConditionalRenderingInfo) PassValue() (C.VkComma // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CommandBufferInheritanceConditionalRenderingInfo) Deref() { - if x.ref7155f49c == nil { +func (x *QueryPoolCreateInfoINTEL) Deref() { + if x.refb8883992 == nil { return } - x.SType = (StructureType)(x.ref7155f49c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7155f49c.pNext)) - x.ConditionalRenderingEnable = (Bool32)(x.ref7155f49c.conditionalRenderingEnable) + x.SType = (StructureType)(x.refb8883992.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb8883992.pNext)) + x.PerformanceCountersSampling = (QueryPoolSamplingModeINTEL)(x.refb8883992.performanceCountersSampling) } -// allocDeviceGeneratedCommandsFeaturesNVXMemory allocates memory for type C.VkDeviceGeneratedCommandsFeaturesNVX in C. +// allocPerformanceMarkerInfoINTELMemory allocates memory for type C.VkPerformanceMarkerInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceGeneratedCommandsFeaturesNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGeneratedCommandsFeaturesNVXValue)) +func allocPerformanceMarkerInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceMarkerInfoINTELValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceGeneratedCommandsFeaturesNVXValue = unsafe.Sizeof([1]C.VkDeviceGeneratedCommandsFeaturesNVX{}) +const sizeOfPerformanceMarkerInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceMarkerInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGeneratedCommandsFeaturesNVX) Ref() *C.VkDeviceGeneratedCommandsFeaturesNVX { +func (x *PerformanceMarkerInfoINTEL) Ref() *C.VkPerformanceMarkerInfoINTEL { if x == nil { return nil } - return x.ref489899be + return x.refbf575d93 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceGeneratedCommandsFeaturesNVX) Free() { - if x != nil && x.allocs489899be != nil { - x.allocs489899be.(*cgoAllocMap).Free() - x.ref489899be = nil +func (x *PerformanceMarkerInfoINTEL) Free() { + if x != nil && x.allocsbf575d93 != nil { + x.allocsbf575d93.(*cgoAllocMap).Free() + x.refbf575d93 = nil } } -// NewDeviceGeneratedCommandsFeaturesNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPerformanceMarkerInfoINTELRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceGeneratedCommandsFeaturesNVXRef(ref unsafe.Pointer) *DeviceGeneratedCommandsFeaturesNVX { +func NewPerformanceMarkerInfoINTELRef(ref unsafe.Pointer) *PerformanceMarkerInfoINTEL { if ref == nil { return nil } - obj := new(DeviceGeneratedCommandsFeaturesNVX) - obj.ref489899be = (*C.VkDeviceGeneratedCommandsFeaturesNVX)(unsafe.Pointer(ref)) + obj := new(PerformanceMarkerInfoINTEL) + obj.refbf575d93 = (*C.VkPerformanceMarkerInfoINTEL)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceGeneratedCommandsFeaturesNVX) PassRef() (*C.VkDeviceGeneratedCommandsFeaturesNVX, *cgoAllocMap) { +func (x *PerformanceMarkerInfoINTEL) PassRef() (*C.VkPerformanceMarkerInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref489899be != nil { - return x.ref489899be, nil + } else if x.refbf575d93 != nil { + return x.refbf575d93, nil } - mem489899be := allocDeviceGeneratedCommandsFeaturesNVXMemory(1) - ref489899be := (*C.VkDeviceGeneratedCommandsFeaturesNVX)(mem489899be) - allocs489899be := new(cgoAllocMap) - allocs489899be.Add(mem489899be) + membf575d93 := allocPerformanceMarkerInfoINTELMemory(1) + refbf575d93 := (*C.VkPerformanceMarkerInfoINTEL)(membf575d93) + allocsbf575d93 := new(cgoAllocMap) + allocsbf575d93.Add(membf575d93) var csType_allocs *cgoAllocMap - ref489899be.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs489899be.Borrow(csType_allocs) + refbf575d93.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbf575d93.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref489899be.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs489899be.Borrow(cpNext_allocs) + refbf575d93.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbf575d93.Borrow(cpNext_allocs) - var ccomputeBindingPointSupport_allocs *cgoAllocMap - ref489899be.computeBindingPointSupport, ccomputeBindingPointSupport_allocs = (C.VkBool32)(x.ComputeBindingPointSupport), cgoAllocsUnknown - allocs489899be.Borrow(ccomputeBindingPointSupport_allocs) + var cmarker_allocs *cgoAllocMap + refbf575d93.marker, cmarker_allocs = (C.uint64_t)(x.Marker), cgoAllocsUnknown + allocsbf575d93.Borrow(cmarker_allocs) - x.ref489899be = ref489899be - x.allocs489899be = allocs489899be - return ref489899be, allocs489899be + x.refbf575d93 = refbf575d93 + x.allocsbf575d93 = allocsbf575d93 + return refbf575d93, allocsbf575d93 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceGeneratedCommandsFeaturesNVX) PassValue() (C.VkDeviceGeneratedCommandsFeaturesNVX, *cgoAllocMap) { - if x.ref489899be != nil { - return *x.ref489899be, nil +func (x PerformanceMarkerInfoINTEL) PassValue() (C.VkPerformanceMarkerInfoINTEL, *cgoAllocMap) { + if x.refbf575d93 != nil { + return *x.refbf575d93, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27826,106 +54683,90 @@ func (x DeviceGeneratedCommandsFeaturesNVX) PassValue() (C.VkDeviceGeneratedComm // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceGeneratedCommandsFeaturesNVX) Deref() { - if x.ref489899be == nil { +func (x *PerformanceMarkerInfoINTEL) Deref() { + if x.refbf575d93 == nil { return } - x.SType = (StructureType)(x.ref489899be.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref489899be.pNext)) - x.ComputeBindingPointSupport = (Bool32)(x.ref489899be.computeBindingPointSupport) + x.SType = (StructureType)(x.refbf575d93.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbf575d93.pNext)) + x.Marker = (uint64)(x.refbf575d93.marker) } -// allocDeviceGeneratedCommandsLimitsNVXMemory allocates memory for type C.VkDeviceGeneratedCommandsLimitsNVX in C. +// allocPerformanceStreamMarkerInfoINTELMemory allocates memory for type C.VkPerformanceStreamMarkerInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceGeneratedCommandsLimitsNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceGeneratedCommandsLimitsNVXValue)) +func allocPerformanceStreamMarkerInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceStreamMarkerInfoINTELValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceGeneratedCommandsLimitsNVXValue = unsafe.Sizeof([1]C.VkDeviceGeneratedCommandsLimitsNVX{}) +const sizeOfPerformanceStreamMarkerInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceStreamMarkerInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceGeneratedCommandsLimitsNVX) Ref() *C.VkDeviceGeneratedCommandsLimitsNVX { +func (x *PerformanceStreamMarkerInfoINTEL) Ref() *C.VkPerformanceStreamMarkerInfoINTEL { if x == nil { return nil } - return x.refb2b76f40 + return x.refaaf8355c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceGeneratedCommandsLimitsNVX) Free() { - if x != nil && x.allocsb2b76f40 != nil { - x.allocsb2b76f40.(*cgoAllocMap).Free() - x.refb2b76f40 = nil +func (x *PerformanceStreamMarkerInfoINTEL) Free() { + if x != nil && x.allocsaaf8355c != nil { + x.allocsaaf8355c.(*cgoAllocMap).Free() + x.refaaf8355c = nil } } -// NewDeviceGeneratedCommandsLimitsNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPerformanceStreamMarkerInfoINTELRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceGeneratedCommandsLimitsNVXRef(ref unsafe.Pointer) *DeviceGeneratedCommandsLimitsNVX { +func NewPerformanceStreamMarkerInfoINTELRef(ref unsafe.Pointer) *PerformanceStreamMarkerInfoINTEL { if ref == nil { return nil } - obj := new(DeviceGeneratedCommandsLimitsNVX) - obj.refb2b76f40 = (*C.VkDeviceGeneratedCommandsLimitsNVX)(unsafe.Pointer(ref)) + obj := new(PerformanceStreamMarkerInfoINTEL) + obj.refaaf8355c = (*C.VkPerformanceStreamMarkerInfoINTEL)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceGeneratedCommandsLimitsNVX) PassRef() (*C.VkDeviceGeneratedCommandsLimitsNVX, *cgoAllocMap) { +func (x *PerformanceStreamMarkerInfoINTEL) PassRef() (*C.VkPerformanceStreamMarkerInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb2b76f40 != nil { - return x.refb2b76f40, nil + } else if x.refaaf8355c != nil { + return x.refaaf8355c, nil } - memb2b76f40 := allocDeviceGeneratedCommandsLimitsNVXMemory(1) - refb2b76f40 := (*C.VkDeviceGeneratedCommandsLimitsNVX)(memb2b76f40) - allocsb2b76f40 := new(cgoAllocMap) - allocsb2b76f40.Add(memb2b76f40) + memaaf8355c := allocPerformanceStreamMarkerInfoINTELMemory(1) + refaaf8355c := (*C.VkPerformanceStreamMarkerInfoINTEL)(memaaf8355c) + allocsaaf8355c := new(cgoAllocMap) + allocsaaf8355c.Add(memaaf8355c) var csType_allocs *cgoAllocMap - refb2b76f40.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb2b76f40.Borrow(csType_allocs) + refaaf8355c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsaaf8355c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb2b76f40.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb2b76f40.Borrow(cpNext_allocs) - - var cmaxIndirectCommandsLayoutTokenCount_allocs *cgoAllocMap - refb2b76f40.maxIndirectCommandsLayoutTokenCount, cmaxIndirectCommandsLayoutTokenCount_allocs = (C.uint32_t)(x.MaxIndirectCommandsLayoutTokenCount), cgoAllocsUnknown - allocsb2b76f40.Borrow(cmaxIndirectCommandsLayoutTokenCount_allocs) + refaaf8355c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsaaf8355c.Borrow(cpNext_allocs) - var cmaxObjectEntryCounts_allocs *cgoAllocMap - refb2b76f40.maxObjectEntryCounts, cmaxObjectEntryCounts_allocs = (C.uint32_t)(x.MaxObjectEntryCounts), cgoAllocsUnknown - allocsb2b76f40.Borrow(cmaxObjectEntryCounts_allocs) + var cmarker_allocs *cgoAllocMap + refaaf8355c.marker, cmarker_allocs = (C.uint32_t)(x.Marker), cgoAllocsUnknown + allocsaaf8355c.Borrow(cmarker_allocs) - var cminSequenceCountBufferOffsetAlignment_allocs *cgoAllocMap - refb2b76f40.minSequenceCountBufferOffsetAlignment, cminSequenceCountBufferOffsetAlignment_allocs = (C.uint32_t)(x.MinSequenceCountBufferOffsetAlignment), cgoAllocsUnknown - allocsb2b76f40.Borrow(cminSequenceCountBufferOffsetAlignment_allocs) - - var cminSequenceIndexBufferOffsetAlignment_allocs *cgoAllocMap - refb2b76f40.minSequenceIndexBufferOffsetAlignment, cminSequenceIndexBufferOffsetAlignment_allocs = (C.uint32_t)(x.MinSequenceIndexBufferOffsetAlignment), cgoAllocsUnknown - allocsb2b76f40.Borrow(cminSequenceIndexBufferOffsetAlignment_allocs) - - var cminCommandsTokenBufferOffsetAlignment_allocs *cgoAllocMap - refb2b76f40.minCommandsTokenBufferOffsetAlignment, cminCommandsTokenBufferOffsetAlignment_allocs = (C.uint32_t)(x.MinCommandsTokenBufferOffsetAlignment), cgoAllocsUnknown - allocsb2b76f40.Borrow(cminCommandsTokenBufferOffsetAlignment_allocs) - - x.refb2b76f40 = refb2b76f40 - x.allocsb2b76f40 = allocsb2b76f40 - return refb2b76f40, allocsb2b76f40 + x.refaaf8355c = refaaf8355c + x.allocsaaf8355c = allocsaaf8355c + return refaaf8355c, allocsaaf8355c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceGeneratedCommandsLimitsNVX) PassValue() (C.VkDeviceGeneratedCommandsLimitsNVX, *cgoAllocMap) { - if x.refb2b76f40 != nil { - return *x.refb2b76f40, nil +func (x PerformanceStreamMarkerInfoINTEL) PassValue() (C.VkPerformanceStreamMarkerInfoINTEL, *cgoAllocMap) { + if x.refaaf8355c != nil { + return *x.refaaf8355c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -27933,94 +54774,98 @@ func (x DeviceGeneratedCommandsLimitsNVX) PassValue() (C.VkDeviceGeneratedComman // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceGeneratedCommandsLimitsNVX) Deref() { - if x.refb2b76f40 == nil { +func (x *PerformanceStreamMarkerInfoINTEL) Deref() { + if x.refaaf8355c == nil { return } - x.SType = (StructureType)(x.refb2b76f40.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb2b76f40.pNext)) - x.MaxIndirectCommandsLayoutTokenCount = (uint32)(x.refb2b76f40.maxIndirectCommandsLayoutTokenCount) - x.MaxObjectEntryCounts = (uint32)(x.refb2b76f40.maxObjectEntryCounts) - x.MinSequenceCountBufferOffsetAlignment = (uint32)(x.refb2b76f40.minSequenceCountBufferOffsetAlignment) - x.MinSequenceIndexBufferOffsetAlignment = (uint32)(x.refb2b76f40.minSequenceIndexBufferOffsetAlignment) - x.MinCommandsTokenBufferOffsetAlignment = (uint32)(x.refb2b76f40.minCommandsTokenBufferOffsetAlignment) + x.SType = (StructureType)(x.refaaf8355c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaaf8355c.pNext)) + x.Marker = (uint32)(x.refaaf8355c.marker) } -// allocIndirectCommandsTokenNVXMemory allocates memory for type C.VkIndirectCommandsTokenNVX in C. +// allocPerformanceOverrideInfoINTELMemory allocates memory for type C.VkPerformanceOverrideInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocIndirectCommandsTokenNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsTokenNVXValue)) +func allocPerformanceOverrideInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceOverrideInfoINTELValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfIndirectCommandsTokenNVXValue = unsafe.Sizeof([1]C.VkIndirectCommandsTokenNVX{}) +const sizeOfPerformanceOverrideInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceOverrideInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *IndirectCommandsTokenNVX) Ref() *C.VkIndirectCommandsTokenNVX { +func (x *PerformanceOverrideInfoINTEL) Ref() *C.VkPerformanceOverrideInfoINTEL { if x == nil { return nil } - return x.ref8a2daca5 + return x.ref1cdbce31 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *IndirectCommandsTokenNVX) Free() { - if x != nil && x.allocs8a2daca5 != nil { - x.allocs8a2daca5.(*cgoAllocMap).Free() - x.ref8a2daca5 = nil +func (x *PerformanceOverrideInfoINTEL) Free() { + if x != nil && x.allocs1cdbce31 != nil { + x.allocs1cdbce31.(*cgoAllocMap).Free() + x.ref1cdbce31 = nil } } -// NewIndirectCommandsTokenNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPerformanceOverrideInfoINTELRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewIndirectCommandsTokenNVXRef(ref unsafe.Pointer) *IndirectCommandsTokenNVX { +func NewPerformanceOverrideInfoINTELRef(ref unsafe.Pointer) *PerformanceOverrideInfoINTEL { if ref == nil { return nil } - obj := new(IndirectCommandsTokenNVX) - obj.ref8a2daca5 = (*C.VkIndirectCommandsTokenNVX)(unsafe.Pointer(ref)) + obj := new(PerformanceOverrideInfoINTEL) + obj.ref1cdbce31 = (*C.VkPerformanceOverrideInfoINTEL)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *IndirectCommandsTokenNVX) PassRef() (*C.VkIndirectCommandsTokenNVX, *cgoAllocMap) { +func (x *PerformanceOverrideInfoINTEL) PassRef() (*C.VkPerformanceOverrideInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8a2daca5 != nil { - return x.ref8a2daca5, nil + } else if x.ref1cdbce31 != nil { + return x.ref1cdbce31, nil } - mem8a2daca5 := allocIndirectCommandsTokenNVXMemory(1) - ref8a2daca5 := (*C.VkIndirectCommandsTokenNVX)(mem8a2daca5) - allocs8a2daca5 := new(cgoAllocMap) - allocs8a2daca5.Add(mem8a2daca5) + mem1cdbce31 := allocPerformanceOverrideInfoINTELMemory(1) + ref1cdbce31 := (*C.VkPerformanceOverrideInfoINTEL)(mem1cdbce31) + allocs1cdbce31 := new(cgoAllocMap) + allocs1cdbce31.Add(mem1cdbce31) - var ctokenType_allocs *cgoAllocMap - ref8a2daca5.tokenType, ctokenType_allocs = (C.VkIndirectCommandsTokenTypeNVX)(x.TokenType), cgoAllocsUnknown - allocs8a2daca5.Borrow(ctokenType_allocs) + var csType_allocs *cgoAllocMap + ref1cdbce31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1cdbce31.Borrow(csType_allocs) - var cbuffer_allocs *cgoAllocMap - ref8a2daca5.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocs8a2daca5.Borrow(cbuffer_allocs) + var cpNext_allocs *cgoAllocMap + ref1cdbce31.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1cdbce31.Borrow(cpNext_allocs) - var coffset_allocs *cgoAllocMap - ref8a2daca5.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocs8a2daca5.Borrow(coffset_allocs) + var c_type_allocs *cgoAllocMap + ref1cdbce31._type, c_type_allocs = (C.VkPerformanceOverrideTypeINTEL)(x.Type), cgoAllocsUnknown + allocs1cdbce31.Borrow(c_type_allocs) + + var cenable_allocs *cgoAllocMap + ref1cdbce31.enable, cenable_allocs = (C.VkBool32)(x.Enable), cgoAllocsUnknown + allocs1cdbce31.Borrow(cenable_allocs) - x.ref8a2daca5 = ref8a2daca5 - x.allocs8a2daca5 = allocs8a2daca5 - return ref8a2daca5, allocs8a2daca5 + var cparameter_allocs *cgoAllocMap + ref1cdbce31.parameter, cparameter_allocs = (C.uint64_t)(x.Parameter), cgoAllocsUnknown + allocs1cdbce31.Borrow(cparameter_allocs) + + x.ref1cdbce31 = ref1cdbce31 + x.allocs1cdbce31 = allocs1cdbce31 + return ref1cdbce31, allocs1cdbce31 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x IndirectCommandsTokenNVX) PassValue() (C.VkIndirectCommandsTokenNVX, *cgoAllocMap) { - if x.ref8a2daca5 != nil { - return *x.ref8a2daca5, nil +func (x PerformanceOverrideInfoINTEL) PassValue() (C.VkPerformanceOverrideInfoINTEL, *cgoAllocMap) { + if x.ref1cdbce31 != nil { + return *x.ref1cdbce31, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28028,94 +54873,92 @@ func (x IndirectCommandsTokenNVX) PassValue() (C.VkIndirectCommandsTokenNVX, *cg // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *IndirectCommandsTokenNVX) Deref() { - if x.ref8a2daca5 == nil { +func (x *PerformanceOverrideInfoINTEL) Deref() { + if x.ref1cdbce31 == nil { return } - x.TokenType = (IndirectCommandsTokenTypeNVX)(x.ref8a2daca5.tokenType) - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref8a2daca5.buffer)) - x.Offset = (DeviceSize)(x.ref8a2daca5.offset) + x.SType = (StructureType)(x.ref1cdbce31.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1cdbce31.pNext)) + x.Type = (PerformanceOverrideTypeINTEL)(x.ref1cdbce31._type) + x.Enable = (Bool32)(x.ref1cdbce31.enable) + x.Parameter = (uint64)(x.ref1cdbce31.parameter) } -// allocIndirectCommandsLayoutTokenNVXMemory allocates memory for type C.VkIndirectCommandsLayoutTokenNVX in C. +// allocPerformanceConfigurationAcquireInfoINTELMemory allocates memory for type C.VkPerformanceConfigurationAcquireInfoINTEL in C. // The caller is responsible for freeing the this memory via C.free. -func allocIndirectCommandsLayoutTokenNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsLayoutTokenNVXValue)) +func allocPerformanceConfigurationAcquireInfoINTELMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPerformanceConfigurationAcquireInfoINTELValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfIndirectCommandsLayoutTokenNVXValue = unsafe.Sizeof([1]C.VkIndirectCommandsLayoutTokenNVX{}) +const sizeOfPerformanceConfigurationAcquireInfoINTELValue = unsafe.Sizeof([1]C.VkPerformanceConfigurationAcquireInfoINTEL{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *IndirectCommandsLayoutTokenNVX) Ref() *C.VkIndirectCommandsLayoutTokenNVX { +func (x *PerformanceConfigurationAcquireInfoINTEL) Ref() *C.VkPerformanceConfigurationAcquireInfoINTEL { if x == nil { return nil } - return x.refe421769 + return x.ref16c1d105 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *IndirectCommandsLayoutTokenNVX) Free() { - if x != nil && x.allocse421769 != nil { - x.allocse421769.(*cgoAllocMap).Free() - x.refe421769 = nil +func (x *PerformanceConfigurationAcquireInfoINTEL) Free() { + if x != nil && x.allocs16c1d105 != nil { + x.allocs16c1d105.(*cgoAllocMap).Free() + x.ref16c1d105 = nil } } -// NewIndirectCommandsLayoutTokenNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPerformanceConfigurationAcquireInfoINTELRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewIndirectCommandsLayoutTokenNVXRef(ref unsafe.Pointer) *IndirectCommandsLayoutTokenNVX { +func NewPerformanceConfigurationAcquireInfoINTELRef(ref unsafe.Pointer) *PerformanceConfigurationAcquireInfoINTEL { if ref == nil { return nil } - obj := new(IndirectCommandsLayoutTokenNVX) - obj.refe421769 = (*C.VkIndirectCommandsLayoutTokenNVX)(unsafe.Pointer(ref)) + obj := new(PerformanceConfigurationAcquireInfoINTEL) + obj.ref16c1d105 = (*C.VkPerformanceConfigurationAcquireInfoINTEL)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *IndirectCommandsLayoutTokenNVX) PassRef() (*C.VkIndirectCommandsLayoutTokenNVX, *cgoAllocMap) { +func (x *PerformanceConfigurationAcquireInfoINTEL) PassRef() (*C.VkPerformanceConfigurationAcquireInfoINTEL, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe421769 != nil { - return x.refe421769, nil + } else if x.ref16c1d105 != nil { + return x.ref16c1d105, nil } - meme421769 := allocIndirectCommandsLayoutTokenNVXMemory(1) - refe421769 := (*C.VkIndirectCommandsLayoutTokenNVX)(meme421769) - allocse421769 := new(cgoAllocMap) - allocse421769.Add(meme421769) - - var ctokenType_allocs *cgoAllocMap - refe421769.tokenType, ctokenType_allocs = (C.VkIndirectCommandsTokenTypeNVX)(x.TokenType), cgoAllocsUnknown - allocse421769.Borrow(ctokenType_allocs) + mem16c1d105 := allocPerformanceConfigurationAcquireInfoINTELMemory(1) + ref16c1d105 := (*C.VkPerformanceConfigurationAcquireInfoINTEL)(mem16c1d105) + allocs16c1d105 := new(cgoAllocMap) + allocs16c1d105.Add(mem16c1d105) - var cbindingUnit_allocs *cgoAllocMap - refe421769.bindingUnit, cbindingUnit_allocs = (C.uint32_t)(x.BindingUnit), cgoAllocsUnknown - allocse421769.Borrow(cbindingUnit_allocs) + var csType_allocs *cgoAllocMap + ref16c1d105.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs16c1d105.Borrow(csType_allocs) - var cdynamicCount_allocs *cgoAllocMap - refe421769.dynamicCount, cdynamicCount_allocs = (C.uint32_t)(x.DynamicCount), cgoAllocsUnknown - allocse421769.Borrow(cdynamicCount_allocs) + var cpNext_allocs *cgoAllocMap + ref16c1d105.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs16c1d105.Borrow(cpNext_allocs) - var cdivisor_allocs *cgoAllocMap - refe421769.divisor, cdivisor_allocs = (C.uint32_t)(x.Divisor), cgoAllocsUnknown - allocse421769.Borrow(cdivisor_allocs) + var c_type_allocs *cgoAllocMap + ref16c1d105._type, c_type_allocs = (C.VkPerformanceConfigurationTypeINTEL)(x.Type), cgoAllocsUnknown + allocs16c1d105.Borrow(c_type_allocs) - x.refe421769 = refe421769 - x.allocse421769 = allocse421769 - return refe421769, allocse421769 + x.ref16c1d105 = ref16c1d105 + x.allocs16c1d105 = allocs16c1d105 + return ref16c1d105, allocs16c1d105 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x IndirectCommandsLayoutTokenNVX) PassValue() (C.VkIndirectCommandsLayoutTokenNVX, *cgoAllocMap) { - if x.refe421769 != nil { - return *x.refe421769, nil +func (x PerformanceConfigurationAcquireInfoINTEL) PassValue() (C.VkPerformanceConfigurationAcquireInfoINTEL, *cgoAllocMap) { + if x.ref16c1d105 != nil { + return *x.ref16c1d105, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28123,141 +54966,102 @@ func (x IndirectCommandsLayoutTokenNVX) PassValue() (C.VkIndirectCommandsLayoutT // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *IndirectCommandsLayoutTokenNVX) Deref() { - if x.refe421769 == nil { +func (x *PerformanceConfigurationAcquireInfoINTEL) Deref() { + if x.ref16c1d105 == nil { return } - x.TokenType = (IndirectCommandsTokenTypeNVX)(x.refe421769.tokenType) - x.BindingUnit = (uint32)(x.refe421769.bindingUnit) - x.DynamicCount = (uint32)(x.refe421769.dynamicCount) - x.Divisor = (uint32)(x.refe421769.divisor) + x.SType = (StructureType)(x.ref16c1d105.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref16c1d105.pNext)) + x.Type = (PerformanceConfigurationTypeINTEL)(x.ref16c1d105._type) } -// allocIndirectCommandsLayoutCreateInfoNVXMemory allocates memory for type C.VkIndirectCommandsLayoutCreateInfoNVX in C. +// allocPhysicalDevicePCIBusInfoPropertiesMemory allocates memory for type C.VkPhysicalDevicePCIBusInfoPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocIndirectCommandsLayoutCreateInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsLayoutCreateInfoNVXValue)) +func allocPhysicalDevicePCIBusInfoPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePCIBusInfoPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfIndirectCommandsLayoutCreateInfoNVXValue = unsafe.Sizeof([1]C.VkIndirectCommandsLayoutCreateInfoNVX{}) - -// unpackSIndirectCommandsLayoutTokenNVX transforms a sliced Go data structure into plain C format. -func unpackSIndirectCommandsLayoutTokenNVX(x []IndirectCommandsLayoutTokenNVX) (unpacked *C.VkIndirectCommandsLayoutTokenNVX, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkIndirectCommandsLayoutTokenNVX) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocIndirectCommandsLayoutTokenNVXMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkIndirectCommandsLayoutTokenNVX)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkIndirectCommandsLayoutTokenNVX)(h.Data) - return -} - -// packSIndirectCommandsLayoutTokenNVX reads sliced Go data structure out from plain C format. -func packSIndirectCommandsLayoutTokenNVX(v []IndirectCommandsLayoutTokenNVX, ptr0 *C.VkIndirectCommandsLayoutTokenNVX) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfIndirectCommandsLayoutTokenNVXValue]C.VkIndirectCommandsLayoutTokenNVX)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewIndirectCommandsLayoutTokenNVXRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfPhysicalDevicePCIBusInfoPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePCIBusInfoPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *IndirectCommandsLayoutCreateInfoNVX) Ref() *C.VkIndirectCommandsLayoutCreateInfoNVX { +func (x *PhysicalDevicePCIBusInfoProperties) Ref() *C.VkPhysicalDevicePCIBusInfoPropertiesEXT { if x == nil { return nil } - return x.ref2a2866d5 + return x.refdd9947ff } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *IndirectCommandsLayoutCreateInfoNVX) Free() { - if x != nil && x.allocs2a2866d5 != nil { - x.allocs2a2866d5.(*cgoAllocMap).Free() - x.ref2a2866d5 = nil +func (x *PhysicalDevicePCIBusInfoProperties) Free() { + if x != nil && x.allocsdd9947ff != nil { + x.allocsdd9947ff.(*cgoAllocMap).Free() + x.refdd9947ff = nil } } -// NewIndirectCommandsLayoutCreateInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePCIBusInfoPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewIndirectCommandsLayoutCreateInfoNVXRef(ref unsafe.Pointer) *IndirectCommandsLayoutCreateInfoNVX { +func NewPhysicalDevicePCIBusInfoPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePCIBusInfoProperties { if ref == nil { return nil } - obj := new(IndirectCommandsLayoutCreateInfoNVX) - obj.ref2a2866d5 = (*C.VkIndirectCommandsLayoutCreateInfoNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePCIBusInfoProperties) + obj.refdd9947ff = (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *IndirectCommandsLayoutCreateInfoNVX) PassRef() (*C.VkIndirectCommandsLayoutCreateInfoNVX, *cgoAllocMap) { +func (x *PhysicalDevicePCIBusInfoProperties) PassRef() (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2a2866d5 != nil { - return x.ref2a2866d5, nil + } else if x.refdd9947ff != nil { + return x.refdd9947ff, nil } - mem2a2866d5 := allocIndirectCommandsLayoutCreateInfoNVXMemory(1) - ref2a2866d5 := (*C.VkIndirectCommandsLayoutCreateInfoNVX)(mem2a2866d5) - allocs2a2866d5 := new(cgoAllocMap) - allocs2a2866d5.Add(mem2a2866d5) + memdd9947ff := allocPhysicalDevicePCIBusInfoPropertiesMemory(1) + refdd9947ff := (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT)(memdd9947ff) + allocsdd9947ff := new(cgoAllocMap) + allocsdd9947ff.Add(memdd9947ff) var csType_allocs *cgoAllocMap - ref2a2866d5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2a2866d5.Borrow(csType_allocs) + refdd9947ff.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdd9947ff.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2a2866d5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2a2866d5.Borrow(cpNext_allocs) + refdd9947ff.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpNext_allocs) - var cpipelineBindPoint_allocs *cgoAllocMap - ref2a2866d5.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown - allocs2a2866d5.Borrow(cpipelineBindPoint_allocs) + var cpciDomain_allocs *cgoAllocMap + refdd9947ff.pciDomain, cpciDomain_allocs = (C.uint32_t)(x.PciDomain), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciDomain_allocs) - var cflags_allocs *cgoAllocMap - ref2a2866d5.flags, cflags_allocs = (C.VkIndirectCommandsLayoutUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs2a2866d5.Borrow(cflags_allocs) + var cpciBus_allocs *cgoAllocMap + refdd9947ff.pciBus, cpciBus_allocs = (C.uint32_t)(x.PciBus), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciBus_allocs) - var ctokenCount_allocs *cgoAllocMap - ref2a2866d5.tokenCount, ctokenCount_allocs = (C.uint32_t)(x.TokenCount), cgoAllocsUnknown - allocs2a2866d5.Borrow(ctokenCount_allocs) + var cpciDevice_allocs *cgoAllocMap + refdd9947ff.pciDevice, cpciDevice_allocs = (C.uint32_t)(x.PciDevice), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciDevice_allocs) - var cpTokens_allocs *cgoAllocMap - ref2a2866d5.pTokens, cpTokens_allocs = unpackSIndirectCommandsLayoutTokenNVX(x.PTokens) - allocs2a2866d5.Borrow(cpTokens_allocs) + var cpciFunction_allocs *cgoAllocMap + refdd9947ff.pciFunction, cpciFunction_allocs = (C.uint32_t)(x.PciFunction), cgoAllocsUnknown + allocsdd9947ff.Borrow(cpciFunction_allocs) - x.ref2a2866d5 = ref2a2866d5 - x.allocs2a2866d5 = allocs2a2866d5 - return ref2a2866d5, allocs2a2866d5 + x.refdd9947ff = refdd9947ff + x.allocsdd9947ff = allocsdd9947ff + return refdd9947ff, allocsdd9947ff } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x IndirectCommandsLayoutCreateInfoNVX) PassValue() (C.VkIndirectCommandsLayoutCreateInfoNVX, *cgoAllocMap) { - if x.ref2a2866d5 != nil { - return *x.ref2a2866d5, nil +func (x PhysicalDevicePCIBusInfoProperties) PassValue() (C.VkPhysicalDevicePCIBusInfoPropertiesEXT, *cgoAllocMap) { + if x.refdd9947ff != nil { + return *x.refdd9947ff, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28265,167 +55069,93 @@ func (x IndirectCommandsLayoutCreateInfoNVX) PassValue() (C.VkIndirectCommandsLa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *IndirectCommandsLayoutCreateInfoNVX) Deref() { - if x.ref2a2866d5 == nil { +func (x *PhysicalDevicePCIBusInfoProperties) Deref() { + if x.refdd9947ff == nil { return } - x.SType = (StructureType)(x.ref2a2866d5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2a2866d5.pNext)) - x.PipelineBindPoint = (PipelineBindPoint)(x.ref2a2866d5.pipelineBindPoint) - x.Flags = (IndirectCommandsLayoutUsageFlagsNVX)(x.ref2a2866d5.flags) - x.TokenCount = (uint32)(x.ref2a2866d5.tokenCount) - packSIndirectCommandsLayoutTokenNVX(x.PTokens, x.ref2a2866d5.pTokens) + x.SType = (StructureType)(x.refdd9947ff.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdd9947ff.pNext)) + x.PciDomain = (uint32)(x.refdd9947ff.pciDomain) + x.PciBus = (uint32)(x.refdd9947ff.pciBus) + x.PciDevice = (uint32)(x.refdd9947ff.pciDevice) + x.PciFunction = (uint32)(x.refdd9947ff.pciFunction) } -// allocCmdProcessCommandsInfoNVXMemory allocates memory for type C.VkCmdProcessCommandsInfoNVX in C. +// allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory allocates memory for type C.VkDisplayNativeHdrSurfaceCapabilitiesAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocCmdProcessCommandsInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCmdProcessCommandsInfoNVXValue)) +func allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayNativeHdrSurfaceCapabilitiesAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfCmdProcessCommandsInfoNVXValue = unsafe.Sizeof([1]C.VkCmdProcessCommandsInfoNVX{}) - -// unpackSIndirectCommandsTokenNVX transforms a sliced Go data structure into plain C format. -func unpackSIndirectCommandsTokenNVX(x []IndirectCommandsTokenNVX) (unpacked *C.VkIndirectCommandsTokenNVX, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkIndirectCommandsTokenNVX) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocIndirectCommandsTokenNVXMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkIndirectCommandsTokenNVX)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkIndirectCommandsTokenNVX)(h.Data) - return -} - -// packSIndirectCommandsTokenNVX reads sliced Go data structure out from plain C format. -func packSIndirectCommandsTokenNVX(v []IndirectCommandsTokenNVX, ptr0 *C.VkIndirectCommandsTokenNVX) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfIndirectCommandsTokenNVXValue]C.VkIndirectCommandsTokenNVX)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewIndirectCommandsTokenNVXRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfDisplayNativeHdrSurfaceCapabilitiesAMDValue = unsafe.Sizeof([1]C.VkDisplayNativeHdrSurfaceCapabilitiesAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CmdProcessCommandsInfoNVX) Ref() *C.VkCmdProcessCommandsInfoNVX { +func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) Ref() *C.VkDisplayNativeHdrSurfaceCapabilitiesAMD { if x == nil { return nil } - return x.refcd94895d + return x.ref2521293a } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CmdProcessCommandsInfoNVX) Free() { - if x != nil && x.allocscd94895d != nil { - x.allocscd94895d.(*cgoAllocMap).Free() - x.refcd94895d = nil +func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) Free() { + if x != nil && x.allocs2521293a != nil { + x.allocs2521293a.(*cgoAllocMap).Free() + x.ref2521293a = nil } } -// NewCmdProcessCommandsInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDisplayNativeHdrSurfaceCapabilitiesAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCmdProcessCommandsInfoNVXRef(ref unsafe.Pointer) *CmdProcessCommandsInfoNVX { +func NewDisplayNativeHdrSurfaceCapabilitiesAMDRef(ref unsafe.Pointer) *DisplayNativeHdrSurfaceCapabilitiesAMD { if ref == nil { return nil } - obj := new(CmdProcessCommandsInfoNVX) - obj.refcd94895d = (*C.VkCmdProcessCommandsInfoNVX)(unsafe.Pointer(ref)) + obj := new(DisplayNativeHdrSurfaceCapabilitiesAMD) + obj.ref2521293a = (*C.VkDisplayNativeHdrSurfaceCapabilitiesAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CmdProcessCommandsInfoNVX) PassRef() (*C.VkCmdProcessCommandsInfoNVX, *cgoAllocMap) { +func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) PassRef() (*C.VkDisplayNativeHdrSurfaceCapabilitiesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcd94895d != nil { - return x.refcd94895d, nil + } else if x.ref2521293a != nil { + return x.ref2521293a, nil } - memcd94895d := allocCmdProcessCommandsInfoNVXMemory(1) - refcd94895d := (*C.VkCmdProcessCommandsInfoNVX)(memcd94895d) - allocscd94895d := new(cgoAllocMap) - allocscd94895d.Add(memcd94895d) + mem2521293a := allocDisplayNativeHdrSurfaceCapabilitiesAMDMemory(1) + ref2521293a := (*C.VkDisplayNativeHdrSurfaceCapabilitiesAMD)(mem2521293a) + allocs2521293a := new(cgoAllocMap) + allocs2521293a.Add(mem2521293a) var csType_allocs *cgoAllocMap - refcd94895d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscd94895d.Borrow(csType_allocs) + ref2521293a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2521293a.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcd94895d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscd94895d.Borrow(cpNext_allocs) + ref2521293a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2521293a.Borrow(cpNext_allocs) - var cobjectTable_allocs *cgoAllocMap - refcd94895d.objectTable, cobjectTable_allocs = *(*C.VkObjectTableNVX)(unsafe.Pointer(&x.ObjectTable)), cgoAllocsUnknown - allocscd94895d.Borrow(cobjectTable_allocs) + var clocalDimmingSupport_allocs *cgoAllocMap + ref2521293a.localDimmingSupport, clocalDimmingSupport_allocs = (C.VkBool32)(x.LocalDimmingSupport), cgoAllocsUnknown + allocs2521293a.Borrow(clocalDimmingSupport_allocs) - var cindirectCommandsLayout_allocs *cgoAllocMap - refcd94895d.indirectCommandsLayout, cindirectCommandsLayout_allocs = *(*C.VkIndirectCommandsLayoutNVX)(unsafe.Pointer(&x.IndirectCommandsLayout)), cgoAllocsUnknown - allocscd94895d.Borrow(cindirectCommandsLayout_allocs) - - var cindirectCommandsTokenCount_allocs *cgoAllocMap - refcd94895d.indirectCommandsTokenCount, cindirectCommandsTokenCount_allocs = (C.uint32_t)(x.IndirectCommandsTokenCount), cgoAllocsUnknown - allocscd94895d.Borrow(cindirectCommandsTokenCount_allocs) - - var cpIndirectCommandsTokens_allocs *cgoAllocMap - refcd94895d.pIndirectCommandsTokens, cpIndirectCommandsTokens_allocs = unpackSIndirectCommandsTokenNVX(x.PIndirectCommandsTokens) - allocscd94895d.Borrow(cpIndirectCommandsTokens_allocs) - - var cmaxSequencesCount_allocs *cgoAllocMap - refcd94895d.maxSequencesCount, cmaxSequencesCount_allocs = (C.uint32_t)(x.MaxSequencesCount), cgoAllocsUnknown - allocscd94895d.Borrow(cmaxSequencesCount_allocs) - - var ctargetCommandBuffer_allocs *cgoAllocMap - refcd94895d.targetCommandBuffer, ctargetCommandBuffer_allocs = *(*C.VkCommandBuffer)(unsafe.Pointer(&x.TargetCommandBuffer)), cgoAllocsUnknown - allocscd94895d.Borrow(ctargetCommandBuffer_allocs) - - var csequencesCountBuffer_allocs *cgoAllocMap - refcd94895d.sequencesCountBuffer, csequencesCountBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SequencesCountBuffer)), cgoAllocsUnknown - allocscd94895d.Borrow(csequencesCountBuffer_allocs) - - var csequencesCountOffset_allocs *cgoAllocMap - refcd94895d.sequencesCountOffset, csequencesCountOffset_allocs = (C.VkDeviceSize)(x.SequencesCountOffset), cgoAllocsUnknown - allocscd94895d.Borrow(csequencesCountOffset_allocs) - - var csequencesIndexBuffer_allocs *cgoAllocMap - refcd94895d.sequencesIndexBuffer, csequencesIndexBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SequencesIndexBuffer)), cgoAllocsUnknown - allocscd94895d.Borrow(csequencesIndexBuffer_allocs) - - var csequencesIndexOffset_allocs *cgoAllocMap - refcd94895d.sequencesIndexOffset, csequencesIndexOffset_allocs = (C.VkDeviceSize)(x.SequencesIndexOffset), cgoAllocsUnknown - allocscd94895d.Borrow(csequencesIndexOffset_allocs) - - x.refcd94895d = refcd94895d - x.allocscd94895d = allocscd94895d - return refcd94895d, allocscd94895d + x.ref2521293a = ref2521293a + x.allocs2521293a = allocs2521293a + return ref2521293a, allocs2521293a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CmdProcessCommandsInfoNVX) PassValue() (C.VkCmdProcessCommandsInfoNVX, *cgoAllocMap) { - if x.refcd94895d != nil { - return *x.refcd94895d, nil +func (x DisplayNativeHdrSurfaceCapabilitiesAMD) PassValue() (C.VkDisplayNativeHdrSurfaceCapabilitiesAMD, *cgoAllocMap) { + if x.ref2521293a != nil { + return *x.ref2521293a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28433,107 +55163,90 @@ func (x CmdProcessCommandsInfoNVX) PassValue() (C.VkCmdProcessCommandsInfoNVX, * // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CmdProcessCommandsInfoNVX) Deref() { - if x.refcd94895d == nil { +func (x *DisplayNativeHdrSurfaceCapabilitiesAMD) Deref() { + if x.ref2521293a == nil { return } - x.SType = (StructureType)(x.refcd94895d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd94895d.pNext)) - x.ObjectTable = *(*ObjectTableNVX)(unsafe.Pointer(&x.refcd94895d.objectTable)) - x.IndirectCommandsLayout = *(*IndirectCommandsLayoutNVX)(unsafe.Pointer(&x.refcd94895d.indirectCommandsLayout)) - x.IndirectCommandsTokenCount = (uint32)(x.refcd94895d.indirectCommandsTokenCount) - packSIndirectCommandsTokenNVX(x.PIndirectCommandsTokens, x.refcd94895d.pIndirectCommandsTokens) - x.MaxSequencesCount = (uint32)(x.refcd94895d.maxSequencesCount) - x.TargetCommandBuffer = *(*CommandBuffer)(unsafe.Pointer(&x.refcd94895d.targetCommandBuffer)) - x.SequencesCountBuffer = *(*Buffer)(unsafe.Pointer(&x.refcd94895d.sequencesCountBuffer)) - x.SequencesCountOffset = (DeviceSize)(x.refcd94895d.sequencesCountOffset) - x.SequencesIndexBuffer = *(*Buffer)(unsafe.Pointer(&x.refcd94895d.sequencesIndexBuffer)) - x.SequencesIndexOffset = (DeviceSize)(x.refcd94895d.sequencesIndexOffset) + x.SType = (StructureType)(x.ref2521293a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2521293a.pNext)) + x.LocalDimmingSupport = (Bool32)(x.ref2521293a.localDimmingSupport) } -// allocCmdReserveSpaceForCommandsInfoNVXMemory allocates memory for type C.VkCmdReserveSpaceForCommandsInfoNVX in C. +// allocSwapchainDisplayNativeHdrCreateInfoAMDMemory allocates memory for type C.VkSwapchainDisplayNativeHdrCreateInfoAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocCmdReserveSpaceForCommandsInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCmdReserveSpaceForCommandsInfoNVXValue)) +func allocSwapchainDisplayNativeHdrCreateInfoAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainDisplayNativeHdrCreateInfoAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfCmdReserveSpaceForCommandsInfoNVXValue = unsafe.Sizeof([1]C.VkCmdReserveSpaceForCommandsInfoNVX{}) +const sizeOfSwapchainDisplayNativeHdrCreateInfoAMDValue = unsafe.Sizeof([1]C.VkSwapchainDisplayNativeHdrCreateInfoAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CmdReserveSpaceForCommandsInfoNVX) Ref() *C.VkCmdReserveSpaceForCommandsInfoNVX { +func (x *SwapchainDisplayNativeHdrCreateInfoAMD) Ref() *C.VkSwapchainDisplayNativeHdrCreateInfoAMD { if x == nil { return nil } - return x.ref900bfee5 + return x.refffbe2634 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CmdReserveSpaceForCommandsInfoNVX) Free() { - if x != nil && x.allocs900bfee5 != nil { - x.allocs900bfee5.(*cgoAllocMap).Free() - x.ref900bfee5 = nil +func (x *SwapchainDisplayNativeHdrCreateInfoAMD) Free() { + if x != nil && x.allocsffbe2634 != nil { + x.allocsffbe2634.(*cgoAllocMap).Free() + x.refffbe2634 = nil } } -// NewCmdReserveSpaceForCommandsInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSwapchainDisplayNativeHdrCreateInfoAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCmdReserveSpaceForCommandsInfoNVXRef(ref unsafe.Pointer) *CmdReserveSpaceForCommandsInfoNVX { +func NewSwapchainDisplayNativeHdrCreateInfoAMDRef(ref unsafe.Pointer) *SwapchainDisplayNativeHdrCreateInfoAMD { if ref == nil { return nil } - obj := new(CmdReserveSpaceForCommandsInfoNVX) - obj.ref900bfee5 = (*C.VkCmdReserveSpaceForCommandsInfoNVX)(unsafe.Pointer(ref)) + obj := new(SwapchainDisplayNativeHdrCreateInfoAMD) + obj.refffbe2634 = (*C.VkSwapchainDisplayNativeHdrCreateInfoAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CmdReserveSpaceForCommandsInfoNVX) PassRef() (*C.VkCmdReserveSpaceForCommandsInfoNVX, *cgoAllocMap) { +func (x *SwapchainDisplayNativeHdrCreateInfoAMD) PassRef() (*C.VkSwapchainDisplayNativeHdrCreateInfoAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref900bfee5 != nil { - return x.ref900bfee5, nil + } else if x.refffbe2634 != nil { + return x.refffbe2634, nil } - mem900bfee5 := allocCmdReserveSpaceForCommandsInfoNVXMemory(1) - ref900bfee5 := (*C.VkCmdReserveSpaceForCommandsInfoNVX)(mem900bfee5) - allocs900bfee5 := new(cgoAllocMap) - allocs900bfee5.Add(mem900bfee5) + memffbe2634 := allocSwapchainDisplayNativeHdrCreateInfoAMDMemory(1) + refffbe2634 := (*C.VkSwapchainDisplayNativeHdrCreateInfoAMD)(memffbe2634) + allocsffbe2634 := new(cgoAllocMap) + allocsffbe2634.Add(memffbe2634) var csType_allocs *cgoAllocMap - ref900bfee5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs900bfee5.Borrow(csType_allocs) + refffbe2634.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsffbe2634.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref900bfee5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs900bfee5.Borrow(cpNext_allocs) + refffbe2634.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsffbe2634.Borrow(cpNext_allocs) - var cobjectTable_allocs *cgoAllocMap - ref900bfee5.objectTable, cobjectTable_allocs = *(*C.VkObjectTableNVX)(unsafe.Pointer(&x.ObjectTable)), cgoAllocsUnknown - allocs900bfee5.Borrow(cobjectTable_allocs) + var clocalDimmingEnable_allocs *cgoAllocMap + refffbe2634.localDimmingEnable, clocalDimmingEnable_allocs = (C.VkBool32)(x.LocalDimmingEnable), cgoAllocsUnknown + allocsffbe2634.Borrow(clocalDimmingEnable_allocs) - var cindirectCommandsLayout_allocs *cgoAllocMap - ref900bfee5.indirectCommandsLayout, cindirectCommandsLayout_allocs = *(*C.VkIndirectCommandsLayoutNVX)(unsafe.Pointer(&x.IndirectCommandsLayout)), cgoAllocsUnknown - allocs900bfee5.Borrow(cindirectCommandsLayout_allocs) - - var cmaxSequencesCount_allocs *cgoAllocMap - ref900bfee5.maxSequencesCount, cmaxSequencesCount_allocs = (C.uint32_t)(x.MaxSequencesCount), cgoAllocsUnknown - allocs900bfee5.Borrow(cmaxSequencesCount_allocs) - - x.ref900bfee5 = ref900bfee5 - x.allocs900bfee5 = allocs900bfee5 - return ref900bfee5, allocs900bfee5 + x.refffbe2634 = refffbe2634 + x.allocsffbe2634 = allocsffbe2634 + return refffbe2634, allocsffbe2634 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CmdReserveSpaceForCommandsInfoNVX) PassValue() (C.VkCmdReserveSpaceForCommandsInfoNVX, *cgoAllocMap) { - if x.ref900bfee5 != nil { - return *x.ref900bfee5, nil +func (x SwapchainDisplayNativeHdrCreateInfoAMD) PassValue() (C.VkSwapchainDisplayNativeHdrCreateInfoAMD, *cgoAllocMap) { + if x.refffbe2634 != nil { + return *x.refffbe2634, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28541,124 +55254,98 @@ func (x CmdReserveSpaceForCommandsInfoNVX) PassValue() (C.VkCmdReserveSpaceForCo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CmdReserveSpaceForCommandsInfoNVX) Deref() { - if x.ref900bfee5 == nil { +func (x *SwapchainDisplayNativeHdrCreateInfoAMD) Deref() { + if x.refffbe2634 == nil { return } - x.SType = (StructureType)(x.ref900bfee5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref900bfee5.pNext)) - x.ObjectTable = *(*ObjectTableNVX)(unsafe.Pointer(&x.ref900bfee5.objectTable)) - x.IndirectCommandsLayout = *(*IndirectCommandsLayoutNVX)(unsafe.Pointer(&x.ref900bfee5.indirectCommandsLayout)) - x.MaxSequencesCount = (uint32)(x.ref900bfee5.maxSequencesCount) + x.SType = (StructureType)(x.refffbe2634.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffbe2634.pNext)) + x.LocalDimmingEnable = (Bool32)(x.refffbe2634.localDimmingEnable) } -// allocObjectTableCreateInfoNVXMemory allocates memory for type C.VkObjectTableCreateInfoNVX in C. +// allocPhysicalDeviceFragmentDensityMapFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocObjectTableCreateInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfObjectTableCreateInfoNVXValue)) +func allocPhysicalDeviceFragmentDensityMapFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfObjectTableCreateInfoNVXValue = unsafe.Sizeof([1]C.VkObjectTableCreateInfoNVX{}) +const sizeOfPhysicalDeviceFragmentDensityMapFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTableCreateInfoNVX) Ref() *C.VkObjectTableCreateInfoNVX { +func (x *PhysicalDeviceFragmentDensityMapFeatures) Ref() *C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT { if x == nil { return nil } - return x.refb4a6c9e1 + return x.reffa0bb2d9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ObjectTableCreateInfoNVX) Free() { - if x != nil && x.allocsb4a6c9e1 != nil { - x.allocsb4a6c9e1.(*cgoAllocMap).Free() - x.refb4a6c9e1 = nil +func (x *PhysicalDeviceFragmentDensityMapFeatures) Free() { + if x != nil && x.allocsfa0bb2d9 != nil { + x.allocsfa0bb2d9.(*cgoAllocMap).Free() + x.reffa0bb2d9 = nil } } -// NewObjectTableCreateInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentDensityMapFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewObjectTableCreateInfoNVXRef(ref unsafe.Pointer) *ObjectTableCreateInfoNVX { +func NewPhysicalDeviceFragmentDensityMapFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapFeatures { if ref == nil { return nil } - obj := new(ObjectTableCreateInfoNVX) - obj.refb4a6c9e1 = (*C.VkObjectTableCreateInfoNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentDensityMapFeatures) + obj.reffa0bb2d9 = (*C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ObjectTableCreateInfoNVX) PassRef() (*C.VkObjectTableCreateInfoNVX, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentDensityMapFeatures) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb4a6c9e1 != nil { - return x.refb4a6c9e1, nil + } else if x.reffa0bb2d9 != nil { + return x.reffa0bb2d9, nil } - memb4a6c9e1 := allocObjectTableCreateInfoNVXMemory(1) - refb4a6c9e1 := (*C.VkObjectTableCreateInfoNVX)(memb4a6c9e1) - allocsb4a6c9e1 := new(cgoAllocMap) - allocsb4a6c9e1.Add(memb4a6c9e1) + memfa0bb2d9 := allocPhysicalDeviceFragmentDensityMapFeaturesMemory(1) + reffa0bb2d9 := (*C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT)(memfa0bb2d9) + allocsfa0bb2d9 := new(cgoAllocMap) + allocsfa0bb2d9.Add(memfa0bb2d9) var csType_allocs *cgoAllocMap - refb4a6c9e1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(csType_allocs) + reffa0bb2d9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb4a6c9e1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cpNext_allocs) - - var cobjectCount_allocs *cgoAllocMap - refb4a6c9e1.objectCount, cobjectCount_allocs = (C.uint32_t)(x.ObjectCount), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cobjectCount_allocs) - - var cpObjectEntryTypes_allocs *cgoAllocMap - refb4a6c9e1.pObjectEntryTypes, cpObjectEntryTypes_allocs = (*C.VkObjectEntryTypeNVX)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PObjectEntryTypes)).Data)), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cpObjectEntryTypes_allocs) - - var cpObjectEntryCounts_allocs *cgoAllocMap - refb4a6c9e1.pObjectEntryCounts, cpObjectEntryCounts_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PObjectEntryCounts)).Data)), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cpObjectEntryCounts_allocs) - - var cpObjectEntryUsageFlags_allocs *cgoAllocMap - refb4a6c9e1.pObjectEntryUsageFlags, cpObjectEntryUsageFlags_allocs = (*C.VkObjectEntryUsageFlagsNVX)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PObjectEntryUsageFlags)).Data)), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cpObjectEntryUsageFlags_allocs) - - var cmaxUniformBuffersPerDescriptor_allocs *cgoAllocMap - refb4a6c9e1.maxUniformBuffersPerDescriptor, cmaxUniformBuffersPerDescriptor_allocs = (C.uint32_t)(x.MaxUniformBuffersPerDescriptor), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cmaxUniformBuffersPerDescriptor_allocs) - - var cmaxStorageBuffersPerDescriptor_allocs *cgoAllocMap - refb4a6c9e1.maxStorageBuffersPerDescriptor, cmaxStorageBuffersPerDescriptor_allocs = (C.uint32_t)(x.MaxStorageBuffersPerDescriptor), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cmaxStorageBuffersPerDescriptor_allocs) + reffa0bb2d9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cpNext_allocs) - var cmaxStorageImagesPerDescriptor_allocs *cgoAllocMap - refb4a6c9e1.maxStorageImagesPerDescriptor, cmaxStorageImagesPerDescriptor_allocs = (C.uint32_t)(x.MaxStorageImagesPerDescriptor), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cmaxStorageImagesPerDescriptor_allocs) + var cfragmentDensityMap_allocs *cgoAllocMap + reffa0bb2d9.fragmentDensityMap, cfragmentDensityMap_allocs = (C.VkBool32)(x.FragmentDensityMap), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cfragmentDensityMap_allocs) - var cmaxSampledImagesPerDescriptor_allocs *cgoAllocMap - refb4a6c9e1.maxSampledImagesPerDescriptor, cmaxSampledImagesPerDescriptor_allocs = (C.uint32_t)(x.MaxSampledImagesPerDescriptor), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cmaxSampledImagesPerDescriptor_allocs) + var cfragmentDensityMapDynamic_allocs *cgoAllocMap + reffa0bb2d9.fragmentDensityMapDynamic, cfragmentDensityMapDynamic_allocs = (C.VkBool32)(x.FragmentDensityMapDynamic), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cfragmentDensityMapDynamic_allocs) - var cmaxPipelineLayouts_allocs *cgoAllocMap - refb4a6c9e1.maxPipelineLayouts, cmaxPipelineLayouts_allocs = (C.uint32_t)(x.MaxPipelineLayouts), cgoAllocsUnknown - allocsb4a6c9e1.Borrow(cmaxPipelineLayouts_allocs) + var cfragmentDensityMapNonSubsampledImages_allocs *cgoAllocMap + reffa0bb2d9.fragmentDensityMapNonSubsampledImages, cfragmentDensityMapNonSubsampledImages_allocs = (C.VkBool32)(x.FragmentDensityMapNonSubsampledImages), cgoAllocsUnknown + allocsfa0bb2d9.Borrow(cfragmentDensityMapNonSubsampledImages_allocs) - x.refb4a6c9e1 = refb4a6c9e1 - x.allocsb4a6c9e1 = allocsb4a6c9e1 - return refb4a6c9e1, allocsb4a6c9e1 + x.reffa0bb2d9 = reffa0bb2d9 + x.allocsfa0bb2d9 = allocsfa0bb2d9 + return reffa0bb2d9, allocsfa0bb2d9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ObjectTableCreateInfoNVX) PassValue() (C.VkObjectTableCreateInfoNVX, *cgoAllocMap) { - if x.refb4a6c9e1 != nil { - return *x.refb4a6c9e1, nil +func (x PhysicalDeviceFragmentDensityMapFeatures) PassValue() (C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT, *cgoAllocMap) { + if x.reffa0bb2d9 != nil { + return *x.reffa0bb2d9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28666,106 +55353,100 @@ func (x ObjectTableCreateInfoNVX) PassValue() (C.VkObjectTableCreateInfoNVX, *cg // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ObjectTableCreateInfoNVX) Deref() { - if x.refb4a6c9e1 == nil { +func (x *PhysicalDeviceFragmentDensityMapFeatures) Deref() { + if x.reffa0bb2d9 == nil { return } - x.SType = (StructureType)(x.refb4a6c9e1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb4a6c9e1.pNext)) - x.ObjectCount = (uint32)(x.refb4a6c9e1.objectCount) - hxf5d30cf := (*sliceHeader)(unsafe.Pointer(&x.PObjectEntryTypes)) - hxf5d30cf.Data = unsafe.Pointer(x.refb4a6c9e1.pObjectEntryTypes) - hxf5d30cf.Cap = 0x7fffffff - // hxf5d30cf.Len = ? - - hxf882e98 := (*sliceHeader)(unsafe.Pointer(&x.PObjectEntryCounts)) - hxf882e98.Data = unsafe.Pointer(x.refb4a6c9e1.pObjectEntryCounts) - hxf882e98.Cap = 0x7fffffff - // hxf882e98.Len = ? - - hxf992404 := (*sliceHeader)(unsafe.Pointer(&x.PObjectEntryUsageFlags)) - hxf992404.Data = unsafe.Pointer(x.refb4a6c9e1.pObjectEntryUsageFlags) - hxf992404.Cap = 0x7fffffff - // hxf992404.Len = ? - - x.MaxUniformBuffersPerDescriptor = (uint32)(x.refb4a6c9e1.maxUniformBuffersPerDescriptor) - x.MaxStorageBuffersPerDescriptor = (uint32)(x.refb4a6c9e1.maxStorageBuffersPerDescriptor) - x.MaxStorageImagesPerDescriptor = (uint32)(x.refb4a6c9e1.maxStorageImagesPerDescriptor) - x.MaxSampledImagesPerDescriptor = (uint32)(x.refb4a6c9e1.maxSampledImagesPerDescriptor) - x.MaxPipelineLayouts = (uint32)(x.refb4a6c9e1.maxPipelineLayouts) + x.SType = (StructureType)(x.reffa0bb2d9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffa0bb2d9.pNext)) + x.FragmentDensityMap = (Bool32)(x.reffa0bb2d9.fragmentDensityMap) + x.FragmentDensityMapDynamic = (Bool32)(x.reffa0bb2d9.fragmentDensityMapDynamic) + x.FragmentDensityMapNonSubsampledImages = (Bool32)(x.reffa0bb2d9.fragmentDensityMapNonSubsampledImages) } -// allocObjectTableEntryNVXMemory allocates memory for type C.VkObjectTableEntryNVX in C. +// allocPhysicalDeviceFragmentDensityMapPropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocObjectTableEntryNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfObjectTableEntryNVXValue)) +func allocPhysicalDeviceFragmentDensityMapPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMapPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfObjectTableEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTableEntryNVX{}) +const sizeOfPhysicalDeviceFragmentDensityMapPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTableEntryNVX) Ref() *C.VkObjectTableEntryNVX { +func (x *PhysicalDeviceFragmentDensityMapProperties) Ref() *C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT { if x == nil { return nil } - return x.refb8f7ffef + return x.ref79e5ca31 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ObjectTableEntryNVX) Free() { - if x != nil && x.allocsb8f7ffef != nil { - x.allocsb8f7ffef.(*cgoAllocMap).Free() - x.refb8f7ffef = nil +func (x *PhysicalDeviceFragmentDensityMapProperties) Free() { + if x != nil && x.allocs79e5ca31 != nil { + x.allocs79e5ca31.(*cgoAllocMap).Free() + x.ref79e5ca31 = nil } } -// NewObjectTableEntryNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentDensityMapPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewObjectTableEntryNVXRef(ref unsafe.Pointer) *ObjectTableEntryNVX { +func NewPhysicalDeviceFragmentDensityMapPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMapProperties { if ref == nil { return nil } - obj := new(ObjectTableEntryNVX) - obj.refb8f7ffef = (*C.VkObjectTableEntryNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentDensityMapProperties) + obj.ref79e5ca31 = (*C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ObjectTableEntryNVX) PassRef() (*C.VkObjectTableEntryNVX, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentDensityMapProperties) PassRef() (*C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8f7ffef != nil { - return x.refb8f7ffef, nil + } else if x.ref79e5ca31 != nil { + return x.ref79e5ca31, nil } - memb8f7ffef := allocObjectTableEntryNVXMemory(1) - refb8f7ffef := (*C.VkObjectTableEntryNVX)(memb8f7ffef) - allocsb8f7ffef := new(cgoAllocMap) - allocsb8f7ffef.Add(memb8f7ffef) + mem79e5ca31 := allocPhysicalDeviceFragmentDensityMapPropertiesMemory(1) + ref79e5ca31 := (*C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT)(mem79e5ca31) + allocs79e5ca31 := new(cgoAllocMap) + allocs79e5ca31.Add(mem79e5ca31) - var c_type_allocs *cgoAllocMap - refb8f7ffef._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocsb8f7ffef.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + ref79e5ca31.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs79e5ca31.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - refb8f7ffef.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocsb8f7ffef.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + ref79e5ca31.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs79e5ca31.Borrow(cpNext_allocs) + + var cminFragmentDensityTexelSize_allocs *cgoAllocMap + ref79e5ca31.minFragmentDensityTexelSize, cminFragmentDensityTexelSize_allocs = x.MinFragmentDensityTexelSize.PassValue() + allocs79e5ca31.Borrow(cminFragmentDensityTexelSize_allocs) + + var cmaxFragmentDensityTexelSize_allocs *cgoAllocMap + ref79e5ca31.maxFragmentDensityTexelSize, cmaxFragmentDensityTexelSize_allocs = x.MaxFragmentDensityTexelSize.PassValue() + allocs79e5ca31.Borrow(cmaxFragmentDensityTexelSize_allocs) + + var cfragmentDensityInvocations_allocs *cgoAllocMap + ref79e5ca31.fragmentDensityInvocations, cfragmentDensityInvocations_allocs = (C.VkBool32)(x.FragmentDensityInvocations), cgoAllocsUnknown + allocs79e5ca31.Borrow(cfragmentDensityInvocations_allocs) - x.refb8f7ffef = refb8f7ffef - x.allocsb8f7ffef = allocsb8f7ffef - return refb8f7ffef, allocsb8f7ffef + x.ref79e5ca31 = ref79e5ca31 + x.allocs79e5ca31 = allocs79e5ca31 + return ref79e5ca31, allocs79e5ca31 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ObjectTableEntryNVX) PassValue() (C.VkObjectTableEntryNVX, *cgoAllocMap) { - if x.refb8f7ffef != nil { - return *x.refb8f7ffef, nil +func (x PhysicalDeviceFragmentDensityMapProperties) PassValue() (C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT, *cgoAllocMap) { + if x.ref79e5ca31 != nil { + return *x.ref79e5ca31, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28773,89 +55454,92 @@ func (x ObjectTableEntryNVX) PassValue() (C.VkObjectTableEntryNVX, *cgoAllocMap) // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ObjectTableEntryNVX) Deref() { - if x.refb8f7ffef == nil { +func (x *PhysicalDeviceFragmentDensityMapProperties) Deref() { + if x.ref79e5ca31 == nil { return } - x.Type = (ObjectEntryTypeNVX)(x.refb8f7ffef._type) - x.Flags = (ObjectEntryUsageFlagsNVX)(x.refb8f7ffef.flags) + x.SType = (StructureType)(x.ref79e5ca31.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref79e5ca31.pNext)) + x.MinFragmentDensityTexelSize = *NewExtent2DRef(unsafe.Pointer(&x.ref79e5ca31.minFragmentDensityTexelSize)) + x.MaxFragmentDensityTexelSize = *NewExtent2DRef(unsafe.Pointer(&x.ref79e5ca31.maxFragmentDensityTexelSize)) + x.FragmentDensityInvocations = (Bool32)(x.ref79e5ca31.fragmentDensityInvocations) } -// allocObjectTablePipelineEntryNVXMemory allocates memory for type C.VkObjectTablePipelineEntryNVX in C. +// allocRenderPassFragmentDensityMapCreateInfoMemory allocates memory for type C.VkRenderPassFragmentDensityMapCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocObjectTablePipelineEntryNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfObjectTablePipelineEntryNVXValue)) +func allocRenderPassFragmentDensityMapCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassFragmentDensityMapCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfObjectTablePipelineEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTablePipelineEntryNVX{}) +const sizeOfRenderPassFragmentDensityMapCreateInfoValue = unsafe.Sizeof([1]C.VkRenderPassFragmentDensityMapCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTablePipelineEntryNVX) Ref() *C.VkObjectTablePipelineEntryNVX { +func (x *RenderPassFragmentDensityMapCreateInfo) Ref() *C.VkRenderPassFragmentDensityMapCreateInfoEXT { if x == nil { return nil } - return x.ref8112859b + return x.ref76b25671 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ObjectTablePipelineEntryNVX) Free() { - if x != nil && x.allocs8112859b != nil { - x.allocs8112859b.(*cgoAllocMap).Free() - x.ref8112859b = nil +func (x *RenderPassFragmentDensityMapCreateInfo) Free() { + if x != nil && x.allocs76b25671 != nil { + x.allocs76b25671.(*cgoAllocMap).Free() + x.ref76b25671 = nil } } -// NewObjectTablePipelineEntryNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewRenderPassFragmentDensityMapCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewObjectTablePipelineEntryNVXRef(ref unsafe.Pointer) *ObjectTablePipelineEntryNVX { +func NewRenderPassFragmentDensityMapCreateInfoRef(ref unsafe.Pointer) *RenderPassFragmentDensityMapCreateInfo { if ref == nil { return nil } - obj := new(ObjectTablePipelineEntryNVX) - obj.ref8112859b = (*C.VkObjectTablePipelineEntryNVX)(unsafe.Pointer(ref)) + obj := new(RenderPassFragmentDensityMapCreateInfo) + obj.ref76b25671 = (*C.VkRenderPassFragmentDensityMapCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ObjectTablePipelineEntryNVX) PassRef() (*C.VkObjectTablePipelineEntryNVX, *cgoAllocMap) { +func (x *RenderPassFragmentDensityMapCreateInfo) PassRef() (*C.VkRenderPassFragmentDensityMapCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8112859b != nil { - return x.ref8112859b, nil + } else if x.ref76b25671 != nil { + return x.ref76b25671, nil } - mem8112859b := allocObjectTablePipelineEntryNVXMemory(1) - ref8112859b := (*C.VkObjectTablePipelineEntryNVX)(mem8112859b) - allocs8112859b := new(cgoAllocMap) - allocs8112859b.Add(mem8112859b) + mem76b25671 := allocRenderPassFragmentDensityMapCreateInfoMemory(1) + ref76b25671 := (*C.VkRenderPassFragmentDensityMapCreateInfoEXT)(mem76b25671) + allocs76b25671 := new(cgoAllocMap) + allocs76b25671.Add(mem76b25671) - var c_type_allocs *cgoAllocMap - ref8112859b._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocs8112859b.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + ref76b25671.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs76b25671.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - ref8112859b.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs8112859b.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + ref76b25671.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs76b25671.Borrow(cpNext_allocs) - var cpipeline_allocs *cgoAllocMap - ref8112859b.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown - allocs8112859b.Borrow(cpipeline_allocs) + var cfragmentDensityMapAttachment_allocs *cgoAllocMap + ref76b25671.fragmentDensityMapAttachment, cfragmentDensityMapAttachment_allocs = x.FragmentDensityMapAttachment.PassValue() + allocs76b25671.Borrow(cfragmentDensityMapAttachment_allocs) - x.ref8112859b = ref8112859b - x.allocs8112859b = allocs8112859b - return ref8112859b, allocs8112859b + x.ref76b25671 = ref76b25671 + x.allocs76b25671 = allocs76b25671 + return ref76b25671, allocs76b25671 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ObjectTablePipelineEntryNVX) PassValue() (C.VkObjectTablePipelineEntryNVX, *cgoAllocMap) { - if x.ref8112859b != nil { - return *x.ref8112859b, nil +func (x RenderPassFragmentDensityMapCreateInfo) PassValue() (C.VkRenderPassFragmentDensityMapCreateInfoEXT, *cgoAllocMap) { + if x.ref76b25671 != nil { + return *x.ref76b25671, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28863,94 +55547,94 @@ func (x ObjectTablePipelineEntryNVX) PassValue() (C.VkObjectTablePipelineEntryNV // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ObjectTablePipelineEntryNVX) Deref() { - if x.ref8112859b == nil { +func (x *RenderPassFragmentDensityMapCreateInfo) Deref() { + if x.ref76b25671 == nil { return } - x.Type = (ObjectEntryTypeNVX)(x.ref8112859b._type) - x.Flags = (ObjectEntryUsageFlagsNVX)(x.ref8112859b.flags) - x.Pipeline = *(*Pipeline)(unsafe.Pointer(&x.ref8112859b.pipeline)) + x.SType = (StructureType)(x.ref76b25671.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref76b25671.pNext)) + x.FragmentDensityMapAttachment = *NewAttachmentReferenceRef(unsafe.Pointer(&x.ref76b25671.fragmentDensityMapAttachment)) } -// allocObjectTableDescriptorSetEntryNVXMemory allocates memory for type C.VkObjectTableDescriptorSetEntryNVX in C. +// allocPhysicalDeviceShaderCoreProperties2AMDMemory allocates memory for type C.VkPhysicalDeviceShaderCoreProperties2AMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocObjectTableDescriptorSetEntryNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfObjectTableDescriptorSetEntryNVXValue)) +func allocPhysicalDeviceShaderCoreProperties2AMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderCoreProperties2AMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfObjectTableDescriptorSetEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTableDescriptorSetEntryNVX{}) +const sizeOfPhysicalDeviceShaderCoreProperties2AMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderCoreProperties2AMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTableDescriptorSetEntryNVX) Ref() *C.VkObjectTableDescriptorSetEntryNVX { +func (x *PhysicalDeviceShaderCoreProperties2AMD) Ref() *C.VkPhysicalDeviceShaderCoreProperties2AMD { if x == nil { return nil } - return x.ref6fc0d42f + return x.ref7be3d4c4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ObjectTableDescriptorSetEntryNVX) Free() { - if x != nil && x.allocs6fc0d42f != nil { - x.allocs6fc0d42f.(*cgoAllocMap).Free() - x.ref6fc0d42f = nil +func (x *PhysicalDeviceShaderCoreProperties2AMD) Free() { + if x != nil && x.allocs7be3d4c4 != nil { + x.allocs7be3d4c4.(*cgoAllocMap).Free() + x.ref7be3d4c4 = nil } } -// NewObjectTableDescriptorSetEntryNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderCoreProperties2AMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewObjectTableDescriptorSetEntryNVXRef(ref unsafe.Pointer) *ObjectTableDescriptorSetEntryNVX { +func NewPhysicalDeviceShaderCoreProperties2AMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderCoreProperties2AMD { if ref == nil { return nil } - obj := new(ObjectTableDescriptorSetEntryNVX) - obj.ref6fc0d42f = (*C.VkObjectTableDescriptorSetEntryNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderCoreProperties2AMD) + obj.ref7be3d4c4 = (*C.VkPhysicalDeviceShaderCoreProperties2AMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ObjectTableDescriptorSetEntryNVX) PassRef() (*C.VkObjectTableDescriptorSetEntryNVX, *cgoAllocMap) { +func (x *PhysicalDeviceShaderCoreProperties2AMD) PassRef() (*C.VkPhysicalDeviceShaderCoreProperties2AMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6fc0d42f != nil { - return x.ref6fc0d42f, nil + } else if x.ref7be3d4c4 != nil { + return x.ref7be3d4c4, nil } - mem6fc0d42f := allocObjectTableDescriptorSetEntryNVXMemory(1) - ref6fc0d42f := (*C.VkObjectTableDescriptorSetEntryNVX)(mem6fc0d42f) - allocs6fc0d42f := new(cgoAllocMap) - allocs6fc0d42f.Add(mem6fc0d42f) + mem7be3d4c4 := allocPhysicalDeviceShaderCoreProperties2AMDMemory(1) + ref7be3d4c4 := (*C.VkPhysicalDeviceShaderCoreProperties2AMD)(mem7be3d4c4) + allocs7be3d4c4 := new(cgoAllocMap) + allocs7be3d4c4.Add(mem7be3d4c4) - var c_type_allocs *cgoAllocMap - ref6fc0d42f._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocs6fc0d42f.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + ref7be3d4c4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7be3d4c4.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - ref6fc0d42f.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs6fc0d42f.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + ref7be3d4c4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7be3d4c4.Borrow(cpNext_allocs) - var cpipelineLayout_allocs *cgoAllocMap - ref6fc0d42f.pipelineLayout, cpipelineLayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.PipelineLayout)), cgoAllocsUnknown - allocs6fc0d42f.Borrow(cpipelineLayout_allocs) + var cshaderCoreFeatures_allocs *cgoAllocMap + ref7be3d4c4.shaderCoreFeatures, cshaderCoreFeatures_allocs = (C.VkShaderCorePropertiesFlagsAMD)(x.ShaderCoreFeatures), cgoAllocsUnknown + allocs7be3d4c4.Borrow(cshaderCoreFeatures_allocs) - var cdescriptorSet_allocs *cgoAllocMap - ref6fc0d42f.descriptorSet, cdescriptorSet_allocs = *(*C.VkDescriptorSet)(unsafe.Pointer(&x.DescriptorSet)), cgoAllocsUnknown - allocs6fc0d42f.Borrow(cdescriptorSet_allocs) + var cactiveComputeUnitCount_allocs *cgoAllocMap + ref7be3d4c4.activeComputeUnitCount, cactiveComputeUnitCount_allocs = (C.uint32_t)(x.ActiveComputeUnitCount), cgoAllocsUnknown + allocs7be3d4c4.Borrow(cactiveComputeUnitCount_allocs) - x.ref6fc0d42f = ref6fc0d42f - x.allocs6fc0d42f = allocs6fc0d42f - return ref6fc0d42f, allocs6fc0d42f + x.ref7be3d4c4 = ref7be3d4c4 + x.allocs7be3d4c4 = allocs7be3d4c4 + return ref7be3d4c4, allocs7be3d4c4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ObjectTableDescriptorSetEntryNVX) PassValue() (C.VkObjectTableDescriptorSetEntryNVX, *cgoAllocMap) { - if x.ref6fc0d42f != nil { - return *x.ref6fc0d42f, nil +func (x PhysicalDeviceShaderCoreProperties2AMD) PassValue() (C.VkPhysicalDeviceShaderCoreProperties2AMD, *cgoAllocMap) { + if x.ref7be3d4c4 != nil { + return *x.ref7be3d4c4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -28958,91 +55642,91 @@ func (x ObjectTableDescriptorSetEntryNVX) PassValue() (C.VkObjectTableDescriptor // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ObjectTableDescriptorSetEntryNVX) Deref() { - if x.ref6fc0d42f == nil { +func (x *PhysicalDeviceShaderCoreProperties2AMD) Deref() { + if x.ref7be3d4c4 == nil { return } - x.Type = (ObjectEntryTypeNVX)(x.ref6fc0d42f._type) - x.Flags = (ObjectEntryUsageFlagsNVX)(x.ref6fc0d42f.flags) - x.PipelineLayout = *(*PipelineLayout)(unsafe.Pointer(&x.ref6fc0d42f.pipelineLayout)) - x.DescriptorSet = *(*DescriptorSet)(unsafe.Pointer(&x.ref6fc0d42f.descriptorSet)) + x.SType = (StructureType)(x.ref7be3d4c4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7be3d4c4.pNext)) + x.ShaderCoreFeatures = (ShaderCorePropertiesFlagsAMD)(x.ref7be3d4c4.shaderCoreFeatures) + x.ActiveComputeUnitCount = (uint32)(x.ref7be3d4c4.activeComputeUnitCount) } -// allocObjectTableVertexBufferEntryNVXMemory allocates memory for type C.VkObjectTableVertexBufferEntryNVX in C. +// allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory allocates memory for type C.VkPhysicalDeviceCoherentMemoryFeaturesAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocObjectTableVertexBufferEntryNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfObjectTableVertexBufferEntryNVXValue)) +func allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCoherentMemoryFeaturesAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfObjectTableVertexBufferEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTableVertexBufferEntryNVX{}) +const sizeOfPhysicalDeviceCoherentMemoryFeaturesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCoherentMemoryFeaturesAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTableVertexBufferEntryNVX) Ref() *C.VkObjectTableVertexBufferEntryNVX { +func (x *PhysicalDeviceCoherentMemoryFeaturesAMD) Ref() *C.VkPhysicalDeviceCoherentMemoryFeaturesAMD { if x == nil { return nil } - return x.refe8a5908b + return x.ref34cb87b4 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ObjectTableVertexBufferEntryNVX) Free() { - if x != nil && x.allocse8a5908b != nil { - x.allocse8a5908b.(*cgoAllocMap).Free() - x.refe8a5908b = nil +func (x *PhysicalDeviceCoherentMemoryFeaturesAMD) Free() { + if x != nil && x.allocs34cb87b4 != nil { + x.allocs34cb87b4.(*cgoAllocMap).Free() + x.ref34cb87b4 = nil } } -// NewObjectTableVertexBufferEntryNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceCoherentMemoryFeaturesAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewObjectTableVertexBufferEntryNVXRef(ref unsafe.Pointer) *ObjectTableVertexBufferEntryNVX { +func NewPhysicalDeviceCoherentMemoryFeaturesAMDRef(ref unsafe.Pointer) *PhysicalDeviceCoherentMemoryFeaturesAMD { if ref == nil { return nil } - obj := new(ObjectTableVertexBufferEntryNVX) - obj.refe8a5908b = (*C.VkObjectTableVertexBufferEntryNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceCoherentMemoryFeaturesAMD) + obj.ref34cb87b4 = (*C.VkPhysicalDeviceCoherentMemoryFeaturesAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ObjectTableVertexBufferEntryNVX) PassRef() (*C.VkObjectTableVertexBufferEntryNVX, *cgoAllocMap) { +func (x *PhysicalDeviceCoherentMemoryFeaturesAMD) PassRef() (*C.VkPhysicalDeviceCoherentMemoryFeaturesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe8a5908b != nil { - return x.refe8a5908b, nil + } else if x.ref34cb87b4 != nil { + return x.ref34cb87b4, nil } - meme8a5908b := allocObjectTableVertexBufferEntryNVXMemory(1) - refe8a5908b := (*C.VkObjectTableVertexBufferEntryNVX)(meme8a5908b) - allocse8a5908b := new(cgoAllocMap) - allocse8a5908b.Add(meme8a5908b) + mem34cb87b4 := allocPhysicalDeviceCoherentMemoryFeaturesAMDMemory(1) + ref34cb87b4 := (*C.VkPhysicalDeviceCoherentMemoryFeaturesAMD)(mem34cb87b4) + allocs34cb87b4 := new(cgoAllocMap) + allocs34cb87b4.Add(mem34cb87b4) - var c_type_allocs *cgoAllocMap - refe8a5908b._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocse8a5908b.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + ref34cb87b4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs34cb87b4.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - refe8a5908b.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocse8a5908b.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + ref34cb87b4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs34cb87b4.Borrow(cpNext_allocs) - var cbuffer_allocs *cgoAllocMap - refe8a5908b.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocse8a5908b.Borrow(cbuffer_allocs) + var cdeviceCoherentMemory_allocs *cgoAllocMap + ref34cb87b4.deviceCoherentMemory, cdeviceCoherentMemory_allocs = (C.VkBool32)(x.DeviceCoherentMemory), cgoAllocsUnknown + allocs34cb87b4.Borrow(cdeviceCoherentMemory_allocs) - x.refe8a5908b = refe8a5908b - x.allocse8a5908b = allocse8a5908b - return refe8a5908b, allocse8a5908b + x.ref34cb87b4 = ref34cb87b4 + x.allocs34cb87b4 = allocs34cb87b4 + return ref34cb87b4, allocs34cb87b4 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ObjectTableVertexBufferEntryNVX) PassValue() (C.VkObjectTableVertexBufferEntryNVX, *cgoAllocMap) { - if x.refe8a5908b != nil { - return *x.refe8a5908b, nil +func (x PhysicalDeviceCoherentMemoryFeaturesAMD) PassValue() (C.VkPhysicalDeviceCoherentMemoryFeaturesAMD, *cgoAllocMap) { + if x.ref34cb87b4 != nil { + return *x.ref34cb87b4, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29050,94 +55734,94 @@ func (x ObjectTableVertexBufferEntryNVX) PassValue() (C.VkObjectTableVertexBuffe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ObjectTableVertexBufferEntryNVX) Deref() { - if x.refe8a5908b == nil { +func (x *PhysicalDeviceCoherentMemoryFeaturesAMD) Deref() { + if x.ref34cb87b4 == nil { return } - x.Type = (ObjectEntryTypeNVX)(x.refe8a5908b._type) - x.Flags = (ObjectEntryUsageFlagsNVX)(x.refe8a5908b.flags) - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refe8a5908b.buffer)) + x.SType = (StructureType)(x.ref34cb87b4.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref34cb87b4.pNext)) + x.DeviceCoherentMemory = (Bool32)(x.ref34cb87b4.deviceCoherentMemory) } -// allocObjectTableIndexBufferEntryNVXMemory allocates memory for type C.VkObjectTableIndexBufferEntryNVX in C. +// allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocObjectTableIndexBufferEntryNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfObjectTableIndexBufferEntryNVXValue)) +func allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderImageAtomicInt64FeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfObjectTableIndexBufferEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTableIndexBufferEntryNVX{}) +const sizeOfPhysicalDeviceShaderImageAtomicInt64FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTableIndexBufferEntryNVX) Ref() *C.VkObjectTableIndexBufferEntryNVX { +func (x *PhysicalDeviceShaderImageAtomicInt64Features) Ref() *C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { if x == nil { return nil } - return x.ref58a08650 + return x.ref1b0fbd } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ObjectTableIndexBufferEntryNVX) Free() { - if x != nil && x.allocs58a08650 != nil { - x.allocs58a08650.(*cgoAllocMap).Free() - x.ref58a08650 = nil +func (x *PhysicalDeviceShaderImageAtomicInt64Features) Free() { + if x != nil && x.allocs1b0fbd != nil { + x.allocs1b0fbd.(*cgoAllocMap).Free() + x.ref1b0fbd = nil } } -// NewObjectTableIndexBufferEntryNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderImageAtomicInt64FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewObjectTableIndexBufferEntryNVXRef(ref unsafe.Pointer) *ObjectTableIndexBufferEntryNVX { +func NewPhysicalDeviceShaderImageAtomicInt64FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderImageAtomicInt64Features { if ref == nil { return nil } - obj := new(ObjectTableIndexBufferEntryNVX) - obj.ref58a08650 = (*C.VkObjectTableIndexBufferEntryNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderImageAtomicInt64Features) + obj.ref1b0fbd = (*C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ObjectTableIndexBufferEntryNVX) PassRef() (*C.VkObjectTableIndexBufferEntryNVX, *cgoAllocMap) { +func (x *PhysicalDeviceShaderImageAtomicInt64Features) PassRef() (*C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref58a08650 != nil { - return x.ref58a08650, nil + } else if x.ref1b0fbd != nil { + return x.ref1b0fbd, nil } - mem58a08650 := allocObjectTableIndexBufferEntryNVXMemory(1) - ref58a08650 := (*C.VkObjectTableIndexBufferEntryNVX)(mem58a08650) - allocs58a08650 := new(cgoAllocMap) - allocs58a08650.Add(mem58a08650) + mem1b0fbd := allocPhysicalDeviceShaderImageAtomicInt64FeaturesMemory(1) + ref1b0fbd := (*C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT)(mem1b0fbd) + allocs1b0fbd := new(cgoAllocMap) + allocs1b0fbd.Add(mem1b0fbd) - var c_type_allocs *cgoAllocMap - ref58a08650._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocs58a08650.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + ref1b0fbd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1b0fbd.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - ref58a08650.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs58a08650.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + ref1b0fbd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1b0fbd.Borrow(cpNext_allocs) - var cbuffer_allocs *cgoAllocMap - ref58a08650.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown - allocs58a08650.Borrow(cbuffer_allocs) + var cshaderImageInt64Atomics_allocs *cgoAllocMap + ref1b0fbd.shaderImageInt64Atomics, cshaderImageInt64Atomics_allocs = (C.VkBool32)(x.ShaderImageInt64Atomics), cgoAllocsUnknown + allocs1b0fbd.Borrow(cshaderImageInt64Atomics_allocs) - var cindexType_allocs *cgoAllocMap - ref58a08650.indexType, cindexType_allocs = (C.VkIndexType)(x.IndexType), cgoAllocsUnknown - allocs58a08650.Borrow(cindexType_allocs) + var csparseImageInt64Atomics_allocs *cgoAllocMap + ref1b0fbd.sparseImageInt64Atomics, csparseImageInt64Atomics_allocs = (C.VkBool32)(x.SparseImageInt64Atomics), cgoAllocsUnknown + allocs1b0fbd.Borrow(csparseImageInt64Atomics_allocs) - x.ref58a08650 = ref58a08650 - x.allocs58a08650 = allocs58a08650 - return ref58a08650, allocs58a08650 + x.ref1b0fbd = ref1b0fbd + x.allocs1b0fbd = allocs1b0fbd + return ref1b0fbd, allocs1b0fbd } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ObjectTableIndexBufferEntryNVX) PassValue() (C.VkObjectTableIndexBufferEntryNVX, *cgoAllocMap) { - if x.ref58a08650 != nil { - return *x.ref58a08650, nil +func (x PhysicalDeviceShaderImageAtomicInt64Features) PassValue() (C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, *cgoAllocMap) { + if x.ref1b0fbd != nil { + return *x.ref1b0fbd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29145,95 +55829,95 @@ func (x ObjectTableIndexBufferEntryNVX) PassValue() (C.VkObjectTableIndexBufferE // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ObjectTableIndexBufferEntryNVX) Deref() { - if x.ref58a08650 == nil { +func (x *PhysicalDeviceShaderImageAtomicInt64Features) Deref() { + if x.ref1b0fbd == nil { return } - x.Type = (ObjectEntryTypeNVX)(x.ref58a08650._type) - x.Flags = (ObjectEntryUsageFlagsNVX)(x.ref58a08650.flags) - x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref58a08650.buffer)) - x.IndexType = (IndexType)(x.ref58a08650.indexType) + x.SType = (StructureType)(x.ref1b0fbd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1b0fbd.pNext)) + x.ShaderImageInt64Atomics = (Bool32)(x.ref1b0fbd.shaderImageInt64Atomics) + x.SparseImageInt64Atomics = (Bool32)(x.ref1b0fbd.sparseImageInt64Atomics) } -// allocObjectTablePushConstantEntryNVXMemory allocates memory for type C.VkObjectTablePushConstantEntryNVX in C. +// allocPhysicalDeviceMemoryBudgetPropertiesMemory allocates memory for type C.VkPhysicalDeviceMemoryBudgetPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocObjectTablePushConstantEntryNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfObjectTablePushConstantEntryNVXValue)) +func allocPhysicalDeviceMemoryBudgetPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryBudgetPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfObjectTablePushConstantEntryNVXValue = unsafe.Sizeof([1]C.VkObjectTablePushConstantEntryNVX{}) +const sizeOfPhysicalDeviceMemoryBudgetPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryBudgetPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ObjectTablePushConstantEntryNVX) Ref() *C.VkObjectTablePushConstantEntryNVX { +func (x *PhysicalDeviceMemoryBudgetProperties) Ref() *C.VkPhysicalDeviceMemoryBudgetPropertiesEXT { if x == nil { return nil } - return x.ref8c8421e0 + return x.refa7406c48 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ObjectTablePushConstantEntryNVX) Free() { - if x != nil && x.allocs8c8421e0 != nil { - x.allocs8c8421e0.(*cgoAllocMap).Free() - x.ref8c8421e0 = nil +func (x *PhysicalDeviceMemoryBudgetProperties) Free() { + if x != nil && x.allocsa7406c48 != nil { + x.allocsa7406c48.(*cgoAllocMap).Free() + x.refa7406c48 = nil } } -// NewObjectTablePushConstantEntryNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceMemoryBudgetPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewObjectTablePushConstantEntryNVXRef(ref unsafe.Pointer) *ObjectTablePushConstantEntryNVX { +func NewPhysicalDeviceMemoryBudgetPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryBudgetProperties { if ref == nil { return nil } - obj := new(ObjectTablePushConstantEntryNVX) - obj.ref8c8421e0 = (*C.VkObjectTablePushConstantEntryNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceMemoryBudgetProperties) + obj.refa7406c48 = (*C.VkPhysicalDeviceMemoryBudgetPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ObjectTablePushConstantEntryNVX) PassRef() (*C.VkObjectTablePushConstantEntryNVX, *cgoAllocMap) { +func (x *PhysicalDeviceMemoryBudgetProperties) PassRef() (*C.VkPhysicalDeviceMemoryBudgetPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8c8421e0 != nil { - return x.ref8c8421e0, nil + } else if x.refa7406c48 != nil { + return x.refa7406c48, nil } - mem8c8421e0 := allocObjectTablePushConstantEntryNVXMemory(1) - ref8c8421e0 := (*C.VkObjectTablePushConstantEntryNVX)(mem8c8421e0) - allocs8c8421e0 := new(cgoAllocMap) - allocs8c8421e0.Add(mem8c8421e0) + mema7406c48 := allocPhysicalDeviceMemoryBudgetPropertiesMemory(1) + refa7406c48 := (*C.VkPhysicalDeviceMemoryBudgetPropertiesEXT)(mema7406c48) + allocsa7406c48 := new(cgoAllocMap) + allocsa7406c48.Add(mema7406c48) - var c_type_allocs *cgoAllocMap - ref8c8421e0._type, c_type_allocs = (C.VkObjectEntryTypeNVX)(x.Type), cgoAllocsUnknown - allocs8c8421e0.Borrow(c_type_allocs) + var csType_allocs *cgoAllocMap + refa7406c48.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa7406c48.Borrow(csType_allocs) - var cflags_allocs *cgoAllocMap - ref8c8421e0.flags, cflags_allocs = (C.VkObjectEntryUsageFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs8c8421e0.Borrow(cflags_allocs) + var cpNext_allocs *cgoAllocMap + refa7406c48.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa7406c48.Borrow(cpNext_allocs) - var cpipelineLayout_allocs *cgoAllocMap - ref8c8421e0.pipelineLayout, cpipelineLayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.PipelineLayout)), cgoAllocsUnknown - allocs8c8421e0.Borrow(cpipelineLayout_allocs) + var cheapBudget_allocs *cgoAllocMap + refa7406c48.heapBudget, cheapBudget_allocs = *(*[16]C.VkDeviceSize)(unsafe.Pointer(&x.HeapBudget)), cgoAllocsUnknown + allocsa7406c48.Borrow(cheapBudget_allocs) - var cstageFlags_allocs *cgoAllocMap - ref8c8421e0.stageFlags, cstageFlags_allocs = (C.VkShaderStageFlags)(x.StageFlags), cgoAllocsUnknown - allocs8c8421e0.Borrow(cstageFlags_allocs) + var cheapUsage_allocs *cgoAllocMap + refa7406c48.heapUsage, cheapUsage_allocs = *(*[16]C.VkDeviceSize)(unsafe.Pointer(&x.HeapUsage)), cgoAllocsUnknown + allocsa7406c48.Borrow(cheapUsage_allocs) - x.ref8c8421e0 = ref8c8421e0 - x.allocs8c8421e0 = allocs8c8421e0 - return ref8c8421e0, allocs8c8421e0 + x.refa7406c48 = refa7406c48 + x.allocsa7406c48 = allocsa7406c48 + return refa7406c48, allocsa7406c48 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ObjectTablePushConstantEntryNVX) PassValue() (C.VkObjectTablePushConstantEntryNVX, *cgoAllocMap) { - if x.ref8c8421e0 != nil { - return *x.ref8c8421e0, nil +func (x PhysicalDeviceMemoryBudgetProperties) PassValue() (C.VkPhysicalDeviceMemoryBudgetPropertiesEXT, *cgoAllocMap) { + if x.refa7406c48 != nil { + return *x.refa7406c48, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29241,87 +55925,91 @@ func (x ObjectTablePushConstantEntryNVX) PassValue() (C.VkObjectTablePushConstan // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ObjectTablePushConstantEntryNVX) Deref() { - if x.ref8c8421e0 == nil { +func (x *PhysicalDeviceMemoryBudgetProperties) Deref() { + if x.refa7406c48 == nil { return } - x.Type = (ObjectEntryTypeNVX)(x.ref8c8421e0._type) - x.Flags = (ObjectEntryUsageFlagsNVX)(x.ref8c8421e0.flags) - x.PipelineLayout = *(*PipelineLayout)(unsafe.Pointer(&x.ref8c8421e0.pipelineLayout)) - x.StageFlags = (ShaderStageFlags)(x.ref8c8421e0.stageFlags) + x.SType = (StructureType)(x.refa7406c48.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa7406c48.pNext)) + x.HeapBudget = *(*[16]DeviceSize)(unsafe.Pointer(&x.refa7406c48.heapBudget)) + x.HeapUsage = *(*[16]DeviceSize)(unsafe.Pointer(&x.refa7406c48.heapUsage)) } -// allocViewportWScalingNVMemory allocates memory for type C.VkViewportWScalingNV in C. +// allocPhysicalDeviceMemoryPriorityFeaturesMemory allocates memory for type C.VkPhysicalDeviceMemoryPriorityFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocViewportWScalingNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfViewportWScalingNVValue)) +func allocPhysicalDeviceMemoryPriorityFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMemoryPriorityFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfViewportWScalingNVValue = unsafe.Sizeof([1]C.VkViewportWScalingNV{}) +const sizeOfPhysicalDeviceMemoryPriorityFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMemoryPriorityFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ViewportWScalingNV) Ref() *C.VkViewportWScalingNV { +func (x *PhysicalDeviceMemoryPriorityFeatures) Ref() *C.VkPhysicalDeviceMemoryPriorityFeaturesEXT { if x == nil { return nil } - return x.ref7ea4590f + return x.ref24f8641c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ViewportWScalingNV) Free() { - if x != nil && x.allocs7ea4590f != nil { - x.allocs7ea4590f.(*cgoAllocMap).Free() - x.ref7ea4590f = nil +func (x *PhysicalDeviceMemoryPriorityFeatures) Free() { + if x != nil && x.allocs24f8641c != nil { + x.allocs24f8641c.(*cgoAllocMap).Free() + x.ref24f8641c = nil } } -// NewViewportWScalingNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceMemoryPriorityFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewViewportWScalingNVRef(ref unsafe.Pointer) *ViewportWScalingNV { +func NewPhysicalDeviceMemoryPriorityFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceMemoryPriorityFeatures { if ref == nil { return nil } - obj := new(ViewportWScalingNV) - obj.ref7ea4590f = (*C.VkViewportWScalingNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceMemoryPriorityFeatures) + obj.ref24f8641c = (*C.VkPhysicalDeviceMemoryPriorityFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ViewportWScalingNV) PassRef() (*C.VkViewportWScalingNV, *cgoAllocMap) { +func (x *PhysicalDeviceMemoryPriorityFeatures) PassRef() (*C.VkPhysicalDeviceMemoryPriorityFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7ea4590f != nil { - return x.ref7ea4590f, nil + } else if x.ref24f8641c != nil { + return x.ref24f8641c, nil } - mem7ea4590f := allocViewportWScalingNVMemory(1) - ref7ea4590f := (*C.VkViewportWScalingNV)(mem7ea4590f) - allocs7ea4590f := new(cgoAllocMap) - allocs7ea4590f.Add(mem7ea4590f) + mem24f8641c := allocPhysicalDeviceMemoryPriorityFeaturesMemory(1) + ref24f8641c := (*C.VkPhysicalDeviceMemoryPriorityFeaturesEXT)(mem24f8641c) + allocs24f8641c := new(cgoAllocMap) + allocs24f8641c.Add(mem24f8641c) - var cxcoeff_allocs *cgoAllocMap - ref7ea4590f.xcoeff, cxcoeff_allocs = (C.float)(x.Xcoeff), cgoAllocsUnknown - allocs7ea4590f.Borrow(cxcoeff_allocs) + var csType_allocs *cgoAllocMap + ref24f8641c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs24f8641c.Borrow(csType_allocs) - var cycoeff_allocs *cgoAllocMap - ref7ea4590f.ycoeff, cycoeff_allocs = (C.float)(x.Ycoeff), cgoAllocsUnknown - allocs7ea4590f.Borrow(cycoeff_allocs) + var cpNext_allocs *cgoAllocMap + ref24f8641c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs24f8641c.Borrow(cpNext_allocs) - x.ref7ea4590f = ref7ea4590f - x.allocs7ea4590f = allocs7ea4590f - return ref7ea4590f, allocs7ea4590f + var cmemoryPriority_allocs *cgoAllocMap + ref24f8641c.memoryPriority, cmemoryPriority_allocs = (C.VkBool32)(x.MemoryPriority), cgoAllocsUnknown + allocs24f8641c.Borrow(cmemoryPriority_allocs) + + x.ref24f8641c = ref24f8641c + x.allocs24f8641c = allocs24f8641c + return ref24f8641c, allocs24f8641c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ViewportWScalingNV) PassValue() (C.VkViewportWScalingNV, *cgoAllocMap) { - if x.ref7ea4590f != nil { - return *x.ref7ea4590f, nil +func (x PhysicalDeviceMemoryPriorityFeatures) PassValue() (C.VkPhysicalDeviceMemoryPriorityFeaturesEXT, *cgoAllocMap) { + if x.ref24f8641c != nil { + return *x.ref24f8641c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29329,135 +56017,90 @@ func (x ViewportWScalingNV) PassValue() (C.VkViewportWScalingNV, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ViewportWScalingNV) Deref() { - if x.ref7ea4590f == nil { +func (x *PhysicalDeviceMemoryPriorityFeatures) Deref() { + if x.ref24f8641c == nil { return } - x.Xcoeff = (float32)(x.ref7ea4590f.xcoeff) - x.Ycoeff = (float32)(x.ref7ea4590f.ycoeff) + x.SType = (StructureType)(x.ref24f8641c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref24f8641c.pNext)) + x.MemoryPriority = (Bool32)(x.ref24f8641c.memoryPriority) } -// allocPipelineViewportWScalingStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportWScalingStateCreateInfoNV in C. +// allocMemoryPriorityAllocateInfoMemory allocates memory for type C.VkMemoryPriorityAllocateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineViewportWScalingStateCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportWScalingStateCreateInfoNVValue)) +func allocMemoryPriorityAllocateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryPriorityAllocateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineViewportWScalingStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportWScalingStateCreateInfoNV{}) - -// unpackSViewportWScalingNV transforms a sliced Go data structure into plain C format. -func unpackSViewportWScalingNV(x []ViewportWScalingNV) (unpacked *C.VkViewportWScalingNV, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkViewportWScalingNV) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocViewportWScalingNVMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkViewportWScalingNV)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkViewportWScalingNV)(h.Data) - return -} - -// packSViewportWScalingNV reads sliced Go data structure out from plain C format. -func packSViewportWScalingNV(v []ViewportWScalingNV, ptr0 *C.VkViewportWScalingNV) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfViewportWScalingNVValue]C.VkViewportWScalingNV)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewViewportWScalingNVRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfMemoryPriorityAllocateInfoValue = unsafe.Sizeof([1]C.VkMemoryPriorityAllocateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportWScalingStateCreateInfoNV) Ref() *C.VkPipelineViewportWScalingStateCreateInfoNV { +func (x *MemoryPriorityAllocateInfo) Ref() *C.VkMemoryPriorityAllocateInfoEXT { if x == nil { return nil } - return x.ref3e532c0b + return x.refd3540846 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineViewportWScalingStateCreateInfoNV) Free() { - if x != nil && x.allocs3e532c0b != nil { - x.allocs3e532c0b.(*cgoAllocMap).Free() - x.ref3e532c0b = nil +func (x *MemoryPriorityAllocateInfo) Free() { + if x != nil && x.allocsd3540846 != nil { + x.allocsd3540846.(*cgoAllocMap).Free() + x.refd3540846 = nil } } -// NewPipelineViewportWScalingStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewMemoryPriorityAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineViewportWScalingStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportWScalingStateCreateInfoNV { +func NewMemoryPriorityAllocateInfoRef(ref unsafe.Pointer) *MemoryPriorityAllocateInfo { if ref == nil { return nil } - obj := new(PipelineViewportWScalingStateCreateInfoNV) - obj.ref3e532c0b = (*C.VkPipelineViewportWScalingStateCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(MemoryPriorityAllocateInfo) + obj.refd3540846 = (*C.VkMemoryPriorityAllocateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineViewportWScalingStateCreateInfoNV) PassRef() (*C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { +func (x *MemoryPriorityAllocateInfo) PassRef() (*C.VkMemoryPriorityAllocateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3e532c0b != nil { - return x.ref3e532c0b, nil + } else if x.refd3540846 != nil { + return x.refd3540846, nil } - mem3e532c0b := allocPipelineViewportWScalingStateCreateInfoNVMemory(1) - ref3e532c0b := (*C.VkPipelineViewportWScalingStateCreateInfoNV)(mem3e532c0b) - allocs3e532c0b := new(cgoAllocMap) - allocs3e532c0b.Add(mem3e532c0b) + memd3540846 := allocMemoryPriorityAllocateInfoMemory(1) + refd3540846 := (*C.VkMemoryPriorityAllocateInfoEXT)(memd3540846) + allocsd3540846 := new(cgoAllocMap) + allocsd3540846.Add(memd3540846) var csType_allocs *cgoAllocMap - ref3e532c0b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3e532c0b.Borrow(csType_allocs) + refd3540846.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd3540846.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3e532c0b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3e532c0b.Borrow(cpNext_allocs) - - var cviewportWScalingEnable_allocs *cgoAllocMap - ref3e532c0b.viewportWScalingEnable, cviewportWScalingEnable_allocs = (C.VkBool32)(x.ViewportWScalingEnable), cgoAllocsUnknown - allocs3e532c0b.Borrow(cviewportWScalingEnable_allocs) - - var cviewportCount_allocs *cgoAllocMap - ref3e532c0b.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown - allocs3e532c0b.Borrow(cviewportCount_allocs) + refd3540846.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd3540846.Borrow(cpNext_allocs) - var cpViewportWScalings_allocs *cgoAllocMap - ref3e532c0b.pViewportWScalings, cpViewportWScalings_allocs = unpackSViewportWScalingNV(x.PViewportWScalings) - allocs3e532c0b.Borrow(cpViewportWScalings_allocs) + var cpriority_allocs *cgoAllocMap + refd3540846.priority, cpriority_allocs = (C.float)(x.Priority), cgoAllocsUnknown + allocsd3540846.Borrow(cpriority_allocs) - x.ref3e532c0b = ref3e532c0b - x.allocs3e532c0b = allocs3e532c0b - return ref3e532c0b, allocs3e532c0b + x.refd3540846 = refd3540846 + x.allocsd3540846 = allocsd3540846 + return refd3540846, allocsd3540846 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineViewportWScalingStateCreateInfoNV) PassValue() (C.VkPipelineViewportWScalingStateCreateInfoNV, *cgoAllocMap) { - if x.ref3e532c0b != nil { - return *x.ref3e532c0b, nil +func (x MemoryPriorityAllocateInfo) PassValue() (C.VkMemoryPriorityAllocateInfoEXT, *cgoAllocMap) { + if x.refd3540846 != nil { + return *x.refd3540846, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29465,92 +56108,90 @@ func (x PipelineViewportWScalingStateCreateInfoNV) PassValue() (C.VkPipelineView // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineViewportWScalingStateCreateInfoNV) Deref() { - if x.ref3e532c0b == nil { +func (x *MemoryPriorityAllocateInfo) Deref() { + if x.refd3540846 == nil { return } - x.SType = (StructureType)(x.ref3e532c0b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3e532c0b.pNext)) - x.ViewportWScalingEnable = (Bool32)(x.ref3e532c0b.viewportWScalingEnable) - x.ViewportCount = (uint32)(x.ref3e532c0b.viewportCount) - packSViewportWScalingNV(x.PViewportWScalings, x.ref3e532c0b.pViewportWScalings) + x.SType = (StructureType)(x.refd3540846.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd3540846.pNext)) + x.Priority = (float32)(x.refd3540846.priority) } -// allocDisplayPowerInfoMemory allocates memory for type C.VkDisplayPowerInfoEXT in C. +// allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayPowerInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPowerInfoValue)) +func allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayPowerInfoValue = unsafe.Sizeof([1]C.VkDisplayPowerInfoEXT{}) +const sizeOfPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayPowerInfo) Ref() *C.VkDisplayPowerInfoEXT { +func (x *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Ref() *C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { if x == nil { return nil } - return x.ref80fed52f + return x.refade17227 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayPowerInfo) Free() { - if x != nil && x.allocs80fed52f != nil { - x.allocs80fed52f.(*cgoAllocMap).Free() - x.ref80fed52f = nil +func (x *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Free() { + if x != nil && x.allocsade17227 != nil { + x.allocsade17227.(*cgoAllocMap).Free() + x.refade17227 = nil } } -// NewDisplayPowerInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayPowerInfoRef(ref unsafe.Pointer) *DisplayPowerInfo { +func NewPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { if ref == nil { return nil } - obj := new(DisplayPowerInfo) - obj.ref80fed52f = (*C.VkDisplayPowerInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) + obj.refade17227 = (*C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayPowerInfo) PassRef() (*C.VkDisplayPowerInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) PassRef() (*C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref80fed52f != nil { - return x.ref80fed52f, nil + } else if x.refade17227 != nil { + return x.refade17227, nil } - mem80fed52f := allocDisplayPowerInfoMemory(1) - ref80fed52f := (*C.VkDisplayPowerInfoEXT)(mem80fed52f) - allocs80fed52f := new(cgoAllocMap) - allocs80fed52f.Add(mem80fed52f) + memade17227 := allocPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVMemory(1) + refade17227 := (*C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)(memade17227) + allocsade17227 := new(cgoAllocMap) + allocsade17227.Add(memade17227) var csType_allocs *cgoAllocMap - ref80fed52f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs80fed52f.Borrow(csType_allocs) + refade17227.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsade17227.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref80fed52f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs80fed52f.Borrow(cpNext_allocs) + refade17227.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsade17227.Borrow(cpNext_allocs) - var cpowerState_allocs *cgoAllocMap - ref80fed52f.powerState, cpowerState_allocs = (C.VkDisplayPowerStateEXT)(x.PowerState), cgoAllocsUnknown - allocs80fed52f.Borrow(cpowerState_allocs) + var cdedicatedAllocationImageAliasing_allocs *cgoAllocMap + refade17227.dedicatedAllocationImageAliasing, cdedicatedAllocationImageAliasing_allocs = (C.VkBool32)(x.DedicatedAllocationImageAliasing), cgoAllocsUnknown + allocsade17227.Borrow(cdedicatedAllocationImageAliasing_allocs) - x.ref80fed52f = ref80fed52f - x.allocs80fed52f = allocs80fed52f - return ref80fed52f, allocs80fed52f + x.refade17227 = refade17227 + x.allocsade17227 = allocsade17227 + return refade17227, allocsade17227 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayPowerInfo) PassValue() (C.VkDisplayPowerInfoEXT, *cgoAllocMap) { - if x.ref80fed52f != nil { - return *x.ref80fed52f, nil +func (x PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) PassValue() (C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, *cgoAllocMap) { + if x.refade17227 != nil { + return *x.refade17227, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29558,90 +56199,86 @@ func (x DisplayPowerInfo) PassValue() (C.VkDisplayPowerInfoEXT, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayPowerInfo) Deref() { - if x.ref80fed52f == nil { +func (x *PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) Deref() { + if x.refade17227 == nil { return } - x.SType = (StructureType)(x.ref80fed52f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref80fed52f.pNext)) - x.PowerState = (DisplayPowerState)(x.ref80fed52f.powerState) -} - -// allocDeviceEventInfoMemory allocates memory for type C.VkDeviceEventInfoEXT in C. -// The caller is responsible for freeing the this memory via C.free. -func allocDeviceEventInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceEventInfoValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem + x.SType = (StructureType)(x.refade17227.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refade17227.pNext)) + x.DedicatedAllocationImageAliasing = (Bool32)(x.refade17227.dedicatedAllocationImageAliasing) } -const sizeOfDeviceEventInfoValue = unsafe.Sizeof([1]C.VkDeviceEventInfoEXT{}) - // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceEventInfo) Ref() *C.VkDeviceEventInfoEXT { +func (x *PhysicalDeviceBufferAddressFeatures) Ref() *C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { if x == nil { return nil } - return x.ref394b3fcb + return x.refe3bd03a5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceEventInfo) Free() { - if x != nil && x.allocs394b3fcb != nil { - x.allocs394b3fcb.(*cgoAllocMap).Free() - x.ref394b3fcb = nil +func (x *PhysicalDeviceBufferAddressFeatures) Free() { + if x != nil && x.allocse3bd03a5 != nil { + x.allocse3bd03a5.(*cgoAllocMap).Free() + x.refe3bd03a5 = nil } } -// NewDeviceEventInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceBufferAddressFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceEventInfoRef(ref unsafe.Pointer) *DeviceEventInfo { +func NewPhysicalDeviceBufferAddressFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBufferAddressFeatures { if ref == nil { return nil } - obj := new(DeviceEventInfo) - obj.ref394b3fcb = (*C.VkDeviceEventInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceBufferAddressFeatures) + obj.refe3bd03a5 = (*C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceEventInfo) PassRef() (*C.VkDeviceEventInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceBufferAddressFeatures) PassRef() (*C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref394b3fcb != nil { - return x.ref394b3fcb, nil + } else if x.refe3bd03a5 != nil { + return x.refe3bd03a5, nil } - mem394b3fcb := allocDeviceEventInfoMemory(1) - ref394b3fcb := (*C.VkDeviceEventInfoEXT)(mem394b3fcb) - allocs394b3fcb := new(cgoAllocMap) - allocs394b3fcb.Add(mem394b3fcb) + meme3bd03a5 := allocPhysicalDeviceBufferDeviceAddressFeaturesMemory(1) + refe3bd03a5 := (*C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT)(meme3bd03a5) + allocse3bd03a5 := new(cgoAllocMap) + allocse3bd03a5.Add(meme3bd03a5) var csType_allocs *cgoAllocMap - ref394b3fcb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs394b3fcb.Borrow(csType_allocs) + refe3bd03a5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse3bd03a5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref394b3fcb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs394b3fcb.Borrow(cpNext_allocs) + refe3bd03a5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse3bd03a5.Borrow(cpNext_allocs) - var cdeviceEvent_allocs *cgoAllocMap - ref394b3fcb.deviceEvent, cdeviceEvent_allocs = (C.VkDeviceEventTypeEXT)(x.DeviceEvent), cgoAllocsUnknown - allocs394b3fcb.Borrow(cdeviceEvent_allocs) + var cbufferDeviceAddress_allocs *cgoAllocMap + refe3bd03a5.bufferDeviceAddress, cbufferDeviceAddress_allocs = (C.VkBool32)(x.BufferDeviceAddress), cgoAllocsUnknown + allocse3bd03a5.Borrow(cbufferDeviceAddress_allocs) - x.ref394b3fcb = ref394b3fcb - x.allocs394b3fcb = allocs394b3fcb - return ref394b3fcb, allocs394b3fcb + var cbufferDeviceAddressCaptureReplay_allocs *cgoAllocMap + refe3bd03a5.bufferDeviceAddressCaptureReplay, cbufferDeviceAddressCaptureReplay_allocs = (C.VkBool32)(x.BufferDeviceAddressCaptureReplay), cgoAllocsUnknown + allocse3bd03a5.Borrow(cbufferDeviceAddressCaptureReplay_allocs) + + var cbufferDeviceAddressMultiDevice_allocs *cgoAllocMap + refe3bd03a5.bufferDeviceAddressMultiDevice, cbufferDeviceAddressMultiDevice_allocs = (C.VkBool32)(x.BufferDeviceAddressMultiDevice), cgoAllocsUnknown + allocse3bd03a5.Borrow(cbufferDeviceAddressMultiDevice_allocs) + + x.refe3bd03a5 = refe3bd03a5 + x.allocse3bd03a5 = allocse3bd03a5 + return refe3bd03a5, allocse3bd03a5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceEventInfo) PassValue() (C.VkDeviceEventInfoEXT, *cgoAllocMap) { - if x.ref394b3fcb != nil { - return *x.ref394b3fcb, nil +func (x PhysicalDeviceBufferAddressFeatures) PassValue() (C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, *cgoAllocMap) { + if x.refe3bd03a5 != nil { + return *x.refe3bd03a5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29649,90 +56286,92 @@ func (x DeviceEventInfo) PassValue() (C.VkDeviceEventInfoEXT, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceEventInfo) Deref() { - if x.ref394b3fcb == nil { +func (x *PhysicalDeviceBufferAddressFeatures) Deref() { + if x.refe3bd03a5 == nil { return } - x.SType = (StructureType)(x.ref394b3fcb.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref394b3fcb.pNext)) - x.DeviceEvent = (DeviceEventType)(x.ref394b3fcb.deviceEvent) + x.SType = (StructureType)(x.refe3bd03a5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe3bd03a5.pNext)) + x.BufferDeviceAddress = (Bool32)(x.refe3bd03a5.bufferDeviceAddress) + x.BufferDeviceAddressCaptureReplay = (Bool32)(x.refe3bd03a5.bufferDeviceAddressCaptureReplay) + x.BufferDeviceAddressMultiDevice = (Bool32)(x.refe3bd03a5.bufferDeviceAddressMultiDevice) } -// allocDisplayEventInfoMemory allocates memory for type C.VkDisplayEventInfoEXT in C. +// allocBufferDeviceAddressCreateInfoMemory allocates memory for type C.VkBufferDeviceAddressCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDisplayEventInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayEventInfoValue)) +func allocBufferDeviceAddressCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferDeviceAddressCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDisplayEventInfoValue = unsafe.Sizeof([1]C.VkDisplayEventInfoEXT{}) +const sizeOfBufferDeviceAddressCreateInfoValue = unsafe.Sizeof([1]C.VkBufferDeviceAddressCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DisplayEventInfo) Ref() *C.VkDisplayEventInfoEXT { +func (x *BufferDeviceAddressCreateInfo) Ref() *C.VkBufferDeviceAddressCreateInfoEXT { if x == nil { return nil } - return x.refa69f7302 + return x.ref4c6937a9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DisplayEventInfo) Free() { - if x != nil && x.allocsa69f7302 != nil { - x.allocsa69f7302.(*cgoAllocMap).Free() - x.refa69f7302 = nil +func (x *BufferDeviceAddressCreateInfo) Free() { + if x != nil && x.allocs4c6937a9 != nil { + x.allocs4c6937a9.(*cgoAllocMap).Free() + x.ref4c6937a9 = nil } } -// NewDisplayEventInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBufferDeviceAddressCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDisplayEventInfoRef(ref unsafe.Pointer) *DisplayEventInfo { +func NewBufferDeviceAddressCreateInfoRef(ref unsafe.Pointer) *BufferDeviceAddressCreateInfo { if ref == nil { return nil } - obj := new(DisplayEventInfo) - obj.refa69f7302 = (*C.VkDisplayEventInfoEXT)(unsafe.Pointer(ref)) + obj := new(BufferDeviceAddressCreateInfo) + obj.ref4c6937a9 = (*C.VkBufferDeviceAddressCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DisplayEventInfo) PassRef() (*C.VkDisplayEventInfoEXT, *cgoAllocMap) { +func (x *BufferDeviceAddressCreateInfo) PassRef() (*C.VkBufferDeviceAddressCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa69f7302 != nil { - return x.refa69f7302, nil + } else if x.ref4c6937a9 != nil { + return x.ref4c6937a9, nil } - mema69f7302 := allocDisplayEventInfoMemory(1) - refa69f7302 := (*C.VkDisplayEventInfoEXT)(mema69f7302) - allocsa69f7302 := new(cgoAllocMap) - allocsa69f7302.Add(mema69f7302) + mem4c6937a9 := allocBufferDeviceAddressCreateInfoMemory(1) + ref4c6937a9 := (*C.VkBufferDeviceAddressCreateInfoEXT)(mem4c6937a9) + allocs4c6937a9 := new(cgoAllocMap) + allocs4c6937a9.Add(mem4c6937a9) var csType_allocs *cgoAllocMap - refa69f7302.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa69f7302.Borrow(csType_allocs) + ref4c6937a9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4c6937a9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa69f7302.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa69f7302.Borrow(cpNext_allocs) + ref4c6937a9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4c6937a9.Borrow(cpNext_allocs) - var cdisplayEvent_allocs *cgoAllocMap - refa69f7302.displayEvent, cdisplayEvent_allocs = (C.VkDisplayEventTypeEXT)(x.DisplayEvent), cgoAllocsUnknown - allocsa69f7302.Borrow(cdisplayEvent_allocs) + var cdeviceAddress_allocs *cgoAllocMap + ref4c6937a9.deviceAddress, cdeviceAddress_allocs = (C.VkDeviceAddress)(x.DeviceAddress), cgoAllocsUnknown + allocs4c6937a9.Borrow(cdeviceAddress_allocs) - x.refa69f7302 = refa69f7302 - x.allocsa69f7302 = allocsa69f7302 - return refa69f7302, allocsa69f7302 + x.ref4c6937a9 = ref4c6937a9 + x.allocs4c6937a9 = allocs4c6937a9 + return ref4c6937a9, allocs4c6937a9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DisplayEventInfo) PassValue() (C.VkDisplayEventInfoEXT, *cgoAllocMap) { - if x.refa69f7302 != nil { - return *x.refa69f7302, nil +func (x BufferDeviceAddressCreateInfo) PassValue() (C.VkBufferDeviceAddressCreateInfoEXT, *cgoAllocMap) { + if x.ref4c6937a9 != nil { + return *x.ref4c6937a9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29740,90 +56379,102 @@ func (x DisplayEventInfo) PassValue() (C.VkDisplayEventInfoEXT, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DisplayEventInfo) Deref() { - if x.refa69f7302 == nil { +func (x *BufferDeviceAddressCreateInfo) Deref() { + if x.ref4c6937a9 == nil { return } - x.SType = (StructureType)(x.refa69f7302.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa69f7302.pNext)) - x.DisplayEvent = (DisplayEventType)(x.refa69f7302.displayEvent) + x.SType = (StructureType)(x.ref4c6937a9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4c6937a9.pNext)) + x.DeviceAddress = (DeviceAddress)(x.ref4c6937a9.deviceAddress) } -// allocSwapchainCounterCreateInfoMemory allocates memory for type C.VkSwapchainCounterCreateInfoEXT in C. +// allocValidationFeaturesMemory allocates memory for type C.VkValidationFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSwapchainCounterCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainCounterCreateInfoValue)) +func allocValidationFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSwapchainCounterCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainCounterCreateInfoEXT{}) +const sizeOfValidationFeaturesValue = unsafe.Sizeof([1]C.VkValidationFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SwapchainCounterCreateInfo) Ref() *C.VkSwapchainCounterCreateInfoEXT { +func (x *ValidationFeatures) Ref() *C.VkValidationFeaturesEXT { if x == nil { return nil } - return x.ref9f21eca6 + return x.refcd8794ea } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SwapchainCounterCreateInfo) Free() { - if x != nil && x.allocs9f21eca6 != nil { - x.allocs9f21eca6.(*cgoAllocMap).Free() - x.ref9f21eca6 = nil +func (x *ValidationFeatures) Free() { + if x != nil && x.allocscd8794ea != nil { + x.allocscd8794ea.(*cgoAllocMap).Free() + x.refcd8794ea = nil } } -// NewSwapchainCounterCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewValidationFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSwapchainCounterCreateInfoRef(ref unsafe.Pointer) *SwapchainCounterCreateInfo { +func NewValidationFeaturesRef(ref unsafe.Pointer) *ValidationFeatures { if ref == nil { return nil } - obj := new(SwapchainCounterCreateInfo) - obj.ref9f21eca6 = (*C.VkSwapchainCounterCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(ValidationFeatures) + obj.refcd8794ea = (*C.VkValidationFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SwapchainCounterCreateInfo) PassRef() (*C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { +func (x *ValidationFeatures) PassRef() (*C.VkValidationFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9f21eca6 != nil { - return x.ref9f21eca6, nil + } else if x.refcd8794ea != nil { + return x.refcd8794ea, nil } - mem9f21eca6 := allocSwapchainCounterCreateInfoMemory(1) - ref9f21eca6 := (*C.VkSwapchainCounterCreateInfoEXT)(mem9f21eca6) - allocs9f21eca6 := new(cgoAllocMap) - allocs9f21eca6.Add(mem9f21eca6) + memcd8794ea := allocValidationFeaturesMemory(1) + refcd8794ea := (*C.VkValidationFeaturesEXT)(memcd8794ea) + allocscd8794ea := new(cgoAllocMap) + allocscd8794ea.Add(memcd8794ea) var csType_allocs *cgoAllocMap - ref9f21eca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9f21eca6.Borrow(csType_allocs) + refcd8794ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscd8794ea.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9f21eca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9f21eca6.Borrow(cpNext_allocs) + refcd8794ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscd8794ea.Borrow(cpNext_allocs) - var csurfaceCounters_allocs *cgoAllocMap - ref9f21eca6.surfaceCounters, csurfaceCounters_allocs = (C.VkSurfaceCounterFlagsEXT)(x.SurfaceCounters), cgoAllocsUnknown - allocs9f21eca6.Borrow(csurfaceCounters_allocs) + var cenabledValidationFeatureCount_allocs *cgoAllocMap + refcd8794ea.enabledValidationFeatureCount, cenabledValidationFeatureCount_allocs = (C.uint32_t)(x.EnabledValidationFeatureCount), cgoAllocsUnknown + allocscd8794ea.Borrow(cenabledValidationFeatureCount_allocs) - x.ref9f21eca6 = ref9f21eca6 - x.allocs9f21eca6 = allocs9f21eca6 - return ref9f21eca6, allocs9f21eca6 + var cpEnabledValidationFeatures_allocs *cgoAllocMap + refcd8794ea.pEnabledValidationFeatures, cpEnabledValidationFeatures_allocs = (*C.VkValidationFeatureEnableEXT)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PEnabledValidationFeatures)).Data)), cgoAllocsUnknown + allocscd8794ea.Borrow(cpEnabledValidationFeatures_allocs) + + var cdisabledValidationFeatureCount_allocs *cgoAllocMap + refcd8794ea.disabledValidationFeatureCount, cdisabledValidationFeatureCount_allocs = (C.uint32_t)(x.DisabledValidationFeatureCount), cgoAllocsUnknown + allocscd8794ea.Borrow(cdisabledValidationFeatureCount_allocs) + + var cpDisabledValidationFeatures_allocs *cgoAllocMap + refcd8794ea.pDisabledValidationFeatures, cpDisabledValidationFeatures_allocs = (*C.VkValidationFeatureDisableEXT)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationFeatures)).Data)), cgoAllocsUnknown + allocscd8794ea.Borrow(cpDisabledValidationFeatures_allocs) + + x.refcd8794ea = refcd8794ea + x.allocscd8794ea = allocscd8794ea + return refcd8794ea, allocscd8794ea } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SwapchainCounterCreateInfo) PassValue() (C.VkSwapchainCounterCreateInfoEXT, *cgoAllocMap) { - if x.ref9f21eca6 != nil { - return *x.ref9f21eca6, nil +func (x ValidationFeatures) PassValue() (C.VkValidationFeaturesEXT, *cgoAllocMap) { + if x.refcd8794ea != nil { + return *x.refcd8794ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29831,82 +56482,129 @@ func (x SwapchainCounterCreateInfo) PassValue() (C.VkSwapchainCounterCreateInfoE // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SwapchainCounterCreateInfo) Deref() { - if x.ref9f21eca6 == nil { +func (x *ValidationFeatures) Deref() { + if x.refcd8794ea == nil { return } - x.SType = (StructureType)(x.ref9f21eca6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9f21eca6.pNext)) - x.SurfaceCounters = (SurfaceCounterFlags)(x.ref9f21eca6.surfaceCounters) + x.SType = (StructureType)(x.refcd8794ea.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd8794ea.pNext)) + x.EnabledValidationFeatureCount = (uint32)(x.refcd8794ea.enabledValidationFeatureCount) + hxf1a1416 := (*sliceHeader)(unsafe.Pointer(&x.PEnabledValidationFeatures)) + hxf1a1416.Data = unsafe.Pointer(x.refcd8794ea.pEnabledValidationFeatures) + hxf1a1416.Cap = 0x7fffffff + // hxf1a1416.Len = ? + + x.DisabledValidationFeatureCount = (uint32)(x.refcd8794ea.disabledValidationFeatureCount) + hxf92be66 := (*sliceHeader)(unsafe.Pointer(&x.PDisabledValidationFeatures)) + hxf92be66.Data = unsafe.Pointer(x.refcd8794ea.pDisabledValidationFeatures) + hxf92be66.Cap = 0x7fffffff + // hxf92be66.Len = ? + } -// allocRefreshCycleDurationGOOGLEMemory allocates memory for type C.VkRefreshCycleDurationGOOGLE in C. +// allocCooperativeMatrixPropertiesNVMemory allocates memory for type C.VkCooperativeMatrixPropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocRefreshCycleDurationGOOGLEMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRefreshCycleDurationGOOGLEValue)) +func allocCooperativeMatrixPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCooperativeMatrixPropertiesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfRefreshCycleDurationGOOGLEValue = unsafe.Sizeof([1]C.VkRefreshCycleDurationGOOGLE{}) +const sizeOfCooperativeMatrixPropertiesNVValue = unsafe.Sizeof([1]C.VkCooperativeMatrixPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RefreshCycleDurationGOOGLE) Ref() *C.VkRefreshCycleDurationGOOGLE { +func (x *CooperativeMatrixPropertiesNV) Ref() *C.VkCooperativeMatrixPropertiesNV { if x == nil { return nil } - return x.ref969cb55b + return x.ref4302be60 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *RefreshCycleDurationGOOGLE) Free() { - if x != nil && x.allocs969cb55b != nil { - x.allocs969cb55b.(*cgoAllocMap).Free() - x.ref969cb55b = nil +func (x *CooperativeMatrixPropertiesNV) Free() { + if x != nil && x.allocs4302be60 != nil { + x.allocs4302be60.(*cgoAllocMap).Free() + x.ref4302be60 = nil } } -// NewRefreshCycleDurationGOOGLERef creates a new wrapper struct with underlying reference set to the original C object. +// NewCooperativeMatrixPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewRefreshCycleDurationGOOGLERef(ref unsafe.Pointer) *RefreshCycleDurationGOOGLE { +func NewCooperativeMatrixPropertiesNVRef(ref unsafe.Pointer) *CooperativeMatrixPropertiesNV { if ref == nil { return nil } - obj := new(RefreshCycleDurationGOOGLE) - obj.ref969cb55b = (*C.VkRefreshCycleDurationGOOGLE)(unsafe.Pointer(ref)) + obj := new(CooperativeMatrixPropertiesNV) + obj.ref4302be60 = (*C.VkCooperativeMatrixPropertiesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *RefreshCycleDurationGOOGLE) PassRef() (*C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { +func (x *CooperativeMatrixPropertiesNV) PassRef() (*C.VkCooperativeMatrixPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref969cb55b != nil { - return x.ref969cb55b, nil + } else if x.ref4302be60 != nil { + return x.ref4302be60, nil } - mem969cb55b := allocRefreshCycleDurationGOOGLEMemory(1) - ref969cb55b := (*C.VkRefreshCycleDurationGOOGLE)(mem969cb55b) - allocs969cb55b := new(cgoAllocMap) - allocs969cb55b.Add(mem969cb55b) + mem4302be60 := allocCooperativeMatrixPropertiesNVMemory(1) + ref4302be60 := (*C.VkCooperativeMatrixPropertiesNV)(mem4302be60) + allocs4302be60 := new(cgoAllocMap) + allocs4302be60.Add(mem4302be60) - var crefreshDuration_allocs *cgoAllocMap - ref969cb55b.refreshDuration, crefreshDuration_allocs = (C.uint64_t)(x.RefreshDuration), cgoAllocsUnknown - allocs969cb55b.Borrow(crefreshDuration_allocs) + var csType_allocs *cgoAllocMap + ref4302be60.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4302be60.Borrow(csType_allocs) - x.ref969cb55b = ref969cb55b - x.allocs969cb55b = allocs969cb55b - return ref969cb55b, allocs969cb55b + var cpNext_allocs *cgoAllocMap + ref4302be60.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4302be60.Borrow(cpNext_allocs) + + var cMSize_allocs *cgoAllocMap + ref4302be60.MSize, cMSize_allocs = (C.uint32_t)(x.MSize), cgoAllocsUnknown + allocs4302be60.Borrow(cMSize_allocs) + + var cNSize_allocs *cgoAllocMap + ref4302be60.NSize, cNSize_allocs = (C.uint32_t)(x.NSize), cgoAllocsUnknown + allocs4302be60.Borrow(cNSize_allocs) + + var cKSize_allocs *cgoAllocMap + ref4302be60.KSize, cKSize_allocs = (C.uint32_t)(x.KSize), cgoAllocsUnknown + allocs4302be60.Borrow(cKSize_allocs) + + var cAType_allocs *cgoAllocMap + ref4302be60.AType, cAType_allocs = (C.VkComponentTypeNV)(x.AType), cgoAllocsUnknown + allocs4302be60.Borrow(cAType_allocs) + + var cBType_allocs *cgoAllocMap + ref4302be60.BType, cBType_allocs = (C.VkComponentTypeNV)(x.BType), cgoAllocsUnknown + allocs4302be60.Borrow(cBType_allocs) + + var cCType_allocs *cgoAllocMap + ref4302be60.CType, cCType_allocs = (C.VkComponentTypeNV)(x.CType), cgoAllocsUnknown + allocs4302be60.Borrow(cCType_allocs) + + var cDType_allocs *cgoAllocMap + ref4302be60.DType, cDType_allocs = (C.VkComponentTypeNV)(x.DType), cgoAllocsUnknown + allocs4302be60.Borrow(cDType_allocs) + + var cscope_allocs *cgoAllocMap + ref4302be60.scope, cscope_allocs = (C.VkScopeNV)(x.Scope), cgoAllocsUnknown + allocs4302be60.Borrow(cscope_allocs) + + x.ref4302be60 = ref4302be60 + x.allocs4302be60 = allocs4302be60 + return ref4302be60, allocs4302be60 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x RefreshCycleDurationGOOGLE) PassValue() (C.VkRefreshCycleDurationGOOGLE, *cgoAllocMap) { - if x.ref969cb55b != nil { - return *x.ref969cb55b, nil +func (x CooperativeMatrixPropertiesNV) PassValue() (C.VkCooperativeMatrixPropertiesNV, *cgoAllocMap) { + if x.ref4302be60 != nil { + return *x.ref4302be60, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -29914,96 +56612,101 @@ func (x RefreshCycleDurationGOOGLE) PassValue() (C.VkRefreshCycleDurationGOOGLE, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RefreshCycleDurationGOOGLE) Deref() { - if x.ref969cb55b == nil { +func (x *CooperativeMatrixPropertiesNV) Deref() { + if x.ref4302be60 == nil { return } - x.RefreshDuration = (uint64)(x.ref969cb55b.refreshDuration) + x.SType = (StructureType)(x.ref4302be60.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4302be60.pNext)) + x.MSize = (uint32)(x.ref4302be60.MSize) + x.NSize = (uint32)(x.ref4302be60.NSize) + x.KSize = (uint32)(x.ref4302be60.KSize) + x.AType = (ComponentTypeNV)(x.ref4302be60.AType) + x.BType = (ComponentTypeNV)(x.ref4302be60.BType) + x.CType = (ComponentTypeNV)(x.ref4302be60.CType) + x.DType = (ComponentTypeNV)(x.ref4302be60.DType) + x.Scope = (ScopeNV)(x.ref4302be60.scope) } -// allocPastPresentationTimingGOOGLEMemory allocates memory for type C.VkPastPresentationTimingGOOGLE in C. +// allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCooperativeMatrixFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPastPresentationTimingGOOGLEMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPastPresentationTimingGOOGLEValue)) +func allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCooperativeMatrixFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPastPresentationTimingGOOGLEValue = unsafe.Sizeof([1]C.VkPastPresentationTimingGOOGLE{}) +const sizeOfPhysicalDeviceCooperativeMatrixFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCooperativeMatrixFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PastPresentationTimingGOOGLE) Ref() *C.VkPastPresentationTimingGOOGLE { +func (x *PhysicalDeviceCooperativeMatrixFeaturesNV) Ref() *C.VkPhysicalDeviceCooperativeMatrixFeaturesNV { if x == nil { return nil } - return x.refac8cf1d8 + return x.refff45ea3f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PastPresentationTimingGOOGLE) Free() { - if x != nil && x.allocsac8cf1d8 != nil { - x.allocsac8cf1d8.(*cgoAllocMap).Free() - x.refac8cf1d8 = nil +func (x *PhysicalDeviceCooperativeMatrixFeaturesNV) Free() { + if x != nil && x.allocsff45ea3f != nil { + x.allocsff45ea3f.(*cgoAllocMap).Free() + x.refff45ea3f = nil } } -// NewPastPresentationTimingGOOGLERef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceCooperativeMatrixFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPastPresentationTimingGOOGLERef(ref unsafe.Pointer) *PastPresentationTimingGOOGLE { +func NewPhysicalDeviceCooperativeMatrixFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCooperativeMatrixFeaturesNV { if ref == nil { return nil } - obj := new(PastPresentationTimingGOOGLE) - obj.refac8cf1d8 = (*C.VkPastPresentationTimingGOOGLE)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceCooperativeMatrixFeaturesNV) + obj.refff45ea3f = (*C.VkPhysicalDeviceCooperativeMatrixFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PastPresentationTimingGOOGLE) PassRef() (*C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { +func (x *PhysicalDeviceCooperativeMatrixFeaturesNV) PassRef() (*C.VkPhysicalDeviceCooperativeMatrixFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refac8cf1d8 != nil { - return x.refac8cf1d8, nil + } else if x.refff45ea3f != nil { + return x.refff45ea3f, nil } - memac8cf1d8 := allocPastPresentationTimingGOOGLEMemory(1) - refac8cf1d8 := (*C.VkPastPresentationTimingGOOGLE)(memac8cf1d8) - allocsac8cf1d8 := new(cgoAllocMap) - allocsac8cf1d8.Add(memac8cf1d8) - - var cpresentID_allocs *cgoAllocMap - refac8cf1d8.presentID, cpresentID_allocs = (C.uint32_t)(x.PresentID), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cpresentID_allocs) + memff45ea3f := allocPhysicalDeviceCooperativeMatrixFeaturesNVMemory(1) + refff45ea3f := (*C.VkPhysicalDeviceCooperativeMatrixFeaturesNV)(memff45ea3f) + allocsff45ea3f := new(cgoAllocMap) + allocsff45ea3f.Add(memff45ea3f) - var cdesiredPresentTime_allocs *cgoAllocMap - refac8cf1d8.desiredPresentTime, cdesiredPresentTime_allocs = (C.uint64_t)(x.DesiredPresentTime), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cdesiredPresentTime_allocs) + var csType_allocs *cgoAllocMap + refff45ea3f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsff45ea3f.Borrow(csType_allocs) - var cactualPresentTime_allocs *cgoAllocMap - refac8cf1d8.actualPresentTime, cactualPresentTime_allocs = (C.uint64_t)(x.ActualPresentTime), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cactualPresentTime_allocs) + var cpNext_allocs *cgoAllocMap + refff45ea3f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsff45ea3f.Borrow(cpNext_allocs) - var cearliestPresentTime_allocs *cgoAllocMap - refac8cf1d8.earliestPresentTime, cearliestPresentTime_allocs = (C.uint64_t)(x.EarliestPresentTime), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cearliestPresentTime_allocs) + var ccooperativeMatrix_allocs *cgoAllocMap + refff45ea3f.cooperativeMatrix, ccooperativeMatrix_allocs = (C.VkBool32)(x.CooperativeMatrix), cgoAllocsUnknown + allocsff45ea3f.Borrow(ccooperativeMatrix_allocs) - var cpresentMargin_allocs *cgoAllocMap - refac8cf1d8.presentMargin, cpresentMargin_allocs = (C.uint64_t)(x.PresentMargin), cgoAllocsUnknown - allocsac8cf1d8.Borrow(cpresentMargin_allocs) + var ccooperativeMatrixRobustBufferAccess_allocs *cgoAllocMap + refff45ea3f.cooperativeMatrixRobustBufferAccess, ccooperativeMatrixRobustBufferAccess_allocs = (C.VkBool32)(x.CooperativeMatrixRobustBufferAccess), cgoAllocsUnknown + allocsff45ea3f.Borrow(ccooperativeMatrixRobustBufferAccess_allocs) - x.refac8cf1d8 = refac8cf1d8 - x.allocsac8cf1d8 = allocsac8cf1d8 - return refac8cf1d8, allocsac8cf1d8 + x.refff45ea3f = refff45ea3f + x.allocsff45ea3f = allocsff45ea3f + return refff45ea3f, allocsff45ea3f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PastPresentationTimingGOOGLE) PassValue() (C.VkPastPresentationTimingGOOGLE, *cgoAllocMap) { - if x.refac8cf1d8 != nil { - return *x.refac8cf1d8, nil +func (x PhysicalDeviceCooperativeMatrixFeaturesNV) PassValue() (C.VkPhysicalDeviceCooperativeMatrixFeaturesNV, *cgoAllocMap) { + if x.refff45ea3f != nil { + return *x.refff45ea3f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30011,88 +56714,91 @@ func (x PastPresentationTimingGOOGLE) PassValue() (C.VkPastPresentationTimingGOO // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PastPresentationTimingGOOGLE) Deref() { - if x.refac8cf1d8 == nil { +func (x *PhysicalDeviceCooperativeMatrixFeaturesNV) Deref() { + if x.refff45ea3f == nil { return } - x.PresentID = (uint32)(x.refac8cf1d8.presentID) - x.DesiredPresentTime = (uint64)(x.refac8cf1d8.desiredPresentTime) - x.ActualPresentTime = (uint64)(x.refac8cf1d8.actualPresentTime) - x.EarliestPresentTime = (uint64)(x.refac8cf1d8.earliestPresentTime) - x.PresentMargin = (uint64)(x.refac8cf1d8.presentMargin) + x.SType = (StructureType)(x.refff45ea3f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refff45ea3f.pNext)) + x.CooperativeMatrix = (Bool32)(x.refff45ea3f.cooperativeMatrix) + x.CooperativeMatrixRobustBufferAccess = (Bool32)(x.refff45ea3f.cooperativeMatrixRobustBufferAccess) } -// allocPresentTimeGOOGLEMemory allocates memory for type C.VkPresentTimeGOOGLE in C. +// allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceCooperativeMatrixPropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPresentTimeGOOGLEMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentTimeGOOGLEValue)) +func allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCooperativeMatrixPropertiesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPresentTimeGOOGLEValue = unsafe.Sizeof([1]C.VkPresentTimeGOOGLE{}) +const sizeOfPhysicalDeviceCooperativeMatrixPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCooperativeMatrixPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentTimeGOOGLE) Ref() *C.VkPresentTimeGOOGLE { +func (x *PhysicalDeviceCooperativeMatrixPropertiesNV) Ref() *C.VkPhysicalDeviceCooperativeMatrixPropertiesNV { if x == nil { return nil } - return x.ref9cd90ade + return x.ref45336143 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PresentTimeGOOGLE) Free() { - if x != nil && x.allocs9cd90ade != nil { - x.allocs9cd90ade.(*cgoAllocMap).Free() - x.ref9cd90ade = nil +func (x *PhysicalDeviceCooperativeMatrixPropertiesNV) Free() { + if x != nil && x.allocs45336143 != nil { + x.allocs45336143.(*cgoAllocMap).Free() + x.ref45336143 = nil } } -// NewPresentTimeGOOGLERef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceCooperativeMatrixPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPresentTimeGOOGLERef(ref unsafe.Pointer) *PresentTimeGOOGLE { +func NewPhysicalDeviceCooperativeMatrixPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceCooperativeMatrixPropertiesNV { if ref == nil { return nil } - obj := new(PresentTimeGOOGLE) - obj.ref9cd90ade = (*C.VkPresentTimeGOOGLE)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceCooperativeMatrixPropertiesNV) + obj.ref45336143 = (*C.VkPhysicalDeviceCooperativeMatrixPropertiesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PresentTimeGOOGLE) PassRef() (*C.VkPresentTimeGOOGLE, *cgoAllocMap) { +func (x *PhysicalDeviceCooperativeMatrixPropertiesNV) PassRef() (*C.VkPhysicalDeviceCooperativeMatrixPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9cd90ade != nil { - return x.ref9cd90ade, nil + } else if x.ref45336143 != nil { + return x.ref45336143, nil } - mem9cd90ade := allocPresentTimeGOOGLEMemory(1) - ref9cd90ade := (*C.VkPresentTimeGOOGLE)(mem9cd90ade) - allocs9cd90ade := new(cgoAllocMap) - allocs9cd90ade.Add(mem9cd90ade) + mem45336143 := allocPhysicalDeviceCooperativeMatrixPropertiesNVMemory(1) + ref45336143 := (*C.VkPhysicalDeviceCooperativeMatrixPropertiesNV)(mem45336143) + allocs45336143 := new(cgoAllocMap) + allocs45336143.Add(mem45336143) - var cpresentID_allocs *cgoAllocMap - ref9cd90ade.presentID, cpresentID_allocs = (C.uint32_t)(x.PresentID), cgoAllocsUnknown - allocs9cd90ade.Borrow(cpresentID_allocs) + var csType_allocs *cgoAllocMap + ref45336143.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs45336143.Borrow(csType_allocs) - var cdesiredPresentTime_allocs *cgoAllocMap - ref9cd90ade.desiredPresentTime, cdesiredPresentTime_allocs = (C.uint64_t)(x.DesiredPresentTime), cgoAllocsUnknown - allocs9cd90ade.Borrow(cdesiredPresentTime_allocs) + var cpNext_allocs *cgoAllocMap + ref45336143.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs45336143.Borrow(cpNext_allocs) - x.ref9cd90ade = ref9cd90ade - x.allocs9cd90ade = allocs9cd90ade - return ref9cd90ade, allocs9cd90ade + var ccooperativeMatrixSupportedStages_allocs *cgoAllocMap + ref45336143.cooperativeMatrixSupportedStages, ccooperativeMatrixSupportedStages_allocs = (C.VkShaderStageFlags)(x.CooperativeMatrixSupportedStages), cgoAllocsUnknown + allocs45336143.Borrow(ccooperativeMatrixSupportedStages_allocs) + + x.ref45336143 = ref45336143 + x.allocs45336143 = allocs45336143 + return ref45336143, allocs45336143 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PresentTimeGOOGLE) PassValue() (C.VkPresentTimeGOOGLE, *cgoAllocMap) { - if x.ref9cd90ade != nil { - return *x.ref9cd90ade, nil +func (x PhysicalDeviceCooperativeMatrixPropertiesNV) PassValue() (C.VkPhysicalDeviceCooperativeMatrixPropertiesNV, *cgoAllocMap) { + if x.ref45336143 != nil { + return *x.ref45336143, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30100,131 +56806,90 @@ func (x PresentTimeGOOGLE) PassValue() (C.VkPresentTimeGOOGLE, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PresentTimeGOOGLE) Deref() { - if x.ref9cd90ade == nil { +func (x *PhysicalDeviceCooperativeMatrixPropertiesNV) Deref() { + if x.ref45336143 == nil { return } - x.PresentID = (uint32)(x.ref9cd90ade.presentID) - x.DesiredPresentTime = (uint64)(x.ref9cd90ade.desiredPresentTime) + x.SType = (StructureType)(x.ref45336143.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref45336143.pNext)) + x.CooperativeMatrixSupportedStages = (ShaderStageFlags)(x.ref45336143.cooperativeMatrixSupportedStages) } -// allocPresentTimesInfoGOOGLEMemory allocates memory for type C.VkPresentTimesInfoGOOGLE in C. +// allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceCoverageReductionModeFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPresentTimesInfoGOOGLEMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPresentTimesInfoGOOGLEValue)) +func allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCoverageReductionModeFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPresentTimesInfoGOOGLEValue = unsafe.Sizeof([1]C.VkPresentTimesInfoGOOGLE{}) - -// unpackSPresentTimeGOOGLE transforms a sliced Go data structure into plain C format. -func unpackSPresentTimeGOOGLE(x []PresentTimeGOOGLE) (unpacked *C.VkPresentTimeGOOGLE, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkPresentTimeGOOGLE) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocPresentTimeGOOGLEMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkPresentTimeGOOGLE)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkPresentTimeGOOGLE)(h.Data) - return -} - -// packSPresentTimeGOOGLE reads sliced Go data structure out from plain C format. -func packSPresentTimeGOOGLE(v []PresentTimeGOOGLE, ptr0 *C.VkPresentTimeGOOGLE) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfPresentTimeGOOGLEValue]C.VkPresentTimeGOOGLE)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewPresentTimeGOOGLERef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfPhysicalDeviceCoverageReductionModeFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCoverageReductionModeFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PresentTimesInfoGOOGLE) Ref() *C.VkPresentTimesInfoGOOGLE { +func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) Ref() *C.VkPhysicalDeviceCoverageReductionModeFeaturesNV { if x == nil { return nil } - return x.ref70eb8ab3 + return x.ref1066c79 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PresentTimesInfoGOOGLE) Free() { - if x != nil && x.allocs70eb8ab3 != nil { - x.allocs70eb8ab3.(*cgoAllocMap).Free() - x.ref70eb8ab3 = nil +func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) Free() { + if x != nil && x.allocs1066c79 != nil { + x.allocs1066c79.(*cgoAllocMap).Free() + x.ref1066c79 = nil } } -// NewPresentTimesInfoGOOGLERef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceCoverageReductionModeFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPresentTimesInfoGOOGLERef(ref unsafe.Pointer) *PresentTimesInfoGOOGLE { +func NewPhysicalDeviceCoverageReductionModeFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceCoverageReductionModeFeaturesNV { if ref == nil { return nil } - obj := new(PresentTimesInfoGOOGLE) - obj.ref70eb8ab3 = (*C.VkPresentTimesInfoGOOGLE)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceCoverageReductionModeFeaturesNV) + obj.ref1066c79 = (*C.VkPhysicalDeviceCoverageReductionModeFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PresentTimesInfoGOOGLE) PassRef() (*C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { +func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) PassRef() (*C.VkPhysicalDeviceCoverageReductionModeFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref70eb8ab3 != nil { - return x.ref70eb8ab3, nil + } else if x.ref1066c79 != nil { + return x.ref1066c79, nil } - mem70eb8ab3 := allocPresentTimesInfoGOOGLEMemory(1) - ref70eb8ab3 := (*C.VkPresentTimesInfoGOOGLE)(mem70eb8ab3) - allocs70eb8ab3 := new(cgoAllocMap) - allocs70eb8ab3.Add(mem70eb8ab3) + mem1066c79 := allocPhysicalDeviceCoverageReductionModeFeaturesNVMemory(1) + ref1066c79 := (*C.VkPhysicalDeviceCoverageReductionModeFeaturesNV)(mem1066c79) + allocs1066c79 := new(cgoAllocMap) + allocs1066c79.Add(mem1066c79) var csType_allocs *cgoAllocMap - ref70eb8ab3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs70eb8ab3.Borrow(csType_allocs) + ref1066c79.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1066c79.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref70eb8ab3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs70eb8ab3.Borrow(cpNext_allocs) - - var cswapchainCount_allocs *cgoAllocMap - ref70eb8ab3.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown - allocs70eb8ab3.Borrow(cswapchainCount_allocs) + ref1066c79.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1066c79.Borrow(cpNext_allocs) - var cpTimes_allocs *cgoAllocMap - ref70eb8ab3.pTimes, cpTimes_allocs = unpackSPresentTimeGOOGLE(x.PTimes) - allocs70eb8ab3.Borrow(cpTimes_allocs) + var ccoverageReductionMode_allocs *cgoAllocMap + ref1066c79.coverageReductionMode, ccoverageReductionMode_allocs = (C.VkBool32)(x.CoverageReductionMode), cgoAllocsUnknown + allocs1066c79.Borrow(ccoverageReductionMode_allocs) - x.ref70eb8ab3 = ref70eb8ab3 - x.allocs70eb8ab3 = allocs70eb8ab3 - return ref70eb8ab3, allocs70eb8ab3 + x.ref1066c79 = ref1066c79 + x.allocs1066c79 = allocs1066c79 + return ref1066c79, allocs1066c79 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PresentTimesInfoGOOGLE) PassValue() (C.VkPresentTimesInfoGOOGLE, *cgoAllocMap) { - if x.ref70eb8ab3 != nil { - return *x.ref70eb8ab3, nil +func (x PhysicalDeviceCoverageReductionModeFeaturesNV) PassValue() (C.VkPhysicalDeviceCoverageReductionModeFeaturesNV, *cgoAllocMap) { + if x.ref1066c79 != nil { + return *x.ref1066c79, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30232,91 +56897,94 @@ func (x PresentTimesInfoGOOGLE) PassValue() (C.VkPresentTimesInfoGOOGLE, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PresentTimesInfoGOOGLE) Deref() { - if x.ref70eb8ab3 == nil { +func (x *PhysicalDeviceCoverageReductionModeFeaturesNV) Deref() { + if x.ref1066c79 == nil { return } - x.SType = (StructureType)(x.ref70eb8ab3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref70eb8ab3.pNext)) - x.SwapchainCount = (uint32)(x.ref70eb8ab3.swapchainCount) - packSPresentTimeGOOGLE(x.PTimes, x.ref70eb8ab3.pTimes) + x.SType = (StructureType)(x.ref1066c79.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1066c79.pNext)) + x.CoverageReductionMode = (Bool32)(x.ref1066c79.coverageReductionMode) } -// allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory allocates memory for type C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX in C. +// allocPipelineCoverageReductionStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageReductionStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXValue)) +func allocPipelineCoverageReductionStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCoverageReductionStateCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX{}) +const sizeOfPipelineCoverageReductionStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageReductionStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Ref() *C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { +func (x *PipelineCoverageReductionStateCreateInfoNV) Ref() *C.VkPipelineCoverageReductionStateCreateInfoNV { if x == nil { return nil } - return x.refbaf399ad + return x.ref39db618c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Free() { - if x != nil && x.allocsbaf399ad != nil { - x.allocsbaf399ad.(*cgoAllocMap).Free() - x.refbaf399ad = nil +func (x *PipelineCoverageReductionStateCreateInfoNV) Free() { + if x != nil && x.allocs39db618c != nil { + x.allocs39db618c.(*cgoAllocMap).Free() + x.ref39db618c = nil } } -// NewPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineCoverageReductionStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXRef(ref unsafe.Pointer) *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { +func NewPipelineCoverageReductionStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageReductionStateCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) - obj.refbaf399ad = (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)(unsafe.Pointer(ref)) + obj := new(PipelineCoverageReductionStateCreateInfoNV) + obj.ref39db618c = (*C.VkPipelineCoverageReductionStateCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassRef() (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { +func (x *PipelineCoverageReductionStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageReductionStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbaf399ad != nil { - return x.refbaf399ad, nil + } else if x.ref39db618c != nil { + return x.ref39db618c, nil } - membaf399ad := allocPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXMemory(1) - refbaf399ad := (*C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)(membaf399ad) - allocsbaf399ad := new(cgoAllocMap) - allocsbaf399ad.Add(membaf399ad) + mem39db618c := allocPipelineCoverageReductionStateCreateInfoNVMemory(1) + ref39db618c := (*C.VkPipelineCoverageReductionStateCreateInfoNV)(mem39db618c) + allocs39db618c := new(cgoAllocMap) + allocs39db618c.Add(mem39db618c) var csType_allocs *cgoAllocMap - refbaf399ad.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbaf399ad.Borrow(csType_allocs) + ref39db618c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs39db618c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbaf399ad.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbaf399ad.Borrow(cpNext_allocs) + ref39db618c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs39db618c.Borrow(cpNext_allocs) - var cperViewPositionAllComponents_allocs *cgoAllocMap - refbaf399ad.perViewPositionAllComponents, cperViewPositionAllComponents_allocs = (C.VkBool32)(x.PerViewPositionAllComponents), cgoAllocsUnknown - allocsbaf399ad.Borrow(cperViewPositionAllComponents_allocs) + var cflags_allocs *cgoAllocMap + ref39db618c.flags, cflags_allocs = (C.VkPipelineCoverageReductionStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown + allocs39db618c.Borrow(cflags_allocs) - x.refbaf399ad = refbaf399ad - x.allocsbaf399ad = allocsbaf399ad - return refbaf399ad, allocsbaf399ad + var ccoverageReductionMode_allocs *cgoAllocMap + ref39db618c.coverageReductionMode, ccoverageReductionMode_allocs = (C.VkCoverageReductionModeNV)(x.CoverageReductionMode), cgoAllocsUnknown + allocs39db618c.Borrow(ccoverageReductionMode_allocs) + + x.ref39db618c = ref39db618c + x.allocs39db618c = allocs39db618c + return ref39db618c, allocs39db618c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassValue() (C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, *cgoAllocMap) { - if x.refbaf399ad != nil { - return *x.refbaf399ad, nil +func (x PipelineCoverageReductionStateCreateInfoNV) PassValue() (C.VkPipelineCoverageReductionStateCreateInfoNV, *cgoAllocMap) { + if x.ref39db618c != nil { + return *x.ref39db618c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30324,94 +56992,103 @@ func (x PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) PassValue() (C.Vk // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) Deref() { - if x.refbaf399ad == nil { +func (x *PipelineCoverageReductionStateCreateInfoNV) Deref() { + if x.ref39db618c == nil { return } - x.SType = (StructureType)(x.refbaf399ad.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbaf399ad.pNext)) - x.PerViewPositionAllComponents = (Bool32)(x.refbaf399ad.perViewPositionAllComponents) + x.SType = (StructureType)(x.ref39db618c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref39db618c.pNext)) + x.Flags = (PipelineCoverageReductionStateCreateFlagsNV)(x.ref39db618c.flags) + x.CoverageReductionMode = (CoverageReductionModeNV)(x.ref39db618c.coverageReductionMode) } -// allocViewportSwizzleNVMemory allocates memory for type C.VkViewportSwizzleNV in C. +// allocFramebufferMixedSamplesCombinationNVMemory allocates memory for type C.VkFramebufferMixedSamplesCombinationNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocViewportSwizzleNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfViewportSwizzleNVValue)) +func allocFramebufferMixedSamplesCombinationNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfFramebufferMixedSamplesCombinationNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfViewportSwizzleNVValue = unsafe.Sizeof([1]C.VkViewportSwizzleNV{}) +const sizeOfFramebufferMixedSamplesCombinationNVValue = unsafe.Sizeof([1]C.VkFramebufferMixedSamplesCombinationNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ViewportSwizzleNV) Ref() *C.VkViewportSwizzleNV { +func (x *FramebufferMixedSamplesCombinationNV) Ref() *C.VkFramebufferMixedSamplesCombinationNV { if x == nil { return nil } - return x.ref74ff2887 + return x.ref75affbab } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ViewportSwizzleNV) Free() { - if x != nil && x.allocs74ff2887 != nil { - x.allocs74ff2887.(*cgoAllocMap).Free() - x.ref74ff2887 = nil +func (x *FramebufferMixedSamplesCombinationNV) Free() { + if x != nil && x.allocs75affbab != nil { + x.allocs75affbab.(*cgoAllocMap).Free() + x.ref75affbab = nil } } -// NewViewportSwizzleNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewFramebufferMixedSamplesCombinationNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewViewportSwizzleNVRef(ref unsafe.Pointer) *ViewportSwizzleNV { +func NewFramebufferMixedSamplesCombinationNVRef(ref unsafe.Pointer) *FramebufferMixedSamplesCombinationNV { if ref == nil { return nil } - obj := new(ViewportSwizzleNV) - obj.ref74ff2887 = (*C.VkViewportSwizzleNV)(unsafe.Pointer(ref)) + obj := new(FramebufferMixedSamplesCombinationNV) + obj.ref75affbab = (*C.VkFramebufferMixedSamplesCombinationNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ViewportSwizzleNV) PassRef() (*C.VkViewportSwizzleNV, *cgoAllocMap) { +func (x *FramebufferMixedSamplesCombinationNV) PassRef() (*C.VkFramebufferMixedSamplesCombinationNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref74ff2887 != nil { - return x.ref74ff2887, nil + } else if x.ref75affbab != nil { + return x.ref75affbab, nil } - mem74ff2887 := allocViewportSwizzleNVMemory(1) - ref74ff2887 := (*C.VkViewportSwizzleNV)(mem74ff2887) - allocs74ff2887 := new(cgoAllocMap) - allocs74ff2887.Add(mem74ff2887) + mem75affbab := allocFramebufferMixedSamplesCombinationNVMemory(1) + ref75affbab := (*C.VkFramebufferMixedSamplesCombinationNV)(mem75affbab) + allocs75affbab := new(cgoAllocMap) + allocs75affbab.Add(mem75affbab) - var cx_allocs *cgoAllocMap - ref74ff2887.x, cx_allocs = (C.VkViewportCoordinateSwizzleNV)(x.X), cgoAllocsUnknown - allocs74ff2887.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + ref75affbab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs75affbab.Borrow(csType_allocs) - var cy_allocs *cgoAllocMap - ref74ff2887.y, cy_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Y), cgoAllocsUnknown - allocs74ff2887.Borrow(cy_allocs) + var cpNext_allocs *cgoAllocMap + ref75affbab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs75affbab.Borrow(cpNext_allocs) - var cz_allocs *cgoAllocMap - ref74ff2887.z, cz_allocs = (C.VkViewportCoordinateSwizzleNV)(x.Z), cgoAllocsUnknown - allocs74ff2887.Borrow(cz_allocs) + var ccoverageReductionMode_allocs *cgoAllocMap + ref75affbab.coverageReductionMode, ccoverageReductionMode_allocs = (C.VkCoverageReductionModeNV)(x.CoverageReductionMode), cgoAllocsUnknown + allocs75affbab.Borrow(ccoverageReductionMode_allocs) - var cw_allocs *cgoAllocMap - ref74ff2887.w, cw_allocs = (C.VkViewportCoordinateSwizzleNV)(x.W), cgoAllocsUnknown - allocs74ff2887.Borrow(cw_allocs) + var crasterizationSamples_allocs *cgoAllocMap + ref75affbab.rasterizationSamples, crasterizationSamples_allocs = (C.VkSampleCountFlagBits)(x.RasterizationSamples), cgoAllocsUnknown + allocs75affbab.Borrow(crasterizationSamples_allocs) - x.ref74ff2887 = ref74ff2887 - x.allocs74ff2887 = allocs74ff2887 - return ref74ff2887, allocs74ff2887 + var cdepthStencilSamples_allocs *cgoAllocMap + ref75affbab.depthStencilSamples, cdepthStencilSamples_allocs = (C.VkSampleCountFlags)(x.DepthStencilSamples), cgoAllocsUnknown + allocs75affbab.Borrow(cdepthStencilSamples_allocs) + + var ccolorSamples_allocs *cgoAllocMap + ref75affbab.colorSamples, ccolorSamples_allocs = (C.VkSampleCountFlags)(x.ColorSamples), cgoAllocsUnknown + allocs75affbab.Borrow(ccolorSamples_allocs) + + x.ref75affbab = ref75affbab + x.allocs75affbab = allocs75affbab + return ref75affbab, allocs75affbab } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ViewportSwizzleNV) PassValue() (C.VkViewportSwizzleNV, *cgoAllocMap) { - if x.ref74ff2887 != nil { - return *x.ref74ff2887, nil +func (x FramebufferMixedSamplesCombinationNV) PassValue() (C.VkFramebufferMixedSamplesCombinationNV, *cgoAllocMap) { + if x.ref75affbab != nil { + return *x.ref75affbab, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30419,137 +57096,101 @@ func (x ViewportSwizzleNV) PassValue() (C.VkViewportSwizzleNV, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ViewportSwizzleNV) Deref() { - if x.ref74ff2887 == nil { +func (x *FramebufferMixedSamplesCombinationNV) Deref() { + if x.ref75affbab == nil { return } - x.X = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.x) - x.Y = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.y) - x.Z = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.z) - x.W = (ViewportCoordinateSwizzleNV)(x.ref74ff2887.w) + x.SType = (StructureType)(x.ref75affbab.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref75affbab.pNext)) + x.CoverageReductionMode = (CoverageReductionModeNV)(x.ref75affbab.coverageReductionMode) + x.RasterizationSamples = (SampleCountFlagBits)(x.ref75affbab.rasterizationSamples) + x.DepthStencilSamples = (SampleCountFlags)(x.ref75affbab.depthStencilSamples) + x.ColorSamples = (SampleCountFlags)(x.ref75affbab.colorSamples) } -// allocPipelineViewportSwizzleStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportSwizzleStateCreateInfoNV in C. +// allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineViewportSwizzleStateCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportSwizzleStateCreateInfoNVValue)) +func allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShaderInterlockFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineViewportSwizzleStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportSwizzleStateCreateInfoNV{}) - -// unpackSViewportSwizzleNV transforms a sliced Go data structure into plain C format. -func unpackSViewportSwizzleNV(x []ViewportSwizzleNV) (unpacked *C.VkViewportSwizzleNV, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkViewportSwizzleNV) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocViewportSwizzleNVMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkViewportSwizzleNV)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkViewportSwizzleNV)(h.Data) - return -} - -// packSViewportSwizzleNV reads sliced Go data structure out from plain C format. -func packSViewportSwizzleNV(v []ViewportSwizzleNV, ptr0 *C.VkViewportSwizzleNV) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfViewportSwizzleNVValue]C.VkViewportSwizzleNV)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewViewportSwizzleNVRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfPhysicalDeviceFragmentShaderInterlockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportSwizzleStateCreateInfoNV) Ref() *C.VkPipelineViewportSwizzleStateCreateInfoNV { +func (x *PhysicalDeviceFragmentShaderInterlockFeatures) Ref() *C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { if x == nil { return nil } - return x.ref5e90f24 + return x.ref1ed4955d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineViewportSwizzleStateCreateInfoNV) Free() { - if x != nil && x.allocs5e90f24 != nil { - x.allocs5e90f24.(*cgoAllocMap).Free() - x.ref5e90f24 = nil +func (x *PhysicalDeviceFragmentShaderInterlockFeatures) Free() { + if x != nil && x.allocs1ed4955d != nil { + x.allocs1ed4955d.(*cgoAllocMap).Free() + x.ref1ed4955d = nil } } -// NewPipelineViewportSwizzleStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentShaderInterlockFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineViewportSwizzleStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportSwizzleStateCreateInfoNV { +func NewPhysicalDeviceFragmentShaderInterlockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderInterlockFeatures { if ref == nil { return nil } - obj := new(PipelineViewportSwizzleStateCreateInfoNV) - obj.ref5e90f24 = (*C.VkPipelineViewportSwizzleStateCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentShaderInterlockFeatures) + obj.ref1ed4955d = (*C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineViewportSwizzleStateCreateInfoNV) PassRef() (*C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShaderInterlockFeatures) PassRef() (*C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5e90f24 != nil { - return x.ref5e90f24, nil + } else if x.ref1ed4955d != nil { + return x.ref1ed4955d, nil } - mem5e90f24 := allocPipelineViewportSwizzleStateCreateInfoNVMemory(1) - ref5e90f24 := (*C.VkPipelineViewportSwizzleStateCreateInfoNV)(mem5e90f24) - allocs5e90f24 := new(cgoAllocMap) - allocs5e90f24.Add(mem5e90f24) + mem1ed4955d := allocPhysicalDeviceFragmentShaderInterlockFeaturesMemory(1) + ref1ed4955d := (*C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT)(mem1ed4955d) + allocs1ed4955d := new(cgoAllocMap) + allocs1ed4955d.Add(mem1ed4955d) var csType_allocs *cgoAllocMap - ref5e90f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5e90f24.Borrow(csType_allocs) + ref1ed4955d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1ed4955d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5e90f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5e90f24.Borrow(cpNext_allocs) + ref1ed4955d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1ed4955d.Borrow(cpNext_allocs) - var cflags_allocs *cgoAllocMap - ref5e90f24.flags, cflags_allocs = (C.VkPipelineViewportSwizzleStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown - allocs5e90f24.Borrow(cflags_allocs) + var cfragmentShaderSampleInterlock_allocs *cgoAllocMap + ref1ed4955d.fragmentShaderSampleInterlock, cfragmentShaderSampleInterlock_allocs = (C.VkBool32)(x.FragmentShaderSampleInterlock), cgoAllocsUnknown + allocs1ed4955d.Borrow(cfragmentShaderSampleInterlock_allocs) - var cviewportCount_allocs *cgoAllocMap - ref5e90f24.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown - allocs5e90f24.Borrow(cviewportCount_allocs) + var cfragmentShaderPixelInterlock_allocs *cgoAllocMap + ref1ed4955d.fragmentShaderPixelInterlock, cfragmentShaderPixelInterlock_allocs = (C.VkBool32)(x.FragmentShaderPixelInterlock), cgoAllocsUnknown + allocs1ed4955d.Borrow(cfragmentShaderPixelInterlock_allocs) - var cpViewportSwizzles_allocs *cgoAllocMap - ref5e90f24.pViewportSwizzles, cpViewportSwizzles_allocs = unpackSViewportSwizzleNV(x.PViewportSwizzles) - allocs5e90f24.Borrow(cpViewportSwizzles_allocs) + var cfragmentShaderShadingRateInterlock_allocs *cgoAllocMap + ref1ed4955d.fragmentShaderShadingRateInterlock, cfragmentShaderShadingRateInterlock_allocs = (C.VkBool32)(x.FragmentShaderShadingRateInterlock), cgoAllocsUnknown + allocs1ed4955d.Borrow(cfragmentShaderShadingRateInterlock_allocs) - x.ref5e90f24 = ref5e90f24 - x.allocs5e90f24 = allocs5e90f24 - return ref5e90f24, allocs5e90f24 + x.ref1ed4955d = ref1ed4955d + x.allocs1ed4955d = allocs1ed4955d + return ref1ed4955d, allocs1ed4955d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineViewportSwizzleStateCreateInfoNV) PassValue() (C.VkPipelineViewportSwizzleStateCreateInfoNV, *cgoAllocMap) { - if x.ref5e90f24 != nil { - return *x.ref5e90f24, nil +func (x PhysicalDeviceFragmentShaderInterlockFeatures) PassValue() (C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, *cgoAllocMap) { + if x.ref1ed4955d != nil { + return *x.ref1ed4955d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30557,92 +57198,92 @@ func (x PipelineViewportSwizzleStateCreateInfoNV) PassValue() (C.VkPipelineViewp // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineViewportSwizzleStateCreateInfoNV) Deref() { - if x.ref5e90f24 == nil { +func (x *PhysicalDeviceFragmentShaderInterlockFeatures) Deref() { + if x.ref1ed4955d == nil { return } - x.SType = (StructureType)(x.ref5e90f24.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5e90f24.pNext)) - x.Flags = (PipelineViewportSwizzleStateCreateFlagsNV)(x.ref5e90f24.flags) - x.ViewportCount = (uint32)(x.ref5e90f24.viewportCount) - packSViewportSwizzleNV(x.PViewportSwizzles, x.ref5e90f24.pViewportSwizzles) + x.SType = (StructureType)(x.ref1ed4955d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1ed4955d.pNext)) + x.FragmentShaderSampleInterlock = (Bool32)(x.ref1ed4955d.fragmentShaderSampleInterlock) + x.FragmentShaderPixelInterlock = (Bool32)(x.ref1ed4955d.fragmentShaderPixelInterlock) + x.FragmentShaderShadingRateInterlock = (Bool32)(x.ref1ed4955d.fragmentShaderShadingRateInterlock) } -// allocPhysicalDeviceDiscardRectanglePropertiesMemory allocates memory for type C.VkPhysicalDeviceDiscardRectanglePropertiesEXT in C. +// allocPhysicalDeviceYcbcrImageArraysFeaturesMemory allocates memory for type C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDiscardRectanglePropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDiscardRectanglePropertiesValue)) +func allocPhysicalDeviceYcbcrImageArraysFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceYcbcrImageArraysFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceDiscardRectanglePropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDiscardRectanglePropertiesEXT{}) +const sizeOfPhysicalDeviceYcbcrImageArraysFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDiscardRectangleProperties) Ref() *C.VkPhysicalDeviceDiscardRectanglePropertiesEXT { +func (x *PhysicalDeviceYcbcrImageArraysFeatures) Ref() *C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { if x == nil { return nil } - return x.reffe8591da + return x.ref3198007 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceDiscardRectangleProperties) Free() { - if x != nil && x.allocsfe8591da != nil { - x.allocsfe8591da.(*cgoAllocMap).Free() - x.reffe8591da = nil +func (x *PhysicalDeviceYcbcrImageArraysFeatures) Free() { + if x != nil && x.allocs3198007 != nil { + x.allocs3198007.(*cgoAllocMap).Free() + x.ref3198007 = nil } } -// NewPhysicalDeviceDiscardRectanglePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceYcbcrImageArraysFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceDiscardRectanglePropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDiscardRectangleProperties { +func NewPhysicalDeviceYcbcrImageArraysFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceYcbcrImageArraysFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceDiscardRectangleProperties) - obj.reffe8591da = (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceYcbcrImageArraysFeatures) + obj.ref3198007 = (*C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceDiscardRectangleProperties) PassRef() (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceYcbcrImageArraysFeatures) PassRef() (*C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffe8591da != nil { - return x.reffe8591da, nil + } else if x.ref3198007 != nil { + return x.ref3198007, nil } - memfe8591da := allocPhysicalDeviceDiscardRectanglePropertiesMemory(1) - reffe8591da := (*C.VkPhysicalDeviceDiscardRectanglePropertiesEXT)(memfe8591da) - allocsfe8591da := new(cgoAllocMap) - allocsfe8591da.Add(memfe8591da) + mem3198007 := allocPhysicalDeviceYcbcrImageArraysFeaturesMemory(1) + ref3198007 := (*C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT)(mem3198007) + allocs3198007 := new(cgoAllocMap) + allocs3198007.Add(mem3198007) var csType_allocs *cgoAllocMap - reffe8591da.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfe8591da.Borrow(csType_allocs) + ref3198007.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3198007.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reffe8591da.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfe8591da.Borrow(cpNext_allocs) + ref3198007.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3198007.Borrow(cpNext_allocs) - var cmaxDiscardRectangles_allocs *cgoAllocMap - reffe8591da.maxDiscardRectangles, cmaxDiscardRectangles_allocs = (C.uint32_t)(x.MaxDiscardRectangles), cgoAllocsUnknown - allocsfe8591da.Borrow(cmaxDiscardRectangles_allocs) + var cycbcrImageArrays_allocs *cgoAllocMap + ref3198007.ycbcrImageArrays, cycbcrImageArrays_allocs = (C.VkBool32)(x.YcbcrImageArrays), cgoAllocsUnknown + allocs3198007.Borrow(cycbcrImageArrays_allocs) - x.reffe8591da = reffe8591da - x.allocsfe8591da = allocsfe8591da - return reffe8591da, allocsfe8591da + x.ref3198007 = ref3198007 + x.allocs3198007 = allocs3198007 + return ref3198007, allocs3198007 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceDiscardRectangleProperties) PassValue() (C.VkPhysicalDeviceDiscardRectanglePropertiesEXT, *cgoAllocMap) { - if x.reffe8591da != nil { - return *x.reffe8591da, nil +func (x PhysicalDeviceYcbcrImageArraysFeatures) PassValue() (C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, *cgoAllocMap) { + if x.ref3198007 != nil { + return *x.ref3198007, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30650,102 +57291,94 @@ func (x PhysicalDeviceDiscardRectangleProperties) PassValue() (C.VkPhysicalDevic // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceDiscardRectangleProperties) Deref() { - if x.reffe8591da == nil { +func (x *PhysicalDeviceYcbcrImageArraysFeatures) Deref() { + if x.ref3198007 == nil { return } - x.SType = (StructureType)(x.reffe8591da.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffe8591da.pNext)) - x.MaxDiscardRectangles = (uint32)(x.reffe8591da.maxDiscardRectangles) + x.SType = (StructureType)(x.ref3198007.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3198007.pNext)) + x.YcbcrImageArrays = (Bool32)(x.ref3198007.ycbcrImageArrays) } -// allocPipelineDiscardRectangleStateCreateInfoMemory allocates memory for type C.VkPipelineDiscardRectangleStateCreateInfoEXT in C. +// allocPhysicalDeviceProvokingVertexFeaturesMemory allocates memory for type C.VkPhysicalDeviceProvokingVertexFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineDiscardRectangleStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineDiscardRectangleStateCreateInfoValue)) +func allocPhysicalDeviceProvokingVertexFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProvokingVertexFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineDiscardRectangleStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineDiscardRectangleStateCreateInfoEXT{}) +const sizeOfPhysicalDeviceProvokingVertexFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProvokingVertexFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineDiscardRectangleStateCreateInfo) Ref() *C.VkPipelineDiscardRectangleStateCreateInfoEXT { +func (x *PhysicalDeviceProvokingVertexFeatures) Ref() *C.VkPhysicalDeviceProvokingVertexFeaturesEXT { if x == nil { return nil } - return x.refcdbb125e + return x.ref3e34d575 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineDiscardRectangleStateCreateInfo) Free() { - if x != nil && x.allocscdbb125e != nil { - x.allocscdbb125e.(*cgoAllocMap).Free() - x.refcdbb125e = nil +func (x *PhysicalDeviceProvokingVertexFeatures) Free() { + if x != nil && x.allocs3e34d575 != nil { + x.allocs3e34d575.(*cgoAllocMap).Free() + x.ref3e34d575 = nil } } -// NewPipelineDiscardRectangleStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceProvokingVertexFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineDiscardRectangleStateCreateInfoRef(ref unsafe.Pointer) *PipelineDiscardRectangleStateCreateInfo { +func NewPhysicalDeviceProvokingVertexFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceProvokingVertexFeatures { if ref == nil { return nil } - obj := new(PipelineDiscardRectangleStateCreateInfo) - obj.refcdbb125e = (*C.VkPipelineDiscardRectangleStateCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceProvokingVertexFeatures) + obj.ref3e34d575 = (*C.VkPhysicalDeviceProvokingVertexFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineDiscardRectangleStateCreateInfo) PassRef() (*C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceProvokingVertexFeatures) PassRef() (*C.VkPhysicalDeviceProvokingVertexFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcdbb125e != nil { - return x.refcdbb125e, nil + } else if x.ref3e34d575 != nil { + return x.ref3e34d575, nil } - memcdbb125e := allocPipelineDiscardRectangleStateCreateInfoMemory(1) - refcdbb125e := (*C.VkPipelineDiscardRectangleStateCreateInfoEXT)(memcdbb125e) - allocscdbb125e := new(cgoAllocMap) - allocscdbb125e.Add(memcdbb125e) + mem3e34d575 := allocPhysicalDeviceProvokingVertexFeaturesMemory(1) + ref3e34d575 := (*C.VkPhysicalDeviceProvokingVertexFeaturesEXT)(mem3e34d575) + allocs3e34d575 := new(cgoAllocMap) + allocs3e34d575.Add(mem3e34d575) var csType_allocs *cgoAllocMap - refcdbb125e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscdbb125e.Borrow(csType_allocs) + ref3e34d575.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3e34d575.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcdbb125e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscdbb125e.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refcdbb125e.flags, cflags_allocs = (C.VkPipelineDiscardRectangleStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown - allocscdbb125e.Borrow(cflags_allocs) - - var cdiscardRectangleMode_allocs *cgoAllocMap - refcdbb125e.discardRectangleMode, cdiscardRectangleMode_allocs = (C.VkDiscardRectangleModeEXT)(x.DiscardRectangleMode), cgoAllocsUnknown - allocscdbb125e.Borrow(cdiscardRectangleMode_allocs) + ref3e34d575.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3e34d575.Borrow(cpNext_allocs) - var cdiscardRectangleCount_allocs *cgoAllocMap - refcdbb125e.discardRectangleCount, cdiscardRectangleCount_allocs = (C.uint32_t)(x.DiscardRectangleCount), cgoAllocsUnknown - allocscdbb125e.Borrow(cdiscardRectangleCount_allocs) + var cprovokingVertexLast_allocs *cgoAllocMap + ref3e34d575.provokingVertexLast, cprovokingVertexLast_allocs = (C.VkBool32)(x.ProvokingVertexLast), cgoAllocsUnknown + allocs3e34d575.Borrow(cprovokingVertexLast_allocs) - var cpDiscardRectangles_allocs *cgoAllocMap - refcdbb125e.pDiscardRectangles, cpDiscardRectangles_allocs = unpackSRect2D(x.PDiscardRectangles) - allocscdbb125e.Borrow(cpDiscardRectangles_allocs) + var ctransformFeedbackPreservesProvokingVertex_allocs *cgoAllocMap + ref3e34d575.transformFeedbackPreservesProvokingVertex, ctransformFeedbackPreservesProvokingVertex_allocs = (C.VkBool32)(x.TransformFeedbackPreservesProvokingVertex), cgoAllocsUnknown + allocs3e34d575.Borrow(ctransformFeedbackPreservesProvokingVertex_allocs) - x.refcdbb125e = refcdbb125e - x.allocscdbb125e = allocscdbb125e - return refcdbb125e, allocscdbb125e + x.ref3e34d575 = ref3e34d575 + x.allocs3e34d575 = allocs3e34d575 + return ref3e34d575, allocs3e34d575 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineDiscardRectangleStateCreateInfo) PassValue() (C.VkPipelineDiscardRectangleStateCreateInfoEXT, *cgoAllocMap) { - if x.refcdbb125e != nil { - return *x.refcdbb125e, nil +func (x PhysicalDeviceProvokingVertexFeatures) PassValue() (C.VkPhysicalDeviceProvokingVertexFeaturesEXT, *cgoAllocMap) { + if x.ref3e34d575 != nil { + return *x.ref3e34d575, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30753,125 +57386,95 @@ func (x PipelineDiscardRectangleStateCreateInfo) PassValue() (C.VkPipelineDiscar // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineDiscardRectangleStateCreateInfo) Deref() { - if x.refcdbb125e == nil { +func (x *PhysicalDeviceProvokingVertexFeatures) Deref() { + if x.ref3e34d575 == nil { return } - x.SType = (StructureType)(x.refcdbb125e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcdbb125e.pNext)) - x.Flags = (PipelineDiscardRectangleStateCreateFlags)(x.refcdbb125e.flags) - x.DiscardRectangleMode = (DiscardRectangleMode)(x.refcdbb125e.discardRectangleMode) - x.DiscardRectangleCount = (uint32)(x.refcdbb125e.discardRectangleCount) - packSRect2D(x.PDiscardRectangles, x.refcdbb125e.pDiscardRectangles) + x.SType = (StructureType)(x.ref3e34d575.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3e34d575.pNext)) + x.ProvokingVertexLast = (Bool32)(x.ref3e34d575.provokingVertexLast) + x.TransformFeedbackPreservesProvokingVertex = (Bool32)(x.ref3e34d575.transformFeedbackPreservesProvokingVertex) } -// allocPhysicalDeviceConservativeRasterizationPropertiesMemory allocates memory for type C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT in C. +// allocPhysicalDeviceProvokingVertexPropertiesMemory allocates memory for type C.VkPhysicalDeviceProvokingVertexPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceConservativeRasterizationPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceConservativeRasterizationPropertiesValue)) +func allocPhysicalDeviceProvokingVertexPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceProvokingVertexPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceConservativeRasterizationPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT{}) +const sizeOfPhysicalDeviceProvokingVertexPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceProvokingVertexPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceConservativeRasterizationProperties) Ref() *C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT { +func (x *PhysicalDeviceProvokingVertexProperties) Ref() *C.VkPhysicalDeviceProvokingVertexPropertiesEXT { if x == nil { return nil } - return x.ref878f819c + return x.refa8810910 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceConservativeRasterizationProperties) Free() { - if x != nil && x.allocs878f819c != nil { - x.allocs878f819c.(*cgoAllocMap).Free() - x.ref878f819c = nil +func (x *PhysicalDeviceProvokingVertexProperties) Free() { + if x != nil && x.allocsa8810910 != nil { + x.allocsa8810910.(*cgoAllocMap).Free() + x.refa8810910 = nil } } -// NewPhysicalDeviceConservativeRasterizationPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceProvokingVertexPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceConservativeRasterizationPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceConservativeRasterizationProperties { +func NewPhysicalDeviceProvokingVertexPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceProvokingVertexProperties { if ref == nil { return nil } - obj := new(PhysicalDeviceConservativeRasterizationProperties) - obj.ref878f819c = (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceProvokingVertexProperties) + obj.refa8810910 = (*C.VkPhysicalDeviceProvokingVertexPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceConservativeRasterizationProperties) PassRef() (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceProvokingVertexProperties) PassRef() (*C.VkPhysicalDeviceProvokingVertexPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref878f819c != nil { - return x.ref878f819c, nil + } else if x.refa8810910 != nil { + return x.refa8810910, nil } - mem878f819c := allocPhysicalDeviceConservativeRasterizationPropertiesMemory(1) - ref878f819c := (*C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT)(mem878f819c) - allocs878f819c := new(cgoAllocMap) - allocs878f819c.Add(mem878f819c) + mema8810910 := allocPhysicalDeviceProvokingVertexPropertiesMemory(1) + refa8810910 := (*C.VkPhysicalDeviceProvokingVertexPropertiesEXT)(mema8810910) + allocsa8810910 := new(cgoAllocMap) + allocsa8810910.Add(mema8810910) var csType_allocs *cgoAllocMap - ref878f819c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs878f819c.Borrow(csType_allocs) + refa8810910.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa8810910.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref878f819c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs878f819c.Borrow(cpNext_allocs) - - var cprimitiveOverestimationSize_allocs *cgoAllocMap - ref878f819c.primitiveOverestimationSize, cprimitiveOverestimationSize_allocs = (C.float)(x.PrimitiveOverestimationSize), cgoAllocsUnknown - allocs878f819c.Borrow(cprimitiveOverestimationSize_allocs) - - var cmaxExtraPrimitiveOverestimationSize_allocs *cgoAllocMap - ref878f819c.maxExtraPrimitiveOverestimationSize, cmaxExtraPrimitiveOverestimationSize_allocs = (C.float)(x.MaxExtraPrimitiveOverestimationSize), cgoAllocsUnknown - allocs878f819c.Borrow(cmaxExtraPrimitiveOverestimationSize_allocs) - - var cextraPrimitiveOverestimationSizeGranularity_allocs *cgoAllocMap - ref878f819c.extraPrimitiveOverestimationSizeGranularity, cextraPrimitiveOverestimationSizeGranularity_allocs = (C.float)(x.ExtraPrimitiveOverestimationSizeGranularity), cgoAllocsUnknown - allocs878f819c.Borrow(cextraPrimitiveOverestimationSizeGranularity_allocs) - - var cprimitiveUnderestimation_allocs *cgoAllocMap - ref878f819c.primitiveUnderestimation, cprimitiveUnderestimation_allocs = (C.VkBool32)(x.PrimitiveUnderestimation), cgoAllocsUnknown - allocs878f819c.Borrow(cprimitiveUnderestimation_allocs) - - var cconservativePointAndLineRasterization_allocs *cgoAllocMap - ref878f819c.conservativePointAndLineRasterization, cconservativePointAndLineRasterization_allocs = (C.VkBool32)(x.ConservativePointAndLineRasterization), cgoAllocsUnknown - allocs878f819c.Borrow(cconservativePointAndLineRasterization_allocs) - - var cdegenerateTrianglesRasterized_allocs *cgoAllocMap - ref878f819c.degenerateTrianglesRasterized, cdegenerateTrianglesRasterized_allocs = (C.VkBool32)(x.DegenerateTrianglesRasterized), cgoAllocsUnknown - allocs878f819c.Borrow(cdegenerateTrianglesRasterized_allocs) - - var cdegenerateLinesRasterized_allocs *cgoAllocMap - ref878f819c.degenerateLinesRasterized, cdegenerateLinesRasterized_allocs = (C.VkBool32)(x.DegenerateLinesRasterized), cgoAllocsUnknown - allocs878f819c.Borrow(cdegenerateLinesRasterized_allocs) + refa8810910.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa8810910.Borrow(cpNext_allocs) - var cfullyCoveredFragmentShaderInputVariable_allocs *cgoAllocMap - ref878f819c.fullyCoveredFragmentShaderInputVariable, cfullyCoveredFragmentShaderInputVariable_allocs = (C.VkBool32)(x.FullyCoveredFragmentShaderInputVariable), cgoAllocsUnknown - allocs878f819c.Borrow(cfullyCoveredFragmentShaderInputVariable_allocs) + var cprovokingVertexModePerPipeline_allocs *cgoAllocMap + refa8810910.provokingVertexModePerPipeline, cprovokingVertexModePerPipeline_allocs = (C.VkBool32)(x.ProvokingVertexModePerPipeline), cgoAllocsUnknown + allocsa8810910.Borrow(cprovokingVertexModePerPipeline_allocs) - var cconservativeRasterizationPostDepthCoverage_allocs *cgoAllocMap - ref878f819c.conservativeRasterizationPostDepthCoverage, cconservativeRasterizationPostDepthCoverage_allocs = (C.VkBool32)(x.ConservativeRasterizationPostDepthCoverage), cgoAllocsUnknown - allocs878f819c.Borrow(cconservativeRasterizationPostDepthCoverage_allocs) + var ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs *cgoAllocMap + refa8810910.transformFeedbackPreservesTriangleFanProvokingVertex, ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs = (C.VkBool32)(x.TransformFeedbackPreservesTriangleFanProvokingVertex), cgoAllocsUnknown + allocsa8810910.Borrow(ctransformFeedbackPreservesTriangleFanProvokingVertex_allocs) - x.ref878f819c = ref878f819c - x.allocs878f819c = allocs878f819c - return ref878f819c, allocs878f819c + x.refa8810910 = refa8810910 + x.allocsa8810910 = allocsa8810910 + return refa8810910, allocsa8810910 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceConservativeRasterizationProperties) PassValue() (C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT, *cgoAllocMap) { - if x.ref878f819c != nil { - return *x.ref878f819c, nil +func (x PhysicalDeviceProvokingVertexProperties) PassValue() (C.VkPhysicalDeviceProvokingVertexPropertiesEXT, *cgoAllocMap) { + if x.refa8810910 != nil { + return *x.refa8810910, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30879,106 +57482,91 @@ func (x PhysicalDeviceConservativeRasterizationProperties) PassValue() (C.VkPhys // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceConservativeRasterizationProperties) Deref() { - if x.ref878f819c == nil { +func (x *PhysicalDeviceProvokingVertexProperties) Deref() { + if x.refa8810910 == nil { return } - x.SType = (StructureType)(x.ref878f819c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref878f819c.pNext)) - x.PrimitiveOverestimationSize = (float32)(x.ref878f819c.primitiveOverestimationSize) - x.MaxExtraPrimitiveOverestimationSize = (float32)(x.ref878f819c.maxExtraPrimitiveOverestimationSize) - x.ExtraPrimitiveOverestimationSizeGranularity = (float32)(x.ref878f819c.extraPrimitiveOverestimationSizeGranularity) - x.PrimitiveUnderestimation = (Bool32)(x.ref878f819c.primitiveUnderestimation) - x.ConservativePointAndLineRasterization = (Bool32)(x.ref878f819c.conservativePointAndLineRasterization) - x.DegenerateTrianglesRasterized = (Bool32)(x.ref878f819c.degenerateTrianglesRasterized) - x.DegenerateLinesRasterized = (Bool32)(x.ref878f819c.degenerateLinesRasterized) - x.FullyCoveredFragmentShaderInputVariable = (Bool32)(x.ref878f819c.fullyCoveredFragmentShaderInputVariable) - x.ConservativeRasterizationPostDepthCoverage = (Bool32)(x.ref878f819c.conservativeRasterizationPostDepthCoverage) + x.SType = (StructureType)(x.refa8810910.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa8810910.pNext)) + x.ProvokingVertexModePerPipeline = (Bool32)(x.refa8810910.provokingVertexModePerPipeline) + x.TransformFeedbackPreservesTriangleFanProvokingVertex = (Bool32)(x.refa8810910.transformFeedbackPreservesTriangleFanProvokingVertex) } -// allocPipelineRasterizationConservativeStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationConservativeStateCreateInfoEXT in C. +// allocPipelineRasterizationProvokingVertexStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineRasterizationConservativeStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationConservativeStateCreateInfoValue)) +func allocPipelineRasterizationProvokingVertexStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationProvokingVertexStateCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineRasterizationConservativeStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationConservativeStateCreateInfoEXT{}) +const sizeOfPipelineRasterizationProvokingVertexStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRasterizationConservativeStateCreateInfo) Ref() *C.VkPipelineRasterizationConservativeStateCreateInfoEXT { +func (x *PipelineRasterizationProvokingVertexStateCreateInfo) Ref() *C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { if x == nil { return nil } - return x.refe3cd0046 + return x.ref367b4d68 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineRasterizationConservativeStateCreateInfo) Free() { - if x != nil && x.allocse3cd0046 != nil { - x.allocse3cd0046.(*cgoAllocMap).Free() - x.refe3cd0046 = nil +func (x *PipelineRasterizationProvokingVertexStateCreateInfo) Free() { + if x != nil && x.allocs367b4d68 != nil { + x.allocs367b4d68.(*cgoAllocMap).Free() + x.ref367b4d68 = nil } } -// NewPipelineRasterizationConservativeStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineRasterizationProvokingVertexStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineRasterizationConservativeStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationConservativeStateCreateInfo { +func NewPipelineRasterizationProvokingVertexStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationProvokingVertexStateCreateInfo { if ref == nil { return nil } - obj := new(PipelineRasterizationConservativeStateCreateInfo) - obj.refe3cd0046 = (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(PipelineRasterizationProvokingVertexStateCreateInfo) + obj.ref367b4d68 = (*C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineRasterizationConservativeStateCreateInfo) PassRef() (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { +func (x *PipelineRasterizationProvokingVertexStateCreateInfo) PassRef() (*C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe3cd0046 != nil { - return x.refe3cd0046, nil + } else if x.ref367b4d68 != nil { + return x.ref367b4d68, nil } - meme3cd0046 := allocPipelineRasterizationConservativeStateCreateInfoMemory(1) - refe3cd0046 := (*C.VkPipelineRasterizationConservativeStateCreateInfoEXT)(meme3cd0046) - allocse3cd0046 := new(cgoAllocMap) - allocse3cd0046.Add(meme3cd0046) + mem367b4d68 := allocPipelineRasterizationProvokingVertexStateCreateInfoMemory(1) + ref367b4d68 := (*C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT)(mem367b4d68) + allocs367b4d68 := new(cgoAllocMap) + allocs367b4d68.Add(mem367b4d68) var csType_allocs *cgoAllocMap - refe3cd0046.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocse3cd0046.Borrow(csType_allocs) + ref367b4d68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs367b4d68.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refe3cd0046.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocse3cd0046.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refe3cd0046.flags, cflags_allocs = (C.VkPipelineRasterizationConservativeStateCreateFlagsEXT)(x.Flags), cgoAllocsUnknown - allocse3cd0046.Borrow(cflags_allocs) - - var cconservativeRasterizationMode_allocs *cgoAllocMap - refe3cd0046.conservativeRasterizationMode, cconservativeRasterizationMode_allocs = (C.VkConservativeRasterizationModeEXT)(x.ConservativeRasterizationMode), cgoAllocsUnknown - allocse3cd0046.Borrow(cconservativeRasterizationMode_allocs) + ref367b4d68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs367b4d68.Borrow(cpNext_allocs) - var cextraPrimitiveOverestimationSize_allocs *cgoAllocMap - refe3cd0046.extraPrimitiveOverestimationSize, cextraPrimitiveOverestimationSize_allocs = (C.float)(x.ExtraPrimitiveOverestimationSize), cgoAllocsUnknown - allocse3cd0046.Borrow(cextraPrimitiveOverestimationSize_allocs) + var cprovokingVertexMode_allocs *cgoAllocMap + ref367b4d68.provokingVertexMode, cprovokingVertexMode_allocs = (C.VkProvokingVertexModeEXT)(x.ProvokingVertexMode), cgoAllocsUnknown + allocs367b4d68.Borrow(cprovokingVertexMode_allocs) - x.refe3cd0046 = refe3cd0046 - x.allocse3cd0046 = allocse3cd0046 - return refe3cd0046, allocse3cd0046 + x.ref367b4d68 = ref367b4d68 + x.allocs367b4d68 = allocs367b4d68 + return ref367b4d68, allocs367b4d68 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineRasterizationConservativeStateCreateInfo) PassValue() (C.VkPipelineRasterizationConservativeStateCreateInfoEXT, *cgoAllocMap) { - if x.refe3cd0046 != nil { - return *x.refe3cd0046, nil +func (x PipelineRasterizationProvokingVertexStateCreateInfo) PassValue() (C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, *cgoAllocMap) { + if x.ref367b4d68 != nil { + return *x.ref367b4d68, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -30986,88 +57574,90 @@ func (x PipelineRasterizationConservativeStateCreateInfo) PassValue() (C.VkPipel // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineRasterizationConservativeStateCreateInfo) Deref() { - if x.refe3cd0046 == nil { +func (x *PipelineRasterizationProvokingVertexStateCreateInfo) Deref() { + if x.ref367b4d68 == nil { return } - x.SType = (StructureType)(x.refe3cd0046.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe3cd0046.pNext)) - x.Flags = (PipelineRasterizationConservativeStateCreateFlags)(x.refe3cd0046.flags) - x.ConservativeRasterizationMode = (ConservativeRasterizationMode)(x.refe3cd0046.conservativeRasterizationMode) - x.ExtraPrimitiveOverestimationSize = (float32)(x.refe3cd0046.extraPrimitiveOverestimationSize) + x.SType = (StructureType)(x.ref367b4d68.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref367b4d68.pNext)) + x.ProvokingVertexMode = (ProvokingVertexMode)(x.ref367b4d68.provokingVertexMode) } -// allocXYColorMemory allocates memory for type C.VkXYColorEXT in C. +// allocHeadlessSurfaceCreateInfoMemory allocates memory for type C.VkHeadlessSurfaceCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocXYColorMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfXYColorValue)) +func allocHeadlessSurfaceCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfHeadlessSurfaceCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfXYColorValue = unsafe.Sizeof([1]C.VkXYColorEXT{}) +const sizeOfHeadlessSurfaceCreateInfoValue = unsafe.Sizeof([1]C.VkHeadlessSurfaceCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *XYColor) Ref() *C.VkXYColorEXT { +func (x *HeadlessSurfaceCreateInfo) Ref() *C.VkHeadlessSurfaceCreateInfoEXT { if x == nil { return nil } - return x.refb8efaa5c + return x.refed88b258 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *XYColor) Free() { - if x != nil && x.allocsb8efaa5c != nil { - x.allocsb8efaa5c.(*cgoAllocMap).Free() - x.refb8efaa5c = nil +func (x *HeadlessSurfaceCreateInfo) Free() { + if x != nil && x.allocsed88b258 != nil { + x.allocsed88b258.(*cgoAllocMap).Free() + x.refed88b258 = nil } } -// NewXYColorRef creates a new wrapper struct with underlying reference set to the original C object. +// NewHeadlessSurfaceCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewXYColorRef(ref unsafe.Pointer) *XYColor { +func NewHeadlessSurfaceCreateInfoRef(ref unsafe.Pointer) *HeadlessSurfaceCreateInfo { if ref == nil { return nil } - obj := new(XYColor) - obj.refb8efaa5c = (*C.VkXYColorEXT)(unsafe.Pointer(ref)) + obj := new(HeadlessSurfaceCreateInfo) + obj.refed88b258 = (*C.VkHeadlessSurfaceCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *XYColor) PassRef() (*C.VkXYColorEXT, *cgoAllocMap) { +func (x *HeadlessSurfaceCreateInfo) PassRef() (*C.VkHeadlessSurfaceCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb8efaa5c != nil { - return x.refb8efaa5c, nil + } else if x.refed88b258 != nil { + return x.refed88b258, nil } - memb8efaa5c := allocXYColorMemory(1) - refb8efaa5c := (*C.VkXYColorEXT)(memb8efaa5c) - allocsb8efaa5c := new(cgoAllocMap) - allocsb8efaa5c.Add(memb8efaa5c) + memed88b258 := allocHeadlessSurfaceCreateInfoMemory(1) + refed88b258 := (*C.VkHeadlessSurfaceCreateInfoEXT)(memed88b258) + allocsed88b258 := new(cgoAllocMap) + allocsed88b258.Add(memed88b258) - var cx_allocs *cgoAllocMap - refb8efaa5c.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown - allocsb8efaa5c.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + refed88b258.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsed88b258.Borrow(csType_allocs) - var cy_allocs *cgoAllocMap - refb8efaa5c.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown - allocsb8efaa5c.Borrow(cy_allocs) + var cpNext_allocs *cgoAllocMap + refed88b258.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsed88b258.Borrow(cpNext_allocs) - x.refb8efaa5c = refb8efaa5c - x.allocsb8efaa5c = allocsb8efaa5c - return refb8efaa5c, allocsb8efaa5c + var cflags_allocs *cgoAllocMap + refed88b258.flags, cflags_allocs = (C.VkHeadlessSurfaceCreateFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsed88b258.Borrow(cflags_allocs) + + x.refed88b258 = refed88b258 + x.allocsed88b258 = allocsed88b258 + return refed88b258, allocsed88b258 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x XYColor) PassValue() (C.VkXYColorEXT, *cgoAllocMap) { - if x.refb8efaa5c != nil { - return *x.refb8efaa5c, nil +func (x HeadlessSurfaceCreateInfo) PassValue() (C.VkHeadlessSurfaceCreateInfoEXT, *cgoAllocMap) { + if x.refed88b258 != nil { + return *x.refed88b258, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31075,117 +57665,110 @@ func (x XYColor) PassValue() (C.VkXYColorEXT, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *XYColor) Deref() { - if x.refb8efaa5c == nil { +func (x *HeadlessSurfaceCreateInfo) Deref() { + if x.refed88b258 == nil { return } - x.X = (float32)(x.refb8efaa5c.x) - x.Y = (float32)(x.refb8efaa5c.y) + x.SType = (StructureType)(x.refed88b258.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refed88b258.pNext)) + x.Flags = (HeadlessSurfaceCreateFlags)(x.refed88b258.flags) } -// allocHdrMetadataMemory allocates memory for type C.VkHdrMetadataEXT in C. +// allocPhysicalDeviceLineRasterizationFeaturesMemory allocates memory for type C.VkPhysicalDeviceLineRasterizationFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocHdrMetadataMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfHdrMetadataValue)) +func allocPhysicalDeviceLineRasterizationFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLineRasterizationFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfHdrMetadataValue = unsafe.Sizeof([1]C.VkHdrMetadataEXT{}) +const sizeOfPhysicalDeviceLineRasterizationFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLineRasterizationFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *HdrMetadata) Ref() *C.VkHdrMetadataEXT { +func (x *PhysicalDeviceLineRasterizationFeatures) Ref() *C.VkPhysicalDeviceLineRasterizationFeaturesEXT { if x == nil { return nil } - return x.ref5fd28976 + return x.refdb9049a7 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *HdrMetadata) Free() { - if x != nil && x.allocs5fd28976 != nil { - x.allocs5fd28976.(*cgoAllocMap).Free() - x.ref5fd28976 = nil +func (x *PhysicalDeviceLineRasterizationFeatures) Free() { + if x != nil && x.allocsdb9049a7 != nil { + x.allocsdb9049a7.(*cgoAllocMap).Free() + x.refdb9049a7 = nil } } -// NewHdrMetadataRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceLineRasterizationFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewHdrMetadataRef(ref unsafe.Pointer) *HdrMetadata { +func NewPhysicalDeviceLineRasterizationFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceLineRasterizationFeatures { if ref == nil { return nil } - obj := new(HdrMetadata) - obj.ref5fd28976 = (*C.VkHdrMetadataEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceLineRasterizationFeatures) + obj.refdb9049a7 = (*C.VkPhysicalDeviceLineRasterizationFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *HdrMetadata) PassRef() (*C.VkHdrMetadataEXT, *cgoAllocMap) { +func (x *PhysicalDeviceLineRasterizationFeatures) PassRef() (*C.VkPhysicalDeviceLineRasterizationFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5fd28976 != nil { - return x.ref5fd28976, nil + } else if x.refdb9049a7 != nil { + return x.refdb9049a7, nil } - mem5fd28976 := allocHdrMetadataMemory(1) - ref5fd28976 := (*C.VkHdrMetadataEXT)(mem5fd28976) - allocs5fd28976 := new(cgoAllocMap) - allocs5fd28976.Add(mem5fd28976) + memdb9049a7 := allocPhysicalDeviceLineRasterizationFeaturesMemory(1) + refdb9049a7 := (*C.VkPhysicalDeviceLineRasterizationFeaturesEXT)(memdb9049a7) + allocsdb9049a7 := new(cgoAllocMap) + allocsdb9049a7.Add(memdb9049a7) var csType_allocs *cgoAllocMap - ref5fd28976.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5fd28976.Borrow(csType_allocs) + refdb9049a7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsdb9049a7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5fd28976.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5fd28976.Borrow(cpNext_allocs) - - var cdisplayPrimaryRed_allocs *cgoAllocMap - ref5fd28976.displayPrimaryRed, cdisplayPrimaryRed_allocs = x.DisplayPrimaryRed.PassValue() - allocs5fd28976.Borrow(cdisplayPrimaryRed_allocs) - - var cdisplayPrimaryGreen_allocs *cgoAllocMap - ref5fd28976.displayPrimaryGreen, cdisplayPrimaryGreen_allocs = x.DisplayPrimaryGreen.PassValue() - allocs5fd28976.Borrow(cdisplayPrimaryGreen_allocs) + refdb9049a7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsdb9049a7.Borrow(cpNext_allocs) - var cdisplayPrimaryBlue_allocs *cgoAllocMap - ref5fd28976.displayPrimaryBlue, cdisplayPrimaryBlue_allocs = x.DisplayPrimaryBlue.PassValue() - allocs5fd28976.Borrow(cdisplayPrimaryBlue_allocs) + var crectangularLines_allocs *cgoAllocMap + refdb9049a7.rectangularLines, crectangularLines_allocs = (C.VkBool32)(x.RectangularLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(crectangularLines_allocs) - var cwhitePoint_allocs *cgoAllocMap - ref5fd28976.whitePoint, cwhitePoint_allocs = x.WhitePoint.PassValue() - allocs5fd28976.Borrow(cwhitePoint_allocs) + var cbresenhamLines_allocs *cgoAllocMap + refdb9049a7.bresenhamLines, cbresenhamLines_allocs = (C.VkBool32)(x.BresenhamLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cbresenhamLines_allocs) - var cmaxLuminance_allocs *cgoAllocMap - ref5fd28976.maxLuminance, cmaxLuminance_allocs = (C.float)(x.MaxLuminance), cgoAllocsUnknown - allocs5fd28976.Borrow(cmaxLuminance_allocs) + var csmoothLines_allocs *cgoAllocMap + refdb9049a7.smoothLines, csmoothLines_allocs = (C.VkBool32)(x.SmoothLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(csmoothLines_allocs) - var cminLuminance_allocs *cgoAllocMap - ref5fd28976.minLuminance, cminLuminance_allocs = (C.float)(x.MinLuminance), cgoAllocsUnknown - allocs5fd28976.Borrow(cminLuminance_allocs) + var cstippledRectangularLines_allocs *cgoAllocMap + refdb9049a7.stippledRectangularLines, cstippledRectangularLines_allocs = (C.VkBool32)(x.StippledRectangularLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cstippledRectangularLines_allocs) - var cmaxContentLightLevel_allocs *cgoAllocMap - ref5fd28976.maxContentLightLevel, cmaxContentLightLevel_allocs = (C.float)(x.MaxContentLightLevel), cgoAllocsUnknown - allocs5fd28976.Borrow(cmaxContentLightLevel_allocs) + var cstippledBresenhamLines_allocs *cgoAllocMap + refdb9049a7.stippledBresenhamLines, cstippledBresenhamLines_allocs = (C.VkBool32)(x.StippledBresenhamLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cstippledBresenhamLines_allocs) - var cmaxFrameAverageLightLevel_allocs *cgoAllocMap - ref5fd28976.maxFrameAverageLightLevel, cmaxFrameAverageLightLevel_allocs = (C.float)(x.MaxFrameAverageLightLevel), cgoAllocsUnknown - allocs5fd28976.Borrow(cmaxFrameAverageLightLevel_allocs) + var cstippledSmoothLines_allocs *cgoAllocMap + refdb9049a7.stippledSmoothLines, cstippledSmoothLines_allocs = (C.VkBool32)(x.StippledSmoothLines), cgoAllocsUnknown + allocsdb9049a7.Borrow(cstippledSmoothLines_allocs) - x.ref5fd28976 = ref5fd28976 - x.allocs5fd28976 = allocs5fd28976 - return ref5fd28976, allocs5fd28976 + x.refdb9049a7 = refdb9049a7 + x.allocsdb9049a7 = allocsdb9049a7 + return refdb9049a7, allocsdb9049a7 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x HdrMetadata) PassValue() (C.VkHdrMetadataEXT, *cgoAllocMap) { - if x.ref5fd28976 != nil { - return *x.ref5fd28976, nil +func (x PhysicalDeviceLineRasterizationFeatures) PassValue() (C.VkPhysicalDeviceLineRasterizationFeaturesEXT, *cgoAllocMap) { + if x.refdb9049a7 != nil { + return *x.refdb9049a7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31193,105 +57776,95 @@ func (x HdrMetadata) PassValue() (C.VkHdrMetadataEXT, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *HdrMetadata) Deref() { - if x.ref5fd28976 == nil { +func (x *PhysicalDeviceLineRasterizationFeatures) Deref() { + if x.refdb9049a7 == nil { return } - x.SType = (StructureType)(x.ref5fd28976.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5fd28976.pNext)) - x.DisplayPrimaryRed = *NewXYColorRef(unsafe.Pointer(&x.ref5fd28976.displayPrimaryRed)) - x.DisplayPrimaryGreen = *NewXYColorRef(unsafe.Pointer(&x.ref5fd28976.displayPrimaryGreen)) - x.DisplayPrimaryBlue = *NewXYColorRef(unsafe.Pointer(&x.ref5fd28976.displayPrimaryBlue)) - x.WhitePoint = *NewXYColorRef(unsafe.Pointer(&x.ref5fd28976.whitePoint)) - x.MaxLuminance = (float32)(x.ref5fd28976.maxLuminance) - x.MinLuminance = (float32)(x.ref5fd28976.minLuminance) - x.MaxContentLightLevel = (float32)(x.ref5fd28976.maxContentLightLevel) - x.MaxFrameAverageLightLevel = (float32)(x.ref5fd28976.maxFrameAverageLightLevel) + x.SType = (StructureType)(x.refdb9049a7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdb9049a7.pNext)) + x.RectangularLines = (Bool32)(x.refdb9049a7.rectangularLines) + x.BresenhamLines = (Bool32)(x.refdb9049a7.bresenhamLines) + x.SmoothLines = (Bool32)(x.refdb9049a7.smoothLines) + x.StippledRectangularLines = (Bool32)(x.refdb9049a7.stippledRectangularLines) + x.StippledBresenhamLines = (Bool32)(x.refdb9049a7.stippledBresenhamLines) + x.StippledSmoothLines = (Bool32)(x.refdb9049a7.stippledSmoothLines) } -// allocDebugUtilsObjectNameInfoMemory allocates memory for type C.VkDebugUtilsObjectNameInfoEXT in C. +// allocPhysicalDeviceLineRasterizationPropertiesMemory allocates memory for type C.VkPhysicalDeviceLineRasterizationPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDebugUtilsObjectNameInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugUtilsObjectNameInfoValue)) +func allocPhysicalDeviceLineRasterizationPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceLineRasterizationPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDebugUtilsObjectNameInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectNameInfoEXT{}) +const sizeOfPhysicalDeviceLineRasterizationPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceLineRasterizationPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugUtilsObjectNameInfo) Ref() *C.VkDebugUtilsObjectNameInfoEXT { +func (x *PhysicalDeviceLineRasterizationProperties) Ref() *C.VkPhysicalDeviceLineRasterizationPropertiesEXT { if x == nil { return nil } - return x.ref5e73c2db + return x.refe2369446 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DebugUtilsObjectNameInfo) Free() { - if x != nil && x.allocs5e73c2db != nil { - x.allocs5e73c2db.(*cgoAllocMap).Free() - x.ref5e73c2db = nil +func (x *PhysicalDeviceLineRasterizationProperties) Free() { + if x != nil && x.allocse2369446 != nil { + x.allocse2369446.(*cgoAllocMap).Free() + x.refe2369446 = nil } } -// NewDebugUtilsObjectNameInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceLineRasterizationPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDebugUtilsObjectNameInfoRef(ref unsafe.Pointer) *DebugUtilsObjectNameInfo { +func NewPhysicalDeviceLineRasterizationPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceLineRasterizationProperties { if ref == nil { return nil } - obj := new(DebugUtilsObjectNameInfo) - obj.ref5e73c2db = (*C.VkDebugUtilsObjectNameInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceLineRasterizationProperties) + obj.refe2369446 = (*C.VkPhysicalDeviceLineRasterizationPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DebugUtilsObjectNameInfo) PassRef() (*C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceLineRasterizationProperties) PassRef() (*C.VkPhysicalDeviceLineRasterizationPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5e73c2db != nil { - return x.ref5e73c2db, nil + } else if x.refe2369446 != nil { + return x.refe2369446, nil } - mem5e73c2db := allocDebugUtilsObjectNameInfoMemory(1) - ref5e73c2db := (*C.VkDebugUtilsObjectNameInfoEXT)(mem5e73c2db) - allocs5e73c2db := new(cgoAllocMap) - allocs5e73c2db.Add(mem5e73c2db) + meme2369446 := allocPhysicalDeviceLineRasterizationPropertiesMemory(1) + refe2369446 := (*C.VkPhysicalDeviceLineRasterizationPropertiesEXT)(meme2369446) + allocse2369446 := new(cgoAllocMap) + allocse2369446.Add(meme2369446) var csType_allocs *cgoAllocMap - ref5e73c2db.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5e73c2db.Borrow(csType_allocs) + refe2369446.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse2369446.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5e73c2db.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5e73c2db.Borrow(cpNext_allocs) - - var cobjectType_allocs *cgoAllocMap - ref5e73c2db.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown - allocs5e73c2db.Borrow(cobjectType_allocs) - - var cobjectHandle_allocs *cgoAllocMap - ref5e73c2db.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown - allocs5e73c2db.Borrow(cobjectHandle_allocs) + refe2369446.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse2369446.Borrow(cpNext_allocs) - var cpObjectName_allocs *cgoAllocMap - ref5e73c2db.pObjectName, cpObjectName_allocs = unpackPCharString(x.PObjectName) - allocs5e73c2db.Borrow(cpObjectName_allocs) + var clineSubPixelPrecisionBits_allocs *cgoAllocMap + refe2369446.lineSubPixelPrecisionBits, clineSubPixelPrecisionBits_allocs = (C.uint32_t)(x.LineSubPixelPrecisionBits), cgoAllocsUnknown + allocse2369446.Borrow(clineSubPixelPrecisionBits_allocs) - x.ref5e73c2db = ref5e73c2db - x.allocs5e73c2db = allocs5e73c2db - return ref5e73c2db, allocs5e73c2db + x.refe2369446 = refe2369446 + x.allocse2369446 = allocse2369446 + return refe2369446, allocse2369446 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DebugUtilsObjectNameInfo) PassValue() (C.VkDebugUtilsObjectNameInfoEXT, *cgoAllocMap) { - if x.ref5e73c2db != nil { - return *x.ref5e73c2db, nil +func (x PhysicalDeviceLineRasterizationProperties) PassValue() (C.VkPhysicalDeviceLineRasterizationPropertiesEXT, *cgoAllocMap) { + if x.refe2369446 != nil { + return *x.refe2369446, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31299,108 +57872,102 @@ func (x DebugUtilsObjectNameInfo) PassValue() (C.VkDebugUtilsObjectNameInfoEXT, // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DebugUtilsObjectNameInfo) Deref() { - if x.ref5e73c2db == nil { +func (x *PhysicalDeviceLineRasterizationProperties) Deref() { + if x.refe2369446 == nil { return } - x.SType = (StructureType)(x.ref5e73c2db.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5e73c2db.pNext)) - x.ObjectType = (ObjectType)(x.ref5e73c2db.objectType) - x.ObjectHandle = (uint64)(x.ref5e73c2db.objectHandle) - x.PObjectName = packPCharString(x.ref5e73c2db.pObjectName) + x.SType = (StructureType)(x.refe2369446.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe2369446.pNext)) + x.LineSubPixelPrecisionBits = (uint32)(x.refe2369446.lineSubPixelPrecisionBits) } -// allocDebugUtilsObjectTagInfoMemory allocates memory for type C.VkDebugUtilsObjectTagInfoEXT in C. +// allocPipelineRasterizationLineStateCreateInfoMemory allocates memory for type C.VkPipelineRasterizationLineStateCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDebugUtilsObjectTagInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugUtilsObjectTagInfoValue)) +func allocPipelineRasterizationLineStateCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRasterizationLineStateCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDebugUtilsObjectTagInfoValue = unsafe.Sizeof([1]C.VkDebugUtilsObjectTagInfoEXT{}) +const sizeOfPipelineRasterizationLineStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineRasterizationLineStateCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugUtilsObjectTagInfo) Ref() *C.VkDebugUtilsObjectTagInfoEXT { +func (x *PipelineRasterizationLineStateCreateInfo) Ref() *C.VkPipelineRasterizationLineStateCreateInfoEXT { if x == nil { return nil } - return x.ref9fd129cf + return x.ref649f4226 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DebugUtilsObjectTagInfo) Free() { - if x != nil && x.allocs9fd129cf != nil { - x.allocs9fd129cf.(*cgoAllocMap).Free() - x.ref9fd129cf = nil +func (x *PipelineRasterizationLineStateCreateInfo) Free() { + if x != nil && x.allocs649f4226 != nil { + x.allocs649f4226.(*cgoAllocMap).Free() + x.ref649f4226 = nil } } -// NewDebugUtilsObjectTagInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineRasterizationLineStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDebugUtilsObjectTagInfoRef(ref unsafe.Pointer) *DebugUtilsObjectTagInfo { +func NewPipelineRasterizationLineStateCreateInfoRef(ref unsafe.Pointer) *PipelineRasterizationLineStateCreateInfo { if ref == nil { return nil } - obj := new(DebugUtilsObjectTagInfo) - obj.ref9fd129cf = (*C.VkDebugUtilsObjectTagInfoEXT)(unsafe.Pointer(ref)) + obj := new(PipelineRasterizationLineStateCreateInfo) + obj.ref649f4226 = (*C.VkPipelineRasterizationLineStateCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DebugUtilsObjectTagInfo) PassRef() (*C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { +func (x *PipelineRasterizationLineStateCreateInfo) PassRef() (*C.VkPipelineRasterizationLineStateCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9fd129cf != nil { - return x.ref9fd129cf, nil + } else if x.ref649f4226 != nil { + return x.ref649f4226, nil } - mem9fd129cf := allocDebugUtilsObjectTagInfoMemory(1) - ref9fd129cf := (*C.VkDebugUtilsObjectTagInfoEXT)(mem9fd129cf) - allocs9fd129cf := new(cgoAllocMap) - allocs9fd129cf.Add(mem9fd129cf) + mem649f4226 := allocPipelineRasterizationLineStateCreateInfoMemory(1) + ref649f4226 := (*C.VkPipelineRasterizationLineStateCreateInfoEXT)(mem649f4226) + allocs649f4226 := new(cgoAllocMap) + allocs649f4226.Add(mem649f4226) var csType_allocs *cgoAllocMap - ref9fd129cf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9fd129cf.Borrow(csType_allocs) + ref649f4226.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs649f4226.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9fd129cf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9fd129cf.Borrow(cpNext_allocs) + ref649f4226.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs649f4226.Borrow(cpNext_allocs) - var cobjectType_allocs *cgoAllocMap - ref9fd129cf.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown - allocs9fd129cf.Borrow(cobjectType_allocs) - - var cobjectHandle_allocs *cgoAllocMap - ref9fd129cf.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown - allocs9fd129cf.Borrow(cobjectHandle_allocs) + var clineRasterizationMode_allocs *cgoAllocMap + ref649f4226.lineRasterizationMode, clineRasterizationMode_allocs = (C.VkLineRasterizationModeEXT)(x.LineRasterizationMode), cgoAllocsUnknown + allocs649f4226.Borrow(clineRasterizationMode_allocs) - var ctagName_allocs *cgoAllocMap - ref9fd129cf.tagName, ctagName_allocs = (C.uint64_t)(x.TagName), cgoAllocsUnknown - allocs9fd129cf.Borrow(ctagName_allocs) + var cstippledLineEnable_allocs *cgoAllocMap + ref649f4226.stippledLineEnable, cstippledLineEnable_allocs = (C.VkBool32)(x.StippledLineEnable), cgoAllocsUnknown + allocs649f4226.Borrow(cstippledLineEnable_allocs) - var ctagSize_allocs *cgoAllocMap - ref9fd129cf.tagSize, ctagSize_allocs = (C.size_t)(x.TagSize), cgoAllocsUnknown - allocs9fd129cf.Borrow(ctagSize_allocs) + var clineStippleFactor_allocs *cgoAllocMap + ref649f4226.lineStippleFactor, clineStippleFactor_allocs = (C.uint32_t)(x.LineStippleFactor), cgoAllocsUnknown + allocs649f4226.Borrow(clineStippleFactor_allocs) - var cpTag_allocs *cgoAllocMap - ref9fd129cf.pTag, cpTag_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PTag)), cgoAllocsUnknown - allocs9fd129cf.Borrow(cpTag_allocs) + var clineStipplePattern_allocs *cgoAllocMap + ref649f4226.lineStipplePattern, clineStipplePattern_allocs = (C.uint16_t)(x.LineStipplePattern), cgoAllocsUnknown + allocs649f4226.Borrow(clineStipplePattern_allocs) - x.ref9fd129cf = ref9fd129cf - x.allocs9fd129cf = allocs9fd129cf - return ref9fd129cf, allocs9fd129cf + x.ref649f4226 = ref649f4226 + x.allocs649f4226 = allocs649f4226 + return ref649f4226, allocs649f4226 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DebugUtilsObjectTagInfo) PassValue() (C.VkDebugUtilsObjectTagInfoEXT, *cgoAllocMap) { - if x.ref9fd129cf != nil { - return *x.ref9fd129cf, nil +func (x PipelineRasterizationLineStateCreateInfo) PassValue() (C.VkPipelineRasterizationLineStateCreateInfoEXT, *cgoAllocMap) { + if x.ref649f4226 != nil { + return *x.ref649f4226, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31408,98 +57975,137 @@ func (x DebugUtilsObjectTagInfo) PassValue() (C.VkDebugUtilsObjectTagInfoEXT, *c // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DebugUtilsObjectTagInfo) Deref() { - if x.ref9fd129cf == nil { +func (x *PipelineRasterizationLineStateCreateInfo) Deref() { + if x.ref649f4226 == nil { return } - x.SType = (StructureType)(x.ref9fd129cf.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9fd129cf.pNext)) - x.ObjectType = (ObjectType)(x.ref9fd129cf.objectType) - x.ObjectHandle = (uint64)(x.ref9fd129cf.objectHandle) - x.TagName = (uint64)(x.ref9fd129cf.tagName) - x.TagSize = (uint)(x.ref9fd129cf.tagSize) - x.PTag = (unsafe.Pointer)(unsafe.Pointer(x.ref9fd129cf.pTag)) + x.SType = (StructureType)(x.ref649f4226.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref649f4226.pNext)) + x.LineRasterizationMode = (LineRasterizationMode)(x.ref649f4226.lineRasterizationMode) + x.StippledLineEnable = (Bool32)(x.ref649f4226.stippledLineEnable) + x.LineStippleFactor = (uint32)(x.ref649f4226.lineStippleFactor) + x.LineStipplePattern = (uint16)(x.ref649f4226.lineStipplePattern) } -// allocDebugUtilsLabelMemory allocates memory for type C.VkDebugUtilsLabelEXT in C. +// allocPhysicalDeviceShaderAtomicFloatFeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDebugUtilsLabelMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDebugUtilsLabelValue)) +func allocPhysicalDeviceShaderAtomicFloatFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderAtomicFloatFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDebugUtilsLabelValue = unsafe.Sizeof([1]C.VkDebugUtilsLabelEXT{}) +const sizeOfPhysicalDeviceShaderAtomicFloatFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DebugUtilsLabel) Ref() *C.VkDebugUtilsLabelEXT { +func (x *PhysicalDeviceShaderAtomicFloatFeatures) Ref() *C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { if x == nil { return nil } - return x.ref8faaf7b1 + return x.refb387c45b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DebugUtilsLabel) Free() { - if x != nil && x.allocs8faaf7b1 != nil { - x.allocs8faaf7b1.(*cgoAllocMap).Free() - x.ref8faaf7b1 = nil +func (x *PhysicalDeviceShaderAtomicFloatFeatures) Free() { + if x != nil && x.allocsb387c45b != nil { + x.allocsb387c45b.(*cgoAllocMap).Free() + x.refb387c45b = nil } } -// NewDebugUtilsLabelRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderAtomicFloatFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDebugUtilsLabelRef(ref unsafe.Pointer) *DebugUtilsLabel { +func NewPhysicalDeviceShaderAtomicFloatFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicFloatFeatures { if ref == nil { return nil } - obj := new(DebugUtilsLabel) - obj.ref8faaf7b1 = (*C.VkDebugUtilsLabelEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderAtomicFloatFeatures) + obj.refb387c45b = (*C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DebugUtilsLabel) PassRef() (*C.VkDebugUtilsLabelEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderAtomicFloatFeatures) PassRef() (*C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8faaf7b1 != nil { - return x.ref8faaf7b1, nil + } else if x.refb387c45b != nil { + return x.refb387c45b, nil } - mem8faaf7b1 := allocDebugUtilsLabelMemory(1) - ref8faaf7b1 := (*C.VkDebugUtilsLabelEXT)(mem8faaf7b1) - allocs8faaf7b1 := new(cgoAllocMap) - allocs8faaf7b1.Add(mem8faaf7b1) + memb387c45b := allocPhysicalDeviceShaderAtomicFloatFeaturesMemory(1) + refb387c45b := (*C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT)(memb387c45b) + allocsb387c45b := new(cgoAllocMap) + allocsb387c45b.Add(memb387c45b) var csType_allocs *cgoAllocMap - ref8faaf7b1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8faaf7b1.Borrow(csType_allocs) + refb387c45b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb387c45b.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8faaf7b1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8faaf7b1.Borrow(cpNext_allocs) + refb387c45b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb387c45b.Borrow(cpNext_allocs) - var cpLabelName_allocs *cgoAllocMap - ref8faaf7b1.pLabelName, cpLabelName_allocs = unpackPCharString(x.PLabelName) - allocs8faaf7b1.Borrow(cpLabelName_allocs) + var cshaderBufferFloat32Atomics_allocs *cgoAllocMap + refb387c45b.shaderBufferFloat32Atomics, cshaderBufferFloat32Atomics_allocs = (C.VkBool32)(x.ShaderBufferFloat32Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderBufferFloat32Atomics_allocs) - var ccolor_allocs *cgoAllocMap - ref8faaf7b1.color, ccolor_allocs = *(*[4]C.float)(unsafe.Pointer(&x.Color)), cgoAllocsUnknown - allocs8faaf7b1.Borrow(ccolor_allocs) + var cshaderBufferFloat32AtomicAdd_allocs *cgoAllocMap + refb387c45b.shaderBufferFloat32AtomicAdd, cshaderBufferFloat32AtomicAdd_allocs = (C.VkBool32)(x.ShaderBufferFloat32AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderBufferFloat32AtomicAdd_allocs) - x.ref8faaf7b1 = ref8faaf7b1 - x.allocs8faaf7b1 = allocs8faaf7b1 - return ref8faaf7b1, allocs8faaf7b1 + var cshaderBufferFloat64Atomics_allocs *cgoAllocMap + refb387c45b.shaderBufferFloat64Atomics, cshaderBufferFloat64Atomics_allocs = (C.VkBool32)(x.ShaderBufferFloat64Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderBufferFloat64Atomics_allocs) + + var cshaderBufferFloat64AtomicAdd_allocs *cgoAllocMap + refb387c45b.shaderBufferFloat64AtomicAdd, cshaderBufferFloat64AtomicAdd_allocs = (C.VkBool32)(x.ShaderBufferFloat64AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderBufferFloat64AtomicAdd_allocs) + + var cshaderSharedFloat32Atomics_allocs *cgoAllocMap + refb387c45b.shaderSharedFloat32Atomics, cshaderSharedFloat32Atomics_allocs = (C.VkBool32)(x.ShaderSharedFloat32Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderSharedFloat32Atomics_allocs) + + var cshaderSharedFloat32AtomicAdd_allocs *cgoAllocMap + refb387c45b.shaderSharedFloat32AtomicAdd, cshaderSharedFloat32AtomicAdd_allocs = (C.VkBool32)(x.ShaderSharedFloat32AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderSharedFloat32AtomicAdd_allocs) + + var cshaderSharedFloat64Atomics_allocs *cgoAllocMap + refb387c45b.shaderSharedFloat64Atomics, cshaderSharedFloat64Atomics_allocs = (C.VkBool32)(x.ShaderSharedFloat64Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderSharedFloat64Atomics_allocs) + + var cshaderSharedFloat64AtomicAdd_allocs *cgoAllocMap + refb387c45b.shaderSharedFloat64AtomicAdd, cshaderSharedFloat64AtomicAdd_allocs = (C.VkBool32)(x.ShaderSharedFloat64AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderSharedFloat64AtomicAdd_allocs) + + var cshaderImageFloat32Atomics_allocs *cgoAllocMap + refb387c45b.shaderImageFloat32Atomics, cshaderImageFloat32Atomics_allocs = (C.VkBool32)(x.ShaderImageFloat32Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderImageFloat32Atomics_allocs) + + var cshaderImageFloat32AtomicAdd_allocs *cgoAllocMap + refb387c45b.shaderImageFloat32AtomicAdd, cshaderImageFloat32AtomicAdd_allocs = (C.VkBool32)(x.ShaderImageFloat32AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(cshaderImageFloat32AtomicAdd_allocs) + + var csparseImageFloat32Atomics_allocs *cgoAllocMap + refb387c45b.sparseImageFloat32Atomics, csparseImageFloat32Atomics_allocs = (C.VkBool32)(x.SparseImageFloat32Atomics), cgoAllocsUnknown + allocsb387c45b.Borrow(csparseImageFloat32Atomics_allocs) + + var csparseImageFloat32AtomicAdd_allocs *cgoAllocMap + refb387c45b.sparseImageFloat32AtomicAdd, csparseImageFloat32AtomicAdd_allocs = (C.VkBool32)(x.SparseImageFloat32AtomicAdd), cgoAllocsUnknown + allocsb387c45b.Borrow(csparseImageFloat32AtomicAdd_allocs) + + x.refb387c45b = refb387c45b + x.allocsb387c45b = allocsb387c45b + return refb387c45b, allocsb387c45b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DebugUtilsLabel) PassValue() (C.VkDebugUtilsLabelEXT, *cgoAllocMap) { - if x.ref8faaf7b1 != nil { - return *x.ref8faaf7b1, nil +func (x PhysicalDeviceShaderAtomicFloatFeatures) PassValue() (C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, *cgoAllocMap) { + if x.refb387c45b != nil { + return *x.refb387c45b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31507,91 +58113,101 @@ func (x DebugUtilsLabel) PassValue() (C.VkDebugUtilsLabelEXT, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DebugUtilsLabel) Deref() { - if x.ref8faaf7b1 == nil { +func (x *PhysicalDeviceShaderAtomicFloatFeatures) Deref() { + if x.refb387c45b == nil { return } - x.SType = (StructureType)(x.ref8faaf7b1.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8faaf7b1.pNext)) - x.PLabelName = packPCharString(x.ref8faaf7b1.pLabelName) - x.Color = *(*[4]float32)(unsafe.Pointer(&x.ref8faaf7b1.color)) -} - -// allocSamplerReductionModeCreateInfoMemory allocates memory for type C.VkSamplerReductionModeCreateInfoEXT in C. + x.SType = (StructureType)(x.refb387c45b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb387c45b.pNext)) + x.ShaderBufferFloat32Atomics = (Bool32)(x.refb387c45b.shaderBufferFloat32Atomics) + x.ShaderBufferFloat32AtomicAdd = (Bool32)(x.refb387c45b.shaderBufferFloat32AtomicAdd) + x.ShaderBufferFloat64Atomics = (Bool32)(x.refb387c45b.shaderBufferFloat64Atomics) + x.ShaderBufferFloat64AtomicAdd = (Bool32)(x.refb387c45b.shaderBufferFloat64AtomicAdd) + x.ShaderSharedFloat32Atomics = (Bool32)(x.refb387c45b.shaderSharedFloat32Atomics) + x.ShaderSharedFloat32AtomicAdd = (Bool32)(x.refb387c45b.shaderSharedFloat32AtomicAdd) + x.ShaderSharedFloat64Atomics = (Bool32)(x.refb387c45b.shaderSharedFloat64Atomics) + x.ShaderSharedFloat64AtomicAdd = (Bool32)(x.refb387c45b.shaderSharedFloat64AtomicAdd) + x.ShaderImageFloat32Atomics = (Bool32)(x.refb387c45b.shaderImageFloat32Atomics) + x.ShaderImageFloat32AtomicAdd = (Bool32)(x.refb387c45b.shaderImageFloat32AtomicAdd) + x.SparseImageFloat32Atomics = (Bool32)(x.refb387c45b.sparseImageFloat32Atomics) + x.SparseImageFloat32AtomicAdd = (Bool32)(x.refb387c45b.sparseImageFloat32AtomicAdd) +} + +// allocPhysicalDeviceIndexTypeUint8FeaturesMemory allocates memory for type C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSamplerReductionModeCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerReductionModeCreateInfoValue)) +func allocPhysicalDeviceIndexTypeUint8FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceIndexTypeUint8FeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSamplerReductionModeCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerReductionModeCreateInfoEXT{}) +const sizeOfPhysicalDeviceIndexTypeUint8FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SamplerReductionModeCreateInfo) Ref() *C.VkSamplerReductionModeCreateInfoEXT { +func (x *PhysicalDeviceIndexTypeUint8Features) Ref() *C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT { if x == nil { return nil } - return x.reff1cfd4e3 + return x.refd29dc94 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SamplerReductionModeCreateInfo) Free() { - if x != nil && x.allocsf1cfd4e3 != nil { - x.allocsf1cfd4e3.(*cgoAllocMap).Free() - x.reff1cfd4e3 = nil +func (x *PhysicalDeviceIndexTypeUint8Features) Free() { + if x != nil && x.allocsd29dc94 != nil { + x.allocsd29dc94.(*cgoAllocMap).Free() + x.refd29dc94 = nil } } -// NewSamplerReductionModeCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceIndexTypeUint8FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSamplerReductionModeCreateInfoRef(ref unsafe.Pointer) *SamplerReductionModeCreateInfo { +func NewPhysicalDeviceIndexTypeUint8FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceIndexTypeUint8Features { if ref == nil { return nil } - obj := new(SamplerReductionModeCreateInfo) - obj.reff1cfd4e3 = (*C.VkSamplerReductionModeCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceIndexTypeUint8Features) + obj.refd29dc94 = (*C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SamplerReductionModeCreateInfo) PassRef() (*C.VkSamplerReductionModeCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceIndexTypeUint8Features) PassRef() (*C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff1cfd4e3 != nil { - return x.reff1cfd4e3, nil + } else if x.refd29dc94 != nil { + return x.refd29dc94, nil } - memf1cfd4e3 := allocSamplerReductionModeCreateInfoMemory(1) - reff1cfd4e3 := (*C.VkSamplerReductionModeCreateInfoEXT)(memf1cfd4e3) - allocsf1cfd4e3 := new(cgoAllocMap) - allocsf1cfd4e3.Add(memf1cfd4e3) + memd29dc94 := allocPhysicalDeviceIndexTypeUint8FeaturesMemory(1) + refd29dc94 := (*C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT)(memd29dc94) + allocsd29dc94 := new(cgoAllocMap) + allocsd29dc94.Add(memd29dc94) var csType_allocs *cgoAllocMap - reff1cfd4e3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf1cfd4e3.Borrow(csType_allocs) + refd29dc94.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd29dc94.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff1cfd4e3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf1cfd4e3.Borrow(cpNext_allocs) + refd29dc94.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd29dc94.Borrow(cpNext_allocs) - var creductionMode_allocs *cgoAllocMap - reff1cfd4e3.reductionMode, creductionMode_allocs = (C.VkSamplerReductionModeEXT)(x.ReductionMode), cgoAllocsUnknown - allocsf1cfd4e3.Borrow(creductionMode_allocs) + var cindexTypeUint8_allocs *cgoAllocMap + refd29dc94.indexTypeUint8, cindexTypeUint8_allocs = (C.VkBool32)(x.IndexTypeUint8), cgoAllocsUnknown + allocsd29dc94.Borrow(cindexTypeUint8_allocs) - x.reff1cfd4e3 = reff1cfd4e3 - x.allocsf1cfd4e3 = allocsf1cfd4e3 - return reff1cfd4e3, allocsf1cfd4e3 + x.refd29dc94 = refd29dc94 + x.allocsd29dc94 = allocsd29dc94 + return refd29dc94, allocsd29dc94 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SamplerReductionModeCreateInfo) PassValue() (C.VkSamplerReductionModeCreateInfoEXT, *cgoAllocMap) { - if x.reff1cfd4e3 != nil { - return *x.reff1cfd4e3, nil +func (x PhysicalDeviceIndexTypeUint8Features) PassValue() (C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT, *cgoAllocMap) { + if x.refd29dc94 != nil { + return *x.refd29dc94, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31599,94 +58215,90 @@ func (x SamplerReductionModeCreateInfo) PassValue() (C.VkSamplerReductionModeCre // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SamplerReductionModeCreateInfo) Deref() { - if x.reff1cfd4e3 == nil { +func (x *PhysicalDeviceIndexTypeUint8Features) Deref() { + if x.refd29dc94 == nil { return } - x.SType = (StructureType)(x.reff1cfd4e3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff1cfd4e3.pNext)) - x.ReductionMode = (SamplerReductionMode)(x.reff1cfd4e3.reductionMode) + x.SType = (StructureType)(x.refd29dc94.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd29dc94.pNext)) + x.IndexTypeUint8 = (Bool32)(x.refd29dc94.indexTypeUint8) } -// allocPhysicalDeviceSamplerFilterMinmaxPropertiesMemory allocates memory for type C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT in C. +// allocPhysicalDeviceExtendedDynamicStateFeaturesMemory allocates memory for type C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceSamplerFilterMinmaxPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSamplerFilterMinmaxPropertiesValue)) +func allocPhysicalDeviceExtendedDynamicStateFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExtendedDynamicStateFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceSamplerFilterMinmaxPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT{}) +const sizeOfPhysicalDeviceExtendedDynamicStateFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSamplerFilterMinmaxProperties) Ref() *C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { +func (x *PhysicalDeviceExtendedDynamicStateFeatures) Ref() *C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { if x == nil { return nil } - return x.refcc32d100 + return x.reff7bd87ab } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceSamplerFilterMinmaxProperties) Free() { - if x != nil && x.allocscc32d100 != nil { - x.allocscc32d100.(*cgoAllocMap).Free() - x.refcc32d100 = nil +func (x *PhysicalDeviceExtendedDynamicStateFeatures) Free() { + if x != nil && x.allocsf7bd87ab != nil { + x.allocsf7bd87ab.(*cgoAllocMap).Free() + x.reff7bd87ab = nil } } -// NewPhysicalDeviceSamplerFilterMinmaxPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceExtendedDynamicStateFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceSamplerFilterMinmaxPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSamplerFilterMinmaxProperties { +func NewPhysicalDeviceExtendedDynamicStateFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceExtendedDynamicStateFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceSamplerFilterMinmaxProperties) - obj.refcc32d100 = (*C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceExtendedDynamicStateFeatures) + obj.reff7bd87ab = (*C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceSamplerFilterMinmaxProperties) PassRef() (*C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceExtendedDynamicStateFeatures) PassRef() (*C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcc32d100 != nil { - return x.refcc32d100, nil + } else if x.reff7bd87ab != nil { + return x.reff7bd87ab, nil } - memcc32d100 := allocPhysicalDeviceSamplerFilterMinmaxPropertiesMemory(1) - refcc32d100 := (*C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT)(memcc32d100) - allocscc32d100 := new(cgoAllocMap) - allocscc32d100.Add(memcc32d100) + memf7bd87ab := allocPhysicalDeviceExtendedDynamicStateFeaturesMemory(1) + reff7bd87ab := (*C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT)(memf7bd87ab) + allocsf7bd87ab := new(cgoAllocMap) + allocsf7bd87ab.Add(memf7bd87ab) var csType_allocs *cgoAllocMap - refcc32d100.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscc32d100.Borrow(csType_allocs) + reff7bd87ab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf7bd87ab.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcc32d100.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscc32d100.Borrow(cpNext_allocs) - - var cfilterMinmaxSingleComponentFormats_allocs *cgoAllocMap - refcc32d100.filterMinmaxSingleComponentFormats, cfilterMinmaxSingleComponentFormats_allocs = (C.VkBool32)(x.FilterMinmaxSingleComponentFormats), cgoAllocsUnknown - allocscc32d100.Borrow(cfilterMinmaxSingleComponentFormats_allocs) + reff7bd87ab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf7bd87ab.Borrow(cpNext_allocs) - var cfilterMinmaxImageComponentMapping_allocs *cgoAllocMap - refcc32d100.filterMinmaxImageComponentMapping, cfilterMinmaxImageComponentMapping_allocs = (C.VkBool32)(x.FilterMinmaxImageComponentMapping), cgoAllocsUnknown - allocscc32d100.Borrow(cfilterMinmaxImageComponentMapping_allocs) + var cextendedDynamicState_allocs *cgoAllocMap + reff7bd87ab.extendedDynamicState, cextendedDynamicState_allocs = (C.VkBool32)(x.ExtendedDynamicState), cgoAllocsUnknown + allocsf7bd87ab.Borrow(cextendedDynamicState_allocs) - x.refcc32d100 = refcc32d100 - x.allocscc32d100 = allocscc32d100 - return refcc32d100, allocscc32d100 + x.reff7bd87ab = reff7bd87ab + x.allocsf7bd87ab = allocsf7bd87ab + return reff7bd87ab, allocsf7bd87ab } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceSamplerFilterMinmaxProperties) PassValue() (C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, *cgoAllocMap) { - if x.refcc32d100 != nil { - return *x.refcc32d100, nil +func (x PhysicalDeviceExtendedDynamicStateFeatures) PassValue() (C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, *cgoAllocMap) { + if x.reff7bd87ab != nil { + return *x.reff7bd87ab, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31694,95 +58306,134 @@ func (x PhysicalDeviceSamplerFilterMinmaxProperties) PassValue() (C.VkPhysicalDe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceSamplerFilterMinmaxProperties) Deref() { - if x.refcc32d100 == nil { +func (x *PhysicalDeviceExtendedDynamicStateFeatures) Deref() { + if x.reff7bd87ab == nil { return } - x.SType = (StructureType)(x.refcc32d100.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcc32d100.pNext)) - x.FilterMinmaxSingleComponentFormats = (Bool32)(x.refcc32d100.filterMinmaxSingleComponentFormats) - x.FilterMinmaxImageComponentMapping = (Bool32)(x.refcc32d100.filterMinmaxImageComponentMapping) + x.SType = (StructureType)(x.reff7bd87ab.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff7bd87ab.pNext)) + x.ExtendedDynamicState = (Bool32)(x.reff7bd87ab.extendedDynamicState) } -// allocPhysicalDeviceInlineUniformBlockFeaturesMemory allocates memory for type C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT in C. +// allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory allocates memory for type C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceInlineUniformBlockFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInlineUniformBlockFeaturesValue)) +func allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderAtomicFloat2FeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceInlineUniformBlockFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT{}) +const sizeOfPhysicalDeviceShaderAtomicFloat2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceInlineUniformBlockFeatures) Ref() *C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT { +func (x *PhysicalDeviceShaderAtomicFloat2Features) Ref() *C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { if x == nil { return nil } - return x.ref5054bc6c + return x.reff53782 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceInlineUniformBlockFeatures) Free() { - if x != nil && x.allocs5054bc6c != nil { - x.allocs5054bc6c.(*cgoAllocMap).Free() - x.ref5054bc6c = nil +func (x *PhysicalDeviceShaderAtomicFloat2Features) Free() { + if x != nil && x.allocsf53782 != nil { + x.allocsf53782.(*cgoAllocMap).Free() + x.reff53782 = nil } } -// NewPhysicalDeviceInlineUniformBlockFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderAtomicFloat2FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceInlineUniformBlockFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceInlineUniformBlockFeatures { +func NewPhysicalDeviceShaderAtomicFloat2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceShaderAtomicFloat2Features { if ref == nil { return nil } - obj := new(PhysicalDeviceInlineUniformBlockFeatures) - obj.ref5054bc6c = (*C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderAtomicFloat2Features) + obj.reff53782 = (*C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceInlineUniformBlockFeatures) PassRef() (*C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderAtomicFloat2Features) PassRef() (*C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5054bc6c != nil { - return x.ref5054bc6c, nil + } else if x.reff53782 != nil { + return x.reff53782, nil } - mem5054bc6c := allocPhysicalDeviceInlineUniformBlockFeaturesMemory(1) - ref5054bc6c := (*C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT)(mem5054bc6c) - allocs5054bc6c := new(cgoAllocMap) - allocs5054bc6c.Add(mem5054bc6c) + memf53782 := allocPhysicalDeviceShaderAtomicFloat2FeaturesMemory(1) + reff53782 := (*C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT)(memf53782) + allocsf53782 := new(cgoAllocMap) + allocsf53782.Add(memf53782) + + var csType_allocs *cgoAllocMap + reff53782.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf53782.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + reff53782.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf53782.Borrow(cpNext_allocs) + + var cshaderBufferFloat16Atomics_allocs *cgoAllocMap + reff53782.shaderBufferFloat16Atomics, cshaderBufferFloat16Atomics_allocs = (C.VkBool32)(x.ShaderBufferFloat16Atomics), cgoAllocsUnknown + allocsf53782.Borrow(cshaderBufferFloat16Atomics_allocs) + + var cshaderBufferFloat16AtomicAdd_allocs *cgoAllocMap + reff53782.shaderBufferFloat16AtomicAdd, cshaderBufferFloat16AtomicAdd_allocs = (C.VkBool32)(x.ShaderBufferFloat16AtomicAdd), cgoAllocsUnknown + allocsf53782.Borrow(cshaderBufferFloat16AtomicAdd_allocs) + + var cshaderBufferFloat16AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderBufferFloat16AtomicMinMax, cshaderBufferFloat16AtomicMinMax_allocs = (C.VkBool32)(x.ShaderBufferFloat16AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderBufferFloat16AtomicMinMax_allocs) + + var cshaderBufferFloat32AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderBufferFloat32AtomicMinMax, cshaderBufferFloat32AtomicMinMax_allocs = (C.VkBool32)(x.ShaderBufferFloat32AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderBufferFloat32AtomicMinMax_allocs) + + var cshaderBufferFloat64AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderBufferFloat64AtomicMinMax, cshaderBufferFloat64AtomicMinMax_allocs = (C.VkBool32)(x.ShaderBufferFloat64AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderBufferFloat64AtomicMinMax_allocs) + + var cshaderSharedFloat16Atomics_allocs *cgoAllocMap + reff53782.shaderSharedFloat16Atomics, cshaderSharedFloat16Atomics_allocs = (C.VkBool32)(x.ShaderSharedFloat16Atomics), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat16Atomics_allocs) + + var cshaderSharedFloat16AtomicAdd_allocs *cgoAllocMap + reff53782.shaderSharedFloat16AtomicAdd, cshaderSharedFloat16AtomicAdd_allocs = (C.VkBool32)(x.ShaderSharedFloat16AtomicAdd), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat16AtomicAdd_allocs) - var csType_allocs *cgoAllocMap - ref5054bc6c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5054bc6c.Borrow(csType_allocs) + var cshaderSharedFloat16AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderSharedFloat16AtomicMinMax, cshaderSharedFloat16AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat16AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat16AtomicMinMax_allocs) - var cpNext_allocs *cgoAllocMap - ref5054bc6c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5054bc6c.Borrow(cpNext_allocs) + var cshaderSharedFloat32AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderSharedFloat32AtomicMinMax, cshaderSharedFloat32AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat32AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat32AtomicMinMax_allocs) - var cinlineUniformBlock_allocs *cgoAllocMap - ref5054bc6c.inlineUniformBlock, cinlineUniformBlock_allocs = (C.VkBool32)(x.InlineUniformBlock), cgoAllocsUnknown - allocs5054bc6c.Borrow(cinlineUniformBlock_allocs) + var cshaderSharedFloat64AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderSharedFloat64AtomicMinMax, cshaderSharedFloat64AtomicMinMax_allocs = (C.VkBool32)(x.ShaderSharedFloat64AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderSharedFloat64AtomicMinMax_allocs) - var cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs *cgoAllocMap - ref5054bc6c.descriptorBindingInlineUniformBlockUpdateAfterBind, cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingInlineUniformBlockUpdateAfterBind), cgoAllocsUnknown - allocs5054bc6c.Borrow(cdescriptorBindingInlineUniformBlockUpdateAfterBind_allocs) + var cshaderImageFloat32AtomicMinMax_allocs *cgoAllocMap + reff53782.shaderImageFloat32AtomicMinMax, cshaderImageFloat32AtomicMinMax_allocs = (C.VkBool32)(x.ShaderImageFloat32AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(cshaderImageFloat32AtomicMinMax_allocs) - x.ref5054bc6c = ref5054bc6c - x.allocs5054bc6c = allocs5054bc6c - return ref5054bc6c, allocs5054bc6c + var csparseImageFloat32AtomicMinMax_allocs *cgoAllocMap + reff53782.sparseImageFloat32AtomicMinMax, csparseImageFloat32AtomicMinMax_allocs = (C.VkBool32)(x.SparseImageFloat32AtomicMinMax), cgoAllocsUnknown + allocsf53782.Borrow(csparseImageFloat32AtomicMinMax_allocs) + + x.reff53782 = reff53782 + x.allocsf53782 = allocsf53782 + return reff53782, allocsf53782 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceInlineUniformBlockFeatures) PassValue() (C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT, *cgoAllocMap) { - if x.ref5054bc6c != nil { - return *x.ref5054bc6c, nil +func (x PhysicalDeviceShaderAtomicFloat2Features) PassValue() (C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, *cgoAllocMap) { + if x.reff53782 != nil { + return *x.reff53782, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31790,107 +58441,101 @@ func (x PhysicalDeviceInlineUniformBlockFeatures) PassValue() (C.VkPhysicalDevic // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceInlineUniformBlockFeatures) Deref() { - if x.ref5054bc6c == nil { +func (x *PhysicalDeviceShaderAtomicFloat2Features) Deref() { + if x.reff53782 == nil { return } - x.SType = (StructureType)(x.ref5054bc6c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5054bc6c.pNext)) - x.InlineUniformBlock = (Bool32)(x.ref5054bc6c.inlineUniformBlock) - x.DescriptorBindingInlineUniformBlockUpdateAfterBind = (Bool32)(x.ref5054bc6c.descriptorBindingInlineUniformBlockUpdateAfterBind) -} - -// allocPhysicalDeviceInlineUniformBlockPropertiesMemory allocates memory for type C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT in C. + x.SType = (StructureType)(x.reff53782.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff53782.pNext)) + x.ShaderBufferFloat16Atomics = (Bool32)(x.reff53782.shaderBufferFloat16Atomics) + x.ShaderBufferFloat16AtomicAdd = (Bool32)(x.reff53782.shaderBufferFloat16AtomicAdd) + x.ShaderBufferFloat16AtomicMinMax = (Bool32)(x.reff53782.shaderBufferFloat16AtomicMinMax) + x.ShaderBufferFloat32AtomicMinMax = (Bool32)(x.reff53782.shaderBufferFloat32AtomicMinMax) + x.ShaderBufferFloat64AtomicMinMax = (Bool32)(x.reff53782.shaderBufferFloat64AtomicMinMax) + x.ShaderSharedFloat16Atomics = (Bool32)(x.reff53782.shaderSharedFloat16Atomics) + x.ShaderSharedFloat16AtomicAdd = (Bool32)(x.reff53782.shaderSharedFloat16AtomicAdd) + x.ShaderSharedFloat16AtomicMinMax = (Bool32)(x.reff53782.shaderSharedFloat16AtomicMinMax) + x.ShaderSharedFloat32AtomicMinMax = (Bool32)(x.reff53782.shaderSharedFloat32AtomicMinMax) + x.ShaderSharedFloat64AtomicMinMax = (Bool32)(x.reff53782.shaderSharedFloat64AtomicMinMax) + x.ShaderImageFloat32AtomicMinMax = (Bool32)(x.reff53782.shaderImageFloat32AtomicMinMax) + x.SparseImageFloat32AtomicMinMax = (Bool32)(x.reff53782.sparseImageFloat32AtomicMinMax) +} + +// allocSurfacePresentModeMemory allocates memory for type C.VkSurfacePresentModeEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceInlineUniformBlockPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInlineUniformBlockPropertiesValue)) +func allocSurfacePresentModeMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfacePresentModeValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceInlineUniformBlockPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT{}) +const sizeOfSurfacePresentModeValue = unsafe.Sizeof([1]C.VkSurfacePresentModeEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceInlineUniformBlockProperties) Ref() *C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT { +func (x *SurfacePresentMode) Ref() *C.VkSurfacePresentModeEXT { if x == nil { return nil } - return x.ref7ef1794 + return x.ref7c337d5d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceInlineUniformBlockProperties) Free() { - if x != nil && x.allocs7ef1794 != nil { - x.allocs7ef1794.(*cgoAllocMap).Free() - x.ref7ef1794 = nil +func (x *SurfacePresentMode) Free() { + if x != nil && x.allocs7c337d5d != nil { + x.allocs7c337d5d.(*cgoAllocMap).Free() + x.ref7c337d5d = nil } } -// NewPhysicalDeviceInlineUniformBlockPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSurfacePresentModeRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceInlineUniformBlockPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceInlineUniformBlockProperties { +func NewSurfacePresentModeRef(ref unsafe.Pointer) *SurfacePresentMode { if ref == nil { return nil } - obj := new(PhysicalDeviceInlineUniformBlockProperties) - obj.ref7ef1794 = (*C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(SurfacePresentMode) + obj.ref7c337d5d = (*C.VkSurfacePresentModeEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceInlineUniformBlockProperties) PassRef() (*C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT, *cgoAllocMap) { +func (x *SurfacePresentMode) PassRef() (*C.VkSurfacePresentModeEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7ef1794 != nil { - return x.ref7ef1794, nil + } else if x.ref7c337d5d != nil { + return x.ref7c337d5d, nil } - mem7ef1794 := allocPhysicalDeviceInlineUniformBlockPropertiesMemory(1) - ref7ef1794 := (*C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT)(mem7ef1794) - allocs7ef1794 := new(cgoAllocMap) - allocs7ef1794.Add(mem7ef1794) + mem7c337d5d := allocSurfacePresentModeMemory(1) + ref7c337d5d := (*C.VkSurfacePresentModeEXT)(mem7c337d5d) + allocs7c337d5d := new(cgoAllocMap) + allocs7c337d5d.Add(mem7c337d5d) var csType_allocs *cgoAllocMap - ref7ef1794.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7ef1794.Borrow(csType_allocs) + ref7c337d5d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7c337d5d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7ef1794.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7ef1794.Borrow(cpNext_allocs) - - var cmaxInlineUniformBlockSize_allocs *cgoAllocMap - ref7ef1794.maxInlineUniformBlockSize, cmaxInlineUniformBlockSize_allocs = (C.uint32_t)(x.MaxInlineUniformBlockSize), cgoAllocsUnknown - allocs7ef1794.Borrow(cmaxInlineUniformBlockSize_allocs) + ref7c337d5d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7c337d5d.Borrow(cpNext_allocs) - var cmaxPerStageDescriptorInlineUniformBlocks_allocs *cgoAllocMap - ref7ef1794.maxPerStageDescriptorInlineUniformBlocks, cmaxPerStageDescriptorInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxPerStageDescriptorInlineUniformBlocks), cgoAllocsUnknown - allocs7ef1794.Borrow(cmaxPerStageDescriptorInlineUniformBlocks_allocs) - - var cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs *cgoAllocMap - ref7ef1794.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks, cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks), cgoAllocsUnknown - allocs7ef1794.Borrow(cmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_allocs) - - var cmaxDescriptorSetInlineUniformBlocks_allocs *cgoAllocMap - ref7ef1794.maxDescriptorSetInlineUniformBlocks, cmaxDescriptorSetInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxDescriptorSetInlineUniformBlocks), cgoAllocsUnknown - allocs7ef1794.Borrow(cmaxDescriptorSetInlineUniformBlocks_allocs) - - var cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs *cgoAllocMap - ref7ef1794.maxDescriptorSetUpdateAfterBindInlineUniformBlocks, cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindInlineUniformBlocks), cgoAllocsUnknown - allocs7ef1794.Borrow(cmaxDescriptorSetUpdateAfterBindInlineUniformBlocks_allocs) + var cpresentMode_allocs *cgoAllocMap + ref7c337d5d.presentMode, cpresentMode_allocs = (C.VkPresentModeKHR)(x.PresentMode), cgoAllocsUnknown + allocs7c337d5d.Borrow(cpresentMode_allocs) - x.ref7ef1794 = ref7ef1794 - x.allocs7ef1794 = allocs7ef1794 - return ref7ef1794, allocs7ef1794 + x.ref7c337d5d = ref7c337d5d + x.allocs7c337d5d = allocs7c337d5d + return ref7c337d5d, allocs7c337d5d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceInlineUniformBlockProperties) PassValue() (C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT, *cgoAllocMap) { - if x.ref7ef1794 != nil { - return *x.ref7ef1794, nil +func (x SurfacePresentMode) PassValue() (C.VkSurfacePresentModeEXT, *cgoAllocMap) { + if x.ref7c337d5d != nil { + return *x.ref7c337d5d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31898,98 +58543,106 @@ func (x PhysicalDeviceInlineUniformBlockProperties) PassValue() (C.VkPhysicalDev // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceInlineUniformBlockProperties) Deref() { - if x.ref7ef1794 == nil { +func (x *SurfacePresentMode) Deref() { + if x.ref7c337d5d == nil { return } - x.SType = (StructureType)(x.ref7ef1794.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7ef1794.pNext)) - x.MaxInlineUniformBlockSize = (uint32)(x.ref7ef1794.maxInlineUniformBlockSize) - x.MaxPerStageDescriptorInlineUniformBlocks = (uint32)(x.ref7ef1794.maxPerStageDescriptorInlineUniformBlocks) - x.MaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = (uint32)(x.ref7ef1794.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks) - x.MaxDescriptorSetInlineUniformBlocks = (uint32)(x.ref7ef1794.maxDescriptorSetInlineUniformBlocks) - x.MaxDescriptorSetUpdateAfterBindInlineUniformBlocks = (uint32)(x.ref7ef1794.maxDescriptorSetUpdateAfterBindInlineUniformBlocks) + x.SType = (StructureType)(x.ref7c337d5d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7c337d5d.pNext)) + x.PresentMode = (PresentMode)(x.ref7c337d5d.presentMode) } -// allocWriteDescriptorSetInlineUniformBlockMemory allocates memory for type C.VkWriteDescriptorSetInlineUniformBlockEXT in C. +// allocSurfacePresentScalingCapabilitiesMemory allocates memory for type C.VkSurfacePresentScalingCapabilitiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocWriteDescriptorSetInlineUniformBlockMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfWriteDescriptorSetInlineUniformBlockValue)) +func allocSurfacePresentScalingCapabilitiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfacePresentScalingCapabilitiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfWriteDescriptorSetInlineUniformBlockValue = unsafe.Sizeof([1]C.VkWriteDescriptorSetInlineUniformBlockEXT{}) +const sizeOfSurfacePresentScalingCapabilitiesValue = unsafe.Sizeof([1]C.VkSurfacePresentScalingCapabilitiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *WriteDescriptorSetInlineUniformBlock) Ref() *C.VkWriteDescriptorSetInlineUniformBlockEXT { +func (x *SurfacePresentScalingCapabilities) Ref() *C.VkSurfacePresentScalingCapabilitiesEXT { if x == nil { return nil } - return x.ref18d00656 + return x.ref2053fb9d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *WriteDescriptorSetInlineUniformBlock) Free() { - if x != nil && x.allocs18d00656 != nil { - x.allocs18d00656.(*cgoAllocMap).Free() - x.ref18d00656 = nil +func (x *SurfacePresentScalingCapabilities) Free() { + if x != nil && x.allocs2053fb9d != nil { + x.allocs2053fb9d.(*cgoAllocMap).Free() + x.ref2053fb9d = nil } } -// NewWriteDescriptorSetInlineUniformBlockRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSurfacePresentScalingCapabilitiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewWriteDescriptorSetInlineUniformBlockRef(ref unsafe.Pointer) *WriteDescriptorSetInlineUniformBlock { +func NewSurfacePresentScalingCapabilitiesRef(ref unsafe.Pointer) *SurfacePresentScalingCapabilities { if ref == nil { return nil } - obj := new(WriteDescriptorSetInlineUniformBlock) - obj.ref18d00656 = (*C.VkWriteDescriptorSetInlineUniformBlockEXT)(unsafe.Pointer(ref)) + obj := new(SurfacePresentScalingCapabilities) + obj.ref2053fb9d = (*C.VkSurfacePresentScalingCapabilitiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *WriteDescriptorSetInlineUniformBlock) PassRef() (*C.VkWriteDescriptorSetInlineUniformBlockEXT, *cgoAllocMap) { +func (x *SurfacePresentScalingCapabilities) PassRef() (*C.VkSurfacePresentScalingCapabilitiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref18d00656 != nil { - return x.ref18d00656, nil + } else if x.ref2053fb9d != nil { + return x.ref2053fb9d, nil } - mem18d00656 := allocWriteDescriptorSetInlineUniformBlockMemory(1) - ref18d00656 := (*C.VkWriteDescriptorSetInlineUniformBlockEXT)(mem18d00656) - allocs18d00656 := new(cgoAllocMap) - allocs18d00656.Add(mem18d00656) + mem2053fb9d := allocSurfacePresentScalingCapabilitiesMemory(1) + ref2053fb9d := (*C.VkSurfacePresentScalingCapabilitiesEXT)(mem2053fb9d) + allocs2053fb9d := new(cgoAllocMap) + allocs2053fb9d.Add(mem2053fb9d) var csType_allocs *cgoAllocMap - ref18d00656.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs18d00656.Borrow(csType_allocs) + ref2053fb9d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2053fb9d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref18d00656.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs18d00656.Borrow(cpNext_allocs) + ref2053fb9d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2053fb9d.Borrow(cpNext_allocs) - var cdataSize_allocs *cgoAllocMap - ref18d00656.dataSize, cdataSize_allocs = (C.uint32_t)(x.DataSize), cgoAllocsUnknown - allocs18d00656.Borrow(cdataSize_allocs) + var csupportedPresentScaling_allocs *cgoAllocMap + ref2053fb9d.supportedPresentScaling, csupportedPresentScaling_allocs = (C.VkPresentScalingFlagsEXT)(x.SupportedPresentScaling), cgoAllocsUnknown + allocs2053fb9d.Borrow(csupportedPresentScaling_allocs) - var cpData_allocs *cgoAllocMap - ref18d00656.pData, cpData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PData)), cgoAllocsUnknown - allocs18d00656.Borrow(cpData_allocs) + var csupportedPresentGravityX_allocs *cgoAllocMap + ref2053fb9d.supportedPresentGravityX, csupportedPresentGravityX_allocs = (C.VkPresentGravityFlagsEXT)(x.SupportedPresentGravityX), cgoAllocsUnknown + allocs2053fb9d.Borrow(csupportedPresentGravityX_allocs) + + var csupportedPresentGravityY_allocs *cgoAllocMap + ref2053fb9d.supportedPresentGravityY, csupportedPresentGravityY_allocs = (C.VkPresentGravityFlagsEXT)(x.SupportedPresentGravityY), cgoAllocsUnknown + allocs2053fb9d.Borrow(csupportedPresentGravityY_allocs) + + var cminScaledImageExtent_allocs *cgoAllocMap + ref2053fb9d.minScaledImageExtent, cminScaledImageExtent_allocs = x.MinScaledImageExtent.PassValue() + allocs2053fb9d.Borrow(cminScaledImageExtent_allocs) + + var cmaxScaledImageExtent_allocs *cgoAllocMap + ref2053fb9d.maxScaledImageExtent, cmaxScaledImageExtent_allocs = x.MaxScaledImageExtent.PassValue() + allocs2053fb9d.Borrow(cmaxScaledImageExtent_allocs) - x.ref18d00656 = ref18d00656 - x.allocs18d00656 = allocs18d00656 - return ref18d00656, allocs18d00656 + x.ref2053fb9d = ref2053fb9d + x.allocs2053fb9d = allocs2053fb9d + return ref2053fb9d, allocs2053fb9d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x WriteDescriptorSetInlineUniformBlock) PassValue() (C.VkWriteDescriptorSetInlineUniformBlockEXT, *cgoAllocMap) { - if x.ref18d00656 != nil { - return *x.ref18d00656, nil +func (x SurfacePresentScalingCapabilities) PassValue() (C.VkSurfacePresentScalingCapabilitiesEXT, *cgoAllocMap) { + if x.ref2053fb9d != nil { + return *x.ref2053fb9d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -31997,91 +58650,98 @@ func (x WriteDescriptorSetInlineUniformBlock) PassValue() (C.VkWriteDescriptorSe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *WriteDescriptorSetInlineUniformBlock) Deref() { - if x.ref18d00656 == nil { +func (x *SurfacePresentScalingCapabilities) Deref() { + if x.ref2053fb9d == nil { return } - x.SType = (StructureType)(x.ref18d00656.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref18d00656.pNext)) - x.DataSize = (uint32)(x.ref18d00656.dataSize) - x.PData = (unsafe.Pointer)(unsafe.Pointer(x.ref18d00656.pData)) + x.SType = (StructureType)(x.ref2053fb9d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2053fb9d.pNext)) + x.SupportedPresentScaling = (PresentScalingFlags)(x.ref2053fb9d.supportedPresentScaling) + x.SupportedPresentGravityX = (PresentGravityFlags)(x.ref2053fb9d.supportedPresentGravityX) + x.SupportedPresentGravityY = (PresentGravityFlags)(x.ref2053fb9d.supportedPresentGravityY) + x.MinScaledImageExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref2053fb9d.minScaledImageExtent)) + x.MaxScaledImageExtent = *NewExtent2DRef(unsafe.Pointer(&x.ref2053fb9d.maxScaledImageExtent)) } -// allocDescriptorPoolInlineUniformBlockCreateInfoMemory allocates memory for type C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT in C. +// allocSurfacePresentModeCompatibilityMemory allocates memory for type C.VkSurfacePresentModeCompatibilityEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorPoolInlineUniformBlockCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorPoolInlineUniformBlockCreateInfoValue)) +func allocSurfacePresentModeCompatibilityMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfacePresentModeCompatibilityValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorPoolInlineUniformBlockCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT{}) +const sizeOfSurfacePresentModeCompatibilityValue = unsafe.Sizeof([1]C.VkSurfacePresentModeCompatibilityEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorPoolInlineUniformBlockCreateInfo) Ref() *C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT { +func (x *SurfacePresentModeCompatibility) Ref() *C.VkSurfacePresentModeCompatibilityEXT { if x == nil { return nil } - return x.refbc7edaa3 + return x.ref61fb395d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorPoolInlineUniformBlockCreateInfo) Free() { - if x != nil && x.allocsbc7edaa3 != nil { - x.allocsbc7edaa3.(*cgoAllocMap).Free() - x.refbc7edaa3 = nil +func (x *SurfacePresentModeCompatibility) Free() { + if x != nil && x.allocs61fb395d != nil { + x.allocs61fb395d.(*cgoAllocMap).Free() + x.ref61fb395d = nil } } -// NewDescriptorPoolInlineUniformBlockCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSurfacePresentModeCompatibilityRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorPoolInlineUniformBlockCreateInfoRef(ref unsafe.Pointer) *DescriptorPoolInlineUniformBlockCreateInfo { +func NewSurfacePresentModeCompatibilityRef(ref unsafe.Pointer) *SurfacePresentModeCompatibility { if ref == nil { return nil } - obj := new(DescriptorPoolInlineUniformBlockCreateInfo) - obj.refbc7edaa3 = (*C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(SurfacePresentModeCompatibility) + obj.ref61fb395d = (*C.VkSurfacePresentModeCompatibilityEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorPoolInlineUniformBlockCreateInfo) PassRef() (*C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT, *cgoAllocMap) { +func (x *SurfacePresentModeCompatibility) PassRef() (*C.VkSurfacePresentModeCompatibilityEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbc7edaa3 != nil { - return x.refbc7edaa3, nil + } else if x.ref61fb395d != nil { + return x.ref61fb395d, nil } - membc7edaa3 := allocDescriptorPoolInlineUniformBlockCreateInfoMemory(1) - refbc7edaa3 := (*C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT)(membc7edaa3) - allocsbc7edaa3 := new(cgoAllocMap) - allocsbc7edaa3.Add(membc7edaa3) + mem61fb395d := allocSurfacePresentModeCompatibilityMemory(1) + ref61fb395d := (*C.VkSurfacePresentModeCompatibilityEXT)(mem61fb395d) + allocs61fb395d := new(cgoAllocMap) + allocs61fb395d.Add(mem61fb395d) var csType_allocs *cgoAllocMap - refbc7edaa3.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbc7edaa3.Borrow(csType_allocs) + ref61fb395d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs61fb395d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbc7edaa3.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbc7edaa3.Borrow(cpNext_allocs) + ref61fb395d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs61fb395d.Borrow(cpNext_allocs) - var cmaxInlineUniformBlockBindings_allocs *cgoAllocMap - refbc7edaa3.maxInlineUniformBlockBindings, cmaxInlineUniformBlockBindings_allocs = (C.uint32_t)(x.MaxInlineUniformBlockBindings), cgoAllocsUnknown - allocsbc7edaa3.Borrow(cmaxInlineUniformBlockBindings_allocs) + var cpresentModeCount_allocs *cgoAllocMap + ref61fb395d.presentModeCount, cpresentModeCount_allocs = (C.uint32_t)(x.PresentModeCount), cgoAllocsUnknown + allocs61fb395d.Borrow(cpresentModeCount_allocs) - x.refbc7edaa3 = refbc7edaa3 - x.allocsbc7edaa3 = allocsbc7edaa3 - return refbc7edaa3, allocsbc7edaa3 + var cpPresentModes_allocs *cgoAllocMap + ref61fb395d.pPresentModes, cpPresentModes_allocs = (*C.VkPresentModeKHR)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPresentModes)).Data)), cgoAllocsUnknown + allocs61fb395d.Borrow(cpPresentModes_allocs) + + x.ref61fb395d = ref61fb395d + x.allocs61fb395d = allocs61fb395d + return ref61fb395d, allocs61fb395d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorPoolInlineUniformBlockCreateInfo) PassValue() (C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT, *cgoAllocMap) { - if x.refbc7edaa3 != nil { - return *x.refbc7edaa3, nil +func (x SurfacePresentModeCompatibility) PassValue() (C.VkSurfacePresentModeCompatibilityEXT, *cgoAllocMap) { + if x.ref61fb395d != nil { + return *x.ref61fb395d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32089,86 +58749,95 @@ func (x DescriptorPoolInlineUniformBlockCreateInfo) PassValue() (C.VkDescriptorP // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorPoolInlineUniformBlockCreateInfo) Deref() { - if x.refbc7edaa3 == nil { +func (x *SurfacePresentModeCompatibility) Deref() { + if x.ref61fb395d == nil { return } - x.SType = (StructureType)(x.refbc7edaa3.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbc7edaa3.pNext)) - x.MaxInlineUniformBlockBindings = (uint32)(x.refbc7edaa3.maxInlineUniformBlockBindings) + x.SType = (StructureType)(x.ref61fb395d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref61fb395d.pNext)) + x.PresentModeCount = (uint32)(x.ref61fb395d.presentModeCount) + hxf4b5187 := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) + hxf4b5187.Data = unsafe.Pointer(x.ref61fb395d.pPresentModes) + hxf4b5187.Cap = 0x7fffffff + // hxf4b5187.Len = ? + } -// allocSampleLocationMemory allocates memory for type C.VkSampleLocationEXT in C. +// allocPhysicalDeviceSwapchainMaintenance1FeaturesMemory allocates memory for type C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSampleLocationMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSampleLocationValue)) +func allocPhysicalDeviceSwapchainMaintenance1FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSwapchainMaintenance1FeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSampleLocationValue = unsafe.Sizeof([1]C.VkSampleLocationEXT{}) +const sizeOfPhysicalDeviceSwapchainMaintenance1FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SampleLocation) Ref() *C.VkSampleLocationEXT { +func (x *PhysicalDeviceSwapchainMaintenance1Features) Ref() *C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT { if x == nil { return nil } - return x.refe7a2e761 + return x.ref553fbea0 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SampleLocation) Free() { - if x != nil && x.allocse7a2e761 != nil { - x.allocse7a2e761.(*cgoAllocMap).Free() - x.refe7a2e761 = nil +func (x *PhysicalDeviceSwapchainMaintenance1Features) Free() { + if x != nil && x.allocs553fbea0 != nil { + x.allocs553fbea0.(*cgoAllocMap).Free() + x.ref553fbea0 = nil } } -// NewSampleLocationRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceSwapchainMaintenance1FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSampleLocationRef(ref unsafe.Pointer) *SampleLocation { +func NewPhysicalDeviceSwapchainMaintenance1FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceSwapchainMaintenance1Features { if ref == nil { return nil } - obj := new(SampleLocation) - obj.refe7a2e761 = (*C.VkSampleLocationEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceSwapchainMaintenance1Features) + obj.ref553fbea0 = (*C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SampleLocation) PassRef() (*C.VkSampleLocationEXT, *cgoAllocMap) { +func (x *PhysicalDeviceSwapchainMaintenance1Features) PassRef() (*C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refe7a2e761 != nil { - return x.refe7a2e761, nil + } else if x.ref553fbea0 != nil { + return x.ref553fbea0, nil } - meme7a2e761 := allocSampleLocationMemory(1) - refe7a2e761 := (*C.VkSampleLocationEXT)(meme7a2e761) - allocse7a2e761 := new(cgoAllocMap) - allocse7a2e761.Add(meme7a2e761) + mem553fbea0 := allocPhysicalDeviceSwapchainMaintenance1FeaturesMemory(1) + ref553fbea0 := (*C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT)(mem553fbea0) + allocs553fbea0 := new(cgoAllocMap) + allocs553fbea0.Add(mem553fbea0) - var cx_allocs *cgoAllocMap - refe7a2e761.x, cx_allocs = (C.float)(x.X), cgoAllocsUnknown - allocse7a2e761.Borrow(cx_allocs) + var csType_allocs *cgoAllocMap + ref553fbea0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs553fbea0.Borrow(csType_allocs) - var cy_allocs *cgoAllocMap - refe7a2e761.y, cy_allocs = (C.float)(x.Y), cgoAllocsUnknown - allocse7a2e761.Borrow(cy_allocs) + var cpNext_allocs *cgoAllocMap + ref553fbea0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs553fbea0.Borrow(cpNext_allocs) - x.refe7a2e761 = refe7a2e761 - x.allocse7a2e761 = allocse7a2e761 - return refe7a2e761, allocse7a2e761 + var cswapchainMaintenance1_allocs *cgoAllocMap + ref553fbea0.swapchainMaintenance1, cswapchainMaintenance1_allocs = (C.VkBool32)(x.SwapchainMaintenance1), cgoAllocsUnknown + allocs553fbea0.Borrow(cswapchainMaintenance1_allocs) + + x.ref553fbea0 = ref553fbea0 + x.allocs553fbea0 = allocs553fbea0 + return ref553fbea0, allocs553fbea0 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SampleLocation) PassValue() (C.VkSampleLocationEXT, *cgoAllocMap) { - if x.refe7a2e761 != nil { - return *x.refe7a2e761, nil +func (x PhysicalDeviceSwapchainMaintenance1Features) PassValue() (C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, *cgoAllocMap) { + if x.ref553fbea0 != nil { + return *x.ref553fbea0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32176,139 +58845,94 @@ func (x SampleLocation) PassValue() (C.VkSampleLocationEXT, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SampleLocation) Deref() { - if x.refe7a2e761 == nil { +func (x *PhysicalDeviceSwapchainMaintenance1Features) Deref() { + if x.ref553fbea0 == nil { return } - x.X = (float32)(x.refe7a2e761.x) - x.Y = (float32)(x.refe7a2e761.y) + x.SType = (StructureType)(x.ref553fbea0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref553fbea0.pNext)) + x.SwapchainMaintenance1 = (Bool32)(x.ref553fbea0.swapchainMaintenance1) } -// allocSampleLocationsInfoMemory allocates memory for type C.VkSampleLocationsInfoEXT in C. +// allocSwapchainPresentFenceInfoMemory allocates memory for type C.VkSwapchainPresentFenceInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSampleLocationsInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSampleLocationsInfoValue)) +func allocSwapchainPresentFenceInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainPresentFenceInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSampleLocationsInfoValue = unsafe.Sizeof([1]C.VkSampleLocationsInfoEXT{}) - -// unpackSSampleLocation transforms a sliced Go data structure into plain C format. -func unpackSSampleLocation(x []SampleLocation) (unpacked *C.VkSampleLocationEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSampleLocationEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocSampleLocationMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkSampleLocationEXT)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSampleLocationEXT)(h.Data) - return -} - -// packSSampleLocation reads sliced Go data structure out from plain C format. -func packSSampleLocation(v []SampleLocation, ptr0 *C.VkSampleLocationEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSampleLocationValue]C.VkSampleLocationEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSampleLocationRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfSwapchainPresentFenceInfoValue = unsafe.Sizeof([1]C.VkSwapchainPresentFenceInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SampleLocationsInfo) Ref() *C.VkSampleLocationsInfoEXT { +func (x *SwapchainPresentFenceInfo) Ref() *C.VkSwapchainPresentFenceInfoEXT { if x == nil { return nil } - return x.refd8f3bd2d + return x.reff3a3ddf9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SampleLocationsInfo) Free() { - if x != nil && x.allocsd8f3bd2d != nil { - x.allocsd8f3bd2d.(*cgoAllocMap).Free() - x.refd8f3bd2d = nil +func (x *SwapchainPresentFenceInfo) Free() { + if x != nil && x.allocsf3a3ddf9 != nil { + x.allocsf3a3ddf9.(*cgoAllocMap).Free() + x.reff3a3ddf9 = nil } } -// NewSampleLocationsInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSwapchainPresentFenceInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSampleLocationsInfoRef(ref unsafe.Pointer) *SampleLocationsInfo { +func NewSwapchainPresentFenceInfoRef(ref unsafe.Pointer) *SwapchainPresentFenceInfo { if ref == nil { return nil } - obj := new(SampleLocationsInfo) - obj.refd8f3bd2d = (*C.VkSampleLocationsInfoEXT)(unsafe.Pointer(ref)) + obj := new(SwapchainPresentFenceInfo) + obj.reff3a3ddf9 = (*C.VkSwapchainPresentFenceInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SampleLocationsInfo) PassRef() (*C.VkSampleLocationsInfoEXT, *cgoAllocMap) { +func (x *SwapchainPresentFenceInfo) PassRef() (*C.VkSwapchainPresentFenceInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd8f3bd2d != nil { - return x.refd8f3bd2d, nil + } else if x.reff3a3ddf9 != nil { + return x.reff3a3ddf9, nil } - memd8f3bd2d := allocSampleLocationsInfoMemory(1) - refd8f3bd2d := (*C.VkSampleLocationsInfoEXT)(memd8f3bd2d) - allocsd8f3bd2d := new(cgoAllocMap) - allocsd8f3bd2d.Add(memd8f3bd2d) + memf3a3ddf9 := allocSwapchainPresentFenceInfoMemory(1) + reff3a3ddf9 := (*C.VkSwapchainPresentFenceInfoEXT)(memf3a3ddf9) + allocsf3a3ddf9 := new(cgoAllocMap) + allocsf3a3ddf9.Add(memf3a3ddf9) var csType_allocs *cgoAllocMap - refd8f3bd2d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(csType_allocs) + reff3a3ddf9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf3a3ddf9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd8f3bd2d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(cpNext_allocs) - - var csampleLocationsPerPixel_allocs *cgoAllocMap - refd8f3bd2d.sampleLocationsPerPixel, csampleLocationsPerPixel_allocs = (C.VkSampleCountFlagBits)(x.SampleLocationsPerPixel), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(csampleLocationsPerPixel_allocs) - - var csampleLocationGridSize_allocs *cgoAllocMap - refd8f3bd2d.sampleLocationGridSize, csampleLocationGridSize_allocs = x.SampleLocationGridSize.PassValue() - allocsd8f3bd2d.Borrow(csampleLocationGridSize_allocs) + reff3a3ddf9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf3a3ddf9.Borrow(cpNext_allocs) - var csampleLocationsCount_allocs *cgoAllocMap - refd8f3bd2d.sampleLocationsCount, csampleLocationsCount_allocs = (C.uint32_t)(x.SampleLocationsCount), cgoAllocsUnknown - allocsd8f3bd2d.Borrow(csampleLocationsCount_allocs) + var cswapchainCount_allocs *cgoAllocMap + reff3a3ddf9.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocsf3a3ddf9.Borrow(cswapchainCount_allocs) - var cpSampleLocations_allocs *cgoAllocMap - refd8f3bd2d.pSampleLocations, cpSampleLocations_allocs = unpackSSampleLocation(x.PSampleLocations) - allocsd8f3bd2d.Borrow(cpSampleLocations_allocs) + var cpFences_allocs *cgoAllocMap + reff3a3ddf9.pFences, cpFences_allocs = (*C.VkFence)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PFences)).Data)), cgoAllocsUnknown + allocsf3a3ddf9.Borrow(cpFences_allocs) - x.refd8f3bd2d = refd8f3bd2d - x.allocsd8f3bd2d = allocsd8f3bd2d - return refd8f3bd2d, allocsd8f3bd2d + x.reff3a3ddf9 = reff3a3ddf9 + x.allocsf3a3ddf9 = allocsf3a3ddf9 + return reff3a3ddf9, allocsf3a3ddf9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SampleLocationsInfo) PassValue() (C.VkSampleLocationsInfoEXT, *cgoAllocMap) { - if x.refd8f3bd2d != nil { - return *x.refd8f3bd2d, nil +func (x SwapchainPresentFenceInfo) PassValue() (C.VkSwapchainPresentFenceInfoEXT, *cgoAllocMap) { + if x.reff3a3ddf9 != nil { + return *x.reff3a3ddf9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32316,89 +58940,99 @@ func (x SampleLocationsInfo) PassValue() (C.VkSampleLocationsInfoEXT, *cgoAllocM // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SampleLocationsInfo) Deref() { - if x.refd8f3bd2d == nil { +func (x *SwapchainPresentFenceInfo) Deref() { + if x.reff3a3ddf9 == nil { return } - x.SType = (StructureType)(x.refd8f3bd2d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd8f3bd2d.pNext)) - x.SampleLocationsPerPixel = (SampleCountFlagBits)(x.refd8f3bd2d.sampleLocationsPerPixel) - x.SampleLocationGridSize = *NewExtent2DRef(unsafe.Pointer(&x.refd8f3bd2d.sampleLocationGridSize)) - x.SampleLocationsCount = (uint32)(x.refd8f3bd2d.sampleLocationsCount) - packSSampleLocation(x.PSampleLocations, x.refd8f3bd2d.pSampleLocations) + x.SType = (StructureType)(x.reff3a3ddf9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff3a3ddf9.pNext)) + x.SwapchainCount = (uint32)(x.reff3a3ddf9.swapchainCount) + hxf177f79 := (*sliceHeader)(unsafe.Pointer(&x.PFences)) + hxf177f79.Data = unsafe.Pointer(x.reff3a3ddf9.pFences) + hxf177f79.Cap = 0x7fffffff + // hxf177f79.Len = ? + } -// allocAttachmentSampleLocationsMemory allocates memory for type C.VkAttachmentSampleLocationsEXT in C. +// allocSwapchainPresentModesCreateInfoMemory allocates memory for type C.VkSwapchainPresentModesCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocAttachmentSampleLocationsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAttachmentSampleLocationsValue)) +func allocSwapchainPresentModesCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainPresentModesCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfAttachmentSampleLocationsValue = unsafe.Sizeof([1]C.VkAttachmentSampleLocationsEXT{}) +const sizeOfSwapchainPresentModesCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainPresentModesCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AttachmentSampleLocations) Ref() *C.VkAttachmentSampleLocationsEXT { +func (x *SwapchainPresentModesCreateInfo) Ref() *C.VkSwapchainPresentModesCreateInfoEXT { if x == nil { return nil } - return x.ref6a3dd41e + return x.ref27b56519 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *AttachmentSampleLocations) Free() { - if x != nil && x.allocs6a3dd41e != nil { - x.allocs6a3dd41e.(*cgoAllocMap).Free() - x.ref6a3dd41e = nil +func (x *SwapchainPresentModesCreateInfo) Free() { + if x != nil && x.allocs27b56519 != nil { + x.allocs27b56519.(*cgoAllocMap).Free() + x.ref27b56519 = nil } } -// NewAttachmentSampleLocationsRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSwapchainPresentModesCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewAttachmentSampleLocationsRef(ref unsafe.Pointer) *AttachmentSampleLocations { +func NewSwapchainPresentModesCreateInfoRef(ref unsafe.Pointer) *SwapchainPresentModesCreateInfo { if ref == nil { return nil } - obj := new(AttachmentSampleLocations) - obj.ref6a3dd41e = (*C.VkAttachmentSampleLocationsEXT)(unsafe.Pointer(ref)) + obj := new(SwapchainPresentModesCreateInfo) + obj.ref27b56519 = (*C.VkSwapchainPresentModesCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *AttachmentSampleLocations) PassRef() (*C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { +func (x *SwapchainPresentModesCreateInfo) PassRef() (*C.VkSwapchainPresentModesCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6a3dd41e != nil { - return x.ref6a3dd41e, nil + } else if x.ref27b56519 != nil { + return x.ref27b56519, nil } - mem6a3dd41e := allocAttachmentSampleLocationsMemory(1) - ref6a3dd41e := (*C.VkAttachmentSampleLocationsEXT)(mem6a3dd41e) - allocs6a3dd41e := new(cgoAllocMap) - allocs6a3dd41e.Add(mem6a3dd41e) + mem27b56519 := allocSwapchainPresentModesCreateInfoMemory(1) + ref27b56519 := (*C.VkSwapchainPresentModesCreateInfoEXT)(mem27b56519) + allocs27b56519 := new(cgoAllocMap) + allocs27b56519.Add(mem27b56519) - var cattachmentIndex_allocs *cgoAllocMap - ref6a3dd41e.attachmentIndex, cattachmentIndex_allocs = (C.uint32_t)(x.AttachmentIndex), cgoAllocsUnknown - allocs6a3dd41e.Borrow(cattachmentIndex_allocs) + var csType_allocs *cgoAllocMap + ref27b56519.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs27b56519.Borrow(csType_allocs) - var csampleLocationsInfo_allocs *cgoAllocMap - ref6a3dd41e.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() - allocs6a3dd41e.Borrow(csampleLocationsInfo_allocs) + var cpNext_allocs *cgoAllocMap + ref27b56519.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs27b56519.Borrow(cpNext_allocs) - x.ref6a3dd41e = ref6a3dd41e - x.allocs6a3dd41e = allocs6a3dd41e - return ref6a3dd41e, allocs6a3dd41e + var cpresentModeCount_allocs *cgoAllocMap + ref27b56519.presentModeCount, cpresentModeCount_allocs = (C.uint32_t)(x.PresentModeCount), cgoAllocsUnknown + allocs27b56519.Borrow(cpresentModeCount_allocs) + + var cpPresentModes_allocs *cgoAllocMap + ref27b56519.pPresentModes, cpPresentModes_allocs = (*C.VkPresentModeKHR)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPresentModes)).Data)), cgoAllocsUnknown + allocs27b56519.Borrow(cpPresentModes_allocs) + + x.ref27b56519 = ref27b56519 + x.allocs27b56519 = allocs27b56519 + return ref27b56519, allocs27b56519 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x AttachmentSampleLocations) PassValue() (C.VkAttachmentSampleLocationsEXT, *cgoAllocMap) { - if x.ref6a3dd41e != nil { - return *x.ref6a3dd41e, nil +func (x SwapchainPresentModesCreateInfo) PassValue() (C.VkSwapchainPresentModesCreateInfoEXT, *cgoAllocMap) { + if x.ref27b56519 != nil { + return *x.ref27b56519, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32406,85 +59040,99 @@ func (x AttachmentSampleLocations) PassValue() (C.VkAttachmentSampleLocationsEXT // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AttachmentSampleLocations) Deref() { - if x.ref6a3dd41e == nil { +func (x *SwapchainPresentModesCreateInfo) Deref() { + if x.ref27b56519 == nil { return } - x.AttachmentIndex = (uint32)(x.ref6a3dd41e.attachmentIndex) - x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref6a3dd41e.sampleLocationsInfo)) + x.SType = (StructureType)(x.ref27b56519.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref27b56519.pNext)) + x.PresentModeCount = (uint32)(x.ref27b56519.presentModeCount) + hxfaa359c := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) + hxfaa359c.Data = unsafe.Pointer(x.ref27b56519.pPresentModes) + hxfaa359c.Cap = 0x7fffffff + // hxfaa359c.Len = ? + } -// allocSubpassSampleLocationsMemory allocates memory for type C.VkSubpassSampleLocationsEXT in C. +// allocSwapchainPresentModeInfoMemory allocates memory for type C.VkSwapchainPresentModeInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocSubpassSampleLocationsMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubpassSampleLocationsValue)) +func allocSwapchainPresentModeInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainPresentModeInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfSubpassSampleLocationsValue = unsafe.Sizeof([1]C.VkSubpassSampleLocationsEXT{}) +const sizeOfSwapchainPresentModeInfoValue = unsafe.Sizeof([1]C.VkSwapchainPresentModeInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *SubpassSampleLocations) Ref() *C.VkSubpassSampleLocationsEXT { +func (x *SwapchainPresentModeInfo) Ref() *C.VkSwapchainPresentModeInfoEXT { if x == nil { return nil } - return x.ref1f612812 + return x.refee48d4d8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *SubpassSampleLocations) Free() { - if x != nil && x.allocs1f612812 != nil { - x.allocs1f612812.(*cgoAllocMap).Free() - x.ref1f612812 = nil +func (x *SwapchainPresentModeInfo) Free() { + if x != nil && x.allocsee48d4d8 != nil { + x.allocsee48d4d8.(*cgoAllocMap).Free() + x.refee48d4d8 = nil } } -// NewSubpassSampleLocationsRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSwapchainPresentModeInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewSubpassSampleLocationsRef(ref unsafe.Pointer) *SubpassSampleLocations { +func NewSwapchainPresentModeInfoRef(ref unsafe.Pointer) *SwapchainPresentModeInfo { if ref == nil { return nil } - obj := new(SubpassSampleLocations) - obj.ref1f612812 = (*C.VkSubpassSampleLocationsEXT)(unsafe.Pointer(ref)) + obj := new(SwapchainPresentModeInfo) + obj.refee48d4d8 = (*C.VkSwapchainPresentModeInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *SubpassSampleLocations) PassRef() (*C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { +func (x *SwapchainPresentModeInfo) PassRef() (*C.VkSwapchainPresentModeInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1f612812 != nil { - return x.ref1f612812, nil + } else if x.refee48d4d8 != nil { + return x.refee48d4d8, nil } - mem1f612812 := allocSubpassSampleLocationsMemory(1) - ref1f612812 := (*C.VkSubpassSampleLocationsEXT)(mem1f612812) - allocs1f612812 := new(cgoAllocMap) - allocs1f612812.Add(mem1f612812) + memee48d4d8 := allocSwapchainPresentModeInfoMemory(1) + refee48d4d8 := (*C.VkSwapchainPresentModeInfoEXT)(memee48d4d8) + allocsee48d4d8 := new(cgoAllocMap) + allocsee48d4d8.Add(memee48d4d8) - var csubpassIndex_allocs *cgoAllocMap - ref1f612812.subpassIndex, csubpassIndex_allocs = (C.uint32_t)(x.SubpassIndex), cgoAllocsUnknown - allocs1f612812.Borrow(csubpassIndex_allocs) + var csType_allocs *cgoAllocMap + refee48d4d8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsee48d4d8.Borrow(csType_allocs) - var csampleLocationsInfo_allocs *cgoAllocMap - ref1f612812.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() - allocs1f612812.Borrow(csampleLocationsInfo_allocs) + var cpNext_allocs *cgoAllocMap + refee48d4d8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsee48d4d8.Borrow(cpNext_allocs) - x.ref1f612812 = ref1f612812 - x.allocs1f612812 = allocs1f612812 - return ref1f612812, allocs1f612812 + var cswapchainCount_allocs *cgoAllocMap + refee48d4d8.swapchainCount, cswapchainCount_allocs = (C.uint32_t)(x.SwapchainCount), cgoAllocsUnknown + allocsee48d4d8.Borrow(cswapchainCount_allocs) + + var cpPresentModes_allocs *cgoAllocMap + refee48d4d8.pPresentModes, cpPresentModes_allocs = (*C.VkPresentModeKHR)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPresentModes)).Data)), cgoAllocsUnknown + allocsee48d4d8.Borrow(cpPresentModes_allocs) + + x.refee48d4d8 = refee48d4d8 + x.allocsee48d4d8 = allocsee48d4d8 + return refee48d4d8, allocsee48d4d8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x SubpassSampleLocations) PassValue() (C.VkSubpassSampleLocationsEXT, *cgoAllocMap) { - if x.ref1f612812 != nil { - return *x.ref1f612812, nil +func (x SwapchainPresentModeInfo) PassValue() (C.VkSwapchainPresentModeInfoEXT, *cgoAllocMap) { + if x.refee48d4d8 != nil { + return *x.refee48d4d8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32492,177 +59140,103 @@ func (x SubpassSampleLocations) PassValue() (C.VkSubpassSampleLocationsEXT, *cgo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *SubpassSampleLocations) Deref() { - if x.ref1f612812 == nil { +func (x *SwapchainPresentModeInfo) Deref() { + if x.refee48d4d8 == nil { return } - x.SubpassIndex = (uint32)(x.ref1f612812.subpassIndex) - x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref1f612812.sampleLocationsInfo)) + x.SType = (StructureType)(x.refee48d4d8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refee48d4d8.pNext)) + x.SwapchainCount = (uint32)(x.refee48d4d8.swapchainCount) + hxfa897de := (*sliceHeader)(unsafe.Pointer(&x.PPresentModes)) + hxfa897de.Data = unsafe.Pointer(x.refee48d4d8.pPresentModes) + hxfa897de.Cap = 0x7fffffff + // hxfa897de.Len = ? + } -// allocRenderPassSampleLocationsBeginInfoMemory allocates memory for type C.VkRenderPassSampleLocationsBeginInfoEXT in C. +// allocSwapchainPresentScalingCreateInfoMemory allocates memory for type C.VkSwapchainPresentScalingCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocRenderPassSampleLocationsBeginInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassSampleLocationsBeginInfoValue)) +func allocSwapchainPresentScalingCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainPresentScalingCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfRenderPassSampleLocationsBeginInfoValue = unsafe.Sizeof([1]C.VkRenderPassSampleLocationsBeginInfoEXT{}) - -// unpackSAttachmentSampleLocations transforms a sliced Go data structure into plain C format. -func unpackSAttachmentSampleLocations(x []AttachmentSampleLocations) (unpacked *C.VkAttachmentSampleLocationsEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkAttachmentSampleLocationsEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocAttachmentSampleLocationsMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkAttachmentSampleLocationsEXT)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkAttachmentSampleLocationsEXT)(h.Data) - return -} - -// unpackSSubpassSampleLocations transforms a sliced Go data structure into plain C format. -func unpackSSubpassSampleLocations(x []SubpassSampleLocations) (unpacked *C.VkSubpassSampleLocationsEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSubpassSampleLocationsEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocSubpassSampleLocationsMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkSubpassSampleLocationsEXT)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSubpassSampleLocationsEXT)(h.Data) - return -} - -// packSAttachmentSampleLocations reads sliced Go data structure out from plain C format. -func packSAttachmentSampleLocations(v []AttachmentSampleLocations, ptr0 *C.VkAttachmentSampleLocationsEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfAttachmentSampleLocationsValue]C.VkAttachmentSampleLocationsEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewAttachmentSampleLocationsRef(unsafe.Pointer(&ptr1)) - } -} - -// packSSubpassSampleLocations reads sliced Go data structure out from plain C format. -func packSSubpassSampleLocations(v []SubpassSampleLocations, ptr0 *C.VkSubpassSampleLocationsEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfSubpassSampleLocationsValue]C.VkSubpassSampleLocationsEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSubpassSampleLocationsRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfSwapchainPresentScalingCreateInfoValue = unsafe.Sizeof([1]C.VkSwapchainPresentScalingCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RenderPassSampleLocationsBeginInfo) Ref() *C.VkRenderPassSampleLocationsBeginInfoEXT { +func (x *SwapchainPresentScalingCreateInfo) Ref() *C.VkSwapchainPresentScalingCreateInfoEXT { if x == nil { return nil } - return x.refb61b51d4 + return x.ref69da29d7 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *RenderPassSampleLocationsBeginInfo) Free() { - if x != nil && x.allocsb61b51d4 != nil { - x.allocsb61b51d4.(*cgoAllocMap).Free() - x.refb61b51d4 = nil +func (x *SwapchainPresentScalingCreateInfo) Free() { + if x != nil && x.allocs69da29d7 != nil { + x.allocs69da29d7.(*cgoAllocMap).Free() + x.ref69da29d7 = nil } } -// NewRenderPassSampleLocationsBeginInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSwapchainPresentScalingCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewRenderPassSampleLocationsBeginInfoRef(ref unsafe.Pointer) *RenderPassSampleLocationsBeginInfo { +func NewSwapchainPresentScalingCreateInfoRef(ref unsafe.Pointer) *SwapchainPresentScalingCreateInfo { if ref == nil { return nil } - obj := new(RenderPassSampleLocationsBeginInfo) - obj.refb61b51d4 = (*C.VkRenderPassSampleLocationsBeginInfoEXT)(unsafe.Pointer(ref)) + obj := new(SwapchainPresentScalingCreateInfo) + obj.ref69da29d7 = (*C.VkSwapchainPresentScalingCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *RenderPassSampleLocationsBeginInfo) PassRef() (*C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { +func (x *SwapchainPresentScalingCreateInfo) PassRef() (*C.VkSwapchainPresentScalingCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb61b51d4 != nil { - return x.refb61b51d4, nil + } else if x.ref69da29d7 != nil { + return x.ref69da29d7, nil } - memb61b51d4 := allocRenderPassSampleLocationsBeginInfoMemory(1) - refb61b51d4 := (*C.VkRenderPassSampleLocationsBeginInfoEXT)(memb61b51d4) - allocsb61b51d4 := new(cgoAllocMap) - allocsb61b51d4.Add(memb61b51d4) + mem69da29d7 := allocSwapchainPresentScalingCreateInfoMemory(1) + ref69da29d7 := (*C.VkSwapchainPresentScalingCreateInfoEXT)(mem69da29d7) + allocs69da29d7 := new(cgoAllocMap) + allocs69da29d7.Add(mem69da29d7) var csType_allocs *cgoAllocMap - refb61b51d4.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb61b51d4.Borrow(csType_allocs) + ref69da29d7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs69da29d7.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb61b51d4.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb61b51d4.Borrow(cpNext_allocs) - - var cattachmentInitialSampleLocationsCount_allocs *cgoAllocMap - refb61b51d4.attachmentInitialSampleLocationsCount, cattachmentInitialSampleLocationsCount_allocs = (C.uint32_t)(x.AttachmentInitialSampleLocationsCount), cgoAllocsUnknown - allocsb61b51d4.Borrow(cattachmentInitialSampleLocationsCount_allocs) + ref69da29d7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs69da29d7.Borrow(cpNext_allocs) - var cpAttachmentInitialSampleLocations_allocs *cgoAllocMap - refb61b51d4.pAttachmentInitialSampleLocations, cpAttachmentInitialSampleLocations_allocs = unpackSAttachmentSampleLocations(x.PAttachmentInitialSampleLocations) - allocsb61b51d4.Borrow(cpAttachmentInitialSampleLocations_allocs) + var cscalingBehavior_allocs *cgoAllocMap + ref69da29d7.scalingBehavior, cscalingBehavior_allocs = (C.VkPresentScalingFlagsEXT)(x.ScalingBehavior), cgoAllocsUnknown + allocs69da29d7.Borrow(cscalingBehavior_allocs) - var cpostSubpassSampleLocationsCount_allocs *cgoAllocMap - refb61b51d4.postSubpassSampleLocationsCount, cpostSubpassSampleLocationsCount_allocs = (C.uint32_t)(x.PostSubpassSampleLocationsCount), cgoAllocsUnknown - allocsb61b51d4.Borrow(cpostSubpassSampleLocationsCount_allocs) + var cpresentGravityX_allocs *cgoAllocMap + ref69da29d7.presentGravityX, cpresentGravityX_allocs = (C.VkPresentGravityFlagsEXT)(x.PresentGravityX), cgoAllocsUnknown + allocs69da29d7.Borrow(cpresentGravityX_allocs) - var cpPostSubpassSampleLocations_allocs *cgoAllocMap - refb61b51d4.pPostSubpassSampleLocations, cpPostSubpassSampleLocations_allocs = unpackSSubpassSampleLocations(x.PPostSubpassSampleLocations) - allocsb61b51d4.Borrow(cpPostSubpassSampleLocations_allocs) + var cpresentGravityY_allocs *cgoAllocMap + ref69da29d7.presentGravityY, cpresentGravityY_allocs = (C.VkPresentGravityFlagsEXT)(x.PresentGravityY), cgoAllocsUnknown + allocs69da29d7.Borrow(cpresentGravityY_allocs) - x.refb61b51d4 = refb61b51d4 - x.allocsb61b51d4 = allocsb61b51d4 - return refb61b51d4, allocsb61b51d4 + x.ref69da29d7 = ref69da29d7 + x.allocs69da29d7 = allocs69da29d7 + return ref69da29d7, allocs69da29d7 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x RenderPassSampleLocationsBeginInfo) PassValue() (C.VkRenderPassSampleLocationsBeginInfoEXT, *cgoAllocMap) { - if x.refb61b51d4 != nil { - return *x.refb61b51d4, nil +func (x SwapchainPresentScalingCreateInfo) PassValue() (C.VkSwapchainPresentScalingCreateInfoEXT, *cgoAllocMap) { + if x.ref69da29d7 != nil { + return *x.ref69da29d7, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32670,97 +59244,100 @@ func (x RenderPassSampleLocationsBeginInfo) PassValue() (C.VkRenderPassSampleLoc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RenderPassSampleLocationsBeginInfo) Deref() { - if x.refb61b51d4 == nil { +func (x *SwapchainPresentScalingCreateInfo) Deref() { + if x.ref69da29d7 == nil { return } - x.SType = (StructureType)(x.refb61b51d4.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb61b51d4.pNext)) - x.AttachmentInitialSampleLocationsCount = (uint32)(x.refb61b51d4.attachmentInitialSampleLocationsCount) - packSAttachmentSampleLocations(x.PAttachmentInitialSampleLocations, x.refb61b51d4.pAttachmentInitialSampleLocations) - x.PostSubpassSampleLocationsCount = (uint32)(x.refb61b51d4.postSubpassSampleLocationsCount) - packSSubpassSampleLocations(x.PPostSubpassSampleLocations, x.refb61b51d4.pPostSubpassSampleLocations) + x.SType = (StructureType)(x.ref69da29d7.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref69da29d7.pNext)) + x.ScalingBehavior = (PresentScalingFlags)(x.ref69da29d7.scalingBehavior) + x.PresentGravityX = (PresentGravityFlags)(x.ref69da29d7.presentGravityX) + x.PresentGravityY = (PresentGravityFlags)(x.ref69da29d7.presentGravityY) } -// allocPipelineSampleLocationsStateCreateInfoMemory allocates memory for type C.VkPipelineSampleLocationsStateCreateInfoEXT in C. +// allocReleaseSwapchainImagesInfoMemory allocates memory for type C.VkReleaseSwapchainImagesInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineSampleLocationsStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineSampleLocationsStateCreateInfoValue)) +func allocReleaseSwapchainImagesInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfReleaseSwapchainImagesInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineSampleLocationsStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineSampleLocationsStateCreateInfoEXT{}) +const sizeOfReleaseSwapchainImagesInfoValue = unsafe.Sizeof([1]C.VkReleaseSwapchainImagesInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineSampleLocationsStateCreateInfo) Ref() *C.VkPipelineSampleLocationsStateCreateInfoEXT { +func (x *ReleaseSwapchainImagesInfo) Ref() *C.VkReleaseSwapchainImagesInfoEXT { if x == nil { return nil } - return x.ref93a2968f + return x.ref6c053bf } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineSampleLocationsStateCreateInfo) Free() { - if x != nil && x.allocs93a2968f != nil { - x.allocs93a2968f.(*cgoAllocMap).Free() - x.ref93a2968f = nil +func (x *ReleaseSwapchainImagesInfo) Free() { + if x != nil && x.allocs6c053bf != nil { + x.allocs6c053bf.(*cgoAllocMap).Free() + x.ref6c053bf = nil } } -// NewPipelineSampleLocationsStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewReleaseSwapchainImagesInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineSampleLocationsStateCreateInfoRef(ref unsafe.Pointer) *PipelineSampleLocationsStateCreateInfo { +func NewReleaseSwapchainImagesInfoRef(ref unsafe.Pointer) *ReleaseSwapchainImagesInfo { if ref == nil { return nil } - obj := new(PipelineSampleLocationsStateCreateInfo) - obj.ref93a2968f = (*C.VkPipelineSampleLocationsStateCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(ReleaseSwapchainImagesInfo) + obj.ref6c053bf = (*C.VkReleaseSwapchainImagesInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineSampleLocationsStateCreateInfo) PassRef() (*C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { +func (x *ReleaseSwapchainImagesInfo) PassRef() (*C.VkReleaseSwapchainImagesInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref93a2968f != nil { - return x.ref93a2968f, nil + } else if x.ref6c053bf != nil { + return x.ref6c053bf, nil } - mem93a2968f := allocPipelineSampleLocationsStateCreateInfoMemory(1) - ref93a2968f := (*C.VkPipelineSampleLocationsStateCreateInfoEXT)(mem93a2968f) - allocs93a2968f := new(cgoAllocMap) - allocs93a2968f.Add(mem93a2968f) + mem6c053bf := allocReleaseSwapchainImagesInfoMemory(1) + ref6c053bf := (*C.VkReleaseSwapchainImagesInfoEXT)(mem6c053bf) + allocs6c053bf := new(cgoAllocMap) + allocs6c053bf.Add(mem6c053bf) var csType_allocs *cgoAllocMap - ref93a2968f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs93a2968f.Borrow(csType_allocs) + ref6c053bf.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6c053bf.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref93a2968f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs93a2968f.Borrow(cpNext_allocs) + ref6c053bf.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6c053bf.Borrow(cpNext_allocs) - var csampleLocationsEnable_allocs *cgoAllocMap - ref93a2968f.sampleLocationsEnable, csampleLocationsEnable_allocs = (C.VkBool32)(x.SampleLocationsEnable), cgoAllocsUnknown - allocs93a2968f.Borrow(csampleLocationsEnable_allocs) + var cswapchain_allocs *cgoAllocMap + ref6c053bf.swapchain, cswapchain_allocs = *(*C.VkSwapchainKHR)(unsafe.Pointer(&x.Swapchain)), cgoAllocsUnknown + allocs6c053bf.Borrow(cswapchain_allocs) - var csampleLocationsInfo_allocs *cgoAllocMap - ref93a2968f.sampleLocationsInfo, csampleLocationsInfo_allocs = x.SampleLocationsInfo.PassValue() - allocs93a2968f.Borrow(csampleLocationsInfo_allocs) + var cimageIndexCount_allocs *cgoAllocMap + ref6c053bf.imageIndexCount, cimageIndexCount_allocs = (C.uint32_t)(x.ImageIndexCount), cgoAllocsUnknown + allocs6c053bf.Borrow(cimageIndexCount_allocs) - x.ref93a2968f = ref93a2968f - x.allocs93a2968f = allocs93a2968f - return ref93a2968f, allocs93a2968f + var cpImageIndices_allocs *cgoAllocMap + ref6c053bf.pImageIndices, cpImageIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PImageIndices)).Data)), cgoAllocsUnknown + allocs6c053bf.Borrow(cpImageIndices_allocs) + + x.ref6c053bf = ref6c053bf + x.allocs6c053bf = allocs6c053bf + return ref6c053bf, allocs6c053bf } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineSampleLocationsStateCreateInfo) PassValue() (C.VkPipelineSampleLocationsStateCreateInfoEXT, *cgoAllocMap) { - if x.ref93a2968f != nil { - return *x.ref93a2968f, nil +func (x ReleaseSwapchainImagesInfo) PassValue() (C.VkReleaseSwapchainImagesInfoEXT, *cgoAllocMap) { + if x.ref6c053bf != nil { + return *x.ref6c053bf, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32768,107 +59345,128 @@ func (x PipelineSampleLocationsStateCreateInfo) PassValue() (C.VkPipelineSampleL // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineSampleLocationsStateCreateInfo) Deref() { - if x.ref93a2968f == nil { +func (x *ReleaseSwapchainImagesInfo) Deref() { + if x.ref6c053bf == nil { return } - x.SType = (StructureType)(x.ref93a2968f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref93a2968f.pNext)) - x.SampleLocationsEnable = (Bool32)(x.ref93a2968f.sampleLocationsEnable) - x.SampleLocationsInfo = *NewSampleLocationsInfoRef(unsafe.Pointer(&x.ref93a2968f.sampleLocationsInfo)) + x.SType = (StructureType)(x.ref6c053bf.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6c053bf.pNext)) + x.Swapchain = *(*Swapchain)(unsafe.Pointer(&x.ref6c053bf.swapchain)) + x.ImageIndexCount = (uint32)(x.ref6c053bf.imageIndexCount) + hxfe33f90 := (*sliceHeader)(unsafe.Pointer(&x.PImageIndices)) + hxfe33f90.Data = unsafe.Pointer(x.ref6c053bf.pImageIndices) + hxfe33f90.Cap = 0x7fffffff + // hxfe33f90.Len = ? + } -// allocPhysicalDeviceSampleLocationsPropertiesMemory allocates memory for type C.VkPhysicalDeviceSampleLocationsPropertiesEXT in C. +// allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceSampleLocationsPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceSampleLocationsPropertiesValue)) +func allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceGeneratedCommandsPropertiesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceSampleLocationsPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceSampleLocationsPropertiesEXT{}) +const sizeOfPhysicalDeviceDeviceGeneratedCommandsPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceSampleLocationsProperties) Ref() *C.VkPhysicalDeviceSampleLocationsPropertiesEXT { +func (x *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Ref() *C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV { if x == nil { return nil } - return x.refaf801323 + return x.ref569def06 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceSampleLocationsProperties) Free() { - if x != nil && x.allocsaf801323 != nil { - x.allocsaf801323.(*cgoAllocMap).Free() - x.refaf801323 = nil +func (x *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Free() { + if x != nil && x.allocs569def06 != nil { + x.allocs569def06.(*cgoAllocMap).Free() + x.ref569def06 = nil } } -// NewPhysicalDeviceSampleLocationsPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDeviceGeneratedCommandsPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceSampleLocationsPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceSampleLocationsProperties { +func NewPhysicalDeviceDeviceGeneratedCommandsPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceSampleLocationsProperties) - obj.refaf801323 = (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) + obj.ref569def06 = (*C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceSampleLocationsProperties) PassRef() (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) PassRef() (*C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refaf801323 != nil { - return x.refaf801323, nil + } else if x.ref569def06 != nil { + return x.ref569def06, nil } - memaf801323 := allocPhysicalDeviceSampleLocationsPropertiesMemory(1) - refaf801323 := (*C.VkPhysicalDeviceSampleLocationsPropertiesEXT)(memaf801323) - allocsaf801323 := new(cgoAllocMap) - allocsaf801323.Add(memaf801323) + mem569def06 := allocPhysicalDeviceDeviceGeneratedCommandsPropertiesNVMemory(1) + ref569def06 := (*C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV)(mem569def06) + allocs569def06 := new(cgoAllocMap) + allocs569def06.Add(mem569def06) var csType_allocs *cgoAllocMap - refaf801323.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsaf801323.Borrow(csType_allocs) + ref569def06.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs569def06.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refaf801323.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsaf801323.Borrow(cpNext_allocs) + ref569def06.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs569def06.Borrow(cpNext_allocs) - var csampleLocationSampleCounts_allocs *cgoAllocMap - refaf801323.sampleLocationSampleCounts, csampleLocationSampleCounts_allocs = (C.VkSampleCountFlags)(x.SampleLocationSampleCounts), cgoAllocsUnknown - allocsaf801323.Borrow(csampleLocationSampleCounts_allocs) + var cmaxGraphicsShaderGroupCount_allocs *cgoAllocMap + ref569def06.maxGraphicsShaderGroupCount, cmaxGraphicsShaderGroupCount_allocs = (C.uint32_t)(x.MaxGraphicsShaderGroupCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxGraphicsShaderGroupCount_allocs) - var cmaxSampleLocationGridSize_allocs *cgoAllocMap - refaf801323.maxSampleLocationGridSize, cmaxSampleLocationGridSize_allocs = x.MaxSampleLocationGridSize.PassValue() - allocsaf801323.Borrow(cmaxSampleLocationGridSize_allocs) + var cmaxIndirectSequenceCount_allocs *cgoAllocMap + ref569def06.maxIndirectSequenceCount, cmaxIndirectSequenceCount_allocs = (C.uint32_t)(x.MaxIndirectSequenceCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectSequenceCount_allocs) - var csampleLocationCoordinateRange_allocs *cgoAllocMap - refaf801323.sampleLocationCoordinateRange, csampleLocationCoordinateRange_allocs = *(*[2]C.float)(unsafe.Pointer(&x.SampleLocationCoordinateRange)), cgoAllocsUnknown - allocsaf801323.Borrow(csampleLocationCoordinateRange_allocs) + var cmaxIndirectCommandsTokenCount_allocs *cgoAllocMap + ref569def06.maxIndirectCommandsTokenCount, cmaxIndirectCommandsTokenCount_allocs = (C.uint32_t)(x.MaxIndirectCommandsTokenCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectCommandsTokenCount_allocs) - var csampleLocationSubPixelBits_allocs *cgoAllocMap - refaf801323.sampleLocationSubPixelBits, csampleLocationSubPixelBits_allocs = (C.uint32_t)(x.SampleLocationSubPixelBits), cgoAllocsUnknown - allocsaf801323.Borrow(csampleLocationSubPixelBits_allocs) + var cmaxIndirectCommandsStreamCount_allocs *cgoAllocMap + ref569def06.maxIndirectCommandsStreamCount, cmaxIndirectCommandsStreamCount_allocs = (C.uint32_t)(x.MaxIndirectCommandsStreamCount), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectCommandsStreamCount_allocs) - var cvariableSampleLocations_allocs *cgoAllocMap - refaf801323.variableSampleLocations, cvariableSampleLocations_allocs = (C.VkBool32)(x.VariableSampleLocations), cgoAllocsUnknown - allocsaf801323.Borrow(cvariableSampleLocations_allocs) + var cmaxIndirectCommandsTokenOffset_allocs *cgoAllocMap + ref569def06.maxIndirectCommandsTokenOffset, cmaxIndirectCommandsTokenOffset_allocs = (C.uint32_t)(x.MaxIndirectCommandsTokenOffset), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectCommandsTokenOffset_allocs) - x.refaf801323 = refaf801323 - x.allocsaf801323 = allocsaf801323 - return refaf801323, allocsaf801323 + var cmaxIndirectCommandsStreamStride_allocs *cgoAllocMap + ref569def06.maxIndirectCommandsStreamStride, cmaxIndirectCommandsStreamStride_allocs = (C.uint32_t)(x.MaxIndirectCommandsStreamStride), cgoAllocsUnknown + allocs569def06.Borrow(cmaxIndirectCommandsStreamStride_allocs) + + var cminSequencesCountBufferOffsetAlignment_allocs *cgoAllocMap + ref569def06.minSequencesCountBufferOffsetAlignment, cminSequencesCountBufferOffsetAlignment_allocs = (C.uint32_t)(x.MinSequencesCountBufferOffsetAlignment), cgoAllocsUnknown + allocs569def06.Borrow(cminSequencesCountBufferOffsetAlignment_allocs) + + var cminSequencesIndexBufferOffsetAlignment_allocs *cgoAllocMap + ref569def06.minSequencesIndexBufferOffsetAlignment, cminSequencesIndexBufferOffsetAlignment_allocs = (C.uint32_t)(x.MinSequencesIndexBufferOffsetAlignment), cgoAllocsUnknown + allocs569def06.Borrow(cminSequencesIndexBufferOffsetAlignment_allocs) + + var cminIndirectCommandsBufferOffsetAlignment_allocs *cgoAllocMap + ref569def06.minIndirectCommandsBufferOffsetAlignment, cminIndirectCommandsBufferOffsetAlignment_allocs = (C.uint32_t)(x.MinIndirectCommandsBufferOffsetAlignment), cgoAllocsUnknown + allocs569def06.Borrow(cminIndirectCommandsBufferOffsetAlignment_allocs) + + x.ref569def06 = ref569def06 + x.allocs569def06 = allocs569def06 + return ref569def06, allocs569def06 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceSampleLocationsProperties) PassValue() (C.VkPhysicalDeviceSampleLocationsPropertiesEXT, *cgoAllocMap) { - if x.refaf801323 != nil { - return *x.refaf801323, nil +func (x PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) PassValue() (C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, *cgoAllocMap) { + if x.ref569def06 != nil { + return *x.ref569def06, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32876,94 +59474,98 @@ func (x PhysicalDeviceSampleLocationsProperties) PassValue() (C.VkPhysicalDevice // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceSampleLocationsProperties) Deref() { - if x.refaf801323 == nil { +func (x *PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) Deref() { + if x.ref569def06 == nil { return } - x.SType = (StructureType)(x.refaf801323.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refaf801323.pNext)) - x.SampleLocationSampleCounts = (SampleCountFlags)(x.refaf801323.sampleLocationSampleCounts) - x.MaxSampleLocationGridSize = *NewExtent2DRef(unsafe.Pointer(&x.refaf801323.maxSampleLocationGridSize)) - x.SampleLocationCoordinateRange = *(*[2]float32)(unsafe.Pointer(&x.refaf801323.sampleLocationCoordinateRange)) - x.SampleLocationSubPixelBits = (uint32)(x.refaf801323.sampleLocationSubPixelBits) - x.VariableSampleLocations = (Bool32)(x.refaf801323.variableSampleLocations) + x.SType = (StructureType)(x.ref569def06.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref569def06.pNext)) + x.MaxGraphicsShaderGroupCount = (uint32)(x.ref569def06.maxGraphicsShaderGroupCount) + x.MaxIndirectSequenceCount = (uint32)(x.ref569def06.maxIndirectSequenceCount) + x.MaxIndirectCommandsTokenCount = (uint32)(x.ref569def06.maxIndirectCommandsTokenCount) + x.MaxIndirectCommandsStreamCount = (uint32)(x.ref569def06.maxIndirectCommandsStreamCount) + x.MaxIndirectCommandsTokenOffset = (uint32)(x.ref569def06.maxIndirectCommandsTokenOffset) + x.MaxIndirectCommandsStreamStride = (uint32)(x.ref569def06.maxIndirectCommandsStreamStride) + x.MinSequencesCountBufferOffsetAlignment = (uint32)(x.ref569def06.minSequencesCountBufferOffsetAlignment) + x.MinSequencesIndexBufferOffsetAlignment = (uint32)(x.ref569def06.minSequencesIndexBufferOffsetAlignment) + x.MinIndirectCommandsBufferOffsetAlignment = (uint32)(x.ref569def06.minIndirectCommandsBufferOffsetAlignment) } -// allocMultisamplePropertiesMemory allocates memory for type C.VkMultisamplePropertiesEXT in C. +// allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocMultisamplePropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMultisamplePropertiesValue)) +func allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceGeneratedCommandsFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMultisamplePropertiesValue = unsafe.Sizeof([1]C.VkMultisamplePropertiesEXT{}) +const sizeOfPhysicalDeviceDeviceGeneratedCommandsFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MultisampleProperties) Ref() *C.VkMultisamplePropertiesEXT { +func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Ref() *C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV { if x == nil { return nil } - return x.ref3e47f337 + return x.ref3ea95583 } - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *MultisampleProperties) Free() { - if x != nil && x.allocs3e47f337 != nil { - x.allocs3e47f337.(*cgoAllocMap).Free() - x.ref3e47f337 = nil + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Free() { + if x != nil && x.allocs3ea95583 != nil { + x.allocs3ea95583.(*cgoAllocMap).Free() + x.ref3ea95583 = nil } } -// NewMultisamplePropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDeviceGeneratedCommandsFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMultisamplePropertiesRef(ref unsafe.Pointer) *MultisampleProperties { +func NewPhysicalDeviceDeviceGeneratedCommandsFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV { if ref == nil { return nil } - obj := new(MultisampleProperties) - obj.ref3e47f337 = (*C.VkMultisamplePropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) + obj.ref3ea95583 = (*C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MultisampleProperties) PassRef() (*C.VkMultisamplePropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) PassRef() (*C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3e47f337 != nil { - return x.ref3e47f337, nil + } else if x.ref3ea95583 != nil { + return x.ref3ea95583, nil } - mem3e47f337 := allocMultisamplePropertiesMemory(1) - ref3e47f337 := (*C.VkMultisamplePropertiesEXT)(mem3e47f337) - allocs3e47f337 := new(cgoAllocMap) - allocs3e47f337.Add(mem3e47f337) + mem3ea95583 := allocPhysicalDeviceDeviceGeneratedCommandsFeaturesNVMemory(1) + ref3ea95583 := (*C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV)(mem3ea95583) + allocs3ea95583 := new(cgoAllocMap) + allocs3ea95583.Add(mem3ea95583) var csType_allocs *cgoAllocMap - ref3e47f337.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3e47f337.Borrow(csType_allocs) + ref3ea95583.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3ea95583.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3e47f337.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3e47f337.Borrow(cpNext_allocs) + ref3ea95583.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3ea95583.Borrow(cpNext_allocs) - var cmaxSampleLocationGridSize_allocs *cgoAllocMap - ref3e47f337.maxSampleLocationGridSize, cmaxSampleLocationGridSize_allocs = x.MaxSampleLocationGridSize.PassValue() - allocs3e47f337.Borrow(cmaxSampleLocationGridSize_allocs) + var cdeviceGeneratedCommands_allocs *cgoAllocMap + ref3ea95583.deviceGeneratedCommands, cdeviceGeneratedCommands_allocs = (C.VkBool32)(x.DeviceGeneratedCommands), cgoAllocsUnknown + allocs3ea95583.Borrow(cdeviceGeneratedCommands_allocs) - x.ref3e47f337 = ref3e47f337 - x.allocs3e47f337 = allocs3e47f337 - return ref3e47f337, allocs3e47f337 + x.ref3ea95583 = ref3ea95583 + x.allocs3ea95583 = allocs3ea95583 + return ref3ea95583, allocs3ea95583 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MultisampleProperties) PassValue() (C.VkMultisamplePropertiesEXT, *cgoAllocMap) { - if x.ref3e47f337 != nil { - return *x.ref3e47f337, nil +func (x PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) PassValue() (C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, *cgoAllocMap) { + if x.ref3ea95583 != nil { + return *x.ref3ea95583, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -32971,90 +59573,178 @@ func (x MultisampleProperties) PassValue() (C.VkMultisamplePropertiesEXT, *cgoAl // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MultisampleProperties) Deref() { - if x.ref3e47f337 == nil { +func (x *PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) Deref() { + if x.ref3ea95583 == nil { return } - x.SType = (StructureType)(x.ref3e47f337.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3e47f337.pNext)) - x.MaxSampleLocationGridSize = *NewExtent2DRef(unsafe.Pointer(&x.ref3e47f337.maxSampleLocationGridSize)) + x.SType = (StructureType)(x.ref3ea95583.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3ea95583.pNext)) + x.DeviceGeneratedCommands = (Bool32)(x.ref3ea95583.deviceGeneratedCommands) } -// allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT in C. +// allocGraphicsShaderGroupCreateInfoNVMemory allocates memory for type C.VkGraphicsShaderGroupCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceBlendOperationAdvancedFeaturesValue)) +func allocGraphicsShaderGroupCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsShaderGroupCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceBlendOperationAdvancedFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT{}) +const sizeOfGraphicsShaderGroupCreateInfoNVValue = unsafe.Sizeof([1]C.VkGraphicsShaderGroupCreateInfoNV{}) + +// unpackSPipelineVertexInputStateCreateInfo transforms a sliced Go data structure into plain C format. +func unpackSPipelineVertexInputStateCreateInfo(x []PipelineVertexInputStateCreateInfo) (unpacked *C.VkPipelineVertexInputStateCreateInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineVertexInputStateCreateInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocPipelineVertexInputStateCreateInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkPipelineVertexInputStateCreateInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkPipelineVertexInputStateCreateInfo)(h.Data) + return +} + +// unpackSPipelineTessellationStateCreateInfo transforms a sliced Go data structure into plain C format. +func unpackSPipelineTessellationStateCreateInfo(x []PipelineTessellationStateCreateInfo) (unpacked *C.VkPipelineTessellationStateCreateInfo, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkPipelineTessellationStateCreateInfo) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocPipelineTessellationStateCreateInfoMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkPipelineTessellationStateCreateInfo)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkPipelineTessellationStateCreateInfo)(h.Data) + return +} + +// packSPipelineVertexInputStateCreateInfo reads sliced Go data structure out from plain C format. +func packSPipelineVertexInputStateCreateInfo(v []PipelineVertexInputStateCreateInfo, ptr0 *C.VkPipelineVertexInputStateCreateInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfPipelineVertexInputStateCreateInfoValue]C.VkPipelineVertexInputStateCreateInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewPipelineVertexInputStateCreateInfoRef(unsafe.Pointer(&ptr1)) + } +} + +// packSPipelineTessellationStateCreateInfo reads sliced Go data structure out from plain C format. +func packSPipelineTessellationStateCreateInfo(v []PipelineTessellationStateCreateInfo, ptr0 *C.VkPipelineTessellationStateCreateInfo) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfPipelineTessellationStateCreateInfoValue]C.VkPipelineTessellationStateCreateInfo)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewPipelineTessellationStateCreateInfoRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { +func (x *GraphicsShaderGroupCreateInfoNV) Ref() *C.VkGraphicsShaderGroupCreateInfoNV { if x == nil { return nil } - return x.ref8514bc93 + return x.refa9d954e5 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Free() { - if x != nil && x.allocs8514bc93 != nil { - x.allocs8514bc93.(*cgoAllocMap).Free() - x.ref8514bc93 = nil +func (x *GraphicsShaderGroupCreateInfoNV) Free() { + if x != nil && x.allocsa9d954e5 != nil { + x.allocsa9d954e5.(*cgoAllocMap).Free() + x.refa9d954e5 = nil } } -// NewPhysicalDeviceBlendOperationAdvancedFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewGraphicsShaderGroupCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceBlendOperationAdvancedFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedFeatures { +func NewGraphicsShaderGroupCreateInfoNVRef(ref unsafe.Pointer) *GraphicsShaderGroupCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceBlendOperationAdvancedFeatures) - obj.ref8514bc93 = (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(GraphicsShaderGroupCreateInfoNV) + obj.refa9d954e5 = (*C.VkGraphicsShaderGroupCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceBlendOperationAdvancedFeatures) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { +func (x *GraphicsShaderGroupCreateInfoNV) PassRef() (*C.VkGraphicsShaderGroupCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8514bc93 != nil { - return x.ref8514bc93, nil + } else if x.refa9d954e5 != nil { + return x.refa9d954e5, nil } - mem8514bc93 := allocPhysicalDeviceBlendOperationAdvancedFeaturesMemory(1) - ref8514bc93 := (*C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)(mem8514bc93) - allocs8514bc93 := new(cgoAllocMap) - allocs8514bc93.Add(mem8514bc93) + mema9d954e5 := allocGraphicsShaderGroupCreateInfoNVMemory(1) + refa9d954e5 := (*C.VkGraphicsShaderGroupCreateInfoNV)(mema9d954e5) + allocsa9d954e5 := new(cgoAllocMap) + allocsa9d954e5.Add(mema9d954e5) var csType_allocs *cgoAllocMap - ref8514bc93.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8514bc93.Borrow(csType_allocs) + refa9d954e5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa9d954e5.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8514bc93.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8514bc93.Borrow(cpNext_allocs) + refa9d954e5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa9d954e5.Borrow(cpNext_allocs) - var cadvancedBlendCoherentOperations_allocs *cgoAllocMap - ref8514bc93.advancedBlendCoherentOperations, cadvancedBlendCoherentOperations_allocs = (C.VkBool32)(x.AdvancedBlendCoherentOperations), cgoAllocsUnknown - allocs8514bc93.Borrow(cadvancedBlendCoherentOperations_allocs) + var cstageCount_allocs *cgoAllocMap + refa9d954e5.stageCount, cstageCount_allocs = (C.uint32_t)(x.StageCount), cgoAllocsUnknown + allocsa9d954e5.Borrow(cstageCount_allocs) - x.ref8514bc93 = ref8514bc93 - x.allocs8514bc93 = allocs8514bc93 - return ref8514bc93, allocs8514bc93 + var cpStages_allocs *cgoAllocMap + refa9d954e5.pStages, cpStages_allocs = unpackSPipelineShaderStageCreateInfo(x.PStages) + allocsa9d954e5.Borrow(cpStages_allocs) + + var cpVertexInputState_allocs *cgoAllocMap + refa9d954e5.pVertexInputState, cpVertexInputState_allocs = unpackSPipelineVertexInputStateCreateInfo(x.PVertexInputState) + allocsa9d954e5.Borrow(cpVertexInputState_allocs) + + var cpTessellationState_allocs *cgoAllocMap + refa9d954e5.pTessellationState, cpTessellationState_allocs = unpackSPipelineTessellationStateCreateInfo(x.PTessellationState) + allocsa9d954e5.Borrow(cpTessellationState_allocs) + + x.refa9d954e5 = refa9d954e5 + x.allocsa9d954e5 = allocsa9d954e5 + return refa9d954e5, allocsa9d954e5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceBlendOperationAdvancedFeatures) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, *cgoAllocMap) { - if x.ref8514bc93 != nil { - return *x.ref8514bc93, nil +func (x GraphicsShaderGroupCreateInfoNV) PassValue() (C.VkGraphicsShaderGroupCreateInfoNV, *cgoAllocMap) { + if x.refa9d954e5 != nil { + return *x.refa9d954e5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33062,110 +59752,143 @@ func (x PhysicalDeviceBlendOperationAdvancedFeatures) PassValue() (C.VkPhysicalD // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceBlendOperationAdvancedFeatures) Deref() { - if x.ref8514bc93 == nil { +func (x *GraphicsShaderGroupCreateInfoNV) Deref() { + if x.refa9d954e5 == nil { return } - x.SType = (StructureType)(x.ref8514bc93.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8514bc93.pNext)) - x.AdvancedBlendCoherentOperations = (Bool32)(x.ref8514bc93.advancedBlendCoherentOperations) + x.SType = (StructureType)(x.refa9d954e5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa9d954e5.pNext)) + x.StageCount = (uint32)(x.refa9d954e5.stageCount) + packSPipelineShaderStageCreateInfo(x.PStages, x.refa9d954e5.pStages) + packSPipelineVertexInputStateCreateInfo(x.PVertexInputState, x.refa9d954e5.pVertexInputState) + packSPipelineTessellationStateCreateInfo(x.PTessellationState, x.refa9d954e5.pTessellationState) } -// allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory allocates memory for type C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT in C. +// allocGraphicsPipelineShaderGroupsCreateInfoNVMemory allocates memory for type C.VkGraphicsPipelineShaderGroupsCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceBlendOperationAdvancedPropertiesValue)) +func allocGraphicsPipelineShaderGroupsCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsPipelineShaderGroupsCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceBlendOperationAdvancedPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT{}) +const sizeOfGraphicsPipelineShaderGroupsCreateInfoNVValue = unsafe.Sizeof([1]C.VkGraphicsPipelineShaderGroupsCreateInfoNV{}) + +// unpackSGraphicsShaderGroupCreateInfoNV transforms a sliced Go data structure into plain C format. +func unpackSGraphicsShaderGroupCreateInfoNV(x []GraphicsShaderGroupCreateInfoNV) (unpacked *C.VkGraphicsShaderGroupCreateInfoNV, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkGraphicsShaderGroupCreateInfoNV) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocGraphicsShaderGroupCreateInfoNVMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkGraphicsShaderGroupCreateInfoNV)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkGraphicsShaderGroupCreateInfoNV)(h.Data) + return +} + +// packSGraphicsShaderGroupCreateInfoNV reads sliced Go data structure out from plain C format. +func packSGraphicsShaderGroupCreateInfoNV(v []GraphicsShaderGroupCreateInfoNV, ptr0 *C.VkGraphicsShaderGroupCreateInfoNV) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfGraphicsShaderGroupCreateInfoNVValue]C.VkGraphicsShaderGroupCreateInfoNV)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewGraphicsShaderGroupCreateInfoNVRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceBlendOperationAdvancedProperties) Ref() *C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { +func (x *GraphicsPipelineShaderGroupsCreateInfoNV) Ref() *C.VkGraphicsPipelineShaderGroupsCreateInfoNV { if x == nil { return nil } - return x.ref94cb3fa6 + return x.refabf1b7d9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceBlendOperationAdvancedProperties) Free() { - if x != nil && x.allocs94cb3fa6 != nil { - x.allocs94cb3fa6.(*cgoAllocMap).Free() - x.ref94cb3fa6 = nil +func (x *GraphicsPipelineShaderGroupsCreateInfoNV) Free() { + if x != nil && x.allocsabf1b7d9 != nil { + x.allocsabf1b7d9.(*cgoAllocMap).Free() + x.refabf1b7d9 = nil } } -// NewPhysicalDeviceBlendOperationAdvancedPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewGraphicsPipelineShaderGroupsCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceBlendOperationAdvancedPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceBlendOperationAdvancedProperties { +func NewGraphicsPipelineShaderGroupsCreateInfoNVRef(ref unsafe.Pointer) *GraphicsPipelineShaderGroupsCreateInfoNV { if ref == nil { return nil } - obj := new(PhysicalDeviceBlendOperationAdvancedProperties) - obj.ref94cb3fa6 = (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(GraphicsPipelineShaderGroupsCreateInfoNV) + obj.refabf1b7d9 = (*C.VkGraphicsPipelineShaderGroupsCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceBlendOperationAdvancedProperties) PassRef() (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { +func (x *GraphicsPipelineShaderGroupsCreateInfoNV) PassRef() (*C.VkGraphicsPipelineShaderGroupsCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref94cb3fa6 != nil { - return x.ref94cb3fa6, nil + } else if x.refabf1b7d9 != nil { + return x.refabf1b7d9, nil } - mem94cb3fa6 := allocPhysicalDeviceBlendOperationAdvancedPropertiesMemory(1) - ref94cb3fa6 := (*C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)(mem94cb3fa6) - allocs94cb3fa6 := new(cgoAllocMap) - allocs94cb3fa6.Add(mem94cb3fa6) + memabf1b7d9 := allocGraphicsPipelineShaderGroupsCreateInfoNVMemory(1) + refabf1b7d9 := (*C.VkGraphicsPipelineShaderGroupsCreateInfoNV)(memabf1b7d9) + allocsabf1b7d9 := new(cgoAllocMap) + allocsabf1b7d9.Add(memabf1b7d9) var csType_allocs *cgoAllocMap - ref94cb3fa6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs94cb3fa6.Borrow(csType_allocs) + refabf1b7d9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsabf1b7d9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref94cb3fa6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs94cb3fa6.Borrow(cpNext_allocs) - - var cadvancedBlendMaxColorAttachments_allocs *cgoAllocMap - ref94cb3fa6.advancedBlendMaxColorAttachments, cadvancedBlendMaxColorAttachments_allocs = (C.uint32_t)(x.AdvancedBlendMaxColorAttachments), cgoAllocsUnknown - allocs94cb3fa6.Borrow(cadvancedBlendMaxColorAttachments_allocs) - - var cadvancedBlendIndependentBlend_allocs *cgoAllocMap - ref94cb3fa6.advancedBlendIndependentBlend, cadvancedBlendIndependentBlend_allocs = (C.VkBool32)(x.AdvancedBlendIndependentBlend), cgoAllocsUnknown - allocs94cb3fa6.Borrow(cadvancedBlendIndependentBlend_allocs) + refabf1b7d9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsabf1b7d9.Borrow(cpNext_allocs) - var cadvancedBlendNonPremultipliedSrcColor_allocs *cgoAllocMap - ref94cb3fa6.advancedBlendNonPremultipliedSrcColor, cadvancedBlendNonPremultipliedSrcColor_allocs = (C.VkBool32)(x.AdvancedBlendNonPremultipliedSrcColor), cgoAllocsUnknown - allocs94cb3fa6.Borrow(cadvancedBlendNonPremultipliedSrcColor_allocs) + var cgroupCount_allocs *cgoAllocMap + refabf1b7d9.groupCount, cgroupCount_allocs = (C.uint32_t)(x.GroupCount), cgoAllocsUnknown + allocsabf1b7d9.Borrow(cgroupCount_allocs) - var cadvancedBlendNonPremultipliedDstColor_allocs *cgoAllocMap - ref94cb3fa6.advancedBlendNonPremultipliedDstColor, cadvancedBlendNonPremultipliedDstColor_allocs = (C.VkBool32)(x.AdvancedBlendNonPremultipliedDstColor), cgoAllocsUnknown - allocs94cb3fa6.Borrow(cadvancedBlendNonPremultipliedDstColor_allocs) + var cpGroups_allocs *cgoAllocMap + refabf1b7d9.pGroups, cpGroups_allocs = unpackSGraphicsShaderGroupCreateInfoNV(x.PGroups) + allocsabf1b7d9.Borrow(cpGroups_allocs) - var cadvancedBlendCorrelatedOverlap_allocs *cgoAllocMap - ref94cb3fa6.advancedBlendCorrelatedOverlap, cadvancedBlendCorrelatedOverlap_allocs = (C.VkBool32)(x.AdvancedBlendCorrelatedOverlap), cgoAllocsUnknown - allocs94cb3fa6.Borrow(cadvancedBlendCorrelatedOverlap_allocs) + var cpipelineCount_allocs *cgoAllocMap + refabf1b7d9.pipelineCount, cpipelineCount_allocs = (C.uint32_t)(x.PipelineCount), cgoAllocsUnknown + allocsabf1b7d9.Borrow(cpipelineCount_allocs) - var cadvancedBlendAllOperations_allocs *cgoAllocMap - ref94cb3fa6.advancedBlendAllOperations, cadvancedBlendAllOperations_allocs = (C.VkBool32)(x.AdvancedBlendAllOperations), cgoAllocsUnknown - allocs94cb3fa6.Borrow(cadvancedBlendAllOperations_allocs) + var cpPipelines_allocs *cgoAllocMap + refabf1b7d9.pPipelines, cpPipelines_allocs = (*C.VkPipeline)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PPipelines)).Data)), cgoAllocsUnknown + allocsabf1b7d9.Borrow(cpPipelines_allocs) - x.ref94cb3fa6 = ref94cb3fa6 - x.allocs94cb3fa6 = allocs94cb3fa6 - return ref94cb3fa6, allocs94cb3fa6 + x.refabf1b7d9 = refabf1b7d9 + x.allocsabf1b7d9 = allocsabf1b7d9 + return refabf1b7d9, allocsabf1b7d9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceBlendOperationAdvancedProperties) PassValue() (C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, *cgoAllocMap) { - if x.ref94cb3fa6 != nil { - return *x.ref94cb3fa6, nil +func (x GraphicsPipelineShaderGroupsCreateInfoNV) PassValue() (C.VkGraphicsPipelineShaderGroupsCreateInfoNV, *cgoAllocMap) { + if x.refabf1b7d9 != nil { + return *x.refabf1b7d9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33173,103 +59896,89 @@ func (x PhysicalDeviceBlendOperationAdvancedProperties) PassValue() (C.VkPhysica // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceBlendOperationAdvancedProperties) Deref() { - if x.ref94cb3fa6 == nil { +func (x *GraphicsPipelineShaderGroupsCreateInfoNV) Deref() { + if x.refabf1b7d9 == nil { return } - x.SType = (StructureType)(x.ref94cb3fa6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref94cb3fa6.pNext)) - x.AdvancedBlendMaxColorAttachments = (uint32)(x.ref94cb3fa6.advancedBlendMaxColorAttachments) - x.AdvancedBlendIndependentBlend = (Bool32)(x.ref94cb3fa6.advancedBlendIndependentBlend) - x.AdvancedBlendNonPremultipliedSrcColor = (Bool32)(x.ref94cb3fa6.advancedBlendNonPremultipliedSrcColor) - x.AdvancedBlendNonPremultipliedDstColor = (Bool32)(x.ref94cb3fa6.advancedBlendNonPremultipliedDstColor) - x.AdvancedBlendCorrelatedOverlap = (Bool32)(x.ref94cb3fa6.advancedBlendCorrelatedOverlap) - x.AdvancedBlendAllOperations = (Bool32)(x.ref94cb3fa6.advancedBlendAllOperations) + x.SType = (StructureType)(x.refabf1b7d9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refabf1b7d9.pNext)) + x.GroupCount = (uint32)(x.refabf1b7d9.groupCount) + packSGraphicsShaderGroupCreateInfoNV(x.PGroups, x.refabf1b7d9.pGroups) + x.PipelineCount = (uint32)(x.refabf1b7d9.pipelineCount) + hxf08bba9 := (*sliceHeader)(unsafe.Pointer(&x.PPipelines)) + hxf08bba9.Data = unsafe.Pointer(x.refabf1b7d9.pPipelines) + hxf08bba9.Cap = 0x7fffffff + // hxf08bba9.Len = ? + } -// allocPipelineColorBlendAdvancedStateCreateInfoMemory allocates memory for type C.VkPipelineColorBlendAdvancedStateCreateInfoEXT in C. +// allocBindShaderGroupIndirectCommandNVMemory allocates memory for type C.VkBindShaderGroupIndirectCommandNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineColorBlendAdvancedStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineColorBlendAdvancedStateCreateInfoValue)) +func allocBindShaderGroupIndirectCommandNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindShaderGroupIndirectCommandNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineColorBlendAdvancedStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineColorBlendAdvancedStateCreateInfoEXT{}) +const sizeOfBindShaderGroupIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindShaderGroupIndirectCommandNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineColorBlendAdvancedStateCreateInfo) Ref() *C.VkPipelineColorBlendAdvancedStateCreateInfoEXT { +func (x *BindShaderGroupIndirectCommandNV) Ref() *C.VkBindShaderGroupIndirectCommandNV { if x == nil { return nil } - return x.refcd374989 + return x.ref4b098fa3 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineColorBlendAdvancedStateCreateInfo) Free() { - if x != nil && x.allocscd374989 != nil { - x.allocscd374989.(*cgoAllocMap).Free() - x.refcd374989 = nil +func (x *BindShaderGroupIndirectCommandNV) Free() { + if x != nil && x.allocs4b098fa3 != nil { + x.allocs4b098fa3.(*cgoAllocMap).Free() + x.ref4b098fa3 = nil } } -// NewPipelineColorBlendAdvancedStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBindShaderGroupIndirectCommandNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineColorBlendAdvancedStateCreateInfoRef(ref unsafe.Pointer) *PipelineColorBlendAdvancedStateCreateInfo { +func NewBindShaderGroupIndirectCommandNVRef(ref unsafe.Pointer) *BindShaderGroupIndirectCommandNV { if ref == nil { return nil } - obj := new(PipelineColorBlendAdvancedStateCreateInfo) - obj.refcd374989 = (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(BindShaderGroupIndirectCommandNV) + obj.ref4b098fa3 = (*C.VkBindShaderGroupIndirectCommandNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineColorBlendAdvancedStateCreateInfo) PassRef() (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { +func (x *BindShaderGroupIndirectCommandNV) PassRef() (*C.VkBindShaderGroupIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcd374989 != nil { - return x.refcd374989, nil + } else if x.ref4b098fa3 != nil { + return x.ref4b098fa3, nil } - memcd374989 := allocPipelineColorBlendAdvancedStateCreateInfoMemory(1) - refcd374989 := (*C.VkPipelineColorBlendAdvancedStateCreateInfoEXT)(memcd374989) - allocscd374989 := new(cgoAllocMap) - allocscd374989.Add(memcd374989) - - var csType_allocs *cgoAllocMap - refcd374989.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscd374989.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refcd374989.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscd374989.Borrow(cpNext_allocs) - - var csrcPremultiplied_allocs *cgoAllocMap - refcd374989.srcPremultiplied, csrcPremultiplied_allocs = (C.VkBool32)(x.SrcPremultiplied), cgoAllocsUnknown - allocscd374989.Borrow(csrcPremultiplied_allocs) - - var cdstPremultiplied_allocs *cgoAllocMap - refcd374989.dstPremultiplied, cdstPremultiplied_allocs = (C.VkBool32)(x.DstPremultiplied), cgoAllocsUnknown - allocscd374989.Borrow(cdstPremultiplied_allocs) + mem4b098fa3 := allocBindShaderGroupIndirectCommandNVMemory(1) + ref4b098fa3 := (*C.VkBindShaderGroupIndirectCommandNV)(mem4b098fa3) + allocs4b098fa3 := new(cgoAllocMap) + allocs4b098fa3.Add(mem4b098fa3) - var cblendOverlap_allocs *cgoAllocMap - refcd374989.blendOverlap, cblendOverlap_allocs = (C.VkBlendOverlapEXT)(x.BlendOverlap), cgoAllocsUnknown - allocscd374989.Borrow(cblendOverlap_allocs) + var cgroupIndex_allocs *cgoAllocMap + ref4b098fa3.groupIndex, cgroupIndex_allocs = (C.uint32_t)(x.GroupIndex), cgoAllocsUnknown + allocs4b098fa3.Borrow(cgroupIndex_allocs) - x.refcd374989 = refcd374989 - x.allocscd374989 = allocscd374989 - return refcd374989, allocscd374989 + x.ref4b098fa3 = ref4b098fa3 + x.allocs4b098fa3 = allocs4b098fa3 + return ref4b098fa3, allocs4b098fa3 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineColorBlendAdvancedStateCreateInfo) PassValue() (C.VkPipelineColorBlendAdvancedStateCreateInfoEXT, *cgoAllocMap) { - if x.refcd374989 != nil { - return *x.refcd374989, nil +func (x BindShaderGroupIndirectCommandNV) PassValue() (C.VkBindShaderGroupIndirectCommandNV, *cgoAllocMap) { + if x.ref4b098fa3 != nil { + return *x.ref4b098fa3, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33277,100 +59986,88 @@ func (x PipelineColorBlendAdvancedStateCreateInfo) PassValue() (C.VkPipelineColo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineColorBlendAdvancedStateCreateInfo) Deref() { - if x.refcd374989 == nil { +func (x *BindShaderGroupIndirectCommandNV) Deref() { + if x.ref4b098fa3 == nil { return } - x.SType = (StructureType)(x.refcd374989.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcd374989.pNext)) - x.SrcPremultiplied = (Bool32)(x.refcd374989.srcPremultiplied) - x.DstPremultiplied = (Bool32)(x.refcd374989.dstPremultiplied) - x.BlendOverlap = (BlendOverlap)(x.refcd374989.blendOverlap) + x.GroupIndex = (uint32)(x.ref4b098fa3.groupIndex) } -// allocPipelineCoverageToColorStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageToColorStateCreateInfoNV in C. +// allocBindIndexBufferIndirectCommandNVMemory allocates memory for type C.VkBindIndexBufferIndirectCommandNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineCoverageToColorStateCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCoverageToColorStateCreateInfoNVValue)) +func allocBindIndexBufferIndirectCommandNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindIndexBufferIndirectCommandNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineCoverageToColorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageToColorStateCreateInfoNV{}) +const sizeOfBindIndexBufferIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindIndexBufferIndirectCommandNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineCoverageToColorStateCreateInfoNV) Ref() *C.VkPipelineCoverageToColorStateCreateInfoNV { +func (x *BindIndexBufferIndirectCommandNV) Ref() *C.VkBindIndexBufferIndirectCommandNV { if x == nil { return nil } - return x.refcc6b7b68 + return x.ref74143926 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineCoverageToColorStateCreateInfoNV) Free() { - if x != nil && x.allocscc6b7b68 != nil { - x.allocscc6b7b68.(*cgoAllocMap).Free() - x.refcc6b7b68 = nil +func (x *BindIndexBufferIndirectCommandNV) Free() { + if x != nil && x.allocs74143926 != nil { + x.allocs74143926.(*cgoAllocMap).Free() + x.ref74143926 = nil } } -// NewPipelineCoverageToColorStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBindIndexBufferIndirectCommandNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineCoverageToColorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageToColorStateCreateInfoNV { +func NewBindIndexBufferIndirectCommandNVRef(ref unsafe.Pointer) *BindIndexBufferIndirectCommandNV { if ref == nil { return nil } - obj := new(PipelineCoverageToColorStateCreateInfoNV) - obj.refcc6b7b68 = (*C.VkPipelineCoverageToColorStateCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(BindIndexBufferIndirectCommandNV) + obj.ref74143926 = (*C.VkBindIndexBufferIndirectCommandNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineCoverageToColorStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { +func (x *BindIndexBufferIndirectCommandNV) PassRef() (*C.VkBindIndexBufferIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcc6b7b68 != nil { - return x.refcc6b7b68, nil + } else if x.ref74143926 != nil { + return x.ref74143926, nil } - memcc6b7b68 := allocPipelineCoverageToColorStateCreateInfoNVMemory(1) - refcc6b7b68 := (*C.VkPipelineCoverageToColorStateCreateInfoNV)(memcc6b7b68) - allocscc6b7b68 := new(cgoAllocMap) - allocscc6b7b68.Add(memcc6b7b68) - - var csType_allocs *cgoAllocMap - refcc6b7b68.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscc6b7b68.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refcc6b7b68.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscc6b7b68.Borrow(cpNext_allocs) + mem74143926 := allocBindIndexBufferIndirectCommandNVMemory(1) + ref74143926 := (*C.VkBindIndexBufferIndirectCommandNV)(mem74143926) + allocs74143926 := new(cgoAllocMap) + allocs74143926.Add(mem74143926) - var cflags_allocs *cgoAllocMap - refcc6b7b68.flags, cflags_allocs = (C.VkPipelineCoverageToColorStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown - allocscc6b7b68.Borrow(cflags_allocs) + var cbufferAddress_allocs *cgoAllocMap + ref74143926.bufferAddress, cbufferAddress_allocs = (C.VkDeviceAddress)(x.BufferAddress), cgoAllocsUnknown + allocs74143926.Borrow(cbufferAddress_allocs) - var ccoverageToColorEnable_allocs *cgoAllocMap - refcc6b7b68.coverageToColorEnable, ccoverageToColorEnable_allocs = (C.VkBool32)(x.CoverageToColorEnable), cgoAllocsUnknown - allocscc6b7b68.Borrow(ccoverageToColorEnable_allocs) + var csize_allocs *cgoAllocMap + ref74143926.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown + allocs74143926.Borrow(csize_allocs) - var ccoverageToColorLocation_allocs *cgoAllocMap - refcc6b7b68.coverageToColorLocation, ccoverageToColorLocation_allocs = (C.uint32_t)(x.CoverageToColorLocation), cgoAllocsUnknown - allocscc6b7b68.Borrow(ccoverageToColorLocation_allocs) + var cindexType_allocs *cgoAllocMap + ref74143926.indexType, cindexType_allocs = (C.VkIndexType)(x.IndexType), cgoAllocsUnknown + allocs74143926.Borrow(cindexType_allocs) - x.refcc6b7b68 = refcc6b7b68 - x.allocscc6b7b68 = allocscc6b7b68 - return refcc6b7b68, allocscc6b7b68 + x.ref74143926 = ref74143926 + x.allocs74143926 = allocs74143926 + return ref74143926, allocs74143926 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineCoverageToColorStateCreateInfoNV) PassValue() (C.VkPipelineCoverageToColorStateCreateInfoNV, *cgoAllocMap) { - if x.refcc6b7b68 != nil { - return *x.refcc6b7b68, nil +func (x BindIndexBufferIndirectCommandNV) PassValue() (C.VkBindIndexBufferIndirectCommandNV, *cgoAllocMap) { + if x.ref74143926 != nil { + return *x.ref74143926, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33378,108 +60075,90 @@ func (x PipelineCoverageToColorStateCreateInfoNV) PassValue() (C.VkPipelineCover // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineCoverageToColorStateCreateInfoNV) Deref() { - if x.refcc6b7b68 == nil { +func (x *BindIndexBufferIndirectCommandNV) Deref() { + if x.ref74143926 == nil { return } - x.SType = (StructureType)(x.refcc6b7b68.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcc6b7b68.pNext)) - x.Flags = (PipelineCoverageToColorStateCreateFlagsNV)(x.refcc6b7b68.flags) - x.CoverageToColorEnable = (Bool32)(x.refcc6b7b68.coverageToColorEnable) - x.CoverageToColorLocation = (uint32)(x.refcc6b7b68.coverageToColorLocation) + x.BufferAddress = (DeviceAddress)(x.ref74143926.bufferAddress) + x.Size = (uint32)(x.ref74143926.size) + x.IndexType = (IndexType)(x.ref74143926.indexType) } -// allocPipelineCoverageModulationStateCreateInfoNVMemory allocates memory for type C.VkPipelineCoverageModulationStateCreateInfoNV in C. +// allocBindVertexBufferIndirectCommandNVMemory allocates memory for type C.VkBindVertexBufferIndirectCommandNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineCoverageModulationStateCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineCoverageModulationStateCreateInfoNVValue)) +func allocBindVertexBufferIndirectCommandNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindVertexBufferIndirectCommandNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineCoverageModulationStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineCoverageModulationStateCreateInfoNV{}) +const sizeOfBindVertexBufferIndirectCommandNVValue = unsafe.Sizeof([1]C.VkBindVertexBufferIndirectCommandNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineCoverageModulationStateCreateInfoNV) Ref() *C.VkPipelineCoverageModulationStateCreateInfoNV { +func (x *BindVertexBufferIndirectCommandNV) Ref() *C.VkBindVertexBufferIndirectCommandNV { if x == nil { return nil } - return x.refa081b0ea + return x.refca56f95c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineCoverageModulationStateCreateInfoNV) Free() { - if x != nil && x.allocsa081b0ea != nil { - x.allocsa081b0ea.(*cgoAllocMap).Free() - x.refa081b0ea = nil +func (x *BindVertexBufferIndirectCommandNV) Free() { + if x != nil && x.allocsca56f95c != nil { + x.allocsca56f95c.(*cgoAllocMap).Free() + x.refca56f95c = nil } } -// NewPipelineCoverageModulationStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBindVertexBufferIndirectCommandNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineCoverageModulationStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineCoverageModulationStateCreateInfoNV { +func NewBindVertexBufferIndirectCommandNVRef(ref unsafe.Pointer) *BindVertexBufferIndirectCommandNV { if ref == nil { return nil } - obj := new(PipelineCoverageModulationStateCreateInfoNV) - obj.refa081b0ea = (*C.VkPipelineCoverageModulationStateCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(BindVertexBufferIndirectCommandNV) + obj.refca56f95c = (*C.VkBindVertexBufferIndirectCommandNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineCoverageModulationStateCreateInfoNV) PassRef() (*C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { +func (x *BindVertexBufferIndirectCommandNV) PassRef() (*C.VkBindVertexBufferIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa081b0ea != nil { - return x.refa081b0ea, nil + } else if x.refca56f95c != nil { + return x.refca56f95c, nil } - mema081b0ea := allocPipelineCoverageModulationStateCreateInfoNVMemory(1) - refa081b0ea := (*C.VkPipelineCoverageModulationStateCreateInfoNV)(mema081b0ea) - allocsa081b0ea := new(cgoAllocMap) - allocsa081b0ea.Add(mema081b0ea) - - var csType_allocs *cgoAllocMap - refa081b0ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa081b0ea.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - refa081b0ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa081b0ea.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - refa081b0ea.flags, cflags_allocs = (C.VkPipelineCoverageModulationStateCreateFlagsNV)(x.Flags), cgoAllocsUnknown - allocsa081b0ea.Borrow(cflags_allocs) - - var ccoverageModulationMode_allocs *cgoAllocMap - refa081b0ea.coverageModulationMode, ccoverageModulationMode_allocs = (C.VkCoverageModulationModeNV)(x.CoverageModulationMode), cgoAllocsUnknown - allocsa081b0ea.Borrow(ccoverageModulationMode_allocs) + memca56f95c := allocBindVertexBufferIndirectCommandNVMemory(1) + refca56f95c := (*C.VkBindVertexBufferIndirectCommandNV)(memca56f95c) + allocsca56f95c := new(cgoAllocMap) + allocsca56f95c.Add(memca56f95c) - var ccoverageModulationTableEnable_allocs *cgoAllocMap - refa081b0ea.coverageModulationTableEnable, ccoverageModulationTableEnable_allocs = (C.VkBool32)(x.CoverageModulationTableEnable), cgoAllocsUnknown - allocsa081b0ea.Borrow(ccoverageModulationTableEnable_allocs) + var cbufferAddress_allocs *cgoAllocMap + refca56f95c.bufferAddress, cbufferAddress_allocs = (C.VkDeviceAddress)(x.BufferAddress), cgoAllocsUnknown + allocsca56f95c.Borrow(cbufferAddress_allocs) - var ccoverageModulationTableCount_allocs *cgoAllocMap - refa081b0ea.coverageModulationTableCount, ccoverageModulationTableCount_allocs = (C.uint32_t)(x.CoverageModulationTableCount), cgoAllocsUnknown - allocsa081b0ea.Borrow(ccoverageModulationTableCount_allocs) + var csize_allocs *cgoAllocMap + refca56f95c.size, csize_allocs = (C.uint32_t)(x.Size), cgoAllocsUnknown + allocsca56f95c.Borrow(csize_allocs) - var cpCoverageModulationTable_allocs *cgoAllocMap - refa081b0ea.pCoverageModulationTable, cpCoverageModulationTable_allocs = (*C.float)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable)).Data)), cgoAllocsUnknown - allocsa081b0ea.Borrow(cpCoverageModulationTable_allocs) + var cstride_allocs *cgoAllocMap + refca56f95c.stride, cstride_allocs = (C.uint32_t)(x.Stride), cgoAllocsUnknown + allocsca56f95c.Borrow(cstride_allocs) - x.refa081b0ea = refa081b0ea - x.allocsa081b0ea = allocsa081b0ea - return refa081b0ea, allocsa081b0ea + x.refca56f95c = refca56f95c + x.allocsca56f95c = allocsca56f95c + return refca56f95c, allocsca56f95c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineCoverageModulationStateCreateInfoNV) PassValue() (C.VkPipelineCoverageModulationStateCreateInfoNV, *cgoAllocMap) { - if x.refa081b0ea != nil { - return *x.refa081b0ea, nil +func (x BindVertexBufferIndirectCommandNV) PassValue() (C.VkBindVertexBufferIndirectCommandNV, *cgoAllocMap) { + if x.refca56f95c != nil { + return *x.refca56f95c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33487,98 +60166,82 @@ func (x PipelineCoverageModulationStateCreateInfoNV) PassValue() (C.VkPipelineCo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineCoverageModulationStateCreateInfoNV) Deref() { - if x.refa081b0ea == nil { +func (x *BindVertexBufferIndirectCommandNV) Deref() { + if x.refca56f95c == nil { return } - x.SType = (StructureType)(x.refa081b0ea.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa081b0ea.pNext)) - x.Flags = (PipelineCoverageModulationStateCreateFlagsNV)(x.refa081b0ea.flags) - x.CoverageModulationMode = (CoverageModulationModeNV)(x.refa081b0ea.coverageModulationMode) - x.CoverageModulationTableEnable = (Bool32)(x.refa081b0ea.coverageModulationTableEnable) - x.CoverageModulationTableCount = (uint32)(x.refa081b0ea.coverageModulationTableCount) - hxf8e0dd2 := (*sliceHeader)(unsafe.Pointer(&x.PCoverageModulationTable)) - hxf8e0dd2.Data = unsafe.Pointer(x.refa081b0ea.pCoverageModulationTable) - hxf8e0dd2.Cap = 0x7fffffff - // hxf8e0dd2.Len = ? - + x.BufferAddress = (DeviceAddress)(x.refca56f95c.bufferAddress) + x.Size = (uint32)(x.refca56f95c.size) + x.Stride = (uint32)(x.refca56f95c.stride) } -// allocDrmFormatModifierPropertiesMemory allocates memory for type C.VkDrmFormatModifierPropertiesEXT in C. +// allocSetStateFlagsIndirectCommandNVMemory allocates memory for type C.VkSetStateFlagsIndirectCommandNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocDrmFormatModifierPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierPropertiesValue)) +func allocSetStateFlagsIndirectCommandNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSetStateFlagsIndirectCommandNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesEXT{}) +const sizeOfSetStateFlagsIndirectCommandNVValue = unsafe.Sizeof([1]C.VkSetStateFlagsIndirectCommandNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrmFormatModifierProperties) Ref() *C.VkDrmFormatModifierPropertiesEXT { +func (x *SetStateFlagsIndirectCommandNV) Ref() *C.VkSetStateFlagsIndirectCommandNV { if x == nil { return nil } - return x.ref7dcb7f85 + return x.ref89ae676d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DrmFormatModifierProperties) Free() { - if x != nil && x.allocs7dcb7f85 != nil { - x.allocs7dcb7f85.(*cgoAllocMap).Free() - x.ref7dcb7f85 = nil +func (x *SetStateFlagsIndirectCommandNV) Free() { + if x != nil && x.allocs89ae676d != nil { + x.allocs89ae676d.(*cgoAllocMap).Free() + x.ref89ae676d = nil } } -// NewDrmFormatModifierPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSetStateFlagsIndirectCommandNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *DrmFormatModifierProperties { +func NewSetStateFlagsIndirectCommandNVRef(ref unsafe.Pointer) *SetStateFlagsIndirectCommandNV { if ref == nil { return nil } - obj := new(DrmFormatModifierProperties) - obj.ref7dcb7f85 = (*C.VkDrmFormatModifierPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(SetStateFlagsIndirectCommandNV) + obj.ref89ae676d = (*C.VkSetStateFlagsIndirectCommandNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DrmFormatModifierProperties) PassRef() (*C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { +func (x *SetStateFlagsIndirectCommandNV) PassRef() (*C.VkSetStateFlagsIndirectCommandNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7dcb7f85 != nil { - return x.ref7dcb7f85, nil + } else if x.ref89ae676d != nil { + return x.ref89ae676d, nil } - mem7dcb7f85 := allocDrmFormatModifierPropertiesMemory(1) - ref7dcb7f85 := (*C.VkDrmFormatModifierPropertiesEXT)(mem7dcb7f85) - allocs7dcb7f85 := new(cgoAllocMap) - allocs7dcb7f85.Add(mem7dcb7f85) + mem89ae676d := allocSetStateFlagsIndirectCommandNVMemory(1) + ref89ae676d := (*C.VkSetStateFlagsIndirectCommandNV)(mem89ae676d) + allocs89ae676d := new(cgoAllocMap) + allocs89ae676d.Add(mem89ae676d) - var cdrmFormatModifier_allocs *cgoAllocMap - ref7dcb7f85.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocs7dcb7f85.Borrow(cdrmFormatModifier_allocs) - - var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap - ref7dcb7f85.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown - allocs7dcb7f85.Borrow(cdrmFormatModifierPlaneCount_allocs) - - var cdrmFormatModifierTilingFeatures_allocs *cgoAllocMap - ref7dcb7f85.drmFormatModifierTilingFeatures, cdrmFormatModifierTilingFeatures_allocs = (C.VkFormatFeatureFlags)(x.DrmFormatModifierTilingFeatures), cgoAllocsUnknown - allocs7dcb7f85.Borrow(cdrmFormatModifierTilingFeatures_allocs) + var cdata_allocs *cgoAllocMap + ref89ae676d.data, cdata_allocs = (C.uint32_t)(x.Data), cgoAllocsUnknown + allocs89ae676d.Borrow(cdata_allocs) - x.ref7dcb7f85 = ref7dcb7f85 - x.allocs7dcb7f85 = allocs7dcb7f85 - return ref7dcb7f85, allocs7dcb7f85 + x.ref89ae676d = ref89ae676d + x.allocs89ae676d = allocs89ae676d + return ref89ae676d, allocs89ae676d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DrmFormatModifierProperties) PassValue() (C.VkDrmFormatModifierPropertiesEXT, *cgoAllocMap) { - if x.ref7dcb7f85 != nil { - return *x.ref7dcb7f85, nil +func (x SetStateFlagsIndirectCommandNV) PassValue() (C.VkSetStateFlagsIndirectCommandNV, *cgoAllocMap) { + if x.ref89ae676d != nil { + return *x.ref89ae676d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33586,132 +60249,84 @@ func (x DrmFormatModifierProperties) PassValue() (C.VkDrmFormatModifierPropertie // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DrmFormatModifierProperties) Deref() { - if x.ref7dcb7f85 == nil { +func (x *SetStateFlagsIndirectCommandNV) Deref() { + if x.ref89ae676d == nil { return } - x.DrmFormatModifier = (uint64)(x.ref7dcb7f85.drmFormatModifier) - x.DrmFormatModifierPlaneCount = (uint32)(x.ref7dcb7f85.drmFormatModifierPlaneCount) - x.DrmFormatModifierTilingFeatures = (FormatFeatureFlags)(x.ref7dcb7f85.drmFormatModifierTilingFeatures) + x.Data = (uint32)(x.ref89ae676d.data) } -// allocDrmFormatModifierPropertiesListMemory allocates memory for type C.VkDrmFormatModifierPropertiesListEXT in C. +// allocIndirectCommandsStreamNVMemory allocates memory for type C.VkIndirectCommandsStreamNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocDrmFormatModifierPropertiesListMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrmFormatModifierPropertiesListValue)) +func allocIndirectCommandsStreamNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsStreamNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDrmFormatModifierPropertiesListValue = unsafe.Sizeof([1]C.VkDrmFormatModifierPropertiesListEXT{}) - -// unpackSDrmFormatModifierProperties transforms a sliced Go data structure into plain C format. -func unpackSDrmFormatModifierProperties(x []DrmFormatModifierProperties) (unpacked *C.VkDrmFormatModifierPropertiesEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkDrmFormatModifierPropertiesEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocDrmFormatModifierPropertiesMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkDrmFormatModifierPropertiesEXT)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkDrmFormatModifierPropertiesEXT)(h.Data) - return -} - -// packSDrmFormatModifierProperties reads sliced Go data structure out from plain C format. -func packSDrmFormatModifierProperties(v []DrmFormatModifierProperties, ptr0 *C.VkDrmFormatModifierPropertiesEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfDrmFormatModifierPropertiesValue]C.VkDrmFormatModifierPropertiesEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewDrmFormatModifierPropertiesRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfIndirectCommandsStreamNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsStreamNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrmFormatModifierPropertiesList) Ref() *C.VkDrmFormatModifierPropertiesListEXT { +func (x *IndirectCommandsStreamNV) Ref() *C.VkIndirectCommandsStreamNV { if x == nil { return nil } - return x.ref7e3ede2 + return x.refc623636a } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DrmFormatModifierPropertiesList) Free() { - if x != nil && x.allocs7e3ede2 != nil { - x.allocs7e3ede2.(*cgoAllocMap).Free() - x.ref7e3ede2 = nil +func (x *IndirectCommandsStreamNV) Free() { + if x != nil && x.allocsc623636a != nil { + x.allocsc623636a.(*cgoAllocMap).Free() + x.refc623636a = nil } } -// NewDrmFormatModifierPropertiesListRef creates a new wrapper struct with underlying reference set to the original C object. +// NewIndirectCommandsStreamNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDrmFormatModifierPropertiesListRef(ref unsafe.Pointer) *DrmFormatModifierPropertiesList { +func NewIndirectCommandsStreamNVRef(ref unsafe.Pointer) *IndirectCommandsStreamNV { if ref == nil { return nil } - obj := new(DrmFormatModifierPropertiesList) - obj.ref7e3ede2 = (*C.VkDrmFormatModifierPropertiesListEXT)(unsafe.Pointer(ref)) + obj := new(IndirectCommandsStreamNV) + obj.refc623636a = (*C.VkIndirectCommandsStreamNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DrmFormatModifierPropertiesList) PassRef() (*C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { +func (x *IndirectCommandsStreamNV) PassRef() (*C.VkIndirectCommandsStreamNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7e3ede2 != nil { - return x.ref7e3ede2, nil + } else if x.refc623636a != nil { + return x.refc623636a, nil } - mem7e3ede2 := allocDrmFormatModifierPropertiesListMemory(1) - ref7e3ede2 := (*C.VkDrmFormatModifierPropertiesListEXT)(mem7e3ede2) - allocs7e3ede2 := new(cgoAllocMap) - allocs7e3ede2.Add(mem7e3ede2) - - var csType_allocs *cgoAllocMap - ref7e3ede2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7e3ede2.Borrow(csType_allocs) - - var cpNext_allocs *cgoAllocMap - ref7e3ede2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7e3ede2.Borrow(cpNext_allocs) - - var cdrmFormatModifierCount_allocs *cgoAllocMap - ref7e3ede2.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown - allocs7e3ede2.Borrow(cdrmFormatModifierCount_allocs) + memc623636a := allocIndirectCommandsStreamNVMemory(1) + refc623636a := (*C.VkIndirectCommandsStreamNV)(memc623636a) + allocsc623636a := new(cgoAllocMap) + allocsc623636a.Add(memc623636a) - var cpDrmFormatModifierProperties_allocs *cgoAllocMap - ref7e3ede2.pDrmFormatModifierProperties, cpDrmFormatModifierProperties_allocs = unpackSDrmFormatModifierProperties(x.PDrmFormatModifierProperties) - allocs7e3ede2.Borrow(cpDrmFormatModifierProperties_allocs) + var cbuffer_allocs *cgoAllocMap + refc623636a.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocsc623636a.Borrow(cbuffer_allocs) - x.ref7e3ede2 = ref7e3ede2 - x.allocs7e3ede2 = allocs7e3ede2 - return ref7e3ede2, allocs7e3ede2 + var coffset_allocs *cgoAllocMap + refc623636a.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown + allocsc623636a.Borrow(coffset_allocs) + + x.refc623636a = refc623636a + x.allocsc623636a = allocsc623636a + return refc623636a, allocsc623636a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DrmFormatModifierPropertiesList) PassValue() (C.VkDrmFormatModifierPropertiesListEXT, *cgoAllocMap) { - if x.ref7e3ede2 != nil { - return *x.ref7e3ede2, nil +func (x IndirectCommandsStreamNV) PassValue() (C.VkIndirectCommandsStreamNV, *cgoAllocMap) { + if x.refc623636a != nil { + return *x.refc623636a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33719,103 +60334,137 @@ func (x DrmFormatModifierPropertiesList) PassValue() (C.VkDrmFormatModifierPrope // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DrmFormatModifierPropertiesList) Deref() { - if x.ref7e3ede2 == nil { +func (x *IndirectCommandsStreamNV) Deref() { + if x.refc623636a == nil { return } - x.SType = (StructureType)(x.ref7e3ede2.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7e3ede2.pNext)) - x.DrmFormatModifierCount = (uint32)(x.ref7e3ede2.drmFormatModifierCount) - packSDrmFormatModifierProperties(x.PDrmFormatModifierProperties, x.ref7e3ede2.pDrmFormatModifierProperties) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.refc623636a.buffer)) + x.Offset = (DeviceSize)(x.refc623636a.offset) } -// allocPhysicalDeviceImageDrmFormatModifierInfoMemory allocates memory for type C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT in C. +// allocIndirectCommandsLayoutTokenNVMemory allocates memory for type C.VkIndirectCommandsLayoutTokenNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceImageDrmFormatModifierInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageDrmFormatModifierInfoValue)) +func allocIndirectCommandsLayoutTokenNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsLayoutTokenNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceImageDrmFormatModifierInfoValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT{}) +const sizeOfIndirectCommandsLayoutTokenNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsLayoutTokenNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceImageDrmFormatModifierInfo) Ref() *C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT { +func (x *IndirectCommandsLayoutTokenNV) Ref() *C.VkIndirectCommandsLayoutTokenNV { if x == nil { return nil } - return x.refd7abef44 + return x.ref96f52b76 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceImageDrmFormatModifierInfo) Free() { - if x != nil && x.allocsd7abef44 != nil { - x.allocsd7abef44.(*cgoAllocMap).Free() - x.refd7abef44 = nil +func (x *IndirectCommandsLayoutTokenNV) Free() { + if x != nil && x.allocs96f52b76 != nil { + x.allocs96f52b76.(*cgoAllocMap).Free() + x.ref96f52b76 = nil } } -// NewPhysicalDeviceImageDrmFormatModifierInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewIndirectCommandsLayoutTokenNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceImageDrmFormatModifierInfoRef(ref unsafe.Pointer) *PhysicalDeviceImageDrmFormatModifierInfo { +func NewIndirectCommandsLayoutTokenNVRef(ref unsafe.Pointer) *IndirectCommandsLayoutTokenNV { if ref == nil { return nil } - obj := new(PhysicalDeviceImageDrmFormatModifierInfo) - obj.refd7abef44 = (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT)(unsafe.Pointer(ref)) + obj := new(IndirectCommandsLayoutTokenNV) + obj.ref96f52b76 = (*C.VkIndirectCommandsLayoutTokenNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceImageDrmFormatModifierInfo) PassRef() (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { +func (x *IndirectCommandsLayoutTokenNV) PassRef() (*C.VkIndirectCommandsLayoutTokenNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd7abef44 != nil { - return x.refd7abef44, nil + } else if x.ref96f52b76 != nil { + return x.ref96f52b76, nil } - memd7abef44 := allocPhysicalDeviceImageDrmFormatModifierInfoMemory(1) - refd7abef44 := (*C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT)(memd7abef44) - allocsd7abef44 := new(cgoAllocMap) - allocsd7abef44.Add(memd7abef44) + mem96f52b76 := allocIndirectCommandsLayoutTokenNVMemory(1) + ref96f52b76 := (*C.VkIndirectCommandsLayoutTokenNV)(mem96f52b76) + allocs96f52b76 := new(cgoAllocMap) + allocs96f52b76.Add(mem96f52b76) var csType_allocs *cgoAllocMap - refd7abef44.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd7abef44.Borrow(csType_allocs) + ref96f52b76.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs96f52b76.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd7abef44.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd7abef44.Borrow(cpNext_allocs) + ref96f52b76.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs96f52b76.Borrow(cpNext_allocs) - var cdrmFormatModifier_allocs *cgoAllocMap - refd7abef44.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocsd7abef44.Borrow(cdrmFormatModifier_allocs) + var ctokenType_allocs *cgoAllocMap + ref96f52b76.tokenType, ctokenType_allocs = (C.VkIndirectCommandsTokenTypeNV)(x.TokenType), cgoAllocsUnknown + allocs96f52b76.Borrow(ctokenType_allocs) - var csharingMode_allocs *cgoAllocMap - refd7abef44.sharingMode, csharingMode_allocs = (C.VkSharingMode)(x.SharingMode), cgoAllocsUnknown - allocsd7abef44.Borrow(csharingMode_allocs) + var cstream_allocs *cgoAllocMap + ref96f52b76.stream, cstream_allocs = (C.uint32_t)(x.Stream), cgoAllocsUnknown + allocs96f52b76.Borrow(cstream_allocs) - var cqueueFamilyIndexCount_allocs *cgoAllocMap - refd7abef44.queueFamilyIndexCount, cqueueFamilyIndexCount_allocs = (C.uint32_t)(x.QueueFamilyIndexCount), cgoAllocsUnknown - allocsd7abef44.Borrow(cqueueFamilyIndexCount_allocs) + var coffset_allocs *cgoAllocMap + ref96f52b76.offset, coffset_allocs = (C.uint32_t)(x.Offset), cgoAllocsUnknown + allocs96f52b76.Borrow(coffset_allocs) - var cpQueueFamilyIndices_allocs *cgoAllocMap - refd7abef44.pQueueFamilyIndices, cpQueueFamilyIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)).Data)), cgoAllocsUnknown - allocsd7abef44.Borrow(cpQueueFamilyIndices_allocs) + var cvertexBindingUnit_allocs *cgoAllocMap + ref96f52b76.vertexBindingUnit, cvertexBindingUnit_allocs = (C.uint32_t)(x.VertexBindingUnit), cgoAllocsUnknown + allocs96f52b76.Borrow(cvertexBindingUnit_allocs) - x.refd7abef44 = refd7abef44 - x.allocsd7abef44 = allocsd7abef44 - return refd7abef44, allocsd7abef44 + var cvertexDynamicStride_allocs *cgoAllocMap + ref96f52b76.vertexDynamicStride, cvertexDynamicStride_allocs = (C.VkBool32)(x.VertexDynamicStride), cgoAllocsUnknown + allocs96f52b76.Borrow(cvertexDynamicStride_allocs) + + var cpushconstantPipelineLayout_allocs *cgoAllocMap + ref96f52b76.pushconstantPipelineLayout, cpushconstantPipelineLayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.PushconstantPipelineLayout)), cgoAllocsUnknown + allocs96f52b76.Borrow(cpushconstantPipelineLayout_allocs) + + var cpushconstantShaderStageFlags_allocs *cgoAllocMap + ref96f52b76.pushconstantShaderStageFlags, cpushconstantShaderStageFlags_allocs = (C.VkShaderStageFlags)(x.PushconstantShaderStageFlags), cgoAllocsUnknown + allocs96f52b76.Borrow(cpushconstantShaderStageFlags_allocs) + + var cpushconstantOffset_allocs *cgoAllocMap + ref96f52b76.pushconstantOffset, cpushconstantOffset_allocs = (C.uint32_t)(x.PushconstantOffset), cgoAllocsUnknown + allocs96f52b76.Borrow(cpushconstantOffset_allocs) + + var cpushconstantSize_allocs *cgoAllocMap + ref96f52b76.pushconstantSize, cpushconstantSize_allocs = (C.uint32_t)(x.PushconstantSize), cgoAllocsUnknown + allocs96f52b76.Borrow(cpushconstantSize_allocs) + + var cindirectStateFlags_allocs *cgoAllocMap + ref96f52b76.indirectStateFlags, cindirectStateFlags_allocs = (C.VkIndirectStateFlagsNV)(x.IndirectStateFlags), cgoAllocsUnknown + allocs96f52b76.Borrow(cindirectStateFlags_allocs) + + var cindexTypeCount_allocs *cgoAllocMap + ref96f52b76.indexTypeCount, cindexTypeCount_allocs = (C.uint32_t)(x.IndexTypeCount), cgoAllocsUnknown + allocs96f52b76.Borrow(cindexTypeCount_allocs) + + var cpIndexTypes_allocs *cgoAllocMap + ref96f52b76.pIndexTypes, cpIndexTypes_allocs = (*C.VkIndexType)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PIndexTypes)).Data)), cgoAllocsUnknown + allocs96f52b76.Borrow(cpIndexTypes_allocs) + + var cpIndexTypeValues_allocs *cgoAllocMap + ref96f52b76.pIndexTypeValues, cpIndexTypeValues_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PIndexTypeValues)).Data)), cgoAllocsUnknown + allocs96f52b76.Borrow(cpIndexTypeValues_allocs) + + x.ref96f52b76 = ref96f52b76 + x.allocs96f52b76 = allocs96f52b76 + return ref96f52b76, allocs96f52b76 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceImageDrmFormatModifierInfo) PassValue() (C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT, *cgoAllocMap) { - if x.refd7abef44 != nil { - return *x.refd7abef44, nil +func (x IndirectCommandsLayoutTokenNV) PassValue() (C.VkIndirectCommandsLayoutTokenNV, *cgoAllocMap) { + if x.ref96f52b76 != nil { + return *x.ref96f52b76, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33823,101 +60472,168 @@ func (x PhysicalDeviceImageDrmFormatModifierInfo) PassValue() (C.VkPhysicalDevic // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceImageDrmFormatModifierInfo) Deref() { - if x.refd7abef44 == nil { +func (x *IndirectCommandsLayoutTokenNV) Deref() { + if x.ref96f52b76 == nil { return } - x.SType = (StructureType)(x.refd7abef44.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd7abef44.pNext)) - x.DrmFormatModifier = (uint64)(x.refd7abef44.drmFormatModifier) - x.SharingMode = (SharingMode)(x.refd7abef44.sharingMode) - x.QueueFamilyIndexCount = (uint32)(x.refd7abef44.queueFamilyIndexCount) - hxf44d909 := (*sliceHeader)(unsafe.Pointer(&x.PQueueFamilyIndices)) - hxf44d909.Data = unsafe.Pointer(x.refd7abef44.pQueueFamilyIndices) - hxf44d909.Cap = 0x7fffffff - // hxf44d909.Len = ? - -} - -// allocImageDrmFormatModifierListCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierListCreateInfoEXT in C. + x.SType = (StructureType)(x.ref96f52b76.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref96f52b76.pNext)) + x.TokenType = (IndirectCommandsTokenTypeNV)(x.ref96f52b76.tokenType) + x.Stream = (uint32)(x.ref96f52b76.stream) + x.Offset = (uint32)(x.ref96f52b76.offset) + x.VertexBindingUnit = (uint32)(x.ref96f52b76.vertexBindingUnit) + x.VertexDynamicStride = (Bool32)(x.ref96f52b76.vertexDynamicStride) + x.PushconstantPipelineLayout = *(*PipelineLayout)(unsafe.Pointer(&x.ref96f52b76.pushconstantPipelineLayout)) + x.PushconstantShaderStageFlags = (ShaderStageFlags)(x.ref96f52b76.pushconstantShaderStageFlags) + x.PushconstantOffset = (uint32)(x.ref96f52b76.pushconstantOffset) + x.PushconstantSize = (uint32)(x.ref96f52b76.pushconstantSize) + x.IndirectStateFlags = (IndirectStateFlagsNV)(x.ref96f52b76.indirectStateFlags) + x.IndexTypeCount = (uint32)(x.ref96f52b76.indexTypeCount) + hxfd3aa9c := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypes)) + hxfd3aa9c.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypes) + hxfd3aa9c.Cap = 0x7fffffff + // hxfd3aa9c.Len = ? + + hxfb2f596 := (*sliceHeader)(unsafe.Pointer(&x.PIndexTypeValues)) + hxfb2f596.Data = unsafe.Pointer(x.ref96f52b76.pIndexTypeValues) + hxfb2f596.Cap = 0x7fffffff + // hxfb2f596.Len = ? + +} + +// allocIndirectCommandsLayoutCreateInfoNVMemory allocates memory for type C.VkIndirectCommandsLayoutCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageDrmFormatModifierListCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageDrmFormatModifierListCreateInfoValue)) +func allocIndirectCommandsLayoutCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfIndirectCommandsLayoutCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageDrmFormatModifierListCreateInfoValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierListCreateInfoEXT{}) +const sizeOfIndirectCommandsLayoutCreateInfoNVValue = unsafe.Sizeof([1]C.VkIndirectCommandsLayoutCreateInfoNV{}) + +// unpackSIndirectCommandsLayoutTokenNV transforms a sliced Go data structure into plain C format. +func unpackSIndirectCommandsLayoutTokenNV(x []IndirectCommandsLayoutTokenNV) (unpacked *C.VkIndirectCommandsLayoutTokenNV, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + allocs = new(cgoAllocMap) + defer runtime.SetFinalizer(&unpacked, func(**C.VkIndirectCommandsLayoutTokenNV) { + go allocs.Free() + }) + + len0 := len(x) + mem0 := allocIndirectCommandsLayoutTokenNVMemory(len0) + allocs.Add(mem0) + h0 := &sliceHeader{ + Data: mem0, + Cap: len0, + Len: len0, + } + v0 := *(*[]C.VkIndirectCommandsLayoutTokenNV)(unsafe.Pointer(h0)) + for i0 := range x { + allocs0 := new(cgoAllocMap) + v0[i0], allocs0 = x[i0].PassValue() + allocs.Borrow(allocs0) + } + h := (*sliceHeader)(unsafe.Pointer(&v0)) + unpacked = (*C.VkIndirectCommandsLayoutTokenNV)(h.Data) + return +} + +// packSIndirectCommandsLayoutTokenNV reads sliced Go data structure out from plain C format. +func packSIndirectCommandsLayoutTokenNV(v []IndirectCommandsLayoutTokenNV, ptr0 *C.VkIndirectCommandsLayoutTokenNV) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfIndirectCommandsLayoutTokenNVValue]C.VkIndirectCommandsLayoutTokenNV)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewIndirectCommandsLayoutTokenNVRef(unsafe.Pointer(&ptr1)) + } +} // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageDrmFormatModifierListCreateInfo) Ref() *C.VkImageDrmFormatModifierListCreateInfoEXT { +func (x *IndirectCommandsLayoutCreateInfoNV) Ref() *C.VkIndirectCommandsLayoutCreateInfoNV { if x == nil { return nil } - return x.ref544538ab + return x.ref48273185 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageDrmFormatModifierListCreateInfo) Free() { - if x != nil && x.allocs544538ab != nil { - x.allocs544538ab.(*cgoAllocMap).Free() - x.ref544538ab = nil +func (x *IndirectCommandsLayoutCreateInfoNV) Free() { + if x != nil && x.allocs48273185 != nil { + x.allocs48273185.(*cgoAllocMap).Free() + x.ref48273185 = nil } } -// NewImageDrmFormatModifierListCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewIndirectCommandsLayoutCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageDrmFormatModifierListCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierListCreateInfo { +func NewIndirectCommandsLayoutCreateInfoNVRef(ref unsafe.Pointer) *IndirectCommandsLayoutCreateInfoNV { if ref == nil { return nil } - obj := new(ImageDrmFormatModifierListCreateInfo) - obj.ref544538ab = (*C.VkImageDrmFormatModifierListCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(IndirectCommandsLayoutCreateInfoNV) + obj.ref48273185 = (*C.VkIndirectCommandsLayoutCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageDrmFormatModifierListCreateInfo) PassRef() (*C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { +func (x *IndirectCommandsLayoutCreateInfoNV) PassRef() (*C.VkIndirectCommandsLayoutCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref544538ab != nil { - return x.ref544538ab, nil + } else if x.ref48273185 != nil { + return x.ref48273185, nil } - mem544538ab := allocImageDrmFormatModifierListCreateInfoMemory(1) - ref544538ab := (*C.VkImageDrmFormatModifierListCreateInfoEXT)(mem544538ab) - allocs544538ab := new(cgoAllocMap) - allocs544538ab.Add(mem544538ab) + mem48273185 := allocIndirectCommandsLayoutCreateInfoNVMemory(1) + ref48273185 := (*C.VkIndirectCommandsLayoutCreateInfoNV)(mem48273185) + allocs48273185 := new(cgoAllocMap) + allocs48273185.Add(mem48273185) var csType_allocs *cgoAllocMap - ref544538ab.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs544538ab.Borrow(csType_allocs) + ref48273185.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs48273185.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref544538ab.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs544538ab.Borrow(cpNext_allocs) + ref48273185.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs48273185.Borrow(cpNext_allocs) - var cdrmFormatModifierCount_allocs *cgoAllocMap - ref544538ab.drmFormatModifierCount, cdrmFormatModifierCount_allocs = (C.uint32_t)(x.DrmFormatModifierCount), cgoAllocsUnknown - allocs544538ab.Borrow(cdrmFormatModifierCount_allocs) + var cflags_allocs *cgoAllocMap + ref48273185.flags, cflags_allocs = (C.VkIndirectCommandsLayoutUsageFlagsNV)(x.Flags), cgoAllocsUnknown + allocs48273185.Borrow(cflags_allocs) - var cpDrmFormatModifiers_allocs *cgoAllocMap - ref544538ab.pDrmFormatModifiers, cpDrmFormatModifiers_allocs = (*C.uint64_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDrmFormatModifiers)).Data)), cgoAllocsUnknown - allocs544538ab.Borrow(cpDrmFormatModifiers_allocs) + var cpipelineBindPoint_allocs *cgoAllocMap + ref48273185.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocs48273185.Borrow(cpipelineBindPoint_allocs) - x.ref544538ab = ref544538ab - x.allocs544538ab = allocs544538ab - return ref544538ab, allocs544538ab + var ctokenCount_allocs *cgoAllocMap + ref48273185.tokenCount, ctokenCount_allocs = (C.uint32_t)(x.TokenCount), cgoAllocsUnknown + allocs48273185.Borrow(ctokenCount_allocs) + + var cpTokens_allocs *cgoAllocMap + ref48273185.pTokens, cpTokens_allocs = unpackSIndirectCommandsLayoutTokenNV(x.PTokens) + allocs48273185.Borrow(cpTokens_allocs) + + var cstreamCount_allocs *cgoAllocMap + ref48273185.streamCount, cstreamCount_allocs = (C.uint32_t)(x.StreamCount), cgoAllocsUnknown + allocs48273185.Borrow(cstreamCount_allocs) + + var cpStreamStrides_allocs *cgoAllocMap + ref48273185.pStreamStrides, cpStreamStrides_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PStreamStrides)).Data)), cgoAllocsUnknown + allocs48273185.Borrow(cpStreamStrides_allocs) + + x.ref48273185 = ref48273185 + x.allocs48273185 = allocs48273185 + return ref48273185, allocs48273185 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageDrmFormatModifierListCreateInfo) PassValue() (C.VkImageDrmFormatModifierListCreateInfoEXT, *cgoAllocMap) { - if x.ref544538ab != nil { - return *x.ref544538ab, nil +func (x IndirectCommandsLayoutCreateInfoNV) PassValue() (C.VkIndirectCommandsLayoutCreateInfoNV, *cgoAllocMap) { + if x.ref48273185 != nil { + return *x.ref48273185, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -33925,141 +60641,185 @@ func (x ImageDrmFormatModifierListCreateInfo) PassValue() (C.VkImageDrmFormatMod // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageDrmFormatModifierListCreateInfo) Deref() { - if x.ref544538ab == nil { +func (x *IndirectCommandsLayoutCreateInfoNV) Deref() { + if x.ref48273185 == nil { return } - x.SType = (StructureType)(x.ref544538ab.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref544538ab.pNext)) - x.DrmFormatModifierCount = (uint32)(x.ref544538ab.drmFormatModifierCount) - hxfa835e7 := (*sliceHeader)(unsafe.Pointer(&x.PDrmFormatModifiers)) - hxfa835e7.Data = unsafe.Pointer(x.ref544538ab.pDrmFormatModifiers) - hxfa835e7.Cap = 0x7fffffff - // hxfa835e7.Len = ? + x.SType = (StructureType)(x.ref48273185.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref48273185.pNext)) + x.Flags = (IndirectCommandsLayoutUsageFlagsNV)(x.ref48273185.flags) + x.PipelineBindPoint = (PipelineBindPoint)(x.ref48273185.pipelineBindPoint) + x.TokenCount = (uint32)(x.ref48273185.tokenCount) + packSIndirectCommandsLayoutTokenNV(x.PTokens, x.ref48273185.pTokens) + x.StreamCount = (uint32)(x.ref48273185.streamCount) + hxf11683e := (*sliceHeader)(unsafe.Pointer(&x.PStreamStrides)) + hxf11683e.Data = unsafe.Pointer(x.ref48273185.pStreamStrides) + hxf11683e.Cap = 0x7fffffff + // hxf11683e.Len = ? } -// allocImageDrmFormatModifierExplicitCreateInfoMemory allocates memory for type C.VkImageDrmFormatModifierExplicitCreateInfoEXT in C. +// allocGeneratedCommandsInfoNVMemory allocates memory for type C.VkGeneratedCommandsInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageDrmFormatModifierExplicitCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageDrmFormatModifierExplicitCreateInfoValue)) +func allocGeneratedCommandsInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeneratedCommandsInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageDrmFormatModifierExplicitCreateInfoValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierExplicitCreateInfoEXT{}) +const sizeOfGeneratedCommandsInfoNVValue = unsafe.Sizeof([1]C.VkGeneratedCommandsInfoNV{}) -// unpackSSubresourceLayout transforms a sliced Go data structure into plain C format. -func unpackSSubresourceLayout(x []SubresourceLayout) (unpacked *C.VkSubresourceLayout, allocs *cgoAllocMap) { +// unpackSIndirectCommandsStreamNV transforms a sliced Go data structure into plain C format. +func unpackSIndirectCommandsStreamNV(x []IndirectCommandsStreamNV) (unpacked *C.VkIndirectCommandsStreamNV, allocs *cgoAllocMap) { if x == nil { return nil, nil } allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkSubresourceLayout) { + defer runtime.SetFinalizer(&unpacked, func(**C.VkIndirectCommandsStreamNV) { go allocs.Free() }) len0 := len(x) - mem0 := allocSubresourceLayoutMemory(len0) + mem0 := allocIndirectCommandsStreamNVMemory(len0) allocs.Add(mem0) h0 := &sliceHeader{ Data: mem0, Cap: len0, Len: len0, } - v0 := *(*[]C.VkSubresourceLayout)(unsafe.Pointer(h0)) + v0 := *(*[]C.VkIndirectCommandsStreamNV)(unsafe.Pointer(h0)) for i0 := range x { allocs0 := new(cgoAllocMap) v0[i0], allocs0 = x[i0].PassValue() allocs.Borrow(allocs0) } h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkSubresourceLayout)(h.Data) + unpacked = (*C.VkIndirectCommandsStreamNV)(h.Data) return } -// packSSubresourceLayout reads sliced Go data structure out from plain C format. -func packSSubresourceLayout(v []SubresourceLayout, ptr0 *C.VkSubresourceLayout) { +// packSIndirectCommandsStreamNV reads sliced Go data structure out from plain C format. +func packSIndirectCommandsStreamNV(v []IndirectCommandsStreamNV, ptr0 *C.VkIndirectCommandsStreamNV) { const m = 0x7fffffff for i0 := range v { - ptr1 := (*(*[m / sizeOfSubresourceLayoutValue]C.VkSubresourceLayout)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewSubresourceLayoutRef(unsafe.Pointer(&ptr1)) + ptr1 := (*(*[m / sizeOfIndirectCommandsStreamNVValue]C.VkIndirectCommandsStreamNV)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewIndirectCommandsStreamNVRef(unsafe.Pointer(&ptr1)) } } // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageDrmFormatModifierExplicitCreateInfo) Ref() *C.VkImageDrmFormatModifierExplicitCreateInfoEXT { +func (x *GeneratedCommandsInfoNV) Ref() *C.VkGeneratedCommandsInfoNV { if x == nil { return nil } - return x.ref8fb45ca9 + return x.refc05396ea } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageDrmFormatModifierExplicitCreateInfo) Free() { - if x != nil && x.allocs8fb45ca9 != nil { - x.allocs8fb45ca9.(*cgoAllocMap).Free() - x.ref8fb45ca9 = nil +func (x *GeneratedCommandsInfoNV) Free() { + if x != nil && x.allocsc05396ea != nil { + x.allocsc05396ea.(*cgoAllocMap).Free() + x.refc05396ea = nil } } -// NewImageDrmFormatModifierExplicitCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewGeneratedCommandsInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageDrmFormatModifierExplicitCreateInfoRef(ref unsafe.Pointer) *ImageDrmFormatModifierExplicitCreateInfo { +func NewGeneratedCommandsInfoNVRef(ref unsafe.Pointer) *GeneratedCommandsInfoNV { if ref == nil { return nil } - obj := new(ImageDrmFormatModifierExplicitCreateInfo) - obj.ref8fb45ca9 = (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(GeneratedCommandsInfoNV) + obj.refc05396ea = (*C.VkGeneratedCommandsInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageDrmFormatModifierExplicitCreateInfo) PassRef() (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { +func (x *GeneratedCommandsInfoNV) PassRef() (*C.VkGeneratedCommandsInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref8fb45ca9 != nil { - return x.ref8fb45ca9, nil + } else if x.refc05396ea != nil { + return x.refc05396ea, nil } - mem8fb45ca9 := allocImageDrmFormatModifierExplicitCreateInfoMemory(1) - ref8fb45ca9 := (*C.VkImageDrmFormatModifierExplicitCreateInfoEXT)(mem8fb45ca9) - allocs8fb45ca9 := new(cgoAllocMap) - allocs8fb45ca9.Add(mem8fb45ca9) + memc05396ea := allocGeneratedCommandsInfoNVMemory(1) + refc05396ea := (*C.VkGeneratedCommandsInfoNV)(memc05396ea) + allocsc05396ea := new(cgoAllocMap) + allocsc05396ea.Add(memc05396ea) var csType_allocs *cgoAllocMap - ref8fb45ca9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs8fb45ca9.Borrow(csType_allocs) + refc05396ea.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc05396ea.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref8fb45ca9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs8fb45ca9.Borrow(cpNext_allocs) + refc05396ea.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc05396ea.Borrow(cpNext_allocs) - var cdrmFormatModifier_allocs *cgoAllocMap - ref8fb45ca9.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocs8fb45ca9.Borrow(cdrmFormatModifier_allocs) + var cpipelineBindPoint_allocs *cgoAllocMap + refc05396ea.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocsc05396ea.Borrow(cpipelineBindPoint_allocs) - var cdrmFormatModifierPlaneCount_allocs *cgoAllocMap - ref8fb45ca9.drmFormatModifierPlaneCount, cdrmFormatModifierPlaneCount_allocs = (C.uint32_t)(x.DrmFormatModifierPlaneCount), cgoAllocsUnknown - allocs8fb45ca9.Borrow(cdrmFormatModifierPlaneCount_allocs) + var cpipeline_allocs *cgoAllocMap + refc05396ea.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown + allocsc05396ea.Borrow(cpipeline_allocs) - var cpPlaneLayouts_allocs *cgoAllocMap - ref8fb45ca9.pPlaneLayouts, cpPlaneLayouts_allocs = unpackSSubresourceLayout(x.PPlaneLayouts) - allocs8fb45ca9.Borrow(cpPlaneLayouts_allocs) + var cindirectCommandsLayout_allocs *cgoAllocMap + refc05396ea.indirectCommandsLayout, cindirectCommandsLayout_allocs = *(*C.VkIndirectCommandsLayoutNV)(unsafe.Pointer(&x.IndirectCommandsLayout)), cgoAllocsUnknown + allocsc05396ea.Borrow(cindirectCommandsLayout_allocs) - x.ref8fb45ca9 = ref8fb45ca9 - x.allocs8fb45ca9 = allocs8fb45ca9 - return ref8fb45ca9, allocs8fb45ca9 + var cstreamCount_allocs *cgoAllocMap + refc05396ea.streamCount, cstreamCount_allocs = (C.uint32_t)(x.StreamCount), cgoAllocsUnknown + allocsc05396ea.Borrow(cstreamCount_allocs) + + var cpStreams_allocs *cgoAllocMap + refc05396ea.pStreams, cpStreams_allocs = unpackSIndirectCommandsStreamNV(x.PStreams) + allocsc05396ea.Borrow(cpStreams_allocs) + + var csequencesCount_allocs *cgoAllocMap + refc05396ea.sequencesCount, csequencesCount_allocs = (C.uint32_t)(x.SequencesCount), cgoAllocsUnknown + allocsc05396ea.Borrow(csequencesCount_allocs) + + var cpreprocessBuffer_allocs *cgoAllocMap + refc05396ea.preprocessBuffer, cpreprocessBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.PreprocessBuffer)), cgoAllocsUnknown + allocsc05396ea.Borrow(cpreprocessBuffer_allocs) + + var cpreprocessOffset_allocs *cgoAllocMap + refc05396ea.preprocessOffset, cpreprocessOffset_allocs = (C.VkDeviceSize)(x.PreprocessOffset), cgoAllocsUnknown + allocsc05396ea.Borrow(cpreprocessOffset_allocs) + + var cpreprocessSize_allocs *cgoAllocMap + refc05396ea.preprocessSize, cpreprocessSize_allocs = (C.VkDeviceSize)(x.PreprocessSize), cgoAllocsUnknown + allocsc05396ea.Borrow(cpreprocessSize_allocs) + + var csequencesCountBuffer_allocs *cgoAllocMap + refc05396ea.sequencesCountBuffer, csequencesCountBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SequencesCountBuffer)), cgoAllocsUnknown + allocsc05396ea.Borrow(csequencesCountBuffer_allocs) + + var csequencesCountOffset_allocs *cgoAllocMap + refc05396ea.sequencesCountOffset, csequencesCountOffset_allocs = (C.VkDeviceSize)(x.SequencesCountOffset), cgoAllocsUnknown + allocsc05396ea.Borrow(csequencesCountOffset_allocs) + + var csequencesIndexBuffer_allocs *cgoAllocMap + refc05396ea.sequencesIndexBuffer, csequencesIndexBuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.SequencesIndexBuffer)), cgoAllocsUnknown + allocsc05396ea.Borrow(csequencesIndexBuffer_allocs) + + var csequencesIndexOffset_allocs *cgoAllocMap + refc05396ea.sequencesIndexOffset, csequencesIndexOffset_allocs = (C.VkDeviceSize)(x.SequencesIndexOffset), cgoAllocsUnknown + allocsc05396ea.Borrow(csequencesIndexOffset_allocs) + + x.refc05396ea = refc05396ea + x.allocsc05396ea = allocsc05396ea + return refc05396ea, allocsc05396ea } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageDrmFormatModifierExplicitCreateInfo) PassValue() (C.VkImageDrmFormatModifierExplicitCreateInfoEXT, *cgoAllocMap) { - if x.ref8fb45ca9 != nil { - return *x.ref8fb45ca9, nil +func (x GeneratedCommandsInfoNV) PassValue() (C.VkGeneratedCommandsInfoNV, *cgoAllocMap) { + if x.refc05396ea != nil { + return *x.refc05396ea, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34067,92 +60827,114 @@ func (x ImageDrmFormatModifierExplicitCreateInfo) PassValue() (C.VkImageDrmForma // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageDrmFormatModifierExplicitCreateInfo) Deref() { - if x.ref8fb45ca9 == nil { +func (x *GeneratedCommandsInfoNV) Deref() { + if x.refc05396ea == nil { return } - x.SType = (StructureType)(x.ref8fb45ca9.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8fb45ca9.pNext)) - x.DrmFormatModifier = (uint64)(x.ref8fb45ca9.drmFormatModifier) - x.DrmFormatModifierPlaneCount = (uint32)(x.ref8fb45ca9.drmFormatModifierPlaneCount) - packSSubresourceLayout(x.PPlaneLayouts, x.ref8fb45ca9.pPlaneLayouts) -} - -// allocImageDrmFormatModifierPropertiesMemory allocates memory for type C.VkImageDrmFormatModifierPropertiesEXT in C. + x.SType = (StructureType)(x.refc05396ea.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc05396ea.pNext)) + x.PipelineBindPoint = (PipelineBindPoint)(x.refc05396ea.pipelineBindPoint) + x.Pipeline = *(*Pipeline)(unsafe.Pointer(&x.refc05396ea.pipeline)) + x.IndirectCommandsLayout = *(*IndirectCommandsLayoutNV)(unsafe.Pointer(&x.refc05396ea.indirectCommandsLayout)) + x.StreamCount = (uint32)(x.refc05396ea.streamCount) + packSIndirectCommandsStreamNV(x.PStreams, x.refc05396ea.pStreams) + x.SequencesCount = (uint32)(x.refc05396ea.sequencesCount) + x.PreprocessBuffer = *(*Buffer)(unsafe.Pointer(&x.refc05396ea.preprocessBuffer)) + x.PreprocessOffset = (DeviceSize)(x.refc05396ea.preprocessOffset) + x.PreprocessSize = (DeviceSize)(x.refc05396ea.preprocessSize) + x.SequencesCountBuffer = *(*Buffer)(unsafe.Pointer(&x.refc05396ea.sequencesCountBuffer)) + x.SequencesCountOffset = (DeviceSize)(x.refc05396ea.sequencesCountOffset) + x.SequencesIndexBuffer = *(*Buffer)(unsafe.Pointer(&x.refc05396ea.sequencesIndexBuffer)) + x.SequencesIndexOffset = (DeviceSize)(x.refc05396ea.sequencesIndexOffset) +} + +// allocGeneratedCommandsMemoryRequirementsInfoNVMemory allocates memory for type C.VkGeneratedCommandsMemoryRequirementsInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocImageDrmFormatModifierPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageDrmFormatModifierPropertiesValue)) +func allocGeneratedCommandsMemoryRequirementsInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeneratedCommandsMemoryRequirementsInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImageDrmFormatModifierPropertiesValue = unsafe.Sizeof([1]C.VkImageDrmFormatModifierPropertiesEXT{}) +const sizeOfGeneratedCommandsMemoryRequirementsInfoNVValue = unsafe.Sizeof([1]C.VkGeneratedCommandsMemoryRequirementsInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImageDrmFormatModifierProperties) Ref() *C.VkImageDrmFormatModifierPropertiesEXT { +func (x *GeneratedCommandsMemoryRequirementsInfoNV) Ref() *C.VkGeneratedCommandsMemoryRequirementsInfoNV { if x == nil { return nil } - return x.ref86a0f149 + return x.refe82e5c4c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImageDrmFormatModifierProperties) Free() { - if x != nil && x.allocs86a0f149 != nil { - x.allocs86a0f149.(*cgoAllocMap).Free() - x.ref86a0f149 = nil +func (x *GeneratedCommandsMemoryRequirementsInfoNV) Free() { + if x != nil && x.allocse82e5c4c != nil { + x.allocse82e5c4c.(*cgoAllocMap).Free() + x.refe82e5c4c = nil } } -// NewImageDrmFormatModifierPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewGeneratedCommandsMemoryRequirementsInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImageDrmFormatModifierPropertiesRef(ref unsafe.Pointer) *ImageDrmFormatModifierProperties { +func NewGeneratedCommandsMemoryRequirementsInfoNVRef(ref unsafe.Pointer) *GeneratedCommandsMemoryRequirementsInfoNV { if ref == nil { return nil } - obj := new(ImageDrmFormatModifierProperties) - obj.ref86a0f149 = (*C.VkImageDrmFormatModifierPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(GeneratedCommandsMemoryRequirementsInfoNV) + obj.refe82e5c4c = (*C.VkGeneratedCommandsMemoryRequirementsInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImageDrmFormatModifierProperties) PassRef() (*C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { +func (x *GeneratedCommandsMemoryRequirementsInfoNV) PassRef() (*C.VkGeneratedCommandsMemoryRequirementsInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref86a0f149 != nil { - return x.ref86a0f149, nil + } else if x.refe82e5c4c != nil { + return x.refe82e5c4c, nil } - mem86a0f149 := allocImageDrmFormatModifierPropertiesMemory(1) - ref86a0f149 := (*C.VkImageDrmFormatModifierPropertiesEXT)(mem86a0f149) - allocs86a0f149 := new(cgoAllocMap) - allocs86a0f149.Add(mem86a0f149) + meme82e5c4c := allocGeneratedCommandsMemoryRequirementsInfoNVMemory(1) + refe82e5c4c := (*C.VkGeneratedCommandsMemoryRequirementsInfoNV)(meme82e5c4c) + allocse82e5c4c := new(cgoAllocMap) + allocse82e5c4c.Add(meme82e5c4c) var csType_allocs *cgoAllocMap - ref86a0f149.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs86a0f149.Borrow(csType_allocs) + refe82e5c4c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse82e5c4c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref86a0f149.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs86a0f149.Borrow(cpNext_allocs) + refe82e5c4c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse82e5c4c.Borrow(cpNext_allocs) - var cdrmFormatModifier_allocs *cgoAllocMap - ref86a0f149.drmFormatModifier, cdrmFormatModifier_allocs = (C.uint64_t)(x.DrmFormatModifier), cgoAllocsUnknown - allocs86a0f149.Borrow(cdrmFormatModifier_allocs) + var cpipelineBindPoint_allocs *cgoAllocMap + refe82e5c4c.pipelineBindPoint, cpipelineBindPoint_allocs = (C.VkPipelineBindPoint)(x.PipelineBindPoint), cgoAllocsUnknown + allocse82e5c4c.Borrow(cpipelineBindPoint_allocs) - x.ref86a0f149 = ref86a0f149 - x.allocs86a0f149 = allocs86a0f149 - return ref86a0f149, allocs86a0f149 + var cpipeline_allocs *cgoAllocMap + refe82e5c4c.pipeline, cpipeline_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.Pipeline)), cgoAllocsUnknown + allocse82e5c4c.Borrow(cpipeline_allocs) + + var cindirectCommandsLayout_allocs *cgoAllocMap + refe82e5c4c.indirectCommandsLayout, cindirectCommandsLayout_allocs = *(*C.VkIndirectCommandsLayoutNV)(unsafe.Pointer(&x.IndirectCommandsLayout)), cgoAllocsUnknown + allocse82e5c4c.Borrow(cindirectCommandsLayout_allocs) + + var cmaxSequencesCount_allocs *cgoAllocMap + refe82e5c4c.maxSequencesCount, cmaxSequencesCount_allocs = (C.uint32_t)(x.MaxSequencesCount), cgoAllocsUnknown + allocse82e5c4c.Borrow(cmaxSequencesCount_allocs) + + x.refe82e5c4c = refe82e5c4c + x.allocse82e5c4c = allocse82e5c4c + return refe82e5c4c, allocse82e5c4c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImageDrmFormatModifierProperties) PassValue() (C.VkImageDrmFormatModifierPropertiesEXT, *cgoAllocMap) { - if x.ref86a0f149 != nil { - return *x.ref86a0f149, nil +func (x GeneratedCommandsMemoryRequirementsInfoNV) PassValue() (C.VkGeneratedCommandsMemoryRequirementsInfoNV, *cgoAllocMap) { + if x.refe82e5c4c != nil { + return *x.refe82e5c4c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34160,98 +60942,93 @@ func (x ImageDrmFormatModifierProperties) PassValue() (C.VkImageDrmFormatModifie // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImageDrmFormatModifierProperties) Deref() { - if x.ref86a0f149 == nil { +func (x *GeneratedCommandsMemoryRequirementsInfoNV) Deref() { + if x.refe82e5c4c == nil { return } - x.SType = (StructureType)(x.ref86a0f149.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86a0f149.pNext)) - x.DrmFormatModifier = (uint64)(x.ref86a0f149.drmFormatModifier) + x.SType = (StructureType)(x.refe82e5c4c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe82e5c4c.pNext)) + x.PipelineBindPoint = (PipelineBindPoint)(x.refe82e5c4c.pipelineBindPoint) + x.Pipeline = *(*Pipeline)(unsafe.Pointer(&x.refe82e5c4c.pipeline)) + x.IndirectCommandsLayout = *(*IndirectCommandsLayoutNV)(unsafe.Pointer(&x.refe82e5c4c.indirectCommandsLayout)) + x.MaxSequencesCount = (uint32)(x.refe82e5c4c.maxSequencesCount) } -// allocValidationCacheCreateInfoMemory allocates memory for type C.VkValidationCacheCreateInfoEXT in C. +// allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocValidationCacheCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfValidationCacheCreateInfoValue)) +func allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceInheritedViewportScissorFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkValidationCacheCreateInfoEXT{}) +const sizeOfPhysicalDeviceInheritedViewportScissorFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ValidationCacheCreateInfo) Ref() *C.VkValidationCacheCreateInfoEXT { +func (x *PhysicalDeviceInheritedViewportScissorFeaturesNV) Ref() *C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV { if x == nil { return nil } - return x.ref3d8ac8aa + return x.refcec68147 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ValidationCacheCreateInfo) Free() { - if x != nil && x.allocs3d8ac8aa != nil { - x.allocs3d8ac8aa.(*cgoAllocMap).Free() - x.ref3d8ac8aa = nil +func (x *PhysicalDeviceInheritedViewportScissorFeaturesNV) Free() { + if x != nil && x.allocscec68147 != nil { + x.allocscec68147.(*cgoAllocMap).Free() + x.refcec68147 = nil } } -// NewValidationCacheCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceInheritedViewportScissorFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewValidationCacheCreateInfoRef(ref unsafe.Pointer) *ValidationCacheCreateInfo { +func NewPhysicalDeviceInheritedViewportScissorFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceInheritedViewportScissorFeaturesNV { if ref == nil { return nil } - obj := new(ValidationCacheCreateInfo) - obj.ref3d8ac8aa = (*C.VkValidationCacheCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceInheritedViewportScissorFeaturesNV) + obj.refcec68147 = (*C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ValidationCacheCreateInfo) PassRef() (*C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceInheritedViewportScissorFeaturesNV) PassRef() (*C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3d8ac8aa != nil { - return x.ref3d8ac8aa, nil + } else if x.refcec68147 != nil { + return x.refcec68147, nil } - mem3d8ac8aa := allocValidationCacheCreateInfoMemory(1) - ref3d8ac8aa := (*C.VkValidationCacheCreateInfoEXT)(mem3d8ac8aa) - allocs3d8ac8aa := new(cgoAllocMap) - allocs3d8ac8aa.Add(mem3d8ac8aa) + memcec68147 := allocPhysicalDeviceInheritedViewportScissorFeaturesNVMemory(1) + refcec68147 := (*C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV)(memcec68147) + allocscec68147 := new(cgoAllocMap) + allocscec68147.Add(memcec68147) var csType_allocs *cgoAllocMap - ref3d8ac8aa.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3d8ac8aa.Borrow(csType_allocs) + refcec68147.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscec68147.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3d8ac8aa.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3d8ac8aa.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref3d8ac8aa.flags, cflags_allocs = (C.VkValidationCacheCreateFlagsEXT)(x.Flags), cgoAllocsUnknown - allocs3d8ac8aa.Borrow(cflags_allocs) + refcec68147.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscec68147.Borrow(cpNext_allocs) - var cinitialDataSize_allocs *cgoAllocMap - ref3d8ac8aa.initialDataSize, cinitialDataSize_allocs = (C.size_t)(x.InitialDataSize), cgoAllocsUnknown - allocs3d8ac8aa.Borrow(cinitialDataSize_allocs) - - var cpInitialData_allocs *cgoAllocMap - ref3d8ac8aa.pInitialData, cpInitialData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PInitialData)), cgoAllocsUnknown - allocs3d8ac8aa.Borrow(cpInitialData_allocs) + var cinheritedViewportScissor2D_allocs *cgoAllocMap + refcec68147.inheritedViewportScissor2D, cinheritedViewportScissor2D_allocs = (C.VkBool32)(x.InheritedViewportScissor2D), cgoAllocsUnknown + allocscec68147.Borrow(cinheritedViewportScissor2D_allocs) - x.ref3d8ac8aa = ref3d8ac8aa - x.allocs3d8ac8aa = allocs3d8ac8aa - return ref3d8ac8aa, allocs3d8ac8aa + x.refcec68147 = refcec68147 + x.allocscec68147 = allocscec68147 + return refcec68147, allocscec68147 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ValidationCacheCreateInfo) PassValue() (C.VkValidationCacheCreateInfoEXT, *cgoAllocMap) { - if x.ref3d8ac8aa != nil { - return *x.ref3d8ac8aa, nil +func (x PhysicalDeviceInheritedViewportScissorFeaturesNV) PassValue() (C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV, *cgoAllocMap) { + if x.refcec68147 != nil { + return *x.refcec68147, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34259,92 +61036,98 @@ func (x ValidationCacheCreateInfo) PassValue() (C.VkValidationCacheCreateInfoEXT // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ValidationCacheCreateInfo) Deref() { - if x.ref3d8ac8aa == nil { +func (x *PhysicalDeviceInheritedViewportScissorFeaturesNV) Deref() { + if x.refcec68147 == nil { return } - x.SType = (StructureType)(x.ref3d8ac8aa.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3d8ac8aa.pNext)) - x.Flags = (ValidationCacheCreateFlags)(x.ref3d8ac8aa.flags) - x.InitialDataSize = (uint)(x.ref3d8ac8aa.initialDataSize) - x.PInitialData = (unsafe.Pointer)(unsafe.Pointer(x.ref3d8ac8aa.pInitialData)) + x.SType = (StructureType)(x.refcec68147.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcec68147.pNext)) + x.InheritedViewportScissor2D = (Bool32)(x.refcec68147.inheritedViewportScissor2D) } -// allocShaderModuleValidationCacheCreateInfoMemory allocates memory for type C.VkShaderModuleValidationCacheCreateInfoEXT in C. +// allocCommandBufferInheritanceViewportScissorInfoNVMemory allocates memory for type C.VkCommandBufferInheritanceViewportScissorInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocShaderModuleValidationCacheCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShaderModuleValidationCacheCreateInfoValue)) +func allocCommandBufferInheritanceViewportScissorInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceViewportScissorInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfShaderModuleValidationCacheCreateInfoValue = unsafe.Sizeof([1]C.VkShaderModuleValidationCacheCreateInfoEXT{}) +const sizeOfCommandBufferInheritanceViewportScissorInfoNVValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceViewportScissorInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShaderModuleValidationCacheCreateInfo) Ref() *C.VkShaderModuleValidationCacheCreateInfoEXT { +func (x *CommandBufferInheritanceViewportScissorInfoNV) Ref() *C.VkCommandBufferInheritanceViewportScissorInfoNV { if x == nil { return nil } - return x.ref37065f24 + return x.refc206d63 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ShaderModuleValidationCacheCreateInfo) Free() { - if x != nil && x.allocs37065f24 != nil { - x.allocs37065f24.(*cgoAllocMap).Free() - x.ref37065f24 = nil +func (x *CommandBufferInheritanceViewportScissorInfoNV) Free() { + if x != nil && x.allocsc206d63 != nil { + x.allocsc206d63.(*cgoAllocMap).Free() + x.refc206d63 = nil } } -// NewShaderModuleValidationCacheCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCommandBufferInheritanceViewportScissorInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewShaderModuleValidationCacheCreateInfoRef(ref unsafe.Pointer) *ShaderModuleValidationCacheCreateInfo { +func NewCommandBufferInheritanceViewportScissorInfoNVRef(ref unsafe.Pointer) *CommandBufferInheritanceViewportScissorInfoNV { if ref == nil { return nil } - obj := new(ShaderModuleValidationCacheCreateInfo) - obj.ref37065f24 = (*C.VkShaderModuleValidationCacheCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(CommandBufferInheritanceViewportScissorInfoNV) + obj.refc206d63 = (*C.VkCommandBufferInheritanceViewportScissorInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ShaderModuleValidationCacheCreateInfo) PassRef() (*C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { +func (x *CommandBufferInheritanceViewportScissorInfoNV) PassRef() (*C.VkCommandBufferInheritanceViewportScissorInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref37065f24 != nil { - return x.ref37065f24, nil + } else if x.refc206d63 != nil { + return x.refc206d63, nil } - mem37065f24 := allocShaderModuleValidationCacheCreateInfoMemory(1) - ref37065f24 := (*C.VkShaderModuleValidationCacheCreateInfoEXT)(mem37065f24) - allocs37065f24 := new(cgoAllocMap) - allocs37065f24.Add(mem37065f24) + memc206d63 := allocCommandBufferInheritanceViewportScissorInfoNVMemory(1) + refc206d63 := (*C.VkCommandBufferInheritanceViewportScissorInfoNV)(memc206d63) + allocsc206d63 := new(cgoAllocMap) + allocsc206d63.Add(memc206d63) var csType_allocs *cgoAllocMap - ref37065f24.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs37065f24.Borrow(csType_allocs) + refc206d63.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc206d63.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref37065f24.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs37065f24.Borrow(cpNext_allocs) + refc206d63.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc206d63.Borrow(cpNext_allocs) - var cvalidationCache_allocs *cgoAllocMap - ref37065f24.validationCache, cvalidationCache_allocs = *(*C.VkValidationCacheEXT)(unsafe.Pointer(&x.ValidationCache)), cgoAllocsUnknown - allocs37065f24.Borrow(cvalidationCache_allocs) + var cviewportScissor2D_allocs *cgoAllocMap + refc206d63.viewportScissor2D, cviewportScissor2D_allocs = (C.VkBool32)(x.ViewportScissor2D), cgoAllocsUnknown + allocsc206d63.Borrow(cviewportScissor2D_allocs) - x.ref37065f24 = ref37065f24 - x.allocs37065f24 = allocs37065f24 - return ref37065f24, allocs37065f24 + var cviewportDepthCount_allocs *cgoAllocMap + refc206d63.viewportDepthCount, cviewportDepthCount_allocs = (C.uint32_t)(x.ViewportDepthCount), cgoAllocsUnknown + allocsc206d63.Borrow(cviewportDepthCount_allocs) + + var cpViewportDepths_allocs *cgoAllocMap + refc206d63.pViewportDepths, cpViewportDepths_allocs = unpackSViewport(x.PViewportDepths) + allocsc206d63.Borrow(cpViewportDepths_allocs) + + x.refc206d63 = refc206d63 + x.allocsc206d63 = allocsc206d63 + return refc206d63, allocsc206d63 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ShaderModuleValidationCacheCreateInfo) PassValue() (C.VkShaderModuleValidationCacheCreateInfoEXT, *cgoAllocMap) { - if x.ref37065f24 != nil { - return *x.ref37065f24, nil +func (x CommandBufferInheritanceViewportScissorInfoNV) PassValue() (C.VkCommandBufferInheritanceViewportScissorInfoNV, *cgoAllocMap) { + if x.refc206d63 != nil { + return *x.refc206d63, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34352,94 +61135,92 @@ func (x ShaderModuleValidationCacheCreateInfo) PassValue() (C.VkShaderModuleVali // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ShaderModuleValidationCacheCreateInfo) Deref() { - if x.ref37065f24 == nil { +func (x *CommandBufferInheritanceViewportScissorInfoNV) Deref() { + if x.refc206d63 == nil { return } - x.SType = (StructureType)(x.ref37065f24.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref37065f24.pNext)) - x.ValidationCache = *(*ValidationCache)(unsafe.Pointer(&x.ref37065f24.validationCache)) + x.SType = (StructureType)(x.refc206d63.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc206d63.pNext)) + x.ViewportScissor2D = (Bool32)(x.refc206d63.viewportScissor2D) + x.ViewportDepthCount = (uint32)(x.refc206d63.viewportDepthCount) + packSViewport(x.PViewportDepths, x.refc206d63.pViewportDepths) } -// allocDescriptorSetLayoutBindingFlagsCreateInfoMemory allocates memory for type C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT in C. +// allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory allocates memory for type C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetLayoutBindingFlagsCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetLayoutBindingFlagsCreateInfoValue)) +func allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceTexelBufferAlignmentFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorSetLayoutBindingFlagsCreateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT{}) +const sizeOfPhysicalDeviceTexelBufferAlignmentFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetLayoutBindingFlagsCreateInfo) Ref() *C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT { +func (x *PhysicalDeviceTexelBufferAlignmentFeatures) Ref() *C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { if x == nil { return nil } - return x.refcb1cf42 + return x.ref2c4411b2 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorSetLayoutBindingFlagsCreateInfo) Free() { - if x != nil && x.allocscb1cf42 != nil { - x.allocscb1cf42.(*cgoAllocMap).Free() - x.refcb1cf42 = nil +func (x *PhysicalDeviceTexelBufferAlignmentFeatures) Free() { + if x != nil && x.allocs2c4411b2 != nil { + x.allocs2c4411b2.(*cgoAllocMap).Free() + x.ref2c4411b2 = nil } } -// NewDescriptorSetLayoutBindingFlagsCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceTexelBufferAlignmentFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorSetLayoutBindingFlagsCreateInfoRef(ref unsafe.Pointer) *DescriptorSetLayoutBindingFlagsCreateInfo { +func NewPhysicalDeviceTexelBufferAlignmentFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceTexelBufferAlignmentFeatures { if ref == nil { return nil } - obj := new(DescriptorSetLayoutBindingFlagsCreateInfo) - obj.refcb1cf42 = (*C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceTexelBufferAlignmentFeatures) + obj.ref2c4411b2 = (*C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorSetLayoutBindingFlagsCreateInfo) PassRef() (*C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceTexelBufferAlignmentFeatures) PassRef() (*C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refcb1cf42 != nil { - return x.refcb1cf42, nil + } else if x.ref2c4411b2 != nil { + return x.ref2c4411b2, nil } - memcb1cf42 := allocDescriptorSetLayoutBindingFlagsCreateInfoMemory(1) - refcb1cf42 := (*C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT)(memcb1cf42) - allocscb1cf42 := new(cgoAllocMap) - allocscb1cf42.Add(memcb1cf42) + mem2c4411b2 := allocPhysicalDeviceTexelBufferAlignmentFeaturesMemory(1) + ref2c4411b2 := (*C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)(mem2c4411b2) + allocs2c4411b2 := new(cgoAllocMap) + allocs2c4411b2.Add(mem2c4411b2) var csType_allocs *cgoAllocMap - refcb1cf42.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocscb1cf42.Borrow(csType_allocs) + ref2c4411b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2c4411b2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refcb1cf42.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocscb1cf42.Borrow(cpNext_allocs) - - var cbindingCount_allocs *cgoAllocMap - refcb1cf42.bindingCount, cbindingCount_allocs = (C.uint32_t)(x.BindingCount), cgoAllocsUnknown - allocscb1cf42.Borrow(cbindingCount_allocs) + ref2c4411b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2c4411b2.Borrow(cpNext_allocs) - var cpBindingFlags_allocs *cgoAllocMap - refcb1cf42.pBindingFlags, cpBindingFlags_allocs = (*C.VkDescriptorBindingFlagsEXT)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PBindingFlags)).Data)), cgoAllocsUnknown - allocscb1cf42.Borrow(cpBindingFlags_allocs) + var ctexelBufferAlignment_allocs *cgoAllocMap + ref2c4411b2.texelBufferAlignment, ctexelBufferAlignment_allocs = (C.VkBool32)(x.TexelBufferAlignment), cgoAllocsUnknown + allocs2c4411b2.Borrow(ctexelBufferAlignment_allocs) - x.refcb1cf42 = refcb1cf42 - x.allocscb1cf42 = allocscb1cf42 - return refcb1cf42, allocscb1cf42 + x.ref2c4411b2 = ref2c4411b2 + x.allocs2c4411b2 = allocs2c4411b2 + return ref2c4411b2, allocs2c4411b2 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorSetLayoutBindingFlagsCreateInfo) PassValue() (C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, *cgoAllocMap) { - if x.refcb1cf42 != nil { - return *x.refcb1cf42, nil +func (x PhysicalDeviceTexelBufferAlignmentFeatures) PassValue() (C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, *cgoAllocMap) { + if x.ref2c4411b2 != nil { + return *x.ref2c4411b2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34447,171 +61228,90 @@ func (x DescriptorSetLayoutBindingFlagsCreateInfo) PassValue() (C.VkDescriptorSe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorSetLayoutBindingFlagsCreateInfo) Deref() { - if x.refcb1cf42 == nil { +func (x *PhysicalDeviceTexelBufferAlignmentFeatures) Deref() { + if x.ref2c4411b2 == nil { return } - x.SType = (StructureType)(x.refcb1cf42.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcb1cf42.pNext)) - x.BindingCount = (uint32)(x.refcb1cf42.bindingCount) - hxf8eae10 := (*sliceHeader)(unsafe.Pointer(&x.PBindingFlags)) - hxf8eae10.Data = unsafe.Pointer(x.refcb1cf42.pBindingFlags) - hxf8eae10.Cap = 0x7fffffff - // hxf8eae10.Len = ? - + x.SType = (StructureType)(x.ref2c4411b2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2c4411b2.pNext)) + x.TexelBufferAlignment = (Bool32)(x.ref2c4411b2.texelBufferAlignment) } -// allocPhysicalDeviceDescriptorIndexingFeaturesMemory allocates memory for type C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT in C. +// allocRenderPassTransformBeginInfoQCOMMemory allocates memory for type C.VkRenderPassTransformBeginInfoQCOM in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDescriptorIndexingFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDescriptorIndexingFeaturesValue)) +func allocRenderPassTransformBeginInfoQCOMMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRenderPassTransformBeginInfoQCOMValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceDescriptorIndexingFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT{}) +const sizeOfRenderPassTransformBeginInfoQCOMValue = unsafe.Sizeof([1]C.VkRenderPassTransformBeginInfoQCOM{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDescriptorIndexingFeatures) Ref() *C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT { +func (x *RenderPassTransformBeginInfoQCOM) Ref() *C.VkRenderPassTransformBeginInfoQCOM { if x == nil { return nil } - return x.ref76ca48bc + return x.ref938e681d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceDescriptorIndexingFeatures) Free() { - if x != nil && x.allocs76ca48bc != nil { - x.allocs76ca48bc.(*cgoAllocMap).Free() - x.ref76ca48bc = nil +func (x *RenderPassTransformBeginInfoQCOM) Free() { + if x != nil && x.allocs938e681d != nil { + x.allocs938e681d.(*cgoAllocMap).Free() + x.ref938e681d = nil } } -// NewPhysicalDeviceDescriptorIndexingFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewRenderPassTransformBeginInfoQCOMRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceDescriptorIndexingFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorIndexingFeatures { +func NewRenderPassTransformBeginInfoQCOMRef(ref unsafe.Pointer) *RenderPassTransformBeginInfoQCOM { if ref == nil { return nil } - obj := new(PhysicalDeviceDescriptorIndexingFeatures) - obj.ref76ca48bc = (*C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(RenderPassTransformBeginInfoQCOM) + obj.ref938e681d = (*C.VkRenderPassTransformBeginInfoQCOM)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceDescriptorIndexingFeatures) PassRef() (*C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT, *cgoAllocMap) { +func (x *RenderPassTransformBeginInfoQCOM) PassRef() (*C.VkRenderPassTransformBeginInfoQCOM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref76ca48bc != nil { - return x.ref76ca48bc, nil + } else if x.ref938e681d != nil { + return x.ref938e681d, nil } - mem76ca48bc := allocPhysicalDeviceDescriptorIndexingFeaturesMemory(1) - ref76ca48bc := (*C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT)(mem76ca48bc) - allocs76ca48bc := new(cgoAllocMap) - allocs76ca48bc.Add(mem76ca48bc) + mem938e681d := allocRenderPassTransformBeginInfoQCOMMemory(1) + ref938e681d := (*C.VkRenderPassTransformBeginInfoQCOM)(mem938e681d) + allocs938e681d := new(cgoAllocMap) + allocs938e681d.Add(mem938e681d) var csType_allocs *cgoAllocMap - ref76ca48bc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs76ca48bc.Borrow(csType_allocs) + ref938e681d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs938e681d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref76ca48bc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs76ca48bc.Borrow(cpNext_allocs) - - var cshaderInputAttachmentArrayDynamicIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderInputAttachmentArrayDynamicIndexing, cshaderInputAttachmentArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderInputAttachmentArrayDynamicIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderInputAttachmentArrayDynamicIndexing_allocs) - - var cshaderUniformTexelBufferArrayDynamicIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderUniformTexelBufferArrayDynamicIndexing, cshaderUniformTexelBufferArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderUniformTexelBufferArrayDynamicIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderUniformTexelBufferArrayDynamicIndexing_allocs) - - var cshaderStorageTexelBufferArrayDynamicIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderStorageTexelBufferArrayDynamicIndexing, cshaderStorageTexelBufferArrayDynamicIndexing_allocs = (C.VkBool32)(x.ShaderStorageTexelBufferArrayDynamicIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderStorageTexelBufferArrayDynamicIndexing_allocs) - - var cshaderUniformBufferArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderUniformBufferArrayNonUniformIndexing, cshaderUniformBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderUniformBufferArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderUniformBufferArrayNonUniformIndexing_allocs) - - var cshaderSampledImageArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderSampledImageArrayNonUniformIndexing, cshaderSampledImageArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderSampledImageArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderSampledImageArrayNonUniformIndexing_allocs) - - var cshaderStorageBufferArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderStorageBufferArrayNonUniformIndexing, cshaderStorageBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageBufferArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderStorageBufferArrayNonUniformIndexing_allocs) - - var cshaderStorageImageArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderStorageImageArrayNonUniformIndexing, cshaderStorageImageArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageImageArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderStorageImageArrayNonUniformIndexing_allocs) - - var cshaderInputAttachmentArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderInputAttachmentArrayNonUniformIndexing, cshaderInputAttachmentArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderInputAttachmentArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderInputAttachmentArrayNonUniformIndexing_allocs) - - var cshaderUniformTexelBufferArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderUniformTexelBufferArrayNonUniformIndexing, cshaderUniformTexelBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderUniformTexelBufferArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderUniformTexelBufferArrayNonUniformIndexing_allocs) - - var cshaderStorageTexelBufferArrayNonUniformIndexing_allocs *cgoAllocMap - ref76ca48bc.shaderStorageTexelBufferArrayNonUniformIndexing, cshaderStorageTexelBufferArrayNonUniformIndexing_allocs = (C.VkBool32)(x.ShaderStorageTexelBufferArrayNonUniformIndexing), cgoAllocsUnknown - allocs76ca48bc.Borrow(cshaderStorageTexelBufferArrayNonUniformIndexing_allocs) - - var cdescriptorBindingUniformBufferUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingUniformBufferUpdateAfterBind, cdescriptorBindingUniformBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingUniformBufferUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingUniformBufferUpdateAfterBind_allocs) - - var cdescriptorBindingSampledImageUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingSampledImageUpdateAfterBind, cdescriptorBindingSampledImageUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingSampledImageUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingSampledImageUpdateAfterBind_allocs) - - var cdescriptorBindingStorageImageUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingStorageImageUpdateAfterBind, cdescriptorBindingStorageImageUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageImageUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingStorageImageUpdateAfterBind_allocs) - - var cdescriptorBindingStorageBufferUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingStorageBufferUpdateAfterBind, cdescriptorBindingStorageBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageBufferUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingStorageBufferUpdateAfterBind_allocs) - - var cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingUniformTexelBufferUpdateAfterBind, cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingUniformTexelBufferUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingUniformTexelBufferUpdateAfterBind_allocs) - - var cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingStorageTexelBufferUpdateAfterBind, cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs = (C.VkBool32)(x.DescriptorBindingStorageTexelBufferUpdateAfterBind), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingStorageTexelBufferUpdateAfterBind_allocs) - - var cdescriptorBindingUpdateUnusedWhilePending_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingUpdateUnusedWhilePending, cdescriptorBindingUpdateUnusedWhilePending_allocs = (C.VkBool32)(x.DescriptorBindingUpdateUnusedWhilePending), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingUpdateUnusedWhilePending_allocs) - - var cdescriptorBindingPartiallyBound_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingPartiallyBound, cdescriptorBindingPartiallyBound_allocs = (C.VkBool32)(x.DescriptorBindingPartiallyBound), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingPartiallyBound_allocs) - - var cdescriptorBindingVariableDescriptorCount_allocs *cgoAllocMap - ref76ca48bc.descriptorBindingVariableDescriptorCount, cdescriptorBindingVariableDescriptorCount_allocs = (C.VkBool32)(x.DescriptorBindingVariableDescriptorCount), cgoAllocsUnknown - allocs76ca48bc.Borrow(cdescriptorBindingVariableDescriptorCount_allocs) + ref938e681d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs938e681d.Borrow(cpNext_allocs) - var cruntimeDescriptorArray_allocs *cgoAllocMap - ref76ca48bc.runtimeDescriptorArray, cruntimeDescriptorArray_allocs = (C.VkBool32)(x.RuntimeDescriptorArray), cgoAllocsUnknown - allocs76ca48bc.Borrow(cruntimeDescriptorArray_allocs) + var ctransform_allocs *cgoAllocMap + ref938e681d.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown + allocs938e681d.Borrow(ctransform_allocs) - x.ref76ca48bc = ref76ca48bc - x.allocs76ca48bc = allocs76ca48bc - return ref76ca48bc, allocs76ca48bc + x.ref938e681d = ref938e681d + x.allocs938e681d = allocs938e681d + return ref938e681d, allocs938e681d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceDescriptorIndexingFeatures) PassValue() (C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT, *cgoAllocMap) { - if x.ref76ca48bc != nil { - return *x.ref76ca48bc, nil +func (x RenderPassTransformBeginInfoQCOM) PassValue() (C.VkRenderPassTransformBeginInfoQCOM, *cgoAllocMap) { + if x.ref938e681d != nil { + return *x.ref938e681d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34619,197 +61319,94 @@ func (x PhysicalDeviceDescriptorIndexingFeatures) PassValue() (C.VkPhysicalDevic // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceDescriptorIndexingFeatures) Deref() { - if x.ref76ca48bc == nil { - return - } - x.SType = (StructureType)(x.ref76ca48bc.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref76ca48bc.pNext)) - x.ShaderInputAttachmentArrayDynamicIndexing = (Bool32)(x.ref76ca48bc.shaderInputAttachmentArrayDynamicIndexing) - x.ShaderUniformTexelBufferArrayDynamicIndexing = (Bool32)(x.ref76ca48bc.shaderUniformTexelBufferArrayDynamicIndexing) - x.ShaderStorageTexelBufferArrayDynamicIndexing = (Bool32)(x.ref76ca48bc.shaderStorageTexelBufferArrayDynamicIndexing) - x.ShaderUniformBufferArrayNonUniformIndexing = (Bool32)(x.ref76ca48bc.shaderUniformBufferArrayNonUniformIndexing) - x.ShaderSampledImageArrayNonUniformIndexing = (Bool32)(x.ref76ca48bc.shaderSampledImageArrayNonUniformIndexing) - x.ShaderStorageBufferArrayNonUniformIndexing = (Bool32)(x.ref76ca48bc.shaderStorageBufferArrayNonUniformIndexing) - x.ShaderStorageImageArrayNonUniformIndexing = (Bool32)(x.ref76ca48bc.shaderStorageImageArrayNonUniformIndexing) - x.ShaderInputAttachmentArrayNonUniformIndexing = (Bool32)(x.ref76ca48bc.shaderInputAttachmentArrayNonUniformIndexing) - x.ShaderUniformTexelBufferArrayNonUniformIndexing = (Bool32)(x.ref76ca48bc.shaderUniformTexelBufferArrayNonUniformIndexing) - x.ShaderStorageTexelBufferArrayNonUniformIndexing = (Bool32)(x.ref76ca48bc.shaderStorageTexelBufferArrayNonUniformIndexing) - x.DescriptorBindingUniformBufferUpdateAfterBind = (Bool32)(x.ref76ca48bc.descriptorBindingUniformBufferUpdateAfterBind) - x.DescriptorBindingSampledImageUpdateAfterBind = (Bool32)(x.ref76ca48bc.descriptorBindingSampledImageUpdateAfterBind) - x.DescriptorBindingStorageImageUpdateAfterBind = (Bool32)(x.ref76ca48bc.descriptorBindingStorageImageUpdateAfterBind) - x.DescriptorBindingStorageBufferUpdateAfterBind = (Bool32)(x.ref76ca48bc.descriptorBindingStorageBufferUpdateAfterBind) - x.DescriptorBindingUniformTexelBufferUpdateAfterBind = (Bool32)(x.ref76ca48bc.descriptorBindingUniformTexelBufferUpdateAfterBind) - x.DescriptorBindingStorageTexelBufferUpdateAfterBind = (Bool32)(x.ref76ca48bc.descriptorBindingStorageTexelBufferUpdateAfterBind) - x.DescriptorBindingUpdateUnusedWhilePending = (Bool32)(x.ref76ca48bc.descriptorBindingUpdateUnusedWhilePending) - x.DescriptorBindingPartiallyBound = (Bool32)(x.ref76ca48bc.descriptorBindingPartiallyBound) - x.DescriptorBindingVariableDescriptorCount = (Bool32)(x.ref76ca48bc.descriptorBindingVariableDescriptorCount) - x.RuntimeDescriptorArray = (Bool32)(x.ref76ca48bc.runtimeDescriptorArray) -} - -// allocPhysicalDeviceDescriptorIndexingPropertiesMemory allocates memory for type C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT in C. +func (x *RenderPassTransformBeginInfoQCOM) Deref() { + if x.ref938e681d == nil { + return + } + x.SType = (StructureType)(x.ref938e681d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref938e681d.pNext)) + x.Transform = (SurfaceTransformFlagBits)(x.ref938e681d.transform) +} + +// allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory allocates memory for type C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceDescriptorIndexingPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDescriptorIndexingPropertiesValue)) +func allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCommandBufferInheritanceRenderPassTransformInfoQCOMValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceDescriptorIndexingPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT{}) +const sizeOfCommandBufferInheritanceRenderPassTransformInfoQCOMValue = unsafe.Sizeof([1]C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceDescriptorIndexingProperties) Ref() *C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT { +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Ref() *C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM { if x == nil { return nil } - return x.ref3c07c210 + return x.refee6ff04 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceDescriptorIndexingProperties) Free() { - if x != nil && x.allocs3c07c210 != nil { - x.allocs3c07c210.(*cgoAllocMap).Free() - x.ref3c07c210 = nil +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Free() { + if x != nil && x.allocsee6ff04 != nil { + x.allocsee6ff04.(*cgoAllocMap).Free() + x.refee6ff04 = nil } } -// NewPhysicalDeviceDescriptorIndexingPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCommandBufferInheritanceRenderPassTransformInfoQCOMRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceDescriptorIndexingPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorIndexingProperties { +func NewCommandBufferInheritanceRenderPassTransformInfoQCOMRef(ref unsafe.Pointer) *CommandBufferInheritanceRenderPassTransformInfoQCOM { if ref == nil { return nil } - obj := new(PhysicalDeviceDescriptorIndexingProperties) - obj.ref3c07c210 = (*C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(CommandBufferInheritanceRenderPassTransformInfoQCOM) + obj.refee6ff04 = (*C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceDescriptorIndexingProperties) PassRef() (*C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT, *cgoAllocMap) { +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) PassRef() (*C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3c07c210 != nil { - return x.ref3c07c210, nil + } else if x.refee6ff04 != nil { + return x.refee6ff04, nil } - mem3c07c210 := allocPhysicalDeviceDescriptorIndexingPropertiesMemory(1) - ref3c07c210 := (*C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT)(mem3c07c210) - allocs3c07c210 := new(cgoAllocMap) - allocs3c07c210.Add(mem3c07c210) + memee6ff04 := allocCommandBufferInheritanceRenderPassTransformInfoQCOMMemory(1) + refee6ff04 := (*C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM)(memee6ff04) + allocsee6ff04 := new(cgoAllocMap) + allocsee6ff04.Add(memee6ff04) var csType_allocs *cgoAllocMap - ref3c07c210.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs3c07c210.Borrow(csType_allocs) + refee6ff04.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsee6ff04.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref3c07c210.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs3c07c210.Borrow(cpNext_allocs) - - var cmaxUpdateAfterBindDescriptorsInAllPools_allocs *cgoAllocMap - ref3c07c210.maxUpdateAfterBindDescriptorsInAllPools, cmaxUpdateAfterBindDescriptorsInAllPools_allocs = (C.uint32_t)(x.MaxUpdateAfterBindDescriptorsInAllPools), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxUpdateAfterBindDescriptorsInAllPools_allocs) - - var cshaderUniformBufferArrayNonUniformIndexingNative_allocs *cgoAllocMap - ref3c07c210.shaderUniformBufferArrayNonUniformIndexingNative, cshaderUniformBufferArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderUniformBufferArrayNonUniformIndexingNative), cgoAllocsUnknown - allocs3c07c210.Borrow(cshaderUniformBufferArrayNonUniformIndexingNative_allocs) - - var cshaderSampledImageArrayNonUniformIndexingNative_allocs *cgoAllocMap - ref3c07c210.shaderSampledImageArrayNonUniformIndexingNative, cshaderSampledImageArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderSampledImageArrayNonUniformIndexingNative), cgoAllocsUnknown - allocs3c07c210.Borrow(cshaderSampledImageArrayNonUniformIndexingNative_allocs) + refee6ff04.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsee6ff04.Borrow(cpNext_allocs) - var cshaderStorageBufferArrayNonUniformIndexingNative_allocs *cgoAllocMap - ref3c07c210.shaderStorageBufferArrayNonUniformIndexingNative, cshaderStorageBufferArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderStorageBufferArrayNonUniformIndexingNative), cgoAllocsUnknown - allocs3c07c210.Borrow(cshaderStorageBufferArrayNonUniformIndexingNative_allocs) - - var cshaderStorageImageArrayNonUniformIndexingNative_allocs *cgoAllocMap - ref3c07c210.shaderStorageImageArrayNonUniformIndexingNative, cshaderStorageImageArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderStorageImageArrayNonUniformIndexingNative), cgoAllocsUnknown - allocs3c07c210.Borrow(cshaderStorageImageArrayNonUniformIndexingNative_allocs) - - var cshaderInputAttachmentArrayNonUniformIndexingNative_allocs *cgoAllocMap - ref3c07c210.shaderInputAttachmentArrayNonUniformIndexingNative, cshaderInputAttachmentArrayNonUniformIndexingNative_allocs = (C.VkBool32)(x.ShaderInputAttachmentArrayNonUniformIndexingNative), cgoAllocsUnknown - allocs3c07c210.Borrow(cshaderInputAttachmentArrayNonUniformIndexingNative_allocs) - - var crobustBufferAccessUpdateAfterBind_allocs *cgoAllocMap - ref3c07c210.robustBufferAccessUpdateAfterBind, crobustBufferAccessUpdateAfterBind_allocs = (C.VkBool32)(x.RobustBufferAccessUpdateAfterBind), cgoAllocsUnknown - allocs3c07c210.Borrow(crobustBufferAccessUpdateAfterBind_allocs) - - var cquadDivergentImplicitLod_allocs *cgoAllocMap - ref3c07c210.quadDivergentImplicitLod, cquadDivergentImplicitLod_allocs = (C.VkBool32)(x.QuadDivergentImplicitLod), cgoAllocsUnknown - allocs3c07c210.Borrow(cquadDivergentImplicitLod_allocs) - - var cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs *cgoAllocMap - ref3c07c210.maxPerStageDescriptorUpdateAfterBindSamplers, cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindSamplers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageDescriptorUpdateAfterBindSamplers_allocs) - - var cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs *cgoAllocMap - ref3c07c210.maxPerStageDescriptorUpdateAfterBindUniformBuffers, cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindUniformBuffers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageDescriptorUpdateAfterBindUniformBuffers_allocs) - - var cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs *cgoAllocMap - ref3c07c210.maxPerStageDescriptorUpdateAfterBindStorageBuffers, cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindStorageBuffers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageDescriptorUpdateAfterBindStorageBuffers_allocs) - - var cmaxPerStageDescriptorUpdateAfterBindSampledImages_allocs *cgoAllocMap - ref3c07c210.maxPerStageDescriptorUpdateAfterBindSampledImages, cmaxPerStageDescriptorUpdateAfterBindSampledImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindSampledImages), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageDescriptorUpdateAfterBindSampledImages_allocs) - - var cmaxPerStageDescriptorUpdateAfterBindStorageImages_allocs *cgoAllocMap - ref3c07c210.maxPerStageDescriptorUpdateAfterBindStorageImages, cmaxPerStageDescriptorUpdateAfterBindStorageImages_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindStorageImages), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageDescriptorUpdateAfterBindStorageImages_allocs) - - var cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs *cgoAllocMap - ref3c07c210.maxPerStageDescriptorUpdateAfterBindInputAttachments, cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs = (C.uint32_t)(x.MaxPerStageDescriptorUpdateAfterBindInputAttachments), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageDescriptorUpdateAfterBindInputAttachments_allocs) - - var cmaxPerStageUpdateAfterBindResources_allocs *cgoAllocMap - ref3c07c210.maxPerStageUpdateAfterBindResources, cmaxPerStageUpdateAfterBindResources_allocs = (C.uint32_t)(x.MaxPerStageUpdateAfterBindResources), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxPerStageUpdateAfterBindResources_allocs) - - var cmaxDescriptorSetUpdateAfterBindSamplers_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindSamplers, cmaxDescriptorSetUpdateAfterBindSamplers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindSamplers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindSamplers_allocs) - - var cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindUniformBuffers, cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindUniformBuffers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindUniformBuffers_allocs) - - var cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic_allocs) - - var cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindStorageBuffers, cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageBuffers), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindStorageBuffers_allocs) - - var cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic_allocs) - - var cmaxDescriptorSetUpdateAfterBindSampledImages_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindSampledImages, cmaxDescriptorSetUpdateAfterBindSampledImages_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindSampledImages), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindSampledImages_allocs) - - var cmaxDescriptorSetUpdateAfterBindStorageImages_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindStorageImages, cmaxDescriptorSetUpdateAfterBindStorageImages_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindStorageImages), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindStorageImages_allocs) + var ctransform_allocs *cgoAllocMap + refee6ff04.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown + allocsee6ff04.Borrow(ctransform_allocs) - var cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs *cgoAllocMap - ref3c07c210.maxDescriptorSetUpdateAfterBindInputAttachments, cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs = (C.uint32_t)(x.MaxDescriptorSetUpdateAfterBindInputAttachments), cgoAllocsUnknown - allocs3c07c210.Borrow(cmaxDescriptorSetUpdateAfterBindInputAttachments_allocs) + var crenderArea_allocs *cgoAllocMap + refee6ff04.renderArea, crenderArea_allocs = x.RenderArea.PassValue() + allocsee6ff04.Borrow(crenderArea_allocs) - x.ref3c07c210 = ref3c07c210 - x.allocs3c07c210 = allocs3c07c210 - return ref3c07c210, allocs3c07c210 + x.refee6ff04 = refee6ff04 + x.allocsee6ff04 = allocsee6ff04 + return refee6ff04, allocsee6ff04 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceDescriptorIndexingProperties) PassValue() (C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT, *cgoAllocMap) { - if x.ref3c07c210 != nil { - return *x.ref3c07c210, nil +func (x CommandBufferInheritanceRenderPassTransformInfoQCOM) PassValue() (C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM, *cgoAllocMap) { + if x.refee6ff04 != nil { + return *x.refee6ff04, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34817,116 +61414,91 @@ func (x PhysicalDeviceDescriptorIndexingProperties) PassValue() (C.VkPhysicalDev // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceDescriptorIndexingProperties) Deref() { - if x.ref3c07c210 == nil { - return - } - x.SType = (StructureType)(x.ref3c07c210.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3c07c210.pNext)) - x.MaxUpdateAfterBindDescriptorsInAllPools = (uint32)(x.ref3c07c210.maxUpdateAfterBindDescriptorsInAllPools) - x.ShaderUniformBufferArrayNonUniformIndexingNative = (Bool32)(x.ref3c07c210.shaderUniformBufferArrayNonUniformIndexingNative) - x.ShaderSampledImageArrayNonUniformIndexingNative = (Bool32)(x.ref3c07c210.shaderSampledImageArrayNonUniformIndexingNative) - x.ShaderStorageBufferArrayNonUniformIndexingNative = (Bool32)(x.ref3c07c210.shaderStorageBufferArrayNonUniformIndexingNative) - x.ShaderStorageImageArrayNonUniformIndexingNative = (Bool32)(x.ref3c07c210.shaderStorageImageArrayNonUniformIndexingNative) - x.ShaderInputAttachmentArrayNonUniformIndexingNative = (Bool32)(x.ref3c07c210.shaderInputAttachmentArrayNonUniformIndexingNative) - x.RobustBufferAccessUpdateAfterBind = (Bool32)(x.ref3c07c210.robustBufferAccessUpdateAfterBind) - x.QuadDivergentImplicitLod = (Bool32)(x.ref3c07c210.quadDivergentImplicitLod) - x.MaxPerStageDescriptorUpdateAfterBindSamplers = (uint32)(x.ref3c07c210.maxPerStageDescriptorUpdateAfterBindSamplers) - x.MaxPerStageDescriptorUpdateAfterBindUniformBuffers = (uint32)(x.ref3c07c210.maxPerStageDescriptorUpdateAfterBindUniformBuffers) - x.MaxPerStageDescriptorUpdateAfterBindStorageBuffers = (uint32)(x.ref3c07c210.maxPerStageDescriptorUpdateAfterBindStorageBuffers) - x.MaxPerStageDescriptorUpdateAfterBindSampledImages = (uint32)(x.ref3c07c210.maxPerStageDescriptorUpdateAfterBindSampledImages) - x.MaxPerStageDescriptorUpdateAfterBindStorageImages = (uint32)(x.ref3c07c210.maxPerStageDescriptorUpdateAfterBindStorageImages) - x.MaxPerStageDescriptorUpdateAfterBindInputAttachments = (uint32)(x.ref3c07c210.maxPerStageDescriptorUpdateAfterBindInputAttachments) - x.MaxPerStageUpdateAfterBindResources = (uint32)(x.ref3c07c210.maxPerStageUpdateAfterBindResources) - x.MaxDescriptorSetUpdateAfterBindSamplers = (uint32)(x.ref3c07c210.maxDescriptorSetUpdateAfterBindSamplers) - x.MaxDescriptorSetUpdateAfterBindUniformBuffers = (uint32)(x.ref3c07c210.maxDescriptorSetUpdateAfterBindUniformBuffers) - x.MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = (uint32)(x.ref3c07c210.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic) - x.MaxDescriptorSetUpdateAfterBindStorageBuffers = (uint32)(x.ref3c07c210.maxDescriptorSetUpdateAfterBindStorageBuffers) - x.MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = (uint32)(x.ref3c07c210.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic) - x.MaxDescriptorSetUpdateAfterBindSampledImages = (uint32)(x.ref3c07c210.maxDescriptorSetUpdateAfterBindSampledImages) - x.MaxDescriptorSetUpdateAfterBindStorageImages = (uint32)(x.ref3c07c210.maxDescriptorSetUpdateAfterBindStorageImages) - x.MaxDescriptorSetUpdateAfterBindInputAttachments = (uint32)(x.ref3c07c210.maxDescriptorSetUpdateAfterBindInputAttachments) -} - -// allocDescriptorSetVariableDescriptorCountAllocateInfoMemory allocates memory for type C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT in C. +func (x *CommandBufferInheritanceRenderPassTransformInfoQCOM) Deref() { + if x.refee6ff04 == nil { + return + } + x.SType = (StructureType)(x.refee6ff04.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refee6ff04.pNext)) + x.Transform = (SurfaceTransformFlagBits)(x.refee6ff04.transform) + x.RenderArea = *NewRect2DRef(unsafe.Pointer(&x.refee6ff04.renderArea)) +} + +// allocPhysicalDeviceDeviceMemoryReportFeaturesMemory allocates memory for type C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetVariableDescriptorCountAllocateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetVariableDescriptorCountAllocateInfoValue)) +func allocPhysicalDeviceDeviceMemoryReportFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDeviceMemoryReportFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorSetVariableDescriptorCountAllocateInfoValue = unsafe.Sizeof([1]C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT{}) +const sizeOfPhysicalDeviceDeviceMemoryReportFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetVariableDescriptorCountAllocateInfo) Ref() *C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT { +func (x *PhysicalDeviceDeviceMemoryReportFeatures) Ref() *C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { if x == nil { return nil } - return x.ref65152aef + return x.ref477470f6 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorSetVariableDescriptorCountAllocateInfo) Free() { - if x != nil && x.allocs65152aef != nil { - x.allocs65152aef.(*cgoAllocMap).Free() - x.ref65152aef = nil +func (x *PhysicalDeviceDeviceMemoryReportFeatures) Free() { + if x != nil && x.allocs477470f6 != nil { + x.allocs477470f6.(*cgoAllocMap).Free() + x.ref477470f6 = nil } } -// NewDescriptorSetVariableDescriptorCountAllocateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDeviceMemoryReportFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorSetVariableDescriptorCountAllocateInfoRef(ref unsafe.Pointer) *DescriptorSetVariableDescriptorCountAllocateInfo { +func NewPhysicalDeviceDeviceMemoryReportFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDeviceMemoryReportFeatures { if ref == nil { return nil } - obj := new(DescriptorSetVariableDescriptorCountAllocateInfo) - obj.ref65152aef = (*C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDeviceMemoryReportFeatures) + obj.ref477470f6 = (*C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorSetVariableDescriptorCountAllocateInfo) PassRef() (*C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceDeviceMemoryReportFeatures) PassRef() (*C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref65152aef != nil { - return x.ref65152aef, nil + } else if x.ref477470f6 != nil { + return x.ref477470f6, nil } - mem65152aef := allocDescriptorSetVariableDescriptorCountAllocateInfoMemory(1) - ref65152aef := (*C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT)(mem65152aef) - allocs65152aef := new(cgoAllocMap) - allocs65152aef.Add(mem65152aef) + mem477470f6 := allocPhysicalDeviceDeviceMemoryReportFeaturesMemory(1) + ref477470f6 := (*C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT)(mem477470f6) + allocs477470f6 := new(cgoAllocMap) + allocs477470f6.Add(mem477470f6) var csType_allocs *cgoAllocMap - ref65152aef.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs65152aef.Borrow(csType_allocs) + ref477470f6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs477470f6.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref65152aef.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs65152aef.Borrow(cpNext_allocs) - - var cdescriptorSetCount_allocs *cgoAllocMap - ref65152aef.descriptorSetCount, cdescriptorSetCount_allocs = (C.uint32_t)(x.DescriptorSetCount), cgoAllocsUnknown - allocs65152aef.Borrow(cdescriptorSetCount_allocs) + ref477470f6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs477470f6.Borrow(cpNext_allocs) - var cpDescriptorCounts_allocs *cgoAllocMap - ref65152aef.pDescriptorCounts, cpDescriptorCounts_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDescriptorCounts)).Data)), cgoAllocsUnknown - allocs65152aef.Borrow(cpDescriptorCounts_allocs) + var cdeviceMemoryReport_allocs *cgoAllocMap + ref477470f6.deviceMemoryReport, cdeviceMemoryReport_allocs = (C.VkBool32)(x.DeviceMemoryReport), cgoAllocsUnknown + allocs477470f6.Borrow(cdeviceMemoryReport_allocs) - x.ref65152aef = ref65152aef - x.allocs65152aef = allocs65152aef - return ref65152aef, allocs65152aef + x.ref477470f6 = ref477470f6 + x.allocs477470f6 = allocs477470f6 + return ref477470f6, allocs477470f6 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorSetVariableDescriptorCountAllocateInfo) PassValue() (C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, *cgoAllocMap) { - if x.ref65152aef != nil { - return *x.ref65152aef, nil +func (x PhysicalDeviceDeviceMemoryReportFeatures) PassValue() (C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, *cgoAllocMap) { + if x.ref477470f6 != nil { + return *x.ref477470f6, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -34934,95 +61506,114 @@ func (x DescriptorSetVariableDescriptorCountAllocateInfo) PassValue() (C.VkDescr // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorSetVariableDescriptorCountAllocateInfo) Deref() { - if x.ref65152aef == nil { +func (x *PhysicalDeviceDeviceMemoryReportFeatures) Deref() { + if x.ref477470f6 == nil { return } - x.SType = (StructureType)(x.ref65152aef.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref65152aef.pNext)) - x.DescriptorSetCount = (uint32)(x.ref65152aef.descriptorSetCount) - hxfeb55cf := (*sliceHeader)(unsafe.Pointer(&x.PDescriptorCounts)) - hxfeb55cf.Data = unsafe.Pointer(x.ref65152aef.pDescriptorCounts) - hxfeb55cf.Cap = 0x7fffffff - // hxfeb55cf.Len = ? - + x.SType = (StructureType)(x.ref477470f6.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref477470f6.pNext)) + x.DeviceMemoryReport = (Bool32)(x.ref477470f6.deviceMemoryReport) } -// allocDescriptorSetVariableDescriptorCountLayoutSupportMemory allocates memory for type C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT in C. +// allocDeviceMemoryReportCallbackDataMemory allocates memory for type C.VkDeviceMemoryReportCallbackDataEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorSetVariableDescriptorCountLayoutSupportMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorSetVariableDescriptorCountLayoutSupportValue)) +func allocDeviceMemoryReportCallbackDataMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceMemoryReportCallbackDataValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorSetVariableDescriptorCountLayoutSupportValue = unsafe.Sizeof([1]C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT{}) +const sizeOfDeviceMemoryReportCallbackDataValue = unsafe.Sizeof([1]C.VkDeviceMemoryReportCallbackDataEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorSetVariableDescriptorCountLayoutSupport) Ref() *C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT { +func (x *DeviceMemoryReportCallbackData) Ref() *C.VkDeviceMemoryReportCallbackDataEXT { if x == nil { return nil } - return x.ref4684c56f + return x.ref3150dbde } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorSetVariableDescriptorCountLayoutSupport) Free() { - if x != nil && x.allocs4684c56f != nil { - x.allocs4684c56f.(*cgoAllocMap).Free() - x.ref4684c56f = nil +func (x *DeviceMemoryReportCallbackData) Free() { + if x != nil && x.allocs3150dbde != nil { + x.allocs3150dbde.(*cgoAllocMap).Free() + x.ref3150dbde = nil } } -// NewDescriptorSetVariableDescriptorCountLayoutSupportRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceMemoryReportCallbackDataRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorSetVariableDescriptorCountLayoutSupportRef(ref unsafe.Pointer) *DescriptorSetVariableDescriptorCountLayoutSupport { +func NewDeviceMemoryReportCallbackDataRef(ref unsafe.Pointer) *DeviceMemoryReportCallbackData { if ref == nil { return nil } - obj := new(DescriptorSetVariableDescriptorCountLayoutSupport) - obj.ref4684c56f = (*C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT)(unsafe.Pointer(ref)) + obj := new(DeviceMemoryReportCallbackData) + obj.ref3150dbde = (*C.VkDeviceMemoryReportCallbackDataEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorSetVariableDescriptorCountLayoutSupport) PassRef() (*C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, *cgoAllocMap) { +func (x *DeviceMemoryReportCallbackData) PassRef() (*C.VkDeviceMemoryReportCallbackDataEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4684c56f != nil { - return x.ref4684c56f, nil + } else if x.ref3150dbde != nil { + return x.ref3150dbde, nil } - mem4684c56f := allocDescriptorSetVariableDescriptorCountLayoutSupportMemory(1) - ref4684c56f := (*C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT)(mem4684c56f) - allocs4684c56f := new(cgoAllocMap) - allocs4684c56f.Add(mem4684c56f) + mem3150dbde := allocDeviceMemoryReportCallbackDataMemory(1) + ref3150dbde := (*C.VkDeviceMemoryReportCallbackDataEXT)(mem3150dbde) + allocs3150dbde := new(cgoAllocMap) + allocs3150dbde.Add(mem3150dbde) var csType_allocs *cgoAllocMap - ref4684c56f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4684c56f.Borrow(csType_allocs) + ref3150dbde.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3150dbde.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref4684c56f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs4684c56f.Borrow(cpNext_allocs) + ref3150dbde.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3150dbde.Borrow(cpNext_allocs) - var cmaxVariableDescriptorCount_allocs *cgoAllocMap - ref4684c56f.maxVariableDescriptorCount, cmaxVariableDescriptorCount_allocs = (C.uint32_t)(x.MaxVariableDescriptorCount), cgoAllocsUnknown - allocs4684c56f.Borrow(cmaxVariableDescriptorCount_allocs) + var cflags_allocs *cgoAllocMap + ref3150dbde.flags, cflags_allocs = (C.VkDeviceMemoryReportFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs3150dbde.Borrow(cflags_allocs) + + var c_type_allocs *cgoAllocMap + ref3150dbde._type, c_type_allocs = (C.VkDeviceMemoryReportEventTypeEXT)(x.Type), cgoAllocsUnknown + allocs3150dbde.Borrow(c_type_allocs) + + var cmemoryObjectId_allocs *cgoAllocMap + ref3150dbde.memoryObjectId, cmemoryObjectId_allocs = (C.uint64_t)(x.MemoryObjectId), cgoAllocsUnknown + allocs3150dbde.Borrow(cmemoryObjectId_allocs) + + var csize_allocs *cgoAllocMap + ref3150dbde.size, csize_allocs = (C.VkDeviceSize)(x.Size), cgoAllocsUnknown + allocs3150dbde.Borrow(csize_allocs) + + var cobjectType_allocs *cgoAllocMap + ref3150dbde.objectType, cobjectType_allocs = (C.VkObjectType)(x.ObjectType), cgoAllocsUnknown + allocs3150dbde.Borrow(cobjectType_allocs) + + var cobjectHandle_allocs *cgoAllocMap + ref3150dbde.objectHandle, cobjectHandle_allocs = (C.uint64_t)(x.ObjectHandle), cgoAllocsUnknown + allocs3150dbde.Borrow(cobjectHandle_allocs) + + var cheapIndex_allocs *cgoAllocMap + ref3150dbde.heapIndex, cheapIndex_allocs = (C.uint32_t)(x.HeapIndex), cgoAllocsUnknown + allocs3150dbde.Borrow(cheapIndex_allocs) - x.ref4684c56f = ref4684c56f - x.allocs4684c56f = allocs4684c56f - return ref4684c56f, allocs4684c56f + x.ref3150dbde = ref3150dbde + x.allocs3150dbde = allocs3150dbde + return ref3150dbde, allocs3150dbde } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorSetVariableDescriptorCountLayoutSupport) PassValue() (C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, *cgoAllocMap) { - if x.ref4684c56f != nil { - return *x.ref4684c56f, nil +func (x DeviceMemoryReportCallbackData) PassValue() (C.VkDeviceMemoryReportCallbackDataEXT, *cgoAllocMap) { + if x.ref3150dbde != nil { + return *x.ref3150dbde, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35030,86 +61621,151 @@ func (x DescriptorSetVariableDescriptorCountLayoutSupport) PassValue() (C.VkDesc // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorSetVariableDescriptorCountLayoutSupport) Deref() { - if x.ref4684c56f == nil { +func (x *DeviceMemoryReportCallbackData) Deref() { + if x.ref3150dbde == nil { return } - x.SType = (StructureType)(x.ref4684c56f.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4684c56f.pNext)) - x.MaxVariableDescriptorCount = (uint32)(x.ref4684c56f.maxVariableDescriptorCount) + x.SType = (StructureType)(x.ref3150dbde.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3150dbde.pNext)) + x.Flags = (DeviceMemoryReportFlags)(x.ref3150dbde.flags) + x.Type = (DeviceMemoryReportEventType)(x.ref3150dbde._type) + x.MemoryObjectId = (uint64)(x.ref3150dbde.memoryObjectId) + x.Size = (DeviceSize)(x.ref3150dbde.size) + x.ObjectType = (ObjectType)(x.ref3150dbde.objectType) + x.ObjectHandle = (uint64)(x.ref3150dbde.objectHandle) + x.HeapIndex = (uint32)(x.ref3150dbde.heapIndex) } -// allocShadingRatePaletteNVMemory allocates memory for type C.VkShadingRatePaletteNV in C. +// packSDeviceMemoryReportCallbackData reads sliced Go data structure out from plain C format. +func packSDeviceMemoryReportCallbackData(v []DeviceMemoryReportCallbackData, ptr0 *C.VkDeviceMemoryReportCallbackDataEXT) { + const m = 0x7fffffff + for i0 := range v { + ptr1 := (*(*[m / sizeOfDeviceMemoryReportCallbackDataValue]C.VkDeviceMemoryReportCallbackDataEXT)(unsafe.Pointer(ptr0)))[i0] + v[i0] = *NewDeviceMemoryReportCallbackDataRef(unsafe.Pointer(&ptr1)) + } +} + +func (x DeviceMemoryReportCallbackFunc) PassRef() (ref *C.PFN_vkDeviceMemoryReportCallbackEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + if deviceMemoryReportCallbackFuncE34D104CFunc == nil { + deviceMemoryReportCallbackFuncE34D104CFunc = x + } + return (*C.PFN_vkDeviceMemoryReportCallbackEXT)(C.PFN_vkDeviceMemoryReportCallbackEXT_e34d104c), nil +} + +func (x DeviceMemoryReportCallbackFunc) PassValue() (ref C.PFN_vkDeviceMemoryReportCallbackEXT, allocs *cgoAllocMap) { + if x == nil { + return nil, nil + } + if deviceMemoryReportCallbackFuncE34D104CFunc == nil { + deviceMemoryReportCallbackFuncE34D104CFunc = x + } + return (C.PFN_vkDeviceMemoryReportCallbackEXT)(C.PFN_vkDeviceMemoryReportCallbackEXT_e34d104c), nil +} + +func NewDeviceMemoryReportCallbackFuncRef(ref unsafe.Pointer) *DeviceMemoryReportCallbackFunc { + return (*DeviceMemoryReportCallbackFunc)(ref) +} + +//export deviceMemoryReportCallbackFuncE34D104C +func deviceMemoryReportCallbackFuncE34D104C(cpCallbackData *C.VkDeviceMemoryReportCallbackDataEXT, cpUserData unsafe.Pointer) { + if deviceMemoryReportCallbackFuncE34D104CFunc != nil { + var pCallbackDatae34d104c []DeviceMemoryReportCallbackData + packSDeviceMemoryReportCallbackData(pCallbackDatae34d104c, cpCallbackData) + pUserDatae34d104c := (unsafe.Pointer)(unsafe.Pointer(cpUserData)) + deviceMemoryReportCallbackFuncE34D104CFunc(pCallbackDatae34d104c, pUserDatae34d104c) + return + } + panic("callback func has not been set (race?)") +} + +var deviceMemoryReportCallbackFuncE34D104CFunc DeviceMemoryReportCallbackFunc + +// allocDeviceDeviceMemoryReportCreateInfoMemory allocates memory for type C.VkDeviceDeviceMemoryReportCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocShadingRatePaletteNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfShadingRatePaletteNVValue)) +func allocDeviceDeviceMemoryReportCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceDeviceMemoryReportCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfShadingRatePaletteNVValue = unsafe.Sizeof([1]C.VkShadingRatePaletteNV{}) +const sizeOfDeviceDeviceMemoryReportCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceDeviceMemoryReportCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ShadingRatePaletteNV) Ref() *C.VkShadingRatePaletteNV { +func (x *DeviceDeviceMemoryReportCreateInfo) Ref() *C.VkDeviceDeviceMemoryReportCreateInfoEXT { if x == nil { return nil } - return x.refa5c4ae3a + return x.refe99f2c76 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ShadingRatePaletteNV) Free() { - if x != nil && x.allocsa5c4ae3a != nil { - x.allocsa5c4ae3a.(*cgoAllocMap).Free() - x.refa5c4ae3a = nil +func (x *DeviceDeviceMemoryReportCreateInfo) Free() { + if x != nil && x.allocse99f2c76 != nil { + x.allocse99f2c76.(*cgoAllocMap).Free() + x.refe99f2c76 = nil } } -// NewShadingRatePaletteNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceDeviceMemoryReportCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewShadingRatePaletteNVRef(ref unsafe.Pointer) *ShadingRatePaletteNV { +func NewDeviceDeviceMemoryReportCreateInfoRef(ref unsafe.Pointer) *DeviceDeviceMemoryReportCreateInfo { if ref == nil { return nil } - obj := new(ShadingRatePaletteNV) - obj.refa5c4ae3a = (*C.VkShadingRatePaletteNV)(unsafe.Pointer(ref)) + obj := new(DeviceDeviceMemoryReportCreateInfo) + obj.refe99f2c76 = (*C.VkDeviceDeviceMemoryReportCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ShadingRatePaletteNV) PassRef() (*C.VkShadingRatePaletteNV, *cgoAllocMap) { +func (x *DeviceDeviceMemoryReportCreateInfo) PassRef() (*C.VkDeviceDeviceMemoryReportCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa5c4ae3a != nil { - return x.refa5c4ae3a, nil + } else if x.refe99f2c76 != nil { + return x.refe99f2c76, nil } - mema5c4ae3a := allocShadingRatePaletteNVMemory(1) - refa5c4ae3a := (*C.VkShadingRatePaletteNV)(mema5c4ae3a) - allocsa5c4ae3a := new(cgoAllocMap) - allocsa5c4ae3a.Add(mema5c4ae3a) + meme99f2c76 := allocDeviceDeviceMemoryReportCreateInfoMemory(1) + refe99f2c76 := (*C.VkDeviceDeviceMemoryReportCreateInfoEXT)(meme99f2c76) + allocse99f2c76 := new(cgoAllocMap) + allocse99f2c76.Add(meme99f2c76) - var cshadingRatePaletteEntryCount_allocs *cgoAllocMap - refa5c4ae3a.shadingRatePaletteEntryCount, cshadingRatePaletteEntryCount_allocs = (C.uint32_t)(x.ShadingRatePaletteEntryCount), cgoAllocsUnknown - allocsa5c4ae3a.Borrow(cshadingRatePaletteEntryCount_allocs) + var csType_allocs *cgoAllocMap + refe99f2c76.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse99f2c76.Borrow(csType_allocs) - var cpShadingRatePaletteEntries_allocs *cgoAllocMap - refa5c4ae3a.pShadingRatePaletteEntries, cpShadingRatePaletteEntries_allocs = (*C.VkShadingRatePaletteEntryNV)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)).Data)), cgoAllocsUnknown - allocsa5c4ae3a.Borrow(cpShadingRatePaletteEntries_allocs) + var cpNext_allocs *cgoAllocMap + refe99f2c76.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse99f2c76.Borrow(cpNext_allocs) - x.refa5c4ae3a = refa5c4ae3a - x.allocsa5c4ae3a = allocsa5c4ae3a - return refa5c4ae3a, allocsa5c4ae3a + var cflags_allocs *cgoAllocMap + refe99f2c76.flags, cflags_allocs = (C.VkDeviceMemoryReportFlagsEXT)(x.Flags), cgoAllocsUnknown + allocse99f2c76.Borrow(cflags_allocs) + + var cpfnUserCallback_allocs *cgoAllocMap + refe99f2c76.pfnUserCallback, cpfnUserCallback_allocs = x.PfnUserCallback.PassValue() + allocse99f2c76.Borrow(cpfnUserCallback_allocs) + + var cpUserData_allocs *cgoAllocMap + refe99f2c76.pUserData, cpUserData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PUserData)), cgoAllocsUnknown + allocse99f2c76.Borrow(cpUserData_allocs) + + x.refe99f2c76 = refe99f2c76 + x.allocse99f2c76 = allocse99f2c76 + return refe99f2c76, allocse99f2c76 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ShadingRatePaletteNV) PassValue() (C.VkShadingRatePaletteNV, *cgoAllocMap) { - if x.refa5c4ae3a != nil { - return *x.refa5c4ae3a, nil +func (x DeviceDeviceMemoryReportCreateInfo) PassValue() (C.VkDeviceDeviceMemoryReportCreateInfoEXT, *cgoAllocMap) { + if x.refe99f2c76 != nil { + return *x.refe99f2c76, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35117,139 +61773,100 @@ func (x ShadingRatePaletteNV) PassValue() (C.VkShadingRatePaletteNV, *cgoAllocMa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ShadingRatePaletteNV) Deref() { - if x.refa5c4ae3a == nil { +func (x *DeviceDeviceMemoryReportCreateInfo) Deref() { + if x.refe99f2c76 == nil { return } - x.ShadingRatePaletteEntryCount = (uint32)(x.refa5c4ae3a.shadingRatePaletteEntryCount) - hxf458096 := (*sliceHeader)(unsafe.Pointer(&x.PShadingRatePaletteEntries)) - hxf458096.Data = unsafe.Pointer(x.refa5c4ae3a.pShadingRatePaletteEntries) - hxf458096.Cap = 0x7fffffff - // hxf458096.Len = ? - + x.SType = (StructureType)(x.refe99f2c76.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe99f2c76.pNext)) + x.Flags = (DeviceMemoryReportFlags)(x.refe99f2c76.flags) + x.PfnUserCallback = *NewDeviceMemoryReportCallbackFuncRef(unsafe.Pointer(&x.refe99f2c76.pfnUserCallback)) + x.PUserData = (unsafe.Pointer)(unsafe.Pointer(x.refe99f2c76.pUserData)) } -// allocPipelineViewportShadingRateImageStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportShadingRateImageStateCreateInfoNV in C. +// allocPhysicalDeviceRobustness2FeaturesMemory allocates memory for type C.VkPhysicalDeviceRobustness2FeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineViewportShadingRateImageStateCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportShadingRateImageStateCreateInfoNVValue)) +func allocPhysicalDeviceRobustness2FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRobustness2FeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineViewportShadingRateImageStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportShadingRateImageStateCreateInfoNV{}) - -// unpackSShadingRatePaletteNV transforms a sliced Go data structure into plain C format. -func unpackSShadingRatePaletteNV(x []ShadingRatePaletteNV) (unpacked *C.VkShadingRatePaletteNV, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkShadingRatePaletteNV) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocShadingRatePaletteNVMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkShadingRatePaletteNV)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkShadingRatePaletteNV)(h.Data) - return -} - -// packSShadingRatePaletteNV reads sliced Go data structure out from plain C format. -func packSShadingRatePaletteNV(v []ShadingRatePaletteNV, ptr0 *C.VkShadingRatePaletteNV) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfShadingRatePaletteNVValue]C.VkShadingRatePaletteNV)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewShadingRatePaletteNVRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfPhysicalDeviceRobustness2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRobustness2FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Ref() *C.VkPipelineViewportShadingRateImageStateCreateInfoNV { +func (x *PhysicalDeviceRobustness2Features) Ref() *C.VkPhysicalDeviceRobustness2FeaturesEXT { if x == nil { return nil } - return x.ref6f2ec732 + return x.refa1d6be35 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Free() { - if x != nil && x.allocs6f2ec732 != nil { - x.allocs6f2ec732.(*cgoAllocMap).Free() - x.ref6f2ec732 = nil +func (x *PhysicalDeviceRobustness2Features) Free() { + if x != nil && x.allocsa1d6be35 != nil { + x.allocsa1d6be35.(*cgoAllocMap).Free() + x.refa1d6be35 = nil } } -// NewPipelineViewportShadingRateImageStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceRobustness2FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineViewportShadingRateImageStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportShadingRateImageStateCreateInfoNV { +func NewPhysicalDeviceRobustness2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceRobustness2Features { if ref == nil { return nil } - obj := new(PipelineViewportShadingRateImageStateCreateInfoNV) - obj.ref6f2ec732 = (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceRobustness2Features) + obj.refa1d6be35 = (*C.VkPhysicalDeviceRobustness2FeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineViewportShadingRateImageStateCreateInfoNV) PassRef() (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDeviceRobustness2Features) PassRef() (*C.VkPhysicalDeviceRobustness2FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref6f2ec732 != nil { - return x.ref6f2ec732, nil + } else if x.refa1d6be35 != nil { + return x.refa1d6be35, nil } - mem6f2ec732 := allocPipelineViewportShadingRateImageStateCreateInfoNVMemory(1) - ref6f2ec732 := (*C.VkPipelineViewportShadingRateImageStateCreateInfoNV)(mem6f2ec732) - allocs6f2ec732 := new(cgoAllocMap) - allocs6f2ec732.Add(mem6f2ec732) + mema1d6be35 := allocPhysicalDeviceRobustness2FeaturesMemory(1) + refa1d6be35 := (*C.VkPhysicalDeviceRobustness2FeaturesEXT)(mema1d6be35) + allocsa1d6be35 := new(cgoAllocMap) + allocsa1d6be35.Add(mema1d6be35) var csType_allocs *cgoAllocMap - ref6f2ec732.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs6f2ec732.Borrow(csType_allocs) + refa1d6be35.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsa1d6be35.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref6f2ec732.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs6f2ec732.Borrow(cpNext_allocs) + refa1d6be35.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsa1d6be35.Borrow(cpNext_allocs) - var cshadingRateImageEnable_allocs *cgoAllocMap - ref6f2ec732.shadingRateImageEnable, cshadingRateImageEnable_allocs = (C.VkBool32)(x.ShadingRateImageEnable), cgoAllocsUnknown - allocs6f2ec732.Borrow(cshadingRateImageEnable_allocs) + var crobustBufferAccess2_allocs *cgoAllocMap + refa1d6be35.robustBufferAccess2, crobustBufferAccess2_allocs = (C.VkBool32)(x.RobustBufferAccess2), cgoAllocsUnknown + allocsa1d6be35.Borrow(crobustBufferAccess2_allocs) - var cviewportCount_allocs *cgoAllocMap - ref6f2ec732.viewportCount, cviewportCount_allocs = (C.uint32_t)(x.ViewportCount), cgoAllocsUnknown - allocs6f2ec732.Borrow(cviewportCount_allocs) + var crobustImageAccess2_allocs *cgoAllocMap + refa1d6be35.robustImageAccess2, crobustImageAccess2_allocs = (C.VkBool32)(x.RobustImageAccess2), cgoAllocsUnknown + allocsa1d6be35.Borrow(crobustImageAccess2_allocs) - var cpShadingRatePalettes_allocs *cgoAllocMap - ref6f2ec732.pShadingRatePalettes, cpShadingRatePalettes_allocs = unpackSShadingRatePaletteNV(x.PShadingRatePalettes) - allocs6f2ec732.Borrow(cpShadingRatePalettes_allocs) + var cnullDescriptor_allocs *cgoAllocMap + refa1d6be35.nullDescriptor, cnullDescriptor_allocs = (C.VkBool32)(x.NullDescriptor), cgoAllocsUnknown + allocsa1d6be35.Borrow(cnullDescriptor_allocs) - x.ref6f2ec732 = ref6f2ec732 - x.allocs6f2ec732 = allocs6f2ec732 - return ref6f2ec732, allocs6f2ec732 + x.refa1d6be35 = refa1d6be35 + x.allocsa1d6be35 = allocsa1d6be35 + return refa1d6be35, allocsa1d6be35 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineViewportShadingRateImageStateCreateInfoNV) PassValue() (C.VkPipelineViewportShadingRateImageStateCreateInfoNV, *cgoAllocMap) { - if x.ref6f2ec732 != nil { - return *x.ref6f2ec732, nil +func (x PhysicalDeviceRobustness2Features) PassValue() (C.VkPhysicalDeviceRobustness2FeaturesEXT, *cgoAllocMap) { + if x.refa1d6be35 != nil { + return *x.refa1d6be35, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35257,96 +61874,96 @@ func (x PipelineViewportShadingRateImageStateCreateInfoNV) PassValue() (C.VkPipe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineViewportShadingRateImageStateCreateInfoNV) Deref() { - if x.ref6f2ec732 == nil { +func (x *PhysicalDeviceRobustness2Features) Deref() { + if x.refa1d6be35 == nil { return } - x.SType = (StructureType)(x.ref6f2ec732.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6f2ec732.pNext)) - x.ShadingRateImageEnable = (Bool32)(x.ref6f2ec732.shadingRateImageEnable) - x.ViewportCount = (uint32)(x.ref6f2ec732.viewportCount) - packSShadingRatePaletteNV(x.PShadingRatePalettes, x.ref6f2ec732.pShadingRatePalettes) + x.SType = (StructureType)(x.refa1d6be35.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa1d6be35.pNext)) + x.RobustBufferAccess2 = (Bool32)(x.refa1d6be35.robustBufferAccess2) + x.RobustImageAccess2 = (Bool32)(x.refa1d6be35.robustImageAccess2) + x.NullDescriptor = (Bool32)(x.refa1d6be35.nullDescriptor) } -// allocPhysicalDeviceShadingRateImageFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImageFeaturesNV in C. +// allocPhysicalDeviceRobustness2PropertiesMemory allocates memory for type C.VkPhysicalDeviceRobustness2PropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShadingRateImageFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShadingRateImageFeaturesNVValue)) +func allocPhysicalDeviceRobustness2PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRobustness2PropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceShadingRateImageFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImageFeaturesNV{}) +const sizeOfPhysicalDeviceRobustness2PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRobustness2PropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShadingRateImageFeaturesNV) Ref() *C.VkPhysicalDeviceShadingRateImageFeaturesNV { +func (x *PhysicalDeviceRobustness2Properties) Ref() *C.VkPhysicalDeviceRobustness2PropertiesEXT { if x == nil { return nil } - return x.ref199a921b + return x.ref82986127 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceShadingRateImageFeaturesNV) Free() { - if x != nil && x.allocs199a921b != nil { - x.allocs199a921b.(*cgoAllocMap).Free() - x.ref199a921b = nil +func (x *PhysicalDeviceRobustness2Properties) Free() { + if x != nil && x.allocs82986127 != nil { + x.allocs82986127.(*cgoAllocMap).Free() + x.ref82986127 = nil } } -// NewPhysicalDeviceShadingRateImageFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceRobustness2PropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceShadingRateImageFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShadingRateImageFeaturesNV { +func NewPhysicalDeviceRobustness2PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceRobustness2Properties { if ref == nil { return nil } - obj := new(PhysicalDeviceShadingRateImageFeaturesNV) - obj.ref199a921b = (*C.VkPhysicalDeviceShadingRateImageFeaturesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceRobustness2Properties) + obj.ref82986127 = (*C.VkPhysicalDeviceRobustness2PropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceShadingRateImageFeaturesNV) PassRef() (*C.VkPhysicalDeviceShadingRateImageFeaturesNV, *cgoAllocMap) { +func (x *PhysicalDeviceRobustness2Properties) PassRef() (*C.VkPhysicalDeviceRobustness2PropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref199a921b != nil { - return x.ref199a921b, nil + } else if x.ref82986127 != nil { + return x.ref82986127, nil } - mem199a921b := allocPhysicalDeviceShadingRateImageFeaturesNVMemory(1) - ref199a921b := (*C.VkPhysicalDeviceShadingRateImageFeaturesNV)(mem199a921b) - allocs199a921b := new(cgoAllocMap) - allocs199a921b.Add(mem199a921b) + mem82986127 := allocPhysicalDeviceRobustness2PropertiesMemory(1) + ref82986127 := (*C.VkPhysicalDeviceRobustness2PropertiesEXT)(mem82986127) + allocs82986127 := new(cgoAllocMap) + allocs82986127.Add(mem82986127) var csType_allocs *cgoAllocMap - ref199a921b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs199a921b.Borrow(csType_allocs) + ref82986127.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs82986127.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref199a921b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs199a921b.Borrow(cpNext_allocs) + ref82986127.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs82986127.Borrow(cpNext_allocs) - var cshadingRateImage_allocs *cgoAllocMap - ref199a921b.shadingRateImage, cshadingRateImage_allocs = (C.VkBool32)(x.ShadingRateImage), cgoAllocsUnknown - allocs199a921b.Borrow(cshadingRateImage_allocs) + var crobustStorageBufferAccessSizeAlignment_allocs *cgoAllocMap + ref82986127.robustStorageBufferAccessSizeAlignment, crobustStorageBufferAccessSizeAlignment_allocs = (C.VkDeviceSize)(x.RobustStorageBufferAccessSizeAlignment), cgoAllocsUnknown + allocs82986127.Borrow(crobustStorageBufferAccessSizeAlignment_allocs) - var cshadingRateCoarseSampleOrder_allocs *cgoAllocMap - ref199a921b.shadingRateCoarseSampleOrder, cshadingRateCoarseSampleOrder_allocs = (C.VkBool32)(x.ShadingRateCoarseSampleOrder), cgoAllocsUnknown - allocs199a921b.Borrow(cshadingRateCoarseSampleOrder_allocs) + var crobustUniformBufferAccessSizeAlignment_allocs *cgoAllocMap + ref82986127.robustUniformBufferAccessSizeAlignment, crobustUniformBufferAccessSizeAlignment_allocs = (C.VkDeviceSize)(x.RobustUniformBufferAccessSizeAlignment), cgoAllocsUnknown + allocs82986127.Borrow(crobustUniformBufferAccessSizeAlignment_allocs) - x.ref199a921b = ref199a921b - x.allocs199a921b = allocs199a921b - return ref199a921b, allocs199a921b + x.ref82986127 = ref82986127 + x.allocs82986127 = allocs82986127 + return ref82986127, allocs82986127 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceShadingRateImageFeaturesNV) PassValue() (C.VkPhysicalDeviceShadingRateImageFeaturesNV, *cgoAllocMap) { - if x.ref199a921b != nil { - return *x.ref199a921b, nil +func (x PhysicalDeviceRobustness2Properties) PassValue() (C.VkPhysicalDeviceRobustness2PropertiesEXT, *cgoAllocMap) { + if x.ref82986127 != nil { + return *x.ref82986127, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35354,99 +61971,95 @@ func (x PhysicalDeviceShadingRateImageFeaturesNV) PassValue() (C.VkPhysicalDevic // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceShadingRateImageFeaturesNV) Deref() { - if x.ref199a921b == nil { +func (x *PhysicalDeviceRobustness2Properties) Deref() { + if x.ref82986127 == nil { return } - x.SType = (StructureType)(x.ref199a921b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref199a921b.pNext)) - x.ShadingRateImage = (Bool32)(x.ref199a921b.shadingRateImage) - x.ShadingRateCoarseSampleOrder = (Bool32)(x.ref199a921b.shadingRateCoarseSampleOrder) + x.SType = (StructureType)(x.ref82986127.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref82986127.pNext)) + x.RobustStorageBufferAccessSizeAlignment = (DeviceSize)(x.ref82986127.robustStorageBufferAccessSizeAlignment) + x.RobustUniformBufferAccessSizeAlignment = (DeviceSize)(x.ref82986127.robustUniformBufferAccessSizeAlignment) } -// allocPhysicalDeviceShadingRateImagePropertiesNVMemory allocates memory for type C.VkPhysicalDeviceShadingRateImagePropertiesNV in C. +// allocSamplerCustomBorderColorCreateInfoMemory allocates memory for type C.VkSamplerCustomBorderColorCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShadingRateImagePropertiesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShadingRateImagePropertiesNVValue)) +func allocSamplerCustomBorderColorCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerCustomBorderColorCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceShadingRateImagePropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShadingRateImagePropertiesNV{}) +const sizeOfSamplerCustomBorderColorCreateInfoValue = unsafe.Sizeof([1]C.VkSamplerCustomBorderColorCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShadingRateImagePropertiesNV) Ref() *C.VkPhysicalDeviceShadingRateImagePropertiesNV { +func (x *SamplerCustomBorderColorCreateInfo) Ref() *C.VkSamplerCustomBorderColorCreateInfoEXT { if x == nil { return nil } - return x.refea059f34 + return x.refcac2582e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceShadingRateImagePropertiesNV) Free() { - if x != nil && x.allocsea059f34 != nil { - x.allocsea059f34.(*cgoAllocMap).Free() - x.refea059f34 = nil +func (x *SamplerCustomBorderColorCreateInfo) Free() { + if x != nil && x.allocscac2582e != nil { + x.allocscac2582e.(*cgoAllocMap).Free() + x.refcac2582e = nil } } -// NewPhysicalDeviceShadingRateImagePropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSamplerCustomBorderColorCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceShadingRateImagePropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceShadingRateImagePropertiesNV { +func NewSamplerCustomBorderColorCreateInfoRef(ref unsafe.Pointer) *SamplerCustomBorderColorCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceShadingRateImagePropertiesNV) - obj.refea059f34 = (*C.VkPhysicalDeviceShadingRateImagePropertiesNV)(unsafe.Pointer(ref)) + obj := new(SamplerCustomBorderColorCreateInfo) + obj.refcac2582e = (*C.VkSamplerCustomBorderColorCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceShadingRateImagePropertiesNV) PassRef() (*C.VkPhysicalDeviceShadingRateImagePropertiesNV, *cgoAllocMap) { +func (x *SamplerCustomBorderColorCreateInfo) PassRef() (*C.VkSamplerCustomBorderColorCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refea059f34 != nil { - return x.refea059f34, nil + } else if x.refcac2582e != nil { + return x.refcac2582e, nil } - memea059f34 := allocPhysicalDeviceShadingRateImagePropertiesNVMemory(1) - refea059f34 := (*C.VkPhysicalDeviceShadingRateImagePropertiesNV)(memea059f34) - allocsea059f34 := new(cgoAllocMap) - allocsea059f34.Add(memea059f34) + memcac2582e := allocSamplerCustomBorderColorCreateInfoMemory(1) + refcac2582e := (*C.VkSamplerCustomBorderColorCreateInfoEXT)(memcac2582e) + allocscac2582e := new(cgoAllocMap) + allocscac2582e.Add(memcac2582e) var csType_allocs *cgoAllocMap - refea059f34.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsea059f34.Borrow(csType_allocs) + refcac2582e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocscac2582e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refea059f34.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsea059f34.Borrow(cpNext_allocs) - - var cshadingRateTexelSize_allocs *cgoAllocMap - refea059f34.shadingRateTexelSize, cshadingRateTexelSize_allocs = x.ShadingRateTexelSize.PassValue() - allocsea059f34.Borrow(cshadingRateTexelSize_allocs) + refcac2582e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocscac2582e.Borrow(cpNext_allocs) - var cshadingRatePaletteSize_allocs *cgoAllocMap - refea059f34.shadingRatePaletteSize, cshadingRatePaletteSize_allocs = (C.uint32_t)(x.ShadingRatePaletteSize), cgoAllocsUnknown - allocsea059f34.Borrow(cshadingRatePaletteSize_allocs) + var ccustomBorderColor_allocs *cgoAllocMap + refcac2582e.customBorderColor, ccustomBorderColor_allocs = *(*C.VkClearColorValue)(unsafe.Pointer(&x.CustomBorderColor)), cgoAllocsUnknown + allocscac2582e.Borrow(ccustomBorderColor_allocs) - var cshadingRateMaxCoarseSamples_allocs *cgoAllocMap - refea059f34.shadingRateMaxCoarseSamples, cshadingRateMaxCoarseSamples_allocs = (C.uint32_t)(x.ShadingRateMaxCoarseSamples), cgoAllocsUnknown - allocsea059f34.Borrow(cshadingRateMaxCoarseSamples_allocs) + var cformat_allocs *cgoAllocMap + refcac2582e.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocscac2582e.Borrow(cformat_allocs) - x.refea059f34 = refea059f34 - x.allocsea059f34 = allocsea059f34 - return refea059f34, allocsea059f34 + x.refcac2582e = refcac2582e + x.allocscac2582e = allocscac2582e + return refcac2582e, allocscac2582e } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceShadingRateImagePropertiesNV) PassValue() (C.VkPhysicalDeviceShadingRateImagePropertiesNV, *cgoAllocMap) { - if x.refea059f34 != nil { - return *x.refea059f34, nil +func (x SamplerCustomBorderColorCreateInfo) PassValue() (C.VkSamplerCustomBorderColorCreateInfoEXT, *cgoAllocMap) { + if x.refcac2582e != nil { + return *x.refcac2582e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35454,92 +62067,91 @@ func (x PhysicalDeviceShadingRateImagePropertiesNV) PassValue() (C.VkPhysicalDev // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceShadingRateImagePropertiesNV) Deref() { - if x.refea059f34 == nil { +func (x *SamplerCustomBorderColorCreateInfo) Deref() { + if x.refcac2582e == nil { return } - x.SType = (StructureType)(x.refea059f34.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refea059f34.pNext)) - x.ShadingRateTexelSize = *NewExtent2DRef(unsafe.Pointer(&x.refea059f34.shadingRateTexelSize)) - x.ShadingRatePaletteSize = (uint32)(x.refea059f34.shadingRatePaletteSize) - x.ShadingRateMaxCoarseSamples = (uint32)(x.refea059f34.shadingRateMaxCoarseSamples) + x.SType = (StructureType)(x.refcac2582e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refcac2582e.pNext)) + x.CustomBorderColor = *(*ClearColorValue)(unsafe.Pointer(&x.refcac2582e.customBorderColor)) + x.Format = (Format)(x.refcac2582e.format) } -// allocCoarseSampleLocationNVMemory allocates memory for type C.VkCoarseSampleLocationNV in C. +// allocPhysicalDeviceCustomBorderColorPropertiesMemory allocates memory for type C.VkPhysicalDeviceCustomBorderColorPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocCoarseSampleLocationNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCoarseSampleLocationNVValue)) +func allocPhysicalDeviceCustomBorderColorPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCustomBorderColorPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfCoarseSampleLocationNVValue = unsafe.Sizeof([1]C.VkCoarseSampleLocationNV{}) +const sizeOfPhysicalDeviceCustomBorderColorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCustomBorderColorPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CoarseSampleLocationNV) Ref() *C.VkCoarseSampleLocationNV { +func (x *PhysicalDeviceCustomBorderColorProperties) Ref() *C.VkPhysicalDeviceCustomBorderColorPropertiesEXT { if x == nil { return nil } - return x.ref2f447beb + return x.ref4b62d3cd } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CoarseSampleLocationNV) Free() { - if x != nil && x.allocs2f447beb != nil { - x.allocs2f447beb.(*cgoAllocMap).Free() - x.ref2f447beb = nil +func (x *PhysicalDeviceCustomBorderColorProperties) Free() { + if x != nil && x.allocs4b62d3cd != nil { + x.allocs4b62d3cd.(*cgoAllocMap).Free() + x.ref4b62d3cd = nil } } -// NewCoarseSampleLocationNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceCustomBorderColorPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCoarseSampleLocationNVRef(ref unsafe.Pointer) *CoarseSampleLocationNV { +func NewPhysicalDeviceCustomBorderColorPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceCustomBorderColorProperties { if ref == nil { return nil } - obj := new(CoarseSampleLocationNV) - obj.ref2f447beb = (*C.VkCoarseSampleLocationNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceCustomBorderColorProperties) + obj.ref4b62d3cd = (*C.VkPhysicalDeviceCustomBorderColorPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CoarseSampleLocationNV) PassRef() (*C.VkCoarseSampleLocationNV, *cgoAllocMap) { +func (x *PhysicalDeviceCustomBorderColorProperties) PassRef() (*C.VkPhysicalDeviceCustomBorderColorPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2f447beb != nil { - return x.ref2f447beb, nil + } else if x.ref4b62d3cd != nil { + return x.ref4b62d3cd, nil } - mem2f447beb := allocCoarseSampleLocationNVMemory(1) - ref2f447beb := (*C.VkCoarseSampleLocationNV)(mem2f447beb) - allocs2f447beb := new(cgoAllocMap) - allocs2f447beb.Add(mem2f447beb) + mem4b62d3cd := allocPhysicalDeviceCustomBorderColorPropertiesMemory(1) + ref4b62d3cd := (*C.VkPhysicalDeviceCustomBorderColorPropertiesEXT)(mem4b62d3cd) + allocs4b62d3cd := new(cgoAllocMap) + allocs4b62d3cd.Add(mem4b62d3cd) - var cpixelX_allocs *cgoAllocMap - ref2f447beb.pixelX, cpixelX_allocs = (C.uint32_t)(x.PixelX), cgoAllocsUnknown - allocs2f447beb.Borrow(cpixelX_allocs) + var csType_allocs *cgoAllocMap + ref4b62d3cd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs4b62d3cd.Borrow(csType_allocs) - var cpixelY_allocs *cgoAllocMap - ref2f447beb.pixelY, cpixelY_allocs = (C.uint32_t)(x.PixelY), cgoAllocsUnknown - allocs2f447beb.Borrow(cpixelY_allocs) + var cpNext_allocs *cgoAllocMap + ref4b62d3cd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs4b62d3cd.Borrow(cpNext_allocs) - var csample_allocs *cgoAllocMap - ref2f447beb.sample, csample_allocs = (C.uint32_t)(x.Sample), cgoAllocsUnknown - allocs2f447beb.Borrow(csample_allocs) + var cmaxCustomBorderColorSamplers_allocs *cgoAllocMap + ref4b62d3cd.maxCustomBorderColorSamplers, cmaxCustomBorderColorSamplers_allocs = (C.uint32_t)(x.MaxCustomBorderColorSamplers), cgoAllocsUnknown + allocs4b62d3cd.Borrow(cmaxCustomBorderColorSamplers_allocs) - x.ref2f447beb = ref2f447beb - x.allocs2f447beb = allocs2f447beb - return ref2f447beb, allocs2f447beb + x.ref4b62d3cd = ref4b62d3cd + x.allocs4b62d3cd = allocs4b62d3cd + return ref4b62d3cd, allocs4b62d3cd } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CoarseSampleLocationNV) PassValue() (C.VkCoarseSampleLocationNV, *cgoAllocMap) { - if x.ref2f447beb != nil { - return *x.ref2f447beb, nil +func (x PhysicalDeviceCustomBorderColorProperties) PassValue() (C.VkPhysicalDeviceCustomBorderColorPropertiesEXT, *cgoAllocMap) { + if x.ref4b62d3cd != nil { + return *x.ref4b62d3cd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35547,132 +62159,94 @@ func (x CoarseSampleLocationNV) PassValue() (C.VkCoarseSampleLocationNV, *cgoAll // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CoarseSampleLocationNV) Deref() { - if x.ref2f447beb == nil { +func (x *PhysicalDeviceCustomBorderColorProperties) Deref() { + if x.ref4b62d3cd == nil { return } - x.PixelX = (uint32)(x.ref2f447beb.pixelX) - x.PixelY = (uint32)(x.ref2f447beb.pixelY) - x.Sample = (uint32)(x.ref2f447beb.sample) + x.SType = (StructureType)(x.ref4b62d3cd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4b62d3cd.pNext)) + x.MaxCustomBorderColorSamplers = (uint32)(x.ref4b62d3cd.maxCustomBorderColorSamplers) } -// allocCoarseSampleOrderCustomNVMemory allocates memory for type C.VkCoarseSampleOrderCustomNV in C. +// allocPhysicalDeviceCustomBorderColorFeaturesMemory allocates memory for type C.VkPhysicalDeviceCustomBorderColorFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocCoarseSampleOrderCustomNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCoarseSampleOrderCustomNVValue)) +func allocPhysicalDeviceCustomBorderColorFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceCustomBorderColorFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfCoarseSampleOrderCustomNVValue = unsafe.Sizeof([1]C.VkCoarseSampleOrderCustomNV{}) - -// unpackSCoarseSampleLocationNV transforms a sliced Go data structure into plain C format. -func unpackSCoarseSampleLocationNV(x []CoarseSampleLocationNV) (unpacked *C.VkCoarseSampleLocationNV, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkCoarseSampleLocationNV) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocCoarseSampleLocationNVMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkCoarseSampleLocationNV)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkCoarseSampleLocationNV)(h.Data) - return -} - -// packSCoarseSampleLocationNV reads sliced Go data structure out from plain C format. -func packSCoarseSampleLocationNV(v []CoarseSampleLocationNV, ptr0 *C.VkCoarseSampleLocationNV) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfCoarseSampleLocationNVValue]C.VkCoarseSampleLocationNV)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewCoarseSampleLocationNVRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfPhysicalDeviceCustomBorderColorFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceCustomBorderColorFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CoarseSampleOrderCustomNV) Ref() *C.VkCoarseSampleOrderCustomNV { +func (x *PhysicalDeviceCustomBorderColorFeatures) Ref() *C.VkPhysicalDeviceCustomBorderColorFeaturesEXT { if x == nil { return nil } - return x.ref4524fa09 + return x.ref8a9c96e0 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CoarseSampleOrderCustomNV) Free() { - if x != nil && x.allocs4524fa09 != nil { - x.allocs4524fa09.(*cgoAllocMap).Free() - x.ref4524fa09 = nil +func (x *PhysicalDeviceCustomBorderColorFeatures) Free() { + if x != nil && x.allocs8a9c96e0 != nil { + x.allocs8a9c96e0.(*cgoAllocMap).Free() + x.ref8a9c96e0 = nil } } -// NewCoarseSampleOrderCustomNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceCustomBorderColorFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCoarseSampleOrderCustomNVRef(ref unsafe.Pointer) *CoarseSampleOrderCustomNV { +func NewPhysicalDeviceCustomBorderColorFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceCustomBorderColorFeatures { if ref == nil { return nil } - obj := new(CoarseSampleOrderCustomNV) - obj.ref4524fa09 = (*C.VkCoarseSampleOrderCustomNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceCustomBorderColorFeatures) + obj.ref8a9c96e0 = (*C.VkPhysicalDeviceCustomBorderColorFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CoarseSampleOrderCustomNV) PassRef() (*C.VkCoarseSampleOrderCustomNV, *cgoAllocMap) { +func (x *PhysicalDeviceCustomBorderColorFeatures) PassRef() (*C.VkPhysicalDeviceCustomBorderColorFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4524fa09 != nil { - return x.ref4524fa09, nil + } else if x.ref8a9c96e0 != nil { + return x.ref8a9c96e0, nil } - mem4524fa09 := allocCoarseSampleOrderCustomNVMemory(1) - ref4524fa09 := (*C.VkCoarseSampleOrderCustomNV)(mem4524fa09) - allocs4524fa09 := new(cgoAllocMap) - allocs4524fa09.Add(mem4524fa09) + mem8a9c96e0 := allocPhysicalDeviceCustomBorderColorFeaturesMemory(1) + ref8a9c96e0 := (*C.VkPhysicalDeviceCustomBorderColorFeaturesEXT)(mem8a9c96e0) + allocs8a9c96e0 := new(cgoAllocMap) + allocs8a9c96e0.Add(mem8a9c96e0) - var cshadingRate_allocs *cgoAllocMap - ref4524fa09.shadingRate, cshadingRate_allocs = (C.VkShadingRatePaletteEntryNV)(x.ShadingRate), cgoAllocsUnknown - allocs4524fa09.Borrow(cshadingRate_allocs) + var csType_allocs *cgoAllocMap + ref8a9c96e0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8a9c96e0.Borrow(csType_allocs) - var csampleCount_allocs *cgoAllocMap - ref4524fa09.sampleCount, csampleCount_allocs = (C.uint32_t)(x.SampleCount), cgoAllocsUnknown - allocs4524fa09.Borrow(csampleCount_allocs) + var cpNext_allocs *cgoAllocMap + ref8a9c96e0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8a9c96e0.Borrow(cpNext_allocs) - var csampleLocationCount_allocs *cgoAllocMap - ref4524fa09.sampleLocationCount, csampleLocationCount_allocs = (C.uint32_t)(x.SampleLocationCount), cgoAllocsUnknown - allocs4524fa09.Borrow(csampleLocationCount_allocs) + var ccustomBorderColors_allocs *cgoAllocMap + ref8a9c96e0.customBorderColors, ccustomBorderColors_allocs = (C.VkBool32)(x.CustomBorderColors), cgoAllocsUnknown + allocs8a9c96e0.Borrow(ccustomBorderColors_allocs) - var cpSampleLocations_allocs *cgoAllocMap - ref4524fa09.pSampleLocations, cpSampleLocations_allocs = unpackSCoarseSampleLocationNV(x.PSampleLocations) - allocs4524fa09.Borrow(cpSampleLocations_allocs) + var ccustomBorderColorWithoutFormat_allocs *cgoAllocMap + ref8a9c96e0.customBorderColorWithoutFormat, ccustomBorderColorWithoutFormat_allocs = (C.VkBool32)(x.CustomBorderColorWithoutFormat), cgoAllocsUnknown + allocs8a9c96e0.Borrow(ccustomBorderColorWithoutFormat_allocs) - x.ref4524fa09 = ref4524fa09 - x.allocs4524fa09 = allocs4524fa09 - return ref4524fa09, allocs4524fa09 + x.ref8a9c96e0 = ref8a9c96e0 + x.allocs8a9c96e0 = allocs8a9c96e0 + return ref8a9c96e0, allocs8a9c96e0 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CoarseSampleOrderCustomNV) PassValue() (C.VkCoarseSampleOrderCustomNV, *cgoAllocMap) { - if x.ref4524fa09 != nil { - return *x.ref4524fa09, nil +func (x PhysicalDeviceCustomBorderColorFeatures) PassValue() (C.VkPhysicalDeviceCustomBorderColorFeaturesEXT, *cgoAllocMap) { + if x.ref8a9c96e0 != nil { + return *x.ref8a9c96e0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35680,137 +62254,91 @@ func (x CoarseSampleOrderCustomNV) PassValue() (C.VkCoarseSampleOrderCustomNV, * // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CoarseSampleOrderCustomNV) Deref() { - if x.ref4524fa09 == nil { +func (x *PhysicalDeviceCustomBorderColorFeatures) Deref() { + if x.ref8a9c96e0 == nil { return } - x.ShadingRate = (ShadingRatePaletteEntryNV)(x.ref4524fa09.shadingRate) - x.SampleCount = (uint32)(x.ref4524fa09.sampleCount) - x.SampleLocationCount = (uint32)(x.ref4524fa09.sampleLocationCount) - packSCoarseSampleLocationNV(x.PSampleLocations, x.ref4524fa09.pSampleLocations) + x.SType = (StructureType)(x.ref8a9c96e0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8a9c96e0.pNext)) + x.CustomBorderColors = (Bool32)(x.ref8a9c96e0.customBorderColors) + x.CustomBorderColorWithoutFormat = (Bool32)(x.ref8a9c96e0.customBorderColorWithoutFormat) } -// allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV in C. +// allocPhysicalDevicePresentBarrierFeaturesNVMemory allocates memory for type C.VkPhysicalDevicePresentBarrierFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportCoarseSampleOrderStateCreateInfoNVValue)) +func allocPhysicalDevicePresentBarrierFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePresentBarrierFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineViewportCoarseSampleOrderStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV{}) - -// unpackSCoarseSampleOrderCustomNV transforms a sliced Go data structure into plain C format. -func unpackSCoarseSampleOrderCustomNV(x []CoarseSampleOrderCustomNV) (unpacked *C.VkCoarseSampleOrderCustomNV, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkCoarseSampleOrderCustomNV) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocCoarseSampleOrderCustomNVMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkCoarseSampleOrderCustomNV)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkCoarseSampleOrderCustomNV)(h.Data) - return -} - -// packSCoarseSampleOrderCustomNV reads sliced Go data structure out from plain C format. -func packSCoarseSampleOrderCustomNV(v []CoarseSampleOrderCustomNV, ptr0 *C.VkCoarseSampleOrderCustomNV) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfCoarseSampleOrderCustomNVValue]C.VkCoarseSampleOrderCustomNV)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewCoarseSampleOrderCustomNVRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfPhysicalDevicePresentBarrierFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDevicePresentBarrierFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Ref() *C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { +func (x *PhysicalDevicePresentBarrierFeaturesNV) Ref() *C.VkPhysicalDevicePresentBarrierFeaturesNV { if x == nil { return nil } - return x.ref54de8ca6 + return x.reff8c28ce8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Free() { - if x != nil && x.allocs54de8ca6 != nil { - x.allocs54de8ca6.(*cgoAllocMap).Free() - x.ref54de8ca6 = nil +func (x *PhysicalDevicePresentBarrierFeaturesNV) Free() { + if x != nil && x.allocsf8c28ce8 != nil { + x.allocsf8c28ce8.(*cgoAllocMap).Free() + x.reff8c28ce8 = nil } } -// NewPipelineViewportCoarseSampleOrderStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePresentBarrierFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineViewportCoarseSampleOrderStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportCoarseSampleOrderStateCreateInfoNV { +func NewPhysicalDevicePresentBarrierFeaturesNVRef(ref unsafe.Pointer) *PhysicalDevicePresentBarrierFeaturesNV { if ref == nil { return nil } - obj := new(PipelineViewportCoarseSampleOrderStateCreateInfoNV) - obj.ref54de8ca6 = (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePresentBarrierFeaturesNV) + obj.reff8c28ce8 = (*C.VkPhysicalDevicePresentBarrierFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassRef() (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, *cgoAllocMap) { +func (x *PhysicalDevicePresentBarrierFeaturesNV) PassRef() (*C.VkPhysicalDevicePresentBarrierFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref54de8ca6 != nil { - return x.ref54de8ca6, nil + } else if x.reff8c28ce8 != nil { + return x.reff8c28ce8, nil } - mem54de8ca6 := allocPipelineViewportCoarseSampleOrderStateCreateInfoNVMemory(1) - ref54de8ca6 := (*C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)(mem54de8ca6) - allocs54de8ca6 := new(cgoAllocMap) - allocs54de8ca6.Add(mem54de8ca6) + memf8c28ce8 := allocPhysicalDevicePresentBarrierFeaturesNVMemory(1) + reff8c28ce8 := (*C.VkPhysicalDevicePresentBarrierFeaturesNV)(memf8c28ce8) + allocsf8c28ce8 := new(cgoAllocMap) + allocsf8c28ce8.Add(memf8c28ce8) var csType_allocs *cgoAllocMap - ref54de8ca6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs54de8ca6.Borrow(csType_allocs) + reff8c28ce8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf8c28ce8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref54de8ca6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs54de8ca6.Borrow(cpNext_allocs) - - var csampleOrderType_allocs *cgoAllocMap - ref54de8ca6.sampleOrderType, csampleOrderType_allocs = (C.VkCoarseSampleOrderTypeNV)(x.SampleOrderType), cgoAllocsUnknown - allocs54de8ca6.Borrow(csampleOrderType_allocs) - - var ccustomSampleOrderCount_allocs *cgoAllocMap - ref54de8ca6.customSampleOrderCount, ccustomSampleOrderCount_allocs = (C.uint32_t)(x.CustomSampleOrderCount), cgoAllocsUnknown - allocs54de8ca6.Borrow(ccustomSampleOrderCount_allocs) + reff8c28ce8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf8c28ce8.Borrow(cpNext_allocs) - var cpCustomSampleOrders_allocs *cgoAllocMap - ref54de8ca6.pCustomSampleOrders, cpCustomSampleOrders_allocs = unpackSCoarseSampleOrderCustomNV(x.PCustomSampleOrders) - allocs54de8ca6.Borrow(cpCustomSampleOrders_allocs) + var cpresentBarrier_allocs *cgoAllocMap + reff8c28ce8.presentBarrier, cpresentBarrier_allocs = (C.VkBool32)(x.PresentBarrier), cgoAllocsUnknown + allocsf8c28ce8.Borrow(cpresentBarrier_allocs) - x.ref54de8ca6 = ref54de8ca6 - x.allocs54de8ca6 = allocs54de8ca6 - return ref54de8ca6, allocs54de8ca6 + x.reff8c28ce8 = reff8c28ce8 + x.allocsf8c28ce8 = allocsf8c28ce8 + return reff8c28ce8, allocsf8c28ce8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassValue() (C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, *cgoAllocMap) { - if x.ref54de8ca6 != nil { - return *x.ref54de8ca6, nil +func (x PhysicalDevicePresentBarrierFeaturesNV) PassValue() (C.VkPhysicalDevicePresentBarrierFeaturesNV, *cgoAllocMap) { + if x.reff8c28ce8 != nil { + return *x.reff8c28ce8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35818,120 +62346,90 @@ func (x PipelineViewportCoarseSampleOrderStateCreateInfoNV) PassValue() (C.VkPip // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineViewportCoarseSampleOrderStateCreateInfoNV) Deref() { - if x.ref54de8ca6 == nil { +func (x *PhysicalDevicePresentBarrierFeaturesNV) Deref() { + if x.reff8c28ce8 == nil { return } - x.SType = (StructureType)(x.ref54de8ca6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref54de8ca6.pNext)) - x.SampleOrderType = (CoarseSampleOrderTypeNV)(x.ref54de8ca6.sampleOrderType) - x.CustomSampleOrderCount = (uint32)(x.ref54de8ca6.customSampleOrderCount) - packSCoarseSampleOrderCustomNV(x.PCustomSampleOrders, x.ref54de8ca6.pCustomSampleOrders) + x.SType = (StructureType)(x.reff8c28ce8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff8c28ce8.pNext)) + x.PresentBarrier = (Bool32)(x.reff8c28ce8.presentBarrier) } -// allocRaytracingPipelineCreateInfoNVXMemory allocates memory for type C.VkRaytracingPipelineCreateInfoNVX in C. +// allocSurfaceCapabilitiesPresentBarrierNVMemory allocates memory for type C.VkSurfaceCapabilitiesPresentBarrierNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocRaytracingPipelineCreateInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfRaytracingPipelineCreateInfoNVXValue)) +func allocSurfaceCapabilitiesPresentBarrierNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSurfaceCapabilitiesPresentBarrierNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfRaytracingPipelineCreateInfoNVXValue = unsafe.Sizeof([1]C.VkRaytracingPipelineCreateInfoNVX{}) +const sizeOfSurfaceCapabilitiesPresentBarrierNVValue = unsafe.Sizeof([1]C.VkSurfaceCapabilitiesPresentBarrierNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *RaytracingPipelineCreateInfoNVX) Ref() *C.VkRaytracingPipelineCreateInfoNVX { +func (x *SurfaceCapabilitiesPresentBarrierNV) Ref() *C.VkSurfaceCapabilitiesPresentBarrierNV { if x == nil { return nil } - return x.ref4d91852a + return x.refb05347b2 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *RaytracingPipelineCreateInfoNVX) Free() { - if x != nil && x.allocs4d91852a != nil { - x.allocs4d91852a.(*cgoAllocMap).Free() - x.ref4d91852a = nil +func (x *SurfaceCapabilitiesPresentBarrierNV) Free() { + if x != nil && x.allocsb05347b2 != nil { + x.allocsb05347b2.(*cgoAllocMap).Free() + x.refb05347b2 = nil } } -// NewRaytracingPipelineCreateInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSurfaceCapabilitiesPresentBarrierNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewRaytracingPipelineCreateInfoNVXRef(ref unsafe.Pointer) *RaytracingPipelineCreateInfoNVX { +func NewSurfaceCapabilitiesPresentBarrierNVRef(ref unsafe.Pointer) *SurfaceCapabilitiesPresentBarrierNV { if ref == nil { return nil } - obj := new(RaytracingPipelineCreateInfoNVX) - obj.ref4d91852a = (*C.VkRaytracingPipelineCreateInfoNVX)(unsafe.Pointer(ref)) + obj := new(SurfaceCapabilitiesPresentBarrierNV) + obj.refb05347b2 = (*C.VkSurfaceCapabilitiesPresentBarrierNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *RaytracingPipelineCreateInfoNVX) PassRef() (*C.VkRaytracingPipelineCreateInfoNVX, *cgoAllocMap) { +func (x *SurfaceCapabilitiesPresentBarrierNV) PassRef() (*C.VkSurfaceCapabilitiesPresentBarrierNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref4d91852a != nil { - return x.ref4d91852a, nil + } else if x.refb05347b2 != nil { + return x.refb05347b2, nil } - mem4d91852a := allocRaytracingPipelineCreateInfoNVXMemory(1) - ref4d91852a := (*C.VkRaytracingPipelineCreateInfoNVX)(mem4d91852a) - allocs4d91852a := new(cgoAllocMap) - allocs4d91852a.Add(mem4d91852a) + memb05347b2 := allocSurfaceCapabilitiesPresentBarrierNVMemory(1) + refb05347b2 := (*C.VkSurfaceCapabilitiesPresentBarrierNV)(memb05347b2) + allocsb05347b2 := new(cgoAllocMap) + allocsb05347b2.Add(memb05347b2) var csType_allocs *cgoAllocMap - ref4d91852a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs4d91852a.Borrow(csType_allocs) + refb05347b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb05347b2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref4d91852a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs4d91852a.Borrow(cpNext_allocs) - - var cflags_allocs *cgoAllocMap - ref4d91852a.flags, cflags_allocs = (C.VkPipelineCreateFlags)(x.Flags), cgoAllocsUnknown - allocs4d91852a.Borrow(cflags_allocs) - - var cstageCount_allocs *cgoAllocMap - ref4d91852a.stageCount, cstageCount_allocs = (C.uint32_t)(x.StageCount), cgoAllocsUnknown - allocs4d91852a.Borrow(cstageCount_allocs) - - var cpStages_allocs *cgoAllocMap - ref4d91852a.pStages, cpStages_allocs = unpackSPipelineShaderStageCreateInfo(x.PStages) - allocs4d91852a.Borrow(cpStages_allocs) - - var cpGroupNumbers_allocs *cgoAllocMap - ref4d91852a.pGroupNumbers, cpGroupNumbers_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PGroupNumbers)).Data)), cgoAllocsUnknown - allocs4d91852a.Borrow(cpGroupNumbers_allocs) - - var cmaxRecursionDepth_allocs *cgoAllocMap - ref4d91852a.maxRecursionDepth, cmaxRecursionDepth_allocs = (C.uint32_t)(x.MaxRecursionDepth), cgoAllocsUnknown - allocs4d91852a.Borrow(cmaxRecursionDepth_allocs) - - var clayout_allocs *cgoAllocMap - ref4d91852a.layout, clayout_allocs = *(*C.VkPipelineLayout)(unsafe.Pointer(&x.Layout)), cgoAllocsUnknown - allocs4d91852a.Borrow(clayout_allocs) - - var cbasePipelineHandle_allocs *cgoAllocMap - ref4d91852a.basePipelineHandle, cbasePipelineHandle_allocs = *(*C.VkPipeline)(unsafe.Pointer(&x.BasePipelineHandle)), cgoAllocsUnknown - allocs4d91852a.Borrow(cbasePipelineHandle_allocs) + refb05347b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb05347b2.Borrow(cpNext_allocs) - var cbasePipelineIndex_allocs *cgoAllocMap - ref4d91852a.basePipelineIndex, cbasePipelineIndex_allocs = (C.int32_t)(x.BasePipelineIndex), cgoAllocsUnknown - allocs4d91852a.Borrow(cbasePipelineIndex_allocs) + var cpresentBarrierSupported_allocs *cgoAllocMap + refb05347b2.presentBarrierSupported, cpresentBarrierSupported_allocs = (C.VkBool32)(x.PresentBarrierSupported), cgoAllocsUnknown + allocsb05347b2.Borrow(cpresentBarrierSupported_allocs) - x.ref4d91852a = ref4d91852a - x.allocs4d91852a = allocs4d91852a - return ref4d91852a, allocs4d91852a + x.refb05347b2 = refb05347b2 + x.allocsb05347b2 = allocsb05347b2 + return refb05347b2, allocsb05347b2 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x RaytracingPipelineCreateInfoNVX) PassValue() (C.VkRaytracingPipelineCreateInfoNVX, *cgoAllocMap) { - if x.ref4d91852a != nil { - return *x.ref4d91852a, nil +func (x SurfaceCapabilitiesPresentBarrierNV) PassValue() (C.VkSurfaceCapabilitiesPresentBarrierNV, *cgoAllocMap) { + if x.refb05347b2 != nil { + return *x.refb05347b2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -35939,141 +62437,90 @@ func (x RaytracingPipelineCreateInfoNVX) PassValue() (C.VkRaytracingPipelineCrea // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *RaytracingPipelineCreateInfoNVX) Deref() { - if x.ref4d91852a == nil { +func (x *SurfaceCapabilitiesPresentBarrierNV) Deref() { + if x.refb05347b2 == nil { return } - x.SType = (StructureType)(x.ref4d91852a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref4d91852a.pNext)) - x.Flags = (PipelineCreateFlags)(x.ref4d91852a.flags) - x.StageCount = (uint32)(x.ref4d91852a.stageCount) - packSPipelineShaderStageCreateInfo(x.PStages, x.ref4d91852a.pStages) - hxf9aab83 := (*sliceHeader)(unsafe.Pointer(&x.PGroupNumbers)) - hxf9aab83.Data = unsafe.Pointer(x.ref4d91852a.pGroupNumbers) - hxf9aab83.Cap = 0x7fffffff - // hxf9aab83.Len = ? - - x.MaxRecursionDepth = (uint32)(x.ref4d91852a.maxRecursionDepth) - x.Layout = *(*PipelineLayout)(unsafe.Pointer(&x.ref4d91852a.layout)) - x.BasePipelineHandle = *(*Pipeline)(unsafe.Pointer(&x.ref4d91852a.basePipelineHandle)) - x.BasePipelineIndex = (int32)(x.ref4d91852a.basePipelineIndex) + x.SType = (StructureType)(x.refb05347b2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb05347b2.pNext)) + x.PresentBarrierSupported = (Bool32)(x.refb05347b2.presentBarrierSupported) } -// allocGeometryTrianglesNVXMemory allocates memory for type C.VkGeometryTrianglesNVX in C. +// allocSwapchainPresentBarrierCreateInfoNVMemory allocates memory for type C.VkSwapchainPresentBarrierCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocGeometryTrianglesNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeometryTrianglesNVXValue)) +func allocSwapchainPresentBarrierCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSwapchainPresentBarrierCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfGeometryTrianglesNVXValue = unsafe.Sizeof([1]C.VkGeometryTrianglesNVX{}) +const sizeOfSwapchainPresentBarrierCreateInfoNVValue = unsafe.Sizeof([1]C.VkSwapchainPresentBarrierCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GeometryTrianglesNVX) Ref() *C.VkGeometryTrianglesNVX { +func (x *SwapchainPresentBarrierCreateInfoNV) Ref() *C.VkSwapchainPresentBarrierCreateInfoNV { if x == nil { return nil } - return x.ref5c3b4de9 + return x.ref72c75914 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *GeometryTrianglesNVX) Free() { - if x != nil && x.allocs5c3b4de9 != nil { - x.allocs5c3b4de9.(*cgoAllocMap).Free() - x.ref5c3b4de9 = nil +func (x *SwapchainPresentBarrierCreateInfoNV) Free() { + if x != nil && x.allocs72c75914 != nil { + x.allocs72c75914.(*cgoAllocMap).Free() + x.ref72c75914 = nil } } -// NewGeometryTrianglesNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSwapchainPresentBarrierCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewGeometryTrianglesNVXRef(ref unsafe.Pointer) *GeometryTrianglesNVX { +func NewSwapchainPresentBarrierCreateInfoNVRef(ref unsafe.Pointer) *SwapchainPresentBarrierCreateInfoNV { if ref == nil { return nil } - obj := new(GeometryTrianglesNVX) - obj.ref5c3b4de9 = (*C.VkGeometryTrianglesNVX)(unsafe.Pointer(ref)) + obj := new(SwapchainPresentBarrierCreateInfoNV) + obj.ref72c75914 = (*C.VkSwapchainPresentBarrierCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *GeometryTrianglesNVX) PassRef() (*C.VkGeometryTrianglesNVX, *cgoAllocMap) { +func (x *SwapchainPresentBarrierCreateInfoNV) PassRef() (*C.VkSwapchainPresentBarrierCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5c3b4de9 != nil { - return x.ref5c3b4de9, nil + } else if x.ref72c75914 != nil { + return x.ref72c75914, nil } - mem5c3b4de9 := allocGeometryTrianglesNVXMemory(1) - ref5c3b4de9 := (*C.VkGeometryTrianglesNVX)(mem5c3b4de9) - allocs5c3b4de9 := new(cgoAllocMap) - allocs5c3b4de9.Add(mem5c3b4de9) + mem72c75914 := allocSwapchainPresentBarrierCreateInfoNVMemory(1) + ref72c75914 := (*C.VkSwapchainPresentBarrierCreateInfoNV)(mem72c75914) + allocs72c75914 := new(cgoAllocMap) + allocs72c75914.Add(mem72c75914) var csType_allocs *cgoAllocMap - ref5c3b4de9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5c3b4de9.Borrow(csType_allocs) + ref72c75914.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs72c75914.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5c3b4de9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cpNext_allocs) - - var cvertexData_allocs *cgoAllocMap - ref5c3b4de9.vertexData, cvertexData_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.VertexData)), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cvertexData_allocs) - - var cvertexOffset_allocs *cgoAllocMap - ref5c3b4de9.vertexOffset, cvertexOffset_allocs = (C.VkDeviceSize)(x.VertexOffset), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cvertexOffset_allocs) + ref72c75914.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs72c75914.Borrow(cpNext_allocs) - var cvertexCount_allocs *cgoAllocMap - ref5c3b4de9.vertexCount, cvertexCount_allocs = (C.uint32_t)(x.VertexCount), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cvertexCount_allocs) - - var cvertexStride_allocs *cgoAllocMap - ref5c3b4de9.vertexStride, cvertexStride_allocs = (C.VkDeviceSize)(x.VertexStride), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cvertexStride_allocs) - - var cvertexFormat_allocs *cgoAllocMap - ref5c3b4de9.vertexFormat, cvertexFormat_allocs = (C.VkFormat)(x.VertexFormat), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cvertexFormat_allocs) - - var cindexData_allocs *cgoAllocMap - ref5c3b4de9.indexData, cindexData_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.IndexData)), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cindexData_allocs) - - var cindexOffset_allocs *cgoAllocMap - ref5c3b4de9.indexOffset, cindexOffset_allocs = (C.VkDeviceSize)(x.IndexOffset), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cindexOffset_allocs) - - var cindexCount_allocs *cgoAllocMap - ref5c3b4de9.indexCount, cindexCount_allocs = (C.uint32_t)(x.IndexCount), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cindexCount_allocs) - - var cindexType_allocs *cgoAllocMap - ref5c3b4de9.indexType, cindexType_allocs = (C.VkIndexType)(x.IndexType), cgoAllocsUnknown - allocs5c3b4de9.Borrow(cindexType_allocs) - - var ctransformData_allocs *cgoAllocMap - ref5c3b4de9.transformData, ctransformData_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.TransformData)), cgoAllocsUnknown - allocs5c3b4de9.Borrow(ctransformData_allocs) + var cpresentBarrierEnable_allocs *cgoAllocMap + ref72c75914.presentBarrierEnable, cpresentBarrierEnable_allocs = (C.VkBool32)(x.PresentBarrierEnable), cgoAllocsUnknown + allocs72c75914.Borrow(cpresentBarrierEnable_allocs) - var ctransformOffset_allocs *cgoAllocMap - ref5c3b4de9.transformOffset, ctransformOffset_allocs = (C.VkDeviceSize)(x.TransformOffset), cgoAllocsUnknown - allocs5c3b4de9.Borrow(ctransformOffset_allocs) - - x.ref5c3b4de9 = ref5c3b4de9 - x.allocs5c3b4de9 = allocs5c3b4de9 - return ref5c3b4de9, allocs5c3b4de9 + x.ref72c75914 = ref72c75914 + x.allocs72c75914 = allocs72c75914 + return ref72c75914, allocs72c75914 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x GeometryTrianglesNVX) PassValue() (C.VkGeometryTrianglesNVX, *cgoAllocMap) { - if x.ref5c3b4de9 != nil { - return *x.ref5c3b4de9, nil +func (x SwapchainPresentBarrierCreateInfoNV) PassValue() (C.VkSwapchainPresentBarrierCreateInfoNV, *cgoAllocMap) { + if x.ref72c75914 != nil { + return *x.ref72c75914, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36081,112 +62528,90 @@ func (x GeometryTrianglesNVX) PassValue() (C.VkGeometryTrianglesNVX, *cgoAllocMa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *GeometryTrianglesNVX) Deref() { - if x.ref5c3b4de9 == nil { +func (x *SwapchainPresentBarrierCreateInfoNV) Deref() { + if x.ref72c75914 == nil { return } - x.SType = (StructureType)(x.ref5c3b4de9.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5c3b4de9.pNext)) - x.VertexData = *(*Buffer)(unsafe.Pointer(&x.ref5c3b4de9.vertexData)) - x.VertexOffset = (DeviceSize)(x.ref5c3b4de9.vertexOffset) - x.VertexCount = (uint32)(x.ref5c3b4de9.vertexCount) - x.VertexStride = (DeviceSize)(x.ref5c3b4de9.vertexStride) - x.VertexFormat = (Format)(x.ref5c3b4de9.vertexFormat) - x.IndexData = *(*Buffer)(unsafe.Pointer(&x.ref5c3b4de9.indexData)) - x.IndexOffset = (DeviceSize)(x.ref5c3b4de9.indexOffset) - x.IndexCount = (uint32)(x.ref5c3b4de9.indexCount) - x.IndexType = (IndexType)(x.ref5c3b4de9.indexType) - x.TransformData = *(*Buffer)(unsafe.Pointer(&x.ref5c3b4de9.transformData)) - x.TransformOffset = (DeviceSize)(x.ref5c3b4de9.transformOffset) + x.SType = (StructureType)(x.ref72c75914.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref72c75914.pNext)) + x.PresentBarrierEnable = (Bool32)(x.ref72c75914.presentBarrierEnable) } -// allocGeometryAABBNVXMemory allocates memory for type C.VkGeometryAABBNVX in C. +// allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocGeometryAABBNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeometryAABBNVXValue)) +func allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDiagnosticsConfigFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfGeometryAABBNVXValue = unsafe.Sizeof([1]C.VkGeometryAABBNVX{}) +const sizeOfPhysicalDeviceDiagnosticsConfigFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GeometryAABBNVX) Ref() *C.VkGeometryAABBNVX { +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) Ref() *C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV { if x == nil { return nil } - return x.reff4c42a9d + return x.refd354d3ba } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *GeometryAABBNVX) Free() { - if x != nil && x.allocsf4c42a9d != nil { - x.allocsf4c42a9d.(*cgoAllocMap).Free() - x.reff4c42a9d = nil +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) Free() { + if x != nil && x.allocsd354d3ba != nil { + x.allocsd354d3ba.(*cgoAllocMap).Free() + x.refd354d3ba = nil } } -// NewGeometryAABBNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDiagnosticsConfigFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewGeometryAABBNVXRef(ref unsafe.Pointer) *GeometryAABBNVX { +func NewPhysicalDeviceDiagnosticsConfigFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceDiagnosticsConfigFeaturesNV { if ref == nil { return nil } - obj := new(GeometryAABBNVX) - obj.reff4c42a9d = (*C.VkGeometryAABBNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDiagnosticsConfigFeaturesNV) + obj.refd354d3ba = (*C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *GeometryAABBNVX) PassRef() (*C.VkGeometryAABBNVX, *cgoAllocMap) { +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) PassRef() (*C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff4c42a9d != nil { - return x.reff4c42a9d, nil + } else if x.refd354d3ba != nil { + return x.refd354d3ba, nil } - memf4c42a9d := allocGeometryAABBNVXMemory(1) - reff4c42a9d := (*C.VkGeometryAABBNVX)(memf4c42a9d) - allocsf4c42a9d := new(cgoAllocMap) - allocsf4c42a9d.Add(memf4c42a9d) + memd354d3ba := allocPhysicalDeviceDiagnosticsConfigFeaturesNVMemory(1) + refd354d3ba := (*C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV)(memd354d3ba) + allocsd354d3ba := new(cgoAllocMap) + allocsd354d3ba.Add(memd354d3ba) var csType_allocs *cgoAllocMap - reff4c42a9d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf4c42a9d.Borrow(csType_allocs) + refd354d3ba.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd354d3ba.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff4c42a9d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf4c42a9d.Borrow(cpNext_allocs) - - var caabbData_allocs *cgoAllocMap - reff4c42a9d.aabbData, caabbData_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.AabbData)), cgoAllocsUnknown - allocsf4c42a9d.Borrow(caabbData_allocs) + refd354d3ba.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd354d3ba.Borrow(cpNext_allocs) - var cnumAABBs_allocs *cgoAllocMap - reff4c42a9d.numAABBs, cnumAABBs_allocs = (C.uint32_t)(x.NumAABBs), cgoAllocsUnknown - allocsf4c42a9d.Borrow(cnumAABBs_allocs) - - var cstride_allocs *cgoAllocMap - reff4c42a9d.stride, cstride_allocs = (C.uint32_t)(x.Stride), cgoAllocsUnknown - allocsf4c42a9d.Borrow(cstride_allocs) - - var coffset_allocs *cgoAllocMap - reff4c42a9d.offset, coffset_allocs = (C.VkDeviceSize)(x.Offset), cgoAllocsUnknown - allocsf4c42a9d.Borrow(coffset_allocs) + var cdiagnosticsConfig_allocs *cgoAllocMap + refd354d3ba.diagnosticsConfig, cdiagnosticsConfig_allocs = (C.VkBool32)(x.DiagnosticsConfig), cgoAllocsUnknown + allocsd354d3ba.Borrow(cdiagnosticsConfig_allocs) - x.reff4c42a9d = reff4c42a9d - x.allocsf4c42a9d = allocsf4c42a9d - return reff4c42a9d, allocsf4c42a9d + x.refd354d3ba = refd354d3ba + x.allocsd354d3ba = allocsd354d3ba + return refd354d3ba, allocsd354d3ba } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x GeometryAABBNVX) PassValue() (C.VkGeometryAABBNVX, *cgoAllocMap) { - if x.reff4c42a9d != nil { - return *x.reff4c42a9d, nil +func (x PhysicalDeviceDiagnosticsConfigFeaturesNV) PassValue() (C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV, *cgoAllocMap) { + if x.refd354d3ba != nil { + return *x.refd354d3ba, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36194,89 +62619,90 @@ func (x GeometryAABBNVX) PassValue() (C.VkGeometryAABBNVX, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *GeometryAABBNVX) Deref() { - if x.reff4c42a9d == nil { +func (x *PhysicalDeviceDiagnosticsConfigFeaturesNV) Deref() { + if x.refd354d3ba == nil { return } - x.SType = (StructureType)(x.reff4c42a9d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff4c42a9d.pNext)) - x.AabbData = *(*Buffer)(unsafe.Pointer(&x.reff4c42a9d.aabbData)) - x.NumAABBs = (uint32)(x.reff4c42a9d.numAABBs) - x.Stride = (uint32)(x.reff4c42a9d.stride) - x.Offset = (DeviceSize)(x.reff4c42a9d.offset) + x.SType = (StructureType)(x.refd354d3ba.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd354d3ba.pNext)) + x.DiagnosticsConfig = (Bool32)(x.refd354d3ba.diagnosticsConfig) } -// allocGeometryDataNVXMemory allocates memory for type C.VkGeometryDataNVX in C. +// allocDeviceDiagnosticsConfigCreateInfoNVMemory allocates memory for type C.VkDeviceDiagnosticsConfigCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocGeometryDataNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeometryDataNVXValue)) +func allocDeviceDiagnosticsConfigCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceDiagnosticsConfigCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfGeometryDataNVXValue = unsafe.Sizeof([1]C.VkGeometryDataNVX{}) +const sizeOfDeviceDiagnosticsConfigCreateInfoNVValue = unsafe.Sizeof([1]C.VkDeviceDiagnosticsConfigCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GeometryDataNVX) Ref() *C.VkGeometryDataNVX { +func (x *DeviceDiagnosticsConfigCreateInfoNV) Ref() *C.VkDeviceDiagnosticsConfigCreateInfoNV { if x == nil { return nil } - return x.ref3db64dfa + return x.ref856c966a } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *GeometryDataNVX) Free() { - if x != nil && x.allocs3db64dfa != nil { - x.allocs3db64dfa.(*cgoAllocMap).Free() - x.ref3db64dfa = nil +func (x *DeviceDiagnosticsConfigCreateInfoNV) Free() { + if x != nil && x.allocs856c966a != nil { + x.allocs856c966a.(*cgoAllocMap).Free() + x.ref856c966a = nil } } -// NewGeometryDataNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDeviceDiagnosticsConfigCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewGeometryDataNVXRef(ref unsafe.Pointer) *GeometryDataNVX { +func NewDeviceDiagnosticsConfigCreateInfoNVRef(ref unsafe.Pointer) *DeviceDiagnosticsConfigCreateInfoNV { if ref == nil { return nil } - obj := new(GeometryDataNVX) - obj.ref3db64dfa = (*C.VkGeometryDataNVX)(unsafe.Pointer(ref)) + obj := new(DeviceDiagnosticsConfigCreateInfoNV) + obj.ref856c966a = (*C.VkDeviceDiagnosticsConfigCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *GeometryDataNVX) PassRef() (*C.VkGeometryDataNVX, *cgoAllocMap) { +func (x *DeviceDiagnosticsConfigCreateInfoNV) PassRef() (*C.VkDeviceDiagnosticsConfigCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref3db64dfa != nil { - return x.ref3db64dfa, nil + } else if x.ref856c966a != nil { + return x.ref856c966a, nil } - mem3db64dfa := allocGeometryDataNVXMemory(1) - ref3db64dfa := (*C.VkGeometryDataNVX)(mem3db64dfa) - allocs3db64dfa := new(cgoAllocMap) - allocs3db64dfa.Add(mem3db64dfa) + mem856c966a := allocDeviceDiagnosticsConfigCreateInfoNVMemory(1) + ref856c966a := (*C.VkDeviceDiagnosticsConfigCreateInfoNV)(mem856c966a) + allocs856c966a := new(cgoAllocMap) + allocs856c966a.Add(mem856c966a) - var ctriangles_allocs *cgoAllocMap - ref3db64dfa.triangles, ctriangles_allocs = x.Triangles.PassValue() - allocs3db64dfa.Borrow(ctriangles_allocs) + var csType_allocs *cgoAllocMap + ref856c966a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs856c966a.Borrow(csType_allocs) - var caabbs_allocs *cgoAllocMap - ref3db64dfa.aabbs, caabbs_allocs = x.Aabbs.PassValue() - allocs3db64dfa.Borrow(caabbs_allocs) + var cpNext_allocs *cgoAllocMap + ref856c966a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs856c966a.Borrow(cpNext_allocs) - x.ref3db64dfa = ref3db64dfa - x.allocs3db64dfa = allocs3db64dfa - return ref3db64dfa, allocs3db64dfa + var cflags_allocs *cgoAllocMap + ref856c966a.flags, cflags_allocs = (C.VkDeviceDiagnosticsConfigFlagsNV)(x.Flags), cgoAllocsUnknown + allocs856c966a.Borrow(cflags_allocs) + + x.ref856c966a = ref856c966a + x.allocs856c966a = allocs856c966a + return ref856c966a, allocs856c966a } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x GeometryDataNVX) PassValue() (C.VkGeometryDataNVX, *cgoAllocMap) { - if x.ref3db64dfa != nil { - return *x.ref3db64dfa, nil +func (x DeviceDiagnosticsConfigCreateInfoNV) PassValue() (C.VkDeviceDiagnosticsConfigCreateInfoNV, *cgoAllocMap) { + if x.ref856c966a != nil { + return *x.ref856c966a, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36284,97 +62710,218 @@ func (x GeometryDataNVX) PassValue() (C.VkGeometryDataNVX, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *GeometryDataNVX) Deref() { - if x.ref3db64dfa == nil { +func (x *DeviceDiagnosticsConfigCreateInfoNV) Deref() { + if x.ref856c966a == nil { return } - x.Triangles = *NewGeometryTrianglesNVXRef(unsafe.Pointer(&x.ref3db64dfa.triangles)) - x.Aabbs = *NewGeometryAABBNVXRef(unsafe.Pointer(&x.ref3db64dfa.aabbs)) + x.SType = (StructureType)(x.ref856c966a.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref856c966a.pNext)) + x.Flags = (DeviceDiagnosticsConfigFlagsNV)(x.ref856c966a.flags) } -// allocGeometryNVXMemory allocates memory for type C.VkGeometryNVX in C. +// allocPhysicalDeviceDescriptorBufferPropertiesMemory allocates memory for type C.VkPhysicalDeviceDescriptorBufferPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocGeometryNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGeometryNVXValue)) +func allocPhysicalDeviceDescriptorBufferPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDescriptorBufferPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfGeometryNVXValue = unsafe.Sizeof([1]C.VkGeometryNVX{}) +const sizeOfPhysicalDeviceDescriptorBufferPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorBufferPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *GeometryNVX) Ref() *C.VkGeometryNVX { +func (x *PhysicalDeviceDescriptorBufferProperties) Ref() *C.VkPhysicalDeviceDescriptorBufferPropertiesEXT { if x == nil { return nil } - return x.refd01fad9d + return x.ref62cc13fb } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *GeometryNVX) Free() { - if x != nil && x.allocsd01fad9d != nil { - x.allocsd01fad9d.(*cgoAllocMap).Free() - x.refd01fad9d = nil +func (x *PhysicalDeviceDescriptorBufferProperties) Free() { + if x != nil && x.allocs62cc13fb != nil { + x.allocs62cc13fb.(*cgoAllocMap).Free() + x.ref62cc13fb = nil } } -// NewGeometryNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDescriptorBufferPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewGeometryNVXRef(ref unsafe.Pointer) *GeometryNVX { +func NewPhysicalDeviceDescriptorBufferPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorBufferProperties { if ref == nil { return nil } - obj := new(GeometryNVX) - obj.refd01fad9d = (*C.VkGeometryNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDescriptorBufferProperties) + obj.ref62cc13fb = (*C.VkPhysicalDeviceDescriptorBufferPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *GeometryNVX) PassRef() (*C.VkGeometryNVX, *cgoAllocMap) { +func (x *PhysicalDeviceDescriptorBufferProperties) PassRef() (*C.VkPhysicalDeviceDescriptorBufferPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd01fad9d != nil { - return x.refd01fad9d, nil + } else if x.ref62cc13fb != nil { + return x.ref62cc13fb, nil } - memd01fad9d := allocGeometryNVXMemory(1) - refd01fad9d := (*C.VkGeometryNVX)(memd01fad9d) - allocsd01fad9d := new(cgoAllocMap) - allocsd01fad9d.Add(memd01fad9d) + mem62cc13fb := allocPhysicalDeviceDescriptorBufferPropertiesMemory(1) + ref62cc13fb := (*C.VkPhysicalDeviceDescriptorBufferPropertiesEXT)(mem62cc13fb) + allocs62cc13fb := new(cgoAllocMap) + allocs62cc13fb.Add(mem62cc13fb) var csType_allocs *cgoAllocMap - refd01fad9d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd01fad9d.Borrow(csType_allocs) + ref62cc13fb.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs62cc13fb.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd01fad9d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd01fad9d.Borrow(cpNext_allocs) + ref62cc13fb.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs62cc13fb.Borrow(cpNext_allocs) - var cgeometryType_allocs *cgoAllocMap - refd01fad9d.geometryType, cgeometryType_allocs = (C.VkGeometryTypeNVX)(x.GeometryType), cgoAllocsUnknown - allocsd01fad9d.Borrow(cgeometryType_allocs) + var ccombinedImageSamplerDescriptorSingleArray_allocs *cgoAllocMap + ref62cc13fb.combinedImageSamplerDescriptorSingleArray, ccombinedImageSamplerDescriptorSingleArray_allocs = (C.VkBool32)(x.CombinedImageSamplerDescriptorSingleArray), cgoAllocsUnknown + allocs62cc13fb.Borrow(ccombinedImageSamplerDescriptorSingleArray_allocs) - var cgeometry_allocs *cgoAllocMap - refd01fad9d.geometry, cgeometry_allocs = x.Geometry.PassValue() - allocsd01fad9d.Borrow(cgeometry_allocs) + var cbufferlessPushDescriptors_allocs *cgoAllocMap + ref62cc13fb.bufferlessPushDescriptors, cbufferlessPushDescriptors_allocs = (C.VkBool32)(x.BufferlessPushDescriptors), cgoAllocsUnknown + allocs62cc13fb.Borrow(cbufferlessPushDescriptors_allocs) - var cflags_allocs *cgoAllocMap - refd01fad9d.flags, cflags_allocs = (C.VkGeometryFlagsNVX)(x.Flags), cgoAllocsUnknown - allocsd01fad9d.Borrow(cflags_allocs) + var callowSamplerImageViewPostSubmitCreation_allocs *cgoAllocMap + ref62cc13fb.allowSamplerImageViewPostSubmitCreation, callowSamplerImageViewPostSubmitCreation_allocs = (C.VkBool32)(x.AllowSamplerImageViewPostSubmitCreation), cgoAllocsUnknown + allocs62cc13fb.Borrow(callowSamplerImageViewPostSubmitCreation_allocs) + + var cdescriptorBufferOffsetAlignment_allocs *cgoAllocMap + ref62cc13fb.descriptorBufferOffsetAlignment, cdescriptorBufferOffsetAlignment_allocs = (C.VkDeviceSize)(x.DescriptorBufferOffsetAlignment), cgoAllocsUnknown + allocs62cc13fb.Borrow(cdescriptorBufferOffsetAlignment_allocs) + + var cmaxDescriptorBufferBindings_allocs *cgoAllocMap + ref62cc13fb.maxDescriptorBufferBindings, cmaxDescriptorBufferBindings_allocs = (C.uint32_t)(x.MaxDescriptorBufferBindings), cgoAllocsUnknown + allocs62cc13fb.Borrow(cmaxDescriptorBufferBindings_allocs) + + var cmaxResourceDescriptorBufferBindings_allocs *cgoAllocMap + ref62cc13fb.maxResourceDescriptorBufferBindings, cmaxResourceDescriptorBufferBindings_allocs = (C.uint32_t)(x.MaxResourceDescriptorBufferBindings), cgoAllocsUnknown + allocs62cc13fb.Borrow(cmaxResourceDescriptorBufferBindings_allocs) + + var cmaxSamplerDescriptorBufferBindings_allocs *cgoAllocMap + ref62cc13fb.maxSamplerDescriptorBufferBindings, cmaxSamplerDescriptorBufferBindings_allocs = (C.uint32_t)(x.MaxSamplerDescriptorBufferBindings), cgoAllocsUnknown + allocs62cc13fb.Borrow(cmaxSamplerDescriptorBufferBindings_allocs) + + var cmaxEmbeddedImmutableSamplerBindings_allocs *cgoAllocMap + ref62cc13fb.maxEmbeddedImmutableSamplerBindings, cmaxEmbeddedImmutableSamplerBindings_allocs = (C.uint32_t)(x.MaxEmbeddedImmutableSamplerBindings), cgoAllocsUnknown + allocs62cc13fb.Borrow(cmaxEmbeddedImmutableSamplerBindings_allocs) + + var cmaxEmbeddedImmutableSamplers_allocs *cgoAllocMap + ref62cc13fb.maxEmbeddedImmutableSamplers, cmaxEmbeddedImmutableSamplers_allocs = (C.uint32_t)(x.MaxEmbeddedImmutableSamplers), cgoAllocsUnknown + allocs62cc13fb.Borrow(cmaxEmbeddedImmutableSamplers_allocs) + + var cbufferCaptureReplayDescriptorDataSize_allocs *cgoAllocMap + ref62cc13fb.bufferCaptureReplayDescriptorDataSize, cbufferCaptureReplayDescriptorDataSize_allocs = (C.size_t)(x.BufferCaptureReplayDescriptorDataSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cbufferCaptureReplayDescriptorDataSize_allocs) + + var cimageCaptureReplayDescriptorDataSize_allocs *cgoAllocMap + ref62cc13fb.imageCaptureReplayDescriptorDataSize, cimageCaptureReplayDescriptorDataSize_allocs = (C.size_t)(x.ImageCaptureReplayDescriptorDataSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cimageCaptureReplayDescriptorDataSize_allocs) + + var cimageViewCaptureReplayDescriptorDataSize_allocs *cgoAllocMap + ref62cc13fb.imageViewCaptureReplayDescriptorDataSize, cimageViewCaptureReplayDescriptorDataSize_allocs = (C.size_t)(x.ImageViewCaptureReplayDescriptorDataSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cimageViewCaptureReplayDescriptorDataSize_allocs) + + var csamplerCaptureReplayDescriptorDataSize_allocs *cgoAllocMap + ref62cc13fb.samplerCaptureReplayDescriptorDataSize, csamplerCaptureReplayDescriptorDataSize_allocs = (C.size_t)(x.SamplerCaptureReplayDescriptorDataSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(csamplerCaptureReplayDescriptorDataSize_allocs) + + var caccelerationStructureCaptureReplayDescriptorDataSize_allocs *cgoAllocMap + ref62cc13fb.accelerationStructureCaptureReplayDescriptorDataSize, caccelerationStructureCaptureReplayDescriptorDataSize_allocs = (C.size_t)(x.AccelerationStructureCaptureReplayDescriptorDataSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(caccelerationStructureCaptureReplayDescriptorDataSize_allocs) + + var csamplerDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.samplerDescriptorSize, csamplerDescriptorSize_allocs = (C.size_t)(x.SamplerDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(csamplerDescriptorSize_allocs) + + var ccombinedImageSamplerDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.combinedImageSamplerDescriptorSize, ccombinedImageSamplerDescriptorSize_allocs = (C.size_t)(x.CombinedImageSamplerDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(ccombinedImageSamplerDescriptorSize_allocs) + + var csampledImageDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.sampledImageDescriptorSize, csampledImageDescriptorSize_allocs = (C.size_t)(x.SampledImageDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(csampledImageDescriptorSize_allocs) + + var cstorageImageDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.storageImageDescriptorSize, cstorageImageDescriptorSize_allocs = (C.size_t)(x.StorageImageDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cstorageImageDescriptorSize_allocs) + + var cuniformTexelBufferDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.uniformTexelBufferDescriptorSize, cuniformTexelBufferDescriptorSize_allocs = (C.size_t)(x.UniformTexelBufferDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cuniformTexelBufferDescriptorSize_allocs) + + var crobustUniformTexelBufferDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.robustUniformTexelBufferDescriptorSize, crobustUniformTexelBufferDescriptorSize_allocs = (C.size_t)(x.RobustUniformTexelBufferDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(crobustUniformTexelBufferDescriptorSize_allocs) + + var cstorageTexelBufferDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.storageTexelBufferDescriptorSize, cstorageTexelBufferDescriptorSize_allocs = (C.size_t)(x.StorageTexelBufferDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cstorageTexelBufferDescriptorSize_allocs) + + var crobustStorageTexelBufferDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.robustStorageTexelBufferDescriptorSize, crobustStorageTexelBufferDescriptorSize_allocs = (C.size_t)(x.RobustStorageTexelBufferDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(crobustStorageTexelBufferDescriptorSize_allocs) + + var cuniformBufferDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.uniformBufferDescriptorSize, cuniformBufferDescriptorSize_allocs = (C.size_t)(x.UniformBufferDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cuniformBufferDescriptorSize_allocs) + + var crobustUniformBufferDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.robustUniformBufferDescriptorSize, crobustUniformBufferDescriptorSize_allocs = (C.size_t)(x.RobustUniformBufferDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(crobustUniformBufferDescriptorSize_allocs) + + var cstorageBufferDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.storageBufferDescriptorSize, cstorageBufferDescriptorSize_allocs = (C.size_t)(x.StorageBufferDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cstorageBufferDescriptorSize_allocs) + + var crobustStorageBufferDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.robustStorageBufferDescriptorSize, crobustStorageBufferDescriptorSize_allocs = (C.size_t)(x.RobustStorageBufferDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(crobustStorageBufferDescriptorSize_allocs) + + var cinputAttachmentDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.inputAttachmentDescriptorSize, cinputAttachmentDescriptorSize_allocs = (C.size_t)(x.InputAttachmentDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cinputAttachmentDescriptorSize_allocs) + + var caccelerationStructureDescriptorSize_allocs *cgoAllocMap + ref62cc13fb.accelerationStructureDescriptorSize, caccelerationStructureDescriptorSize_allocs = (C.size_t)(x.AccelerationStructureDescriptorSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(caccelerationStructureDescriptorSize_allocs) + + var cmaxSamplerDescriptorBufferRange_allocs *cgoAllocMap + ref62cc13fb.maxSamplerDescriptorBufferRange, cmaxSamplerDescriptorBufferRange_allocs = (C.VkDeviceSize)(x.MaxSamplerDescriptorBufferRange), cgoAllocsUnknown + allocs62cc13fb.Borrow(cmaxSamplerDescriptorBufferRange_allocs) + + var cmaxResourceDescriptorBufferRange_allocs *cgoAllocMap + ref62cc13fb.maxResourceDescriptorBufferRange, cmaxResourceDescriptorBufferRange_allocs = (C.VkDeviceSize)(x.MaxResourceDescriptorBufferRange), cgoAllocsUnknown + allocs62cc13fb.Borrow(cmaxResourceDescriptorBufferRange_allocs) + + var csamplerDescriptorBufferAddressSpaceSize_allocs *cgoAllocMap + ref62cc13fb.samplerDescriptorBufferAddressSpaceSize, csamplerDescriptorBufferAddressSpaceSize_allocs = (C.VkDeviceSize)(x.SamplerDescriptorBufferAddressSpaceSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(csamplerDescriptorBufferAddressSpaceSize_allocs) + + var cresourceDescriptorBufferAddressSpaceSize_allocs *cgoAllocMap + ref62cc13fb.resourceDescriptorBufferAddressSpaceSize, cresourceDescriptorBufferAddressSpaceSize_allocs = (C.VkDeviceSize)(x.ResourceDescriptorBufferAddressSpaceSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cresourceDescriptorBufferAddressSpaceSize_allocs) + + var cdescriptorBufferAddressSpaceSize_allocs *cgoAllocMap + ref62cc13fb.descriptorBufferAddressSpaceSize, cdescriptorBufferAddressSpaceSize_allocs = (C.VkDeviceSize)(x.DescriptorBufferAddressSpaceSize), cgoAllocsUnknown + allocs62cc13fb.Borrow(cdescriptorBufferAddressSpaceSize_allocs) - x.refd01fad9d = refd01fad9d - x.allocsd01fad9d = allocsd01fad9d - return refd01fad9d, allocsd01fad9d + x.ref62cc13fb = ref62cc13fb + x.allocs62cc13fb = allocs62cc13fb + return ref62cc13fb, allocs62cc13fb } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x GeometryNVX) PassValue() (C.VkGeometryNVX, *cgoAllocMap) { - if x.refd01fad9d != nil { - return *x.refd01fad9d, nil +func (x PhysicalDeviceDescriptorBufferProperties) PassValue() (C.VkPhysicalDeviceDescriptorBufferPropertiesEXT, *cgoAllocMap) { + if x.ref62cc13fb != nil { + return *x.ref62cc13fb, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36382,150 +62929,327 @@ func (x GeometryNVX) PassValue() (C.VkGeometryNVX, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *GeometryNVX) Deref() { - if x.refd01fad9d == nil { +func (x *PhysicalDeviceDescriptorBufferProperties) Deref() { + if x.ref62cc13fb == nil { return } - x.SType = (StructureType)(x.refd01fad9d.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd01fad9d.pNext)) - x.GeometryType = (GeometryTypeNVX)(x.refd01fad9d.geometryType) - x.Geometry = *NewGeometryDataNVXRef(unsafe.Pointer(&x.refd01fad9d.geometry)) - x.Flags = (GeometryFlagsNVX)(x.refd01fad9d.flags) -} - -// allocAccelerationStructureCreateInfoNVXMemory allocates memory for type C.VkAccelerationStructureCreateInfoNVX in C. + x.SType = (StructureType)(x.ref62cc13fb.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref62cc13fb.pNext)) + x.CombinedImageSamplerDescriptorSingleArray = (Bool32)(x.ref62cc13fb.combinedImageSamplerDescriptorSingleArray) + x.BufferlessPushDescriptors = (Bool32)(x.ref62cc13fb.bufferlessPushDescriptors) + x.AllowSamplerImageViewPostSubmitCreation = (Bool32)(x.ref62cc13fb.allowSamplerImageViewPostSubmitCreation) + x.DescriptorBufferOffsetAlignment = (DeviceSize)(x.ref62cc13fb.descriptorBufferOffsetAlignment) + x.MaxDescriptorBufferBindings = (uint32)(x.ref62cc13fb.maxDescriptorBufferBindings) + x.MaxResourceDescriptorBufferBindings = (uint32)(x.ref62cc13fb.maxResourceDescriptorBufferBindings) + x.MaxSamplerDescriptorBufferBindings = (uint32)(x.ref62cc13fb.maxSamplerDescriptorBufferBindings) + x.MaxEmbeddedImmutableSamplerBindings = (uint32)(x.ref62cc13fb.maxEmbeddedImmutableSamplerBindings) + x.MaxEmbeddedImmutableSamplers = (uint32)(x.ref62cc13fb.maxEmbeddedImmutableSamplers) + x.BufferCaptureReplayDescriptorDataSize = (uint64)(x.ref62cc13fb.bufferCaptureReplayDescriptorDataSize) + x.ImageCaptureReplayDescriptorDataSize = (uint64)(x.ref62cc13fb.imageCaptureReplayDescriptorDataSize) + x.ImageViewCaptureReplayDescriptorDataSize = (uint64)(x.ref62cc13fb.imageViewCaptureReplayDescriptorDataSize) + x.SamplerCaptureReplayDescriptorDataSize = (uint64)(x.ref62cc13fb.samplerCaptureReplayDescriptorDataSize) + x.AccelerationStructureCaptureReplayDescriptorDataSize = (uint64)(x.ref62cc13fb.accelerationStructureCaptureReplayDescriptorDataSize) + x.SamplerDescriptorSize = (uint64)(x.ref62cc13fb.samplerDescriptorSize) + x.CombinedImageSamplerDescriptorSize = (uint64)(x.ref62cc13fb.combinedImageSamplerDescriptorSize) + x.SampledImageDescriptorSize = (uint64)(x.ref62cc13fb.sampledImageDescriptorSize) + x.StorageImageDescriptorSize = (uint64)(x.ref62cc13fb.storageImageDescriptorSize) + x.UniformTexelBufferDescriptorSize = (uint64)(x.ref62cc13fb.uniformTexelBufferDescriptorSize) + x.RobustUniformTexelBufferDescriptorSize = (uint64)(x.ref62cc13fb.robustUniformTexelBufferDescriptorSize) + x.StorageTexelBufferDescriptorSize = (uint64)(x.ref62cc13fb.storageTexelBufferDescriptorSize) + x.RobustStorageTexelBufferDescriptorSize = (uint64)(x.ref62cc13fb.robustStorageTexelBufferDescriptorSize) + x.UniformBufferDescriptorSize = (uint64)(x.ref62cc13fb.uniformBufferDescriptorSize) + x.RobustUniformBufferDescriptorSize = (uint64)(x.ref62cc13fb.robustUniformBufferDescriptorSize) + x.StorageBufferDescriptorSize = (uint64)(x.ref62cc13fb.storageBufferDescriptorSize) + x.RobustStorageBufferDescriptorSize = (uint64)(x.ref62cc13fb.robustStorageBufferDescriptorSize) + x.InputAttachmentDescriptorSize = (uint64)(x.ref62cc13fb.inputAttachmentDescriptorSize) + x.AccelerationStructureDescriptorSize = (uint64)(x.ref62cc13fb.accelerationStructureDescriptorSize) + x.MaxSamplerDescriptorBufferRange = (DeviceSize)(x.ref62cc13fb.maxSamplerDescriptorBufferRange) + x.MaxResourceDescriptorBufferRange = (DeviceSize)(x.ref62cc13fb.maxResourceDescriptorBufferRange) + x.SamplerDescriptorBufferAddressSpaceSize = (DeviceSize)(x.ref62cc13fb.samplerDescriptorBufferAddressSpaceSize) + x.ResourceDescriptorBufferAddressSpaceSize = (DeviceSize)(x.ref62cc13fb.resourceDescriptorBufferAddressSpaceSize) + x.DescriptorBufferAddressSpaceSize = (DeviceSize)(x.ref62cc13fb.descriptorBufferAddressSpaceSize) +} + +// allocPhysicalDeviceDescriptorBufferDensityMapPropertiesMemory allocates memory for type C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocAccelerationStructureCreateInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAccelerationStructureCreateInfoNVXValue)) +func allocPhysicalDeviceDescriptorBufferDensityMapPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDescriptorBufferDensityMapPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfAccelerationStructureCreateInfoNVXValue = unsafe.Sizeof([1]C.VkAccelerationStructureCreateInfoNVX{}) +const sizeOfPhysicalDeviceDescriptorBufferDensityMapPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *PhysicalDeviceDescriptorBufferDensityMapProperties) Ref() *C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT { + if x == nil { + return nil + } + return x.refb23ce6c9 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *PhysicalDeviceDescriptorBufferDensityMapProperties) Free() { + if x != nil && x.allocsb23ce6c9 != nil { + x.allocsb23ce6c9.(*cgoAllocMap).Free() + x.refb23ce6c9 = nil + } +} + +// NewPhysicalDeviceDescriptorBufferDensityMapPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewPhysicalDeviceDescriptorBufferDensityMapPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorBufferDensityMapProperties { + if ref == nil { + return nil + } + obj := new(PhysicalDeviceDescriptorBufferDensityMapProperties) + obj.refb23ce6c9 = (*C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT)(unsafe.Pointer(ref)) + return obj +} -// unpackSGeometryNVX transforms a sliced Go data structure into plain C format. -func unpackSGeometryNVX(x []GeometryNVX) (unpacked *C.VkGeometryNVX, allocs *cgoAllocMap) { +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *PhysicalDeviceDescriptorBufferDensityMapProperties) PassRef() (*C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil + } else if x.refb23ce6c9 != nil { + return x.refb23ce6c9, nil } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkGeometryNVX) { - go allocs.Free() - }) + memb23ce6c9 := allocPhysicalDeviceDescriptorBufferDensityMapPropertiesMemory(1) + refb23ce6c9 := (*C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT)(memb23ce6c9) + allocsb23ce6c9 := new(cgoAllocMap) + allocsb23ce6c9.Add(memb23ce6c9) - len0 := len(x) - mem0 := allocGeometryNVXMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, + var csType_allocs *cgoAllocMap + refb23ce6c9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsb23ce6c9.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + refb23ce6c9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsb23ce6c9.Borrow(cpNext_allocs) + + var ccombinedImageSamplerDensityMapDescriptorSize_allocs *cgoAllocMap + refb23ce6c9.combinedImageSamplerDensityMapDescriptorSize, ccombinedImageSamplerDensityMapDescriptorSize_allocs = (C.size_t)(x.CombinedImageSamplerDensityMapDescriptorSize), cgoAllocsUnknown + allocsb23ce6c9.Borrow(ccombinedImageSamplerDensityMapDescriptorSize_allocs) + + x.refb23ce6c9 = refb23ce6c9 + x.allocsb23ce6c9 = allocsb23ce6c9 + return refb23ce6c9, allocsb23ce6c9 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceDescriptorBufferDensityMapProperties) PassValue() (C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, *cgoAllocMap) { + if x.refb23ce6c9 != nil { + return *x.refb23ce6c9, nil } - v0 := *(*[]C.VkGeometryNVX)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceDescriptorBufferDensityMapProperties) Deref() { + if x.refb23ce6c9 == nil { + return } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkGeometryNVX)(h.Data) - return + x.SType = (StructureType)(x.refb23ce6c9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb23ce6c9.pNext)) + x.CombinedImageSamplerDensityMapDescriptorSize = (uint64)(x.refb23ce6c9.combinedImageSamplerDensityMapDescriptorSize) } -// packSGeometryNVX reads sliced Go data structure out from plain C format. -func packSGeometryNVX(v []GeometryNVX, ptr0 *C.VkGeometryNVX) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfGeometryNVXValue]C.VkGeometryNVX)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewGeometryNVXRef(unsafe.Pointer(&ptr1)) +// allocPhysicalDeviceDescriptorBufferFeaturesMemory allocates memory for type C.VkPhysicalDeviceDescriptorBufferFeaturesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceDescriptorBufferFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceDescriptorBufferFeaturesValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) } + return mem } +const sizeOfPhysicalDeviceDescriptorBufferFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceDescriptorBufferFeaturesEXT{}) + // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AccelerationStructureCreateInfoNVX) Ref() *C.VkAccelerationStructureCreateInfoNVX { +func (x *PhysicalDeviceDescriptorBufferFeatures) Ref() *C.VkPhysicalDeviceDescriptorBufferFeaturesEXT { if x == nil { return nil } - return x.ref1289fd56 + return x.ref840279e1 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *AccelerationStructureCreateInfoNVX) Free() { - if x != nil && x.allocs1289fd56 != nil { - x.allocs1289fd56.(*cgoAllocMap).Free() - x.ref1289fd56 = nil +func (x *PhysicalDeviceDescriptorBufferFeatures) Free() { + if x != nil && x.allocs840279e1 != nil { + x.allocs840279e1.(*cgoAllocMap).Free() + x.ref840279e1 = nil } } -// NewAccelerationStructureCreateInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceDescriptorBufferFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewAccelerationStructureCreateInfoNVXRef(ref unsafe.Pointer) *AccelerationStructureCreateInfoNVX { +func NewPhysicalDeviceDescriptorBufferFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceDescriptorBufferFeatures { if ref == nil { return nil } - obj := new(AccelerationStructureCreateInfoNVX) - obj.ref1289fd56 = (*C.VkAccelerationStructureCreateInfoNVX)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceDescriptorBufferFeatures) + obj.ref840279e1 = (*C.VkPhysicalDeviceDescriptorBufferFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *AccelerationStructureCreateInfoNVX) PassRef() (*C.VkAccelerationStructureCreateInfoNVX, *cgoAllocMap) { +func (x *PhysicalDeviceDescriptorBufferFeatures) PassRef() (*C.VkPhysicalDeviceDescriptorBufferFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref1289fd56 != nil { - return x.ref1289fd56, nil + } else if x.ref840279e1 != nil { + return x.ref840279e1, nil } - mem1289fd56 := allocAccelerationStructureCreateInfoNVXMemory(1) - ref1289fd56 := (*C.VkAccelerationStructureCreateInfoNVX)(mem1289fd56) - allocs1289fd56 := new(cgoAllocMap) - allocs1289fd56.Add(mem1289fd56) + mem840279e1 := allocPhysicalDeviceDescriptorBufferFeaturesMemory(1) + ref840279e1 := (*C.VkPhysicalDeviceDescriptorBufferFeaturesEXT)(mem840279e1) + allocs840279e1 := new(cgoAllocMap) + allocs840279e1.Add(mem840279e1) var csType_allocs *cgoAllocMap - ref1289fd56.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs1289fd56.Borrow(csType_allocs) + ref840279e1.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs840279e1.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref1289fd56.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs1289fd56.Borrow(cpNext_allocs) + ref840279e1.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs840279e1.Borrow(cpNext_allocs) - var c_type_allocs *cgoAllocMap - ref1289fd56._type, c_type_allocs = (C.VkAccelerationStructureTypeNVX)(x.Type), cgoAllocsUnknown - allocs1289fd56.Borrow(c_type_allocs) + var cdescriptorBuffer_allocs *cgoAllocMap + ref840279e1.descriptorBuffer, cdescriptorBuffer_allocs = (C.VkBool32)(x.DescriptorBuffer), cgoAllocsUnknown + allocs840279e1.Borrow(cdescriptorBuffer_allocs) - var cflags_allocs *cgoAllocMap - ref1289fd56.flags, cflags_allocs = (C.VkBuildAccelerationStructureFlagsNVX)(x.Flags), cgoAllocsUnknown - allocs1289fd56.Borrow(cflags_allocs) + var cdescriptorBufferCaptureReplay_allocs *cgoAllocMap + ref840279e1.descriptorBufferCaptureReplay, cdescriptorBufferCaptureReplay_allocs = (C.VkBool32)(x.DescriptorBufferCaptureReplay), cgoAllocsUnknown + allocs840279e1.Borrow(cdescriptorBufferCaptureReplay_allocs) - var ccompactedSize_allocs *cgoAllocMap - ref1289fd56.compactedSize, ccompactedSize_allocs = (C.VkDeviceSize)(x.CompactedSize), cgoAllocsUnknown - allocs1289fd56.Borrow(ccompactedSize_allocs) + var cdescriptorBufferImageLayoutIgnored_allocs *cgoAllocMap + ref840279e1.descriptorBufferImageLayoutIgnored, cdescriptorBufferImageLayoutIgnored_allocs = (C.VkBool32)(x.DescriptorBufferImageLayoutIgnored), cgoAllocsUnknown + allocs840279e1.Borrow(cdescriptorBufferImageLayoutIgnored_allocs) - var cinstanceCount_allocs *cgoAllocMap - ref1289fd56.instanceCount, cinstanceCount_allocs = (C.uint32_t)(x.InstanceCount), cgoAllocsUnknown - allocs1289fd56.Borrow(cinstanceCount_allocs) + var cdescriptorBufferPushDescriptors_allocs *cgoAllocMap + ref840279e1.descriptorBufferPushDescriptors, cdescriptorBufferPushDescriptors_allocs = (C.VkBool32)(x.DescriptorBufferPushDescriptors), cgoAllocsUnknown + allocs840279e1.Borrow(cdescriptorBufferPushDescriptors_allocs) + + x.ref840279e1 = ref840279e1 + x.allocs840279e1 = allocs840279e1 + return ref840279e1, allocs840279e1 + +} + +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x PhysicalDeviceDescriptorBufferFeatures) PassValue() (C.VkPhysicalDeviceDescriptorBufferFeaturesEXT, *cgoAllocMap) { + if x.ref840279e1 != nil { + return *x.ref840279e1, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *PhysicalDeviceDescriptorBufferFeatures) Deref() { + if x.ref840279e1 == nil { + return + } + x.SType = (StructureType)(x.ref840279e1.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref840279e1.pNext)) + x.DescriptorBuffer = (Bool32)(x.ref840279e1.descriptorBuffer) + x.DescriptorBufferCaptureReplay = (Bool32)(x.ref840279e1.descriptorBufferCaptureReplay) + x.DescriptorBufferImageLayoutIgnored = (Bool32)(x.ref840279e1.descriptorBufferImageLayoutIgnored) + x.DescriptorBufferPushDescriptors = (Bool32)(x.ref840279e1.descriptorBufferPushDescriptors) +} + +// allocDescriptorAddressInfoMemory allocates memory for type C.VkDescriptorAddressInfoEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorAddressInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorAddressInfoValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} - var cgeometryCount_allocs *cgoAllocMap - ref1289fd56.geometryCount, cgeometryCount_allocs = (C.uint32_t)(x.GeometryCount), cgoAllocsUnknown - allocs1289fd56.Borrow(cgeometryCount_allocs) +const sizeOfDescriptorAddressInfoValue = unsafe.Sizeof([1]C.VkDescriptorAddressInfoEXT{}) - var cpGeometries_allocs *cgoAllocMap - ref1289fd56.pGeometries, cpGeometries_allocs = unpackSGeometryNVX(x.PGeometries) - allocs1289fd56.Borrow(cpGeometries_allocs) +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorAddressInfo) Ref() *C.VkDescriptorAddressInfoEXT { + if x == nil { + return nil + } + return x.ref3f3c750d +} - x.ref1289fd56 = ref1289fd56 - x.allocs1289fd56 = allocs1289fd56 - return ref1289fd56, allocs1289fd56 +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorAddressInfo) Free() { + if x != nil && x.allocs3f3c750d != nil { + x.allocs3f3c750d.(*cgoAllocMap).Free() + x.ref3f3c750d = nil + } +} + +// NewDescriptorAddressInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorAddressInfoRef(ref unsafe.Pointer) *DescriptorAddressInfo { + if ref == nil { + return nil + } + obj := new(DescriptorAddressInfo) + obj.ref3f3c750d = (*C.VkDescriptorAddressInfoEXT)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorAddressInfo) PassRef() (*C.VkDescriptorAddressInfoEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref3f3c750d != nil { + return x.ref3f3c750d, nil + } + mem3f3c750d := allocDescriptorAddressInfoMemory(1) + ref3f3c750d := (*C.VkDescriptorAddressInfoEXT)(mem3f3c750d) + allocs3f3c750d := new(cgoAllocMap) + allocs3f3c750d.Add(mem3f3c750d) + + var csType_allocs *cgoAllocMap + ref3f3c750d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3f3c750d.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref3f3c750d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3f3c750d.Borrow(cpNext_allocs) + + var caddress_allocs *cgoAllocMap + ref3f3c750d.address, caddress_allocs = (C.VkDeviceAddress)(x.Address), cgoAllocsUnknown + allocs3f3c750d.Borrow(caddress_allocs) + + var c_range_allocs *cgoAllocMap + ref3f3c750d._range, c_range_allocs = (C.VkDeviceSize)(x.Range), cgoAllocsUnknown + allocs3f3c750d.Borrow(c_range_allocs) + + var cformat_allocs *cgoAllocMap + ref3f3c750d.format, cformat_allocs = (C.VkFormat)(x.Format), cgoAllocsUnknown + allocs3f3c750d.Borrow(cformat_allocs) + + x.ref3f3c750d = ref3f3c750d + x.allocs3f3c750d = allocs3f3c750d + return ref3f3c750d, allocs3f3c750d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x AccelerationStructureCreateInfoNVX) PassValue() (C.VkAccelerationStructureCreateInfoNVX, *cgoAllocMap) { - if x.ref1289fd56 != nil { - return *x.ref1289fd56, nil +func (x DescriptorAddressInfo) PassValue() (C.VkDescriptorAddressInfoEXT, *cgoAllocMap) { + if x.ref3f3c750d != nil { + return *x.ref3f3c750d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36533,111 +63257,188 @@ func (x AccelerationStructureCreateInfoNVX) PassValue() (C.VkAccelerationStructu // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AccelerationStructureCreateInfoNVX) Deref() { - if x.ref1289fd56 == nil { +func (x *DescriptorAddressInfo) Deref() { + if x.ref3f3c750d == nil { return } - x.SType = (StructureType)(x.ref1289fd56.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1289fd56.pNext)) - x.Type = (AccelerationStructureTypeNVX)(x.ref1289fd56._type) - x.Flags = (BuildAccelerationStructureFlagsNVX)(x.ref1289fd56.flags) - x.CompactedSize = (DeviceSize)(x.ref1289fd56.compactedSize) - x.InstanceCount = (uint32)(x.ref1289fd56.instanceCount) - x.GeometryCount = (uint32)(x.ref1289fd56.geometryCount) - packSGeometryNVX(x.PGeometries, x.ref1289fd56.pGeometries) + x.SType = (StructureType)(x.ref3f3c750d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3f3c750d.pNext)) + x.Address = (DeviceAddress)(x.ref3f3c750d.address) + x.Range = (DeviceSize)(x.ref3f3c750d._range) + x.Format = (Format)(x.ref3f3c750d.format) } -// allocBindAccelerationStructureMemoryInfoNVXMemory allocates memory for type C.VkBindAccelerationStructureMemoryInfoNVX in C. +// allocDescriptorBufferBindingInfoMemory allocates memory for type C.VkDescriptorBufferBindingInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocBindAccelerationStructureMemoryInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBindAccelerationStructureMemoryInfoNVXValue)) +func allocDescriptorBufferBindingInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorBufferBindingInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfBindAccelerationStructureMemoryInfoNVXValue = unsafe.Sizeof([1]C.VkBindAccelerationStructureMemoryInfoNVX{}) +const sizeOfDescriptorBufferBindingInfoValue = unsafe.Sizeof([1]C.VkDescriptorBufferBindingInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *BindAccelerationStructureMemoryInfoNVX) Ref() *C.VkBindAccelerationStructureMemoryInfoNVX { +func (x *DescriptorBufferBindingInfo) Ref() *C.VkDescriptorBufferBindingInfoEXT { if x == nil { return nil } - return x.refb92eae10 + return x.refbfb2412f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *BindAccelerationStructureMemoryInfoNVX) Free() { - if x != nil && x.allocsb92eae10 != nil { - x.allocsb92eae10.(*cgoAllocMap).Free() - x.refb92eae10 = nil +func (x *DescriptorBufferBindingInfo) Free() { + if x != nil && x.allocsbfb2412f != nil { + x.allocsbfb2412f.(*cgoAllocMap).Free() + x.refbfb2412f = nil } } -// NewBindAccelerationStructureMemoryInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDescriptorBufferBindingInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewBindAccelerationStructureMemoryInfoNVXRef(ref unsafe.Pointer) *BindAccelerationStructureMemoryInfoNVX { +func NewDescriptorBufferBindingInfoRef(ref unsafe.Pointer) *DescriptorBufferBindingInfo { if ref == nil { return nil } - obj := new(BindAccelerationStructureMemoryInfoNVX) - obj.refb92eae10 = (*C.VkBindAccelerationStructureMemoryInfoNVX)(unsafe.Pointer(ref)) + obj := new(DescriptorBufferBindingInfo) + obj.refbfb2412f = (*C.VkDescriptorBufferBindingInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *BindAccelerationStructureMemoryInfoNVX) PassRef() (*C.VkBindAccelerationStructureMemoryInfoNVX, *cgoAllocMap) { +func (x *DescriptorBufferBindingInfo) PassRef() (*C.VkDescriptorBufferBindingInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refb92eae10 != nil { - return x.refb92eae10, nil + } else if x.refbfb2412f != nil { + return x.refbfb2412f, nil } - memb92eae10 := allocBindAccelerationStructureMemoryInfoNVXMemory(1) - refb92eae10 := (*C.VkBindAccelerationStructureMemoryInfoNVX)(memb92eae10) - allocsb92eae10 := new(cgoAllocMap) - allocsb92eae10.Add(memb92eae10) + membfb2412f := allocDescriptorBufferBindingInfoMemory(1) + refbfb2412f := (*C.VkDescriptorBufferBindingInfoEXT)(membfb2412f) + allocsbfb2412f := new(cgoAllocMap) + allocsbfb2412f.Add(membfb2412f) var csType_allocs *cgoAllocMap - refb92eae10.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsb92eae10.Borrow(csType_allocs) + refbfb2412f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsbfb2412f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refb92eae10.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsb92eae10.Borrow(cpNext_allocs) + refbfb2412f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsbfb2412f.Borrow(cpNext_allocs) - var caccelerationStructure_allocs *cgoAllocMap - refb92eae10.accelerationStructure, caccelerationStructure_allocs = *(*C.VkAccelerationStructureNVX)(unsafe.Pointer(&x.AccelerationStructure)), cgoAllocsUnknown - allocsb92eae10.Borrow(caccelerationStructure_allocs) + var caddress_allocs *cgoAllocMap + refbfb2412f.address, caddress_allocs = (C.VkDeviceAddress)(x.Address), cgoAllocsUnknown + allocsbfb2412f.Borrow(caddress_allocs) - var cmemory_allocs *cgoAllocMap - refb92eae10.memory, cmemory_allocs = *(*C.VkDeviceMemory)(unsafe.Pointer(&x.Memory)), cgoAllocsUnknown - allocsb92eae10.Borrow(cmemory_allocs) + var cusage_allocs *cgoAllocMap + refbfb2412f.usage, cusage_allocs = (C.VkBufferUsageFlags)(x.Usage), cgoAllocsUnknown + allocsbfb2412f.Borrow(cusage_allocs) - var cmemoryOffset_allocs *cgoAllocMap - refb92eae10.memoryOffset, cmemoryOffset_allocs = (C.VkDeviceSize)(x.MemoryOffset), cgoAllocsUnknown - allocsb92eae10.Borrow(cmemoryOffset_allocs) + x.refbfb2412f = refbfb2412f + x.allocsbfb2412f = allocsbfb2412f + return refbfb2412f, allocsbfb2412f - var cdeviceIndexCount_allocs *cgoAllocMap - refb92eae10.deviceIndexCount, cdeviceIndexCount_allocs = (C.uint32_t)(x.DeviceIndexCount), cgoAllocsUnknown - allocsb92eae10.Borrow(cdeviceIndexCount_allocs) +} - var cpDeviceIndices_allocs *cgoAllocMap - refb92eae10.pDeviceIndices, cpDeviceIndices_allocs = (*C.uint32_t)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)).Data)), cgoAllocsUnknown - allocsb92eae10.Borrow(cpDeviceIndices_allocs) +// PassValue does the same as PassRef except that it will try to dereference the returned pointer. +func (x DescriptorBufferBindingInfo) PassValue() (C.VkDescriptorBufferBindingInfoEXT, *cgoAllocMap) { + if x.refbfb2412f != nil { + return *x.refbfb2412f, nil + } + ref, allocs := x.PassRef() + return *ref, allocs +} + +// Deref uses the underlying reference to C object and fills the wrapping struct with values. +// Do not forget to call this method whether you get a struct for C object and want to read its values. +func (x *DescriptorBufferBindingInfo) Deref() { + if x.refbfb2412f == nil { + return + } + x.SType = (StructureType)(x.refbfb2412f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbfb2412f.pNext)) + x.Address = (DeviceAddress)(x.refbfb2412f.address) + x.Usage = (BufferUsageFlags)(x.refbfb2412f.usage) +} + +// allocDescriptorBufferBindingPushDescriptorBufferHandleMemory allocates memory for type C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocDescriptorBufferBindingPushDescriptorBufferHandleMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorBufferBindingPushDescriptorBufferHandleValue)) + if err != nil { + panic("memory alloc error: " + err.Error()) + } + return mem +} + +const sizeOfDescriptorBufferBindingPushDescriptorBufferHandleValue = unsafe.Sizeof([1]C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT{}) + +// Ref returns the underlying reference to C object or nil if struct is nil. +func (x *DescriptorBufferBindingPushDescriptorBufferHandle) Ref() *C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT { + if x == nil { + return nil + } + return x.ref14f143c5 +} + +// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// Does nothing if struct is nil or has no allocation map. +func (x *DescriptorBufferBindingPushDescriptorBufferHandle) Free() { + if x != nil && x.allocs14f143c5 != nil { + x.allocs14f143c5.(*cgoAllocMap).Free() + x.ref14f143c5 = nil + } +} + +// NewDescriptorBufferBindingPushDescriptorBufferHandleRef creates a new wrapper struct with underlying reference set to the original C object. +// Returns nil if the provided pointer to C object is nil too. +func NewDescriptorBufferBindingPushDescriptorBufferHandleRef(ref unsafe.Pointer) *DescriptorBufferBindingPushDescriptorBufferHandle { + if ref == nil { + return nil + } + obj := new(DescriptorBufferBindingPushDescriptorBufferHandle) + obj.ref14f143c5 = (*C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT)(unsafe.Pointer(ref)) + return obj +} + +// PassRef returns the underlying C object, otherwise it will allocate one and set its values +// from this wrapping struct, counting allocations into an allocation map. +func (x *DescriptorBufferBindingPushDescriptorBufferHandle) PassRef() (*C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT, *cgoAllocMap) { + if x == nil { + return nil, nil + } else if x.ref14f143c5 != nil { + return x.ref14f143c5, nil + } + mem14f143c5 := allocDescriptorBufferBindingPushDescriptorBufferHandleMemory(1) + ref14f143c5 := (*C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT)(mem14f143c5) + allocs14f143c5 := new(cgoAllocMap) + allocs14f143c5.Add(mem14f143c5) + + var csType_allocs *cgoAllocMap + ref14f143c5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs14f143c5.Borrow(csType_allocs) + + var cpNext_allocs *cgoAllocMap + ref14f143c5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs14f143c5.Borrow(cpNext_allocs) - x.refb92eae10 = refb92eae10 - x.allocsb92eae10 = allocsb92eae10 - return refb92eae10, allocsb92eae10 + var cbuffer_allocs *cgoAllocMap + ref14f143c5.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs14f143c5.Borrow(cbuffer_allocs) + + x.ref14f143c5 = ref14f143c5 + x.allocs14f143c5 = allocs14f143c5 + return ref14f143c5, allocs14f143c5 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x BindAccelerationStructureMemoryInfoNVX) PassValue() (C.VkBindAccelerationStructureMemoryInfoNVX, *cgoAllocMap) { - if x.refb92eae10 != nil { - return *x.refb92eae10, nil +func (x DescriptorBufferBindingPushDescriptorBufferHandle) PassValue() (C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT, *cgoAllocMap) { + if x.ref14f143c5 != nil { + return *x.ref14f143c5, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36645,102 +63446,94 @@ func (x BindAccelerationStructureMemoryInfoNVX) PassValue() (C.VkBindAcceleratio // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *BindAccelerationStructureMemoryInfoNVX) Deref() { - if x.refb92eae10 == nil { +func (x *DescriptorBufferBindingPushDescriptorBufferHandle) Deref() { + if x.ref14f143c5 == nil { return } - x.SType = (StructureType)(x.refb92eae10.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refb92eae10.pNext)) - x.AccelerationStructure = *(*AccelerationStructureNVX)(unsafe.Pointer(&x.refb92eae10.accelerationStructure)) - x.Memory = *(*DeviceMemory)(unsafe.Pointer(&x.refb92eae10.memory)) - x.MemoryOffset = (DeviceSize)(x.refb92eae10.memoryOffset) - x.DeviceIndexCount = (uint32)(x.refb92eae10.deviceIndexCount) - hxf8b35a8 := (*sliceHeader)(unsafe.Pointer(&x.PDeviceIndices)) - hxf8b35a8.Data = unsafe.Pointer(x.refb92eae10.pDeviceIndices) - hxf8b35a8.Cap = 0x7fffffff - // hxf8b35a8.Len = ? - + x.SType = (StructureType)(x.ref14f143c5.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref14f143c5.pNext)) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref14f143c5.buffer)) } -// allocDescriptorAccelerationStructureInfoNVXMemory allocates memory for type C.VkDescriptorAccelerationStructureInfoNVX in C. +// allocDescriptorGetInfoMemory allocates memory for type C.VkDescriptorGetInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDescriptorAccelerationStructureInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorAccelerationStructureInfoNVXValue)) +func allocDescriptorGetInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDescriptorGetInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDescriptorAccelerationStructureInfoNVXValue = unsafe.Sizeof([1]C.VkDescriptorAccelerationStructureInfoNVX{}) +const sizeOfDescriptorGetInfoValue = unsafe.Sizeof([1]C.VkDescriptorGetInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DescriptorAccelerationStructureInfoNVX) Ref() *C.VkDescriptorAccelerationStructureInfoNVX { +func (x *DescriptorGetInfo) Ref() *C.VkDescriptorGetInfoEXT { if x == nil { return nil } - return x.refde5f3ba5 + return x.ref15e17023 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DescriptorAccelerationStructureInfoNVX) Free() { - if x != nil && x.allocsde5f3ba5 != nil { - x.allocsde5f3ba5.(*cgoAllocMap).Free() - x.refde5f3ba5 = nil +func (x *DescriptorGetInfo) Free() { + if x != nil && x.allocs15e17023 != nil { + x.allocs15e17023.(*cgoAllocMap).Free() + x.ref15e17023 = nil } } -// NewDescriptorAccelerationStructureInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewDescriptorGetInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDescriptorAccelerationStructureInfoNVXRef(ref unsafe.Pointer) *DescriptorAccelerationStructureInfoNVX { +func NewDescriptorGetInfoRef(ref unsafe.Pointer) *DescriptorGetInfo { if ref == nil { return nil } - obj := new(DescriptorAccelerationStructureInfoNVX) - obj.refde5f3ba5 = (*C.VkDescriptorAccelerationStructureInfoNVX)(unsafe.Pointer(ref)) + obj := new(DescriptorGetInfo) + obj.ref15e17023 = (*C.VkDescriptorGetInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DescriptorAccelerationStructureInfoNVX) PassRef() (*C.VkDescriptorAccelerationStructureInfoNVX, *cgoAllocMap) { +func (x *DescriptorGetInfo) PassRef() (*C.VkDescriptorGetInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refde5f3ba5 != nil { - return x.refde5f3ba5, nil + } else if x.ref15e17023 != nil { + return x.ref15e17023, nil } - memde5f3ba5 := allocDescriptorAccelerationStructureInfoNVXMemory(1) - refde5f3ba5 := (*C.VkDescriptorAccelerationStructureInfoNVX)(memde5f3ba5) - allocsde5f3ba5 := new(cgoAllocMap) - allocsde5f3ba5.Add(memde5f3ba5) + mem15e17023 := allocDescriptorGetInfoMemory(1) + ref15e17023 := (*C.VkDescriptorGetInfoEXT)(mem15e17023) + allocs15e17023 := new(cgoAllocMap) + allocs15e17023.Add(mem15e17023) var csType_allocs *cgoAllocMap - refde5f3ba5.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsde5f3ba5.Borrow(csType_allocs) + ref15e17023.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs15e17023.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refde5f3ba5.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsde5f3ba5.Borrow(cpNext_allocs) + ref15e17023.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs15e17023.Borrow(cpNext_allocs) - var caccelerationStructureCount_allocs *cgoAllocMap - refde5f3ba5.accelerationStructureCount, caccelerationStructureCount_allocs = (C.uint32_t)(x.AccelerationStructureCount), cgoAllocsUnknown - allocsde5f3ba5.Borrow(caccelerationStructureCount_allocs) + var c_type_allocs *cgoAllocMap + ref15e17023._type, c_type_allocs = (C.VkDescriptorType)(x.Type), cgoAllocsUnknown + allocs15e17023.Borrow(c_type_allocs) - var cpAccelerationStructures_allocs *cgoAllocMap - refde5f3ba5.pAccelerationStructures, cpAccelerationStructures_allocs = (*C.VkAccelerationStructureNVX)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PAccelerationStructures)).Data)), cgoAllocsUnknown - allocsde5f3ba5.Borrow(cpAccelerationStructures_allocs) + var cdata_allocs *cgoAllocMap + ref15e17023.data, cdata_allocs = *(*C.VkDescriptorDataEXT)(unsafe.Pointer(&x.Data)), cgoAllocsUnknown + allocs15e17023.Borrow(cdata_allocs) - x.refde5f3ba5 = refde5f3ba5 - x.allocsde5f3ba5 = allocsde5f3ba5 - return refde5f3ba5, allocsde5f3ba5 + x.ref15e17023 = ref15e17023 + x.allocs15e17023 = allocs15e17023 + return ref15e17023, allocs15e17023 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DescriptorAccelerationStructureInfoNVX) PassValue() (C.VkDescriptorAccelerationStructureInfoNVX, *cgoAllocMap) { - if x.refde5f3ba5 != nil { - return *x.refde5f3ba5, nil +func (x DescriptorGetInfo) PassValue() (C.VkDescriptorGetInfoEXT, *cgoAllocMap) { + if x.ref15e17023 != nil { + return *x.ref15e17023, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36748,95 +63541,91 @@ func (x DescriptorAccelerationStructureInfoNVX) PassValue() (C.VkDescriptorAccel // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DescriptorAccelerationStructureInfoNVX) Deref() { - if x.refde5f3ba5 == nil { +func (x *DescriptorGetInfo) Deref() { + if x.ref15e17023 == nil { return } - x.SType = (StructureType)(x.refde5f3ba5.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refde5f3ba5.pNext)) - x.AccelerationStructureCount = (uint32)(x.refde5f3ba5.accelerationStructureCount) - hxf8959c2 := (*sliceHeader)(unsafe.Pointer(&x.PAccelerationStructures)) - hxf8959c2.Data = unsafe.Pointer(x.refde5f3ba5.pAccelerationStructures) - hxf8959c2.Cap = 0x7fffffff - // hxf8959c2.Len = ? - + x.SType = (StructureType)(x.ref15e17023.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref15e17023.pNext)) + x.Type = (DescriptorType)(x.ref15e17023._type) + x.Data = *(*DescriptorData)(unsafe.Pointer(&x.ref15e17023.data)) } -// allocAccelerationStructureMemoryRequirementsInfoNVXMemory allocates memory for type C.VkAccelerationStructureMemoryRequirementsInfoNVX in C. +// allocBufferCaptureDescriptorDataInfoMemory allocates memory for type C.VkBufferCaptureDescriptorDataInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocAccelerationStructureMemoryRequirementsInfoNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfAccelerationStructureMemoryRequirementsInfoNVXValue)) +func allocBufferCaptureDescriptorDataInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfBufferCaptureDescriptorDataInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfAccelerationStructureMemoryRequirementsInfoNVXValue = unsafe.Sizeof([1]C.VkAccelerationStructureMemoryRequirementsInfoNVX{}) +const sizeOfBufferCaptureDescriptorDataInfoValue = unsafe.Sizeof([1]C.VkBufferCaptureDescriptorDataInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *AccelerationStructureMemoryRequirementsInfoNVX) Ref() *C.VkAccelerationStructureMemoryRequirementsInfoNVX { +func (x *BufferCaptureDescriptorDataInfo) Ref() *C.VkBufferCaptureDescriptorDataInfoEXT { if x == nil { return nil } - return x.ref212466e8 + return x.ref7d170bdd } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *AccelerationStructureMemoryRequirementsInfoNVX) Free() { - if x != nil && x.allocs212466e8 != nil { - x.allocs212466e8.(*cgoAllocMap).Free() - x.ref212466e8 = nil +func (x *BufferCaptureDescriptorDataInfo) Free() { + if x != nil && x.allocs7d170bdd != nil { + x.allocs7d170bdd.(*cgoAllocMap).Free() + x.ref7d170bdd = nil } } -// NewAccelerationStructureMemoryRequirementsInfoNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewBufferCaptureDescriptorDataInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewAccelerationStructureMemoryRequirementsInfoNVXRef(ref unsafe.Pointer) *AccelerationStructureMemoryRequirementsInfoNVX { +func NewBufferCaptureDescriptorDataInfoRef(ref unsafe.Pointer) *BufferCaptureDescriptorDataInfo { if ref == nil { return nil } - obj := new(AccelerationStructureMemoryRequirementsInfoNVX) - obj.ref212466e8 = (*C.VkAccelerationStructureMemoryRequirementsInfoNVX)(unsafe.Pointer(ref)) + obj := new(BufferCaptureDescriptorDataInfo) + obj.ref7d170bdd = (*C.VkBufferCaptureDescriptorDataInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *AccelerationStructureMemoryRequirementsInfoNVX) PassRef() (*C.VkAccelerationStructureMemoryRequirementsInfoNVX, *cgoAllocMap) { +func (x *BufferCaptureDescriptorDataInfo) PassRef() (*C.VkBufferCaptureDescriptorDataInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref212466e8 != nil { - return x.ref212466e8, nil + } else if x.ref7d170bdd != nil { + return x.ref7d170bdd, nil } - mem212466e8 := allocAccelerationStructureMemoryRequirementsInfoNVXMemory(1) - ref212466e8 := (*C.VkAccelerationStructureMemoryRequirementsInfoNVX)(mem212466e8) - allocs212466e8 := new(cgoAllocMap) - allocs212466e8.Add(mem212466e8) + mem7d170bdd := allocBufferCaptureDescriptorDataInfoMemory(1) + ref7d170bdd := (*C.VkBufferCaptureDescriptorDataInfoEXT)(mem7d170bdd) + allocs7d170bdd := new(cgoAllocMap) + allocs7d170bdd.Add(mem7d170bdd) var csType_allocs *cgoAllocMap - ref212466e8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs212466e8.Borrow(csType_allocs) + ref7d170bdd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs7d170bdd.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref212466e8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs212466e8.Borrow(cpNext_allocs) + ref7d170bdd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs7d170bdd.Borrow(cpNext_allocs) - var caccelerationStructure_allocs *cgoAllocMap - ref212466e8.accelerationStructure, caccelerationStructure_allocs = *(*C.VkAccelerationStructureNVX)(unsafe.Pointer(&x.AccelerationStructure)), cgoAllocsUnknown - allocs212466e8.Borrow(caccelerationStructure_allocs) + var cbuffer_allocs *cgoAllocMap + ref7d170bdd.buffer, cbuffer_allocs = *(*C.VkBuffer)(unsafe.Pointer(&x.Buffer)), cgoAllocsUnknown + allocs7d170bdd.Borrow(cbuffer_allocs) - x.ref212466e8 = ref212466e8 - x.allocs212466e8 = allocs212466e8 - return ref212466e8, allocs212466e8 + x.ref7d170bdd = ref7d170bdd + x.allocs7d170bdd = allocs7d170bdd + return ref7d170bdd, allocs7d170bdd } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x AccelerationStructureMemoryRequirementsInfoNVX) PassValue() (C.VkAccelerationStructureMemoryRequirementsInfoNVX, *cgoAllocMap) { - if x.ref212466e8 != nil { - return *x.ref212466e8, nil +func (x BufferCaptureDescriptorDataInfo) PassValue() (C.VkBufferCaptureDescriptorDataInfoEXT, *cgoAllocMap) { + if x.ref7d170bdd != nil { + return *x.ref7d170bdd, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36844,98 +63633,90 @@ func (x AccelerationStructureMemoryRequirementsInfoNVX) PassValue() (C.VkAcceler // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *AccelerationStructureMemoryRequirementsInfoNVX) Deref() { - if x.ref212466e8 == nil { +func (x *BufferCaptureDescriptorDataInfo) Deref() { + if x.ref7d170bdd == nil { return } - x.SType = (StructureType)(x.ref212466e8.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref212466e8.pNext)) - x.AccelerationStructure = *(*AccelerationStructureNVX)(unsafe.Pointer(&x.ref212466e8.accelerationStructure)) + x.SType = (StructureType)(x.ref7d170bdd.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7d170bdd.pNext)) + x.Buffer = *(*Buffer)(unsafe.Pointer(&x.ref7d170bdd.buffer)) } -// allocPhysicalDeviceRaytracingPropertiesNVXMemory allocates memory for type C.VkPhysicalDeviceRaytracingPropertiesNVX in C. +// allocImageCaptureDescriptorDataInfoMemory allocates memory for type C.VkImageCaptureDescriptorDataInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceRaytracingPropertiesNVXMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRaytracingPropertiesNVXValue)) +func allocImageCaptureDescriptorDataInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageCaptureDescriptorDataInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceRaytracingPropertiesNVXValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRaytracingPropertiesNVX{}) +const sizeOfImageCaptureDescriptorDataInfoValue = unsafe.Sizeof([1]C.VkImageCaptureDescriptorDataInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceRaytracingPropertiesNVX) Ref() *C.VkPhysicalDeviceRaytracingPropertiesNVX { +func (x *ImageCaptureDescriptorDataInfo) Ref() *C.VkImageCaptureDescriptorDataInfoEXT { if x == nil { return nil } - return x.refd37a6b69 + return x.refc02d1ea8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceRaytracingPropertiesNVX) Free() { - if x != nil && x.allocsd37a6b69 != nil { - x.allocsd37a6b69.(*cgoAllocMap).Free() - x.refd37a6b69 = nil +func (x *ImageCaptureDescriptorDataInfo) Free() { + if x != nil && x.allocsc02d1ea8 != nil { + x.allocsc02d1ea8.(*cgoAllocMap).Free() + x.refc02d1ea8 = nil } } -// NewPhysicalDeviceRaytracingPropertiesNVXRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageCaptureDescriptorDataInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceRaytracingPropertiesNVXRef(ref unsafe.Pointer) *PhysicalDeviceRaytracingPropertiesNVX { +func NewImageCaptureDescriptorDataInfoRef(ref unsafe.Pointer) *ImageCaptureDescriptorDataInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceRaytracingPropertiesNVX) - obj.refd37a6b69 = (*C.VkPhysicalDeviceRaytracingPropertiesNVX)(unsafe.Pointer(ref)) + obj := new(ImageCaptureDescriptorDataInfo) + obj.refc02d1ea8 = (*C.VkImageCaptureDescriptorDataInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceRaytracingPropertiesNVX) PassRef() (*C.VkPhysicalDeviceRaytracingPropertiesNVX, *cgoAllocMap) { +func (x *ImageCaptureDescriptorDataInfo) PassRef() (*C.VkImageCaptureDescriptorDataInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd37a6b69 != nil { - return x.refd37a6b69, nil + } else if x.refc02d1ea8 != nil { + return x.refc02d1ea8, nil } - memd37a6b69 := allocPhysicalDeviceRaytracingPropertiesNVXMemory(1) - refd37a6b69 := (*C.VkPhysicalDeviceRaytracingPropertiesNVX)(memd37a6b69) - allocsd37a6b69 := new(cgoAllocMap) - allocsd37a6b69.Add(memd37a6b69) + memc02d1ea8 := allocImageCaptureDescriptorDataInfoMemory(1) + refc02d1ea8 := (*C.VkImageCaptureDescriptorDataInfoEXT)(memc02d1ea8) + allocsc02d1ea8 := new(cgoAllocMap) + allocsc02d1ea8.Add(memc02d1ea8) var csType_allocs *cgoAllocMap - refd37a6b69.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd37a6b69.Borrow(csType_allocs) + refc02d1ea8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc02d1ea8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd37a6b69.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd37a6b69.Borrow(cpNext_allocs) - - var cshaderHeaderSize_allocs *cgoAllocMap - refd37a6b69.shaderHeaderSize, cshaderHeaderSize_allocs = (C.uint32_t)(x.ShaderHeaderSize), cgoAllocsUnknown - allocsd37a6b69.Borrow(cshaderHeaderSize_allocs) + refc02d1ea8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc02d1ea8.Borrow(cpNext_allocs) - var cmaxRecursionDepth_allocs *cgoAllocMap - refd37a6b69.maxRecursionDepth, cmaxRecursionDepth_allocs = (C.uint32_t)(x.MaxRecursionDepth), cgoAllocsUnknown - allocsd37a6b69.Borrow(cmaxRecursionDepth_allocs) - - var cmaxGeometryCount_allocs *cgoAllocMap - refd37a6b69.maxGeometryCount, cmaxGeometryCount_allocs = (C.uint32_t)(x.MaxGeometryCount), cgoAllocsUnknown - allocsd37a6b69.Borrow(cmaxGeometryCount_allocs) + var cimage_allocs *cgoAllocMap + refc02d1ea8.image, cimage_allocs = *(*C.VkImage)(unsafe.Pointer(&x.Image)), cgoAllocsUnknown + allocsc02d1ea8.Borrow(cimage_allocs) - x.refd37a6b69 = refd37a6b69 - x.allocsd37a6b69 = allocsd37a6b69 - return refd37a6b69, allocsd37a6b69 + x.refc02d1ea8 = refc02d1ea8 + x.allocsc02d1ea8 = allocsc02d1ea8 + return refc02d1ea8, allocsc02d1ea8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceRaytracingPropertiesNVX) PassValue() (C.VkPhysicalDeviceRaytracingPropertiesNVX, *cgoAllocMap) { - if x.refd37a6b69 != nil { - return *x.refd37a6b69, nil +func (x ImageCaptureDescriptorDataInfo) PassValue() (C.VkImageCaptureDescriptorDataInfoEXT, *cgoAllocMap) { + if x.refc02d1ea8 != nil { + return *x.refc02d1ea8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -36943,92 +63724,90 @@ func (x PhysicalDeviceRaytracingPropertiesNVX) PassValue() (C.VkPhysicalDeviceRa // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceRaytracingPropertiesNVX) Deref() { - if x.refd37a6b69 == nil { +func (x *ImageCaptureDescriptorDataInfo) Deref() { + if x.refc02d1ea8 == nil { return } - x.SType = (StructureType)(x.refd37a6b69.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd37a6b69.pNext)) - x.ShaderHeaderSize = (uint32)(x.refd37a6b69.shaderHeaderSize) - x.MaxRecursionDepth = (uint32)(x.refd37a6b69.maxRecursionDepth) - x.MaxGeometryCount = (uint32)(x.refd37a6b69.maxGeometryCount) + x.SType = (StructureType)(x.refc02d1ea8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc02d1ea8.pNext)) + x.Image = *(*Image)(unsafe.Pointer(&x.refc02d1ea8.image)) } -// allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV in C. +// allocImageViewCaptureDescriptorDataInfoMemory allocates memory for type C.VkImageViewCaptureDescriptorDataInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceRepresentativeFragmentTestFeaturesNVValue)) +func allocImageViewCaptureDescriptorDataInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageViewCaptureDescriptorDataInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceRepresentativeFragmentTestFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV{}) +const sizeOfImageViewCaptureDescriptorDataInfoValue = unsafe.Sizeof([1]C.VkImageViewCaptureDescriptorDataInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Ref() *C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { +func (x *ImageViewCaptureDescriptorDataInfo) Ref() *C.VkImageViewCaptureDescriptorDataInfoEXT { if x == nil { return nil } - return x.reff1f69e03 + return x.refe2b761d2 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Free() { - if x != nil && x.allocsf1f69e03 != nil { - x.allocsf1f69e03.(*cgoAllocMap).Free() - x.reff1f69e03 = nil +func (x *ImageViewCaptureDescriptorDataInfo) Free() { + if x != nil && x.allocse2b761d2 != nil { + x.allocse2b761d2.(*cgoAllocMap).Free() + x.refe2b761d2 = nil } } -// NewPhysicalDeviceRepresentativeFragmentTestFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageViewCaptureDescriptorDataInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceRepresentativeFragmentTestFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceRepresentativeFragmentTestFeaturesNV { +func NewImageViewCaptureDescriptorDataInfoRef(ref unsafe.Pointer) *ImageViewCaptureDescriptorDataInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceRepresentativeFragmentTestFeaturesNV) - obj.reff1f69e03 = (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)(unsafe.Pointer(ref)) + obj := new(ImageViewCaptureDescriptorDataInfo) + obj.refe2b761d2 = (*C.VkImageViewCaptureDescriptorDataInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassRef() (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, *cgoAllocMap) { +func (x *ImageViewCaptureDescriptorDataInfo) PassRef() (*C.VkImageViewCaptureDescriptorDataInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff1f69e03 != nil { - return x.reff1f69e03, nil + } else if x.refe2b761d2 != nil { + return x.refe2b761d2, nil } - memf1f69e03 := allocPhysicalDeviceRepresentativeFragmentTestFeaturesNVMemory(1) - reff1f69e03 := (*C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)(memf1f69e03) - allocsf1f69e03 := new(cgoAllocMap) - allocsf1f69e03.Add(memf1f69e03) + meme2b761d2 := allocImageViewCaptureDescriptorDataInfoMemory(1) + refe2b761d2 := (*C.VkImageViewCaptureDescriptorDataInfoEXT)(meme2b761d2) + allocse2b761d2 := new(cgoAllocMap) + allocse2b761d2.Add(meme2b761d2) var csType_allocs *cgoAllocMap - reff1f69e03.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf1f69e03.Borrow(csType_allocs) + refe2b761d2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocse2b761d2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff1f69e03.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf1f69e03.Borrow(cpNext_allocs) + refe2b761d2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocse2b761d2.Borrow(cpNext_allocs) - var crepresentativeFragmentTest_allocs *cgoAllocMap - reff1f69e03.representativeFragmentTest, crepresentativeFragmentTest_allocs = (C.VkBool32)(x.RepresentativeFragmentTest), cgoAllocsUnknown - allocsf1f69e03.Borrow(crepresentativeFragmentTest_allocs) + var cimageView_allocs *cgoAllocMap + refe2b761d2.imageView, cimageView_allocs = *(*C.VkImageView)(unsafe.Pointer(&x.ImageView)), cgoAllocsUnknown + allocse2b761d2.Borrow(cimageView_allocs) - x.reff1f69e03 = reff1f69e03 - x.allocsf1f69e03 = allocsf1f69e03 - return reff1f69e03, allocsf1f69e03 + x.refe2b761d2 = refe2b761d2 + x.allocse2b761d2 = allocse2b761d2 + return refe2b761d2, allocse2b761d2 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassValue() (C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, *cgoAllocMap) { - if x.reff1f69e03 != nil { - return *x.reff1f69e03, nil +func (x ImageViewCaptureDescriptorDataInfo) PassValue() (C.VkImageViewCaptureDescriptorDataInfoEXT, *cgoAllocMap) { + if x.refe2b761d2 != nil { + return *x.refe2b761d2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37036,90 +63815,90 @@ func (x PhysicalDeviceRepresentativeFragmentTestFeaturesNV) PassValue() (C.VkPhy // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceRepresentativeFragmentTestFeaturesNV) Deref() { - if x.reff1f69e03 == nil { +func (x *ImageViewCaptureDescriptorDataInfo) Deref() { + if x.refe2b761d2 == nil { return } - x.SType = (StructureType)(x.reff1f69e03.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff1f69e03.pNext)) - x.RepresentativeFragmentTest = (Bool32)(x.reff1f69e03.representativeFragmentTest) + x.SType = (StructureType)(x.refe2b761d2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refe2b761d2.pNext)) + x.ImageView = *(*ImageView)(unsafe.Pointer(&x.refe2b761d2.imageView)) } -// allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory allocates memory for type C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV in C. +// allocSamplerCaptureDescriptorDataInfoMemory allocates memory for type C.VkSamplerCaptureDescriptorDataInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineRepresentativeFragmentTestStateCreateInfoNVValue)) +func allocSamplerCaptureDescriptorDataInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSamplerCaptureDescriptorDataInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineRepresentativeFragmentTestStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV{}) +const sizeOfSamplerCaptureDescriptorDataInfoValue = unsafe.Sizeof([1]C.VkSamplerCaptureDescriptorDataInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Ref() *C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV { +func (x *SamplerCaptureDescriptorDataInfo) Ref() *C.VkSamplerCaptureDescriptorDataInfoEXT { if x == nil { return nil } - return x.ref9c224e21 + return x.ref2455cc7e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Free() { - if x != nil && x.allocs9c224e21 != nil { - x.allocs9c224e21.(*cgoAllocMap).Free() - x.ref9c224e21 = nil +func (x *SamplerCaptureDescriptorDataInfo) Free() { + if x != nil && x.allocs2455cc7e != nil { + x.allocs2455cc7e.(*cgoAllocMap).Free() + x.ref2455cc7e = nil } } -// NewPipelineRepresentativeFragmentTestStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSamplerCaptureDescriptorDataInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineRepresentativeFragmentTestStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineRepresentativeFragmentTestStateCreateInfoNV { +func NewSamplerCaptureDescriptorDataInfoRef(ref unsafe.Pointer) *SamplerCaptureDescriptorDataInfo { if ref == nil { return nil - } - obj := new(PipelineRepresentativeFragmentTestStateCreateInfoNV) - obj.ref9c224e21 = (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV)(unsafe.Pointer(ref)) + } + obj := new(SamplerCaptureDescriptorDataInfo) + obj.ref2455cc7e = (*C.VkSamplerCaptureDescriptorDataInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) PassRef() (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV, *cgoAllocMap) { +func (x *SamplerCaptureDescriptorDataInfo) PassRef() (*C.VkSamplerCaptureDescriptorDataInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9c224e21 != nil { - return x.ref9c224e21, nil + } else if x.ref2455cc7e != nil { + return x.ref2455cc7e, nil } - mem9c224e21 := allocPipelineRepresentativeFragmentTestStateCreateInfoNVMemory(1) - ref9c224e21 := (*C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV)(mem9c224e21) - allocs9c224e21 := new(cgoAllocMap) - allocs9c224e21.Add(mem9c224e21) + mem2455cc7e := allocSamplerCaptureDescriptorDataInfoMemory(1) + ref2455cc7e := (*C.VkSamplerCaptureDescriptorDataInfoEXT)(mem2455cc7e) + allocs2455cc7e := new(cgoAllocMap) + allocs2455cc7e.Add(mem2455cc7e) var csType_allocs *cgoAllocMap - ref9c224e21.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9c224e21.Borrow(csType_allocs) + ref2455cc7e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs2455cc7e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9c224e21.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9c224e21.Borrow(cpNext_allocs) + ref2455cc7e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs2455cc7e.Borrow(cpNext_allocs) - var crepresentativeFragmentTestEnable_allocs *cgoAllocMap - ref9c224e21.representativeFragmentTestEnable, crepresentativeFragmentTestEnable_allocs = (C.VkBool32)(x.RepresentativeFragmentTestEnable), cgoAllocsUnknown - allocs9c224e21.Borrow(crepresentativeFragmentTestEnable_allocs) + var csampler_allocs *cgoAllocMap + ref2455cc7e.sampler, csampler_allocs = *(*C.VkSampler)(unsafe.Pointer(&x.Sampler)), cgoAllocsUnknown + allocs2455cc7e.Borrow(csampler_allocs) - x.ref9c224e21 = ref9c224e21 - x.allocs9c224e21 = allocs9c224e21 - return ref9c224e21, allocs9c224e21 + x.ref2455cc7e = ref2455cc7e + x.allocs2455cc7e = allocs2455cc7e + return ref2455cc7e, allocs2455cc7e } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineRepresentativeFragmentTestStateCreateInfoNV) PassValue() (C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV, *cgoAllocMap) { - if x.ref9c224e21 != nil { - return *x.ref9c224e21, nil +func (x SamplerCaptureDescriptorDataInfo) PassValue() (C.VkSamplerCaptureDescriptorDataInfoEXT, *cgoAllocMap) { + if x.ref2455cc7e != nil { + return *x.ref2455cc7e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37127,90 +63906,90 @@ func (x PipelineRepresentativeFragmentTestStateCreateInfoNV) PassValue() (C.VkPi // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineRepresentativeFragmentTestStateCreateInfoNV) Deref() { - if x.ref9c224e21 == nil { +func (x *SamplerCaptureDescriptorDataInfo) Deref() { + if x.ref2455cc7e == nil { return } - x.SType = (StructureType)(x.ref9c224e21.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9c224e21.pNext)) - x.RepresentativeFragmentTestEnable = (Bool32)(x.ref9c224e21.representativeFragmentTestEnable) + x.SType = (StructureType)(x.ref2455cc7e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2455cc7e.pNext)) + x.Sampler = *(*Sampler)(unsafe.Pointer(&x.ref2455cc7e.sampler)) } -// allocDeviceQueueGlobalPriorityCreateInfoMemory allocates memory for type C.VkDeviceQueueGlobalPriorityCreateInfoEXT in C. +// allocOpaqueCaptureDescriptorDataCreateInfoMemory allocates memory for type C.VkOpaqueCaptureDescriptorDataCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDeviceQueueGlobalPriorityCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDeviceQueueGlobalPriorityCreateInfoValue)) +func allocOpaqueCaptureDescriptorDataCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfOpaqueCaptureDescriptorDataCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDeviceQueueGlobalPriorityCreateInfoValue = unsafe.Sizeof([1]C.VkDeviceQueueGlobalPriorityCreateInfoEXT{}) +const sizeOfOpaqueCaptureDescriptorDataCreateInfoValue = unsafe.Sizeof([1]C.VkOpaqueCaptureDescriptorDataCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DeviceQueueGlobalPriorityCreateInfo) Ref() *C.VkDeviceQueueGlobalPriorityCreateInfoEXT { +func (x *OpaqueCaptureDescriptorDataCreateInfo) Ref() *C.VkOpaqueCaptureDescriptorDataCreateInfoEXT { if x == nil { return nil } - return x.ref76356646 + return x.ref48a027d } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DeviceQueueGlobalPriorityCreateInfo) Free() { - if x != nil && x.allocs76356646 != nil { - x.allocs76356646.(*cgoAllocMap).Free() - x.ref76356646 = nil +func (x *OpaqueCaptureDescriptorDataCreateInfo) Free() { + if x != nil && x.allocs48a027d != nil { + x.allocs48a027d.(*cgoAllocMap).Free() + x.ref48a027d = nil } } -// NewDeviceQueueGlobalPriorityCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewOpaqueCaptureDescriptorDataCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDeviceQueueGlobalPriorityCreateInfoRef(ref unsafe.Pointer) *DeviceQueueGlobalPriorityCreateInfo { +func NewOpaqueCaptureDescriptorDataCreateInfoRef(ref unsafe.Pointer) *OpaqueCaptureDescriptorDataCreateInfo { if ref == nil { return nil } - obj := new(DeviceQueueGlobalPriorityCreateInfo) - obj.ref76356646 = (*C.VkDeviceQueueGlobalPriorityCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(OpaqueCaptureDescriptorDataCreateInfo) + obj.ref48a027d = (*C.VkOpaqueCaptureDescriptorDataCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DeviceQueueGlobalPriorityCreateInfo) PassRef() (*C.VkDeviceQueueGlobalPriorityCreateInfoEXT, *cgoAllocMap) { +func (x *OpaqueCaptureDescriptorDataCreateInfo) PassRef() (*C.VkOpaqueCaptureDescriptorDataCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref76356646 != nil { - return x.ref76356646, nil + } else if x.ref48a027d != nil { + return x.ref48a027d, nil } - mem76356646 := allocDeviceQueueGlobalPriorityCreateInfoMemory(1) - ref76356646 := (*C.VkDeviceQueueGlobalPriorityCreateInfoEXT)(mem76356646) - allocs76356646 := new(cgoAllocMap) - allocs76356646.Add(mem76356646) + mem48a027d := allocOpaqueCaptureDescriptorDataCreateInfoMemory(1) + ref48a027d := (*C.VkOpaqueCaptureDescriptorDataCreateInfoEXT)(mem48a027d) + allocs48a027d := new(cgoAllocMap) + allocs48a027d.Add(mem48a027d) var csType_allocs *cgoAllocMap - ref76356646.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs76356646.Borrow(csType_allocs) + ref48a027d.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs48a027d.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref76356646.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs76356646.Borrow(cpNext_allocs) + ref48a027d.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs48a027d.Borrow(cpNext_allocs) - var cglobalPriority_allocs *cgoAllocMap - ref76356646.globalPriority, cglobalPriority_allocs = (C.VkQueueGlobalPriorityEXT)(x.GlobalPriority), cgoAllocsUnknown - allocs76356646.Borrow(cglobalPriority_allocs) + var copaqueCaptureDescriptorData_allocs *cgoAllocMap + ref48a027d.opaqueCaptureDescriptorData, copaqueCaptureDescriptorData_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.OpaqueCaptureDescriptorData)), cgoAllocsUnknown + allocs48a027d.Borrow(copaqueCaptureDescriptorData_allocs) - x.ref76356646 = ref76356646 - x.allocs76356646 = allocs76356646 - return ref76356646, allocs76356646 + x.ref48a027d = ref48a027d + x.allocs48a027d = allocs48a027d + return ref48a027d, allocs48a027d } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DeviceQueueGlobalPriorityCreateInfo) PassValue() (C.VkDeviceQueueGlobalPriorityCreateInfoEXT, *cgoAllocMap) { - if x.ref76356646 != nil { - return *x.ref76356646, nil +func (x OpaqueCaptureDescriptorDataCreateInfo) PassValue() (C.VkOpaqueCaptureDescriptorDataCreateInfoEXT, *cgoAllocMap) { + if x.ref48a027d != nil { + return *x.ref48a027d, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37218,94 +63997,90 @@ func (x DeviceQueueGlobalPriorityCreateInfo) PassValue() (C.VkDeviceQueueGlobalP // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DeviceQueueGlobalPriorityCreateInfo) Deref() { - if x.ref76356646 == nil { +func (x *OpaqueCaptureDescriptorDataCreateInfo) Deref() { + if x.ref48a027d == nil { return } - x.SType = (StructureType)(x.ref76356646.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref76356646.pNext)) - x.GlobalPriority = (QueueGlobalPriority)(x.ref76356646.globalPriority) + x.SType = (StructureType)(x.ref48a027d.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref48a027d.pNext)) + x.OpaqueCaptureDescriptorData = (unsafe.Pointer)(unsafe.Pointer(x.ref48a027d.opaqueCaptureDescriptorData)) } -// allocImportMemoryHostPointerInfoMemory allocates memory for type C.VkImportMemoryHostPointerInfoEXT in C. +// allocPhysicalDeviceGraphicsPipelineLibraryFeaturesMemory allocates memory for type C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocImportMemoryHostPointerInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImportMemoryHostPointerInfoValue)) +func allocPhysicalDeviceGraphicsPipelineLibraryFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGraphicsPipelineLibraryFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfImportMemoryHostPointerInfoValue = unsafe.Sizeof([1]C.VkImportMemoryHostPointerInfoEXT{}) +const sizeOfPhysicalDeviceGraphicsPipelineLibraryFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *ImportMemoryHostPointerInfo) Ref() *C.VkImportMemoryHostPointerInfoEXT { +func (x *PhysicalDeviceGraphicsPipelineLibraryFeatures) Ref() *C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT { if x == nil { return nil } - return x.reffe09253e + return x.ref34a84548 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *ImportMemoryHostPointerInfo) Free() { - if x != nil && x.allocsfe09253e != nil { - x.allocsfe09253e.(*cgoAllocMap).Free() - x.reffe09253e = nil +func (x *PhysicalDeviceGraphicsPipelineLibraryFeatures) Free() { + if x != nil && x.allocs34a84548 != nil { + x.allocs34a84548.(*cgoAllocMap).Free() + x.ref34a84548 = nil } } -// NewImportMemoryHostPointerInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceGraphicsPipelineLibraryFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewImportMemoryHostPointerInfoRef(ref unsafe.Pointer) *ImportMemoryHostPointerInfo { +func NewPhysicalDeviceGraphicsPipelineLibraryFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceGraphicsPipelineLibraryFeatures { if ref == nil { return nil } - obj := new(ImportMemoryHostPointerInfo) - obj.reffe09253e = (*C.VkImportMemoryHostPointerInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceGraphicsPipelineLibraryFeatures) + obj.ref34a84548 = (*C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *ImportMemoryHostPointerInfo) PassRef() (*C.VkImportMemoryHostPointerInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceGraphicsPipelineLibraryFeatures) PassRef() (*C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reffe09253e != nil { - return x.reffe09253e, nil + } else if x.ref34a84548 != nil { + return x.ref34a84548, nil } - memfe09253e := allocImportMemoryHostPointerInfoMemory(1) - reffe09253e := (*C.VkImportMemoryHostPointerInfoEXT)(memfe09253e) - allocsfe09253e := new(cgoAllocMap) - allocsfe09253e.Add(memfe09253e) + mem34a84548 := allocPhysicalDeviceGraphicsPipelineLibraryFeaturesMemory(1) + ref34a84548 := (*C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT)(mem34a84548) + allocs34a84548 := new(cgoAllocMap) + allocs34a84548.Add(mem34a84548) var csType_allocs *cgoAllocMap - reffe09253e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsfe09253e.Borrow(csType_allocs) + ref34a84548.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs34a84548.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reffe09253e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsfe09253e.Borrow(cpNext_allocs) - - var chandleType_allocs *cgoAllocMap - reffe09253e.handleType, chandleType_allocs = (C.VkExternalMemoryHandleTypeFlagBits)(x.HandleType), cgoAllocsUnknown - allocsfe09253e.Borrow(chandleType_allocs) + ref34a84548.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs34a84548.Borrow(cpNext_allocs) - var cpHostPointer_allocs *cgoAllocMap - reffe09253e.pHostPointer, cpHostPointer_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PHostPointer)), cgoAllocsUnknown - allocsfe09253e.Borrow(cpHostPointer_allocs) + var cgraphicsPipelineLibrary_allocs *cgoAllocMap + ref34a84548.graphicsPipelineLibrary, cgraphicsPipelineLibrary_allocs = (C.VkBool32)(x.GraphicsPipelineLibrary), cgoAllocsUnknown + allocs34a84548.Borrow(cgraphicsPipelineLibrary_allocs) - x.reffe09253e = reffe09253e - x.allocsfe09253e = allocsfe09253e - return reffe09253e, allocsfe09253e + x.ref34a84548 = ref34a84548 + x.allocs34a84548 = allocs34a84548 + return ref34a84548, allocs34a84548 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x ImportMemoryHostPointerInfo) PassValue() (C.VkImportMemoryHostPointerInfoEXT, *cgoAllocMap) { - if x.reffe09253e != nil { - return *x.reffe09253e, nil +func (x PhysicalDeviceGraphicsPipelineLibraryFeatures) PassValue() (C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, *cgoAllocMap) { + if x.ref34a84548 != nil { + return *x.ref34a84548, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37313,91 +64088,94 @@ func (x ImportMemoryHostPointerInfo) PassValue() (C.VkImportMemoryHostPointerInf // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *ImportMemoryHostPointerInfo) Deref() { - if x.reffe09253e == nil { +func (x *PhysicalDeviceGraphicsPipelineLibraryFeatures) Deref() { + if x.ref34a84548 == nil { return } - x.SType = (StructureType)(x.reffe09253e.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reffe09253e.pNext)) - x.HandleType = (ExternalMemoryHandleTypeFlagBits)(x.reffe09253e.handleType) - x.PHostPointer = (unsafe.Pointer)(unsafe.Pointer(x.reffe09253e.pHostPointer)) + x.SType = (StructureType)(x.ref34a84548.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref34a84548.pNext)) + x.GraphicsPipelineLibrary = (Bool32)(x.ref34a84548.graphicsPipelineLibrary) } -// allocMemoryHostPointerPropertiesMemory allocates memory for type C.VkMemoryHostPointerPropertiesEXT in C. +// allocPhysicalDeviceGraphicsPipelineLibraryPropertiesMemory allocates memory for type C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocMemoryHostPointerPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMemoryHostPointerPropertiesValue)) +func allocPhysicalDeviceGraphicsPipelineLibraryPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceGraphicsPipelineLibraryPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfMemoryHostPointerPropertiesValue = unsafe.Sizeof([1]C.VkMemoryHostPointerPropertiesEXT{}) +const sizeOfPhysicalDeviceGraphicsPipelineLibraryPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MemoryHostPointerProperties) Ref() *C.VkMemoryHostPointerPropertiesEXT { +func (x *PhysicalDeviceGraphicsPipelineLibraryProperties) Ref() *C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT { if x == nil { return nil } - return x.refebf46a84 + return x.ref3266d876 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *MemoryHostPointerProperties) Free() { - if x != nil && x.allocsebf46a84 != nil { - x.allocsebf46a84.(*cgoAllocMap).Free() - x.refebf46a84 = nil +func (x *PhysicalDeviceGraphicsPipelineLibraryProperties) Free() { + if x != nil && x.allocs3266d876 != nil { + x.allocs3266d876.(*cgoAllocMap).Free() + x.ref3266d876 = nil } } -// NewMemoryHostPointerPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceGraphicsPipelineLibraryPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewMemoryHostPointerPropertiesRef(ref unsafe.Pointer) *MemoryHostPointerProperties { +func NewPhysicalDeviceGraphicsPipelineLibraryPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceGraphicsPipelineLibraryProperties { if ref == nil { return nil } - obj := new(MemoryHostPointerProperties) - obj.refebf46a84 = (*C.VkMemoryHostPointerPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceGraphicsPipelineLibraryProperties) + obj.ref3266d876 = (*C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MemoryHostPointerProperties) PassRef() (*C.VkMemoryHostPointerPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceGraphicsPipelineLibraryProperties) PassRef() (*C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refebf46a84 != nil { - return x.refebf46a84, nil + } else if x.ref3266d876 != nil { + return x.ref3266d876, nil } - memebf46a84 := allocMemoryHostPointerPropertiesMemory(1) - refebf46a84 := (*C.VkMemoryHostPointerPropertiesEXT)(memebf46a84) - allocsebf46a84 := new(cgoAllocMap) - allocsebf46a84.Add(memebf46a84) + mem3266d876 := allocPhysicalDeviceGraphicsPipelineLibraryPropertiesMemory(1) + ref3266d876 := (*C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT)(mem3266d876) + allocs3266d876 := new(cgoAllocMap) + allocs3266d876.Add(mem3266d876) var csType_allocs *cgoAllocMap - refebf46a84.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsebf46a84.Borrow(csType_allocs) + ref3266d876.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs3266d876.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refebf46a84.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsebf46a84.Borrow(cpNext_allocs) + ref3266d876.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs3266d876.Borrow(cpNext_allocs) - var cmemoryTypeBits_allocs *cgoAllocMap - refebf46a84.memoryTypeBits, cmemoryTypeBits_allocs = (C.uint32_t)(x.MemoryTypeBits), cgoAllocsUnknown - allocsebf46a84.Borrow(cmemoryTypeBits_allocs) + var cgraphicsPipelineLibraryFastLinking_allocs *cgoAllocMap + ref3266d876.graphicsPipelineLibraryFastLinking, cgraphicsPipelineLibraryFastLinking_allocs = (C.VkBool32)(x.GraphicsPipelineLibraryFastLinking), cgoAllocsUnknown + allocs3266d876.Borrow(cgraphicsPipelineLibraryFastLinking_allocs) - x.refebf46a84 = refebf46a84 - x.allocsebf46a84 = allocsebf46a84 - return refebf46a84, allocsebf46a84 + var cgraphicsPipelineLibraryIndependentInterpolationDecoration_allocs *cgoAllocMap + ref3266d876.graphicsPipelineLibraryIndependentInterpolationDecoration, cgraphicsPipelineLibraryIndependentInterpolationDecoration_allocs = (C.VkBool32)(x.GraphicsPipelineLibraryIndependentInterpolationDecoration), cgoAllocsUnknown + allocs3266d876.Borrow(cgraphicsPipelineLibraryIndependentInterpolationDecoration_allocs) + + x.ref3266d876 = ref3266d876 + x.allocs3266d876 = allocs3266d876 + return ref3266d876, allocs3266d876 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MemoryHostPointerProperties) PassValue() (C.VkMemoryHostPointerPropertiesEXT, *cgoAllocMap) { - if x.refebf46a84 != nil { - return *x.refebf46a84, nil +func (x PhysicalDeviceGraphicsPipelineLibraryProperties) PassValue() (C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, *cgoAllocMap) { + if x.ref3266d876 != nil { + return *x.ref3266d876, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37405,90 +64183,91 @@ func (x MemoryHostPointerProperties) PassValue() (C.VkMemoryHostPointerPropertie // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MemoryHostPointerProperties) Deref() { - if x.refebf46a84 == nil { +func (x *PhysicalDeviceGraphicsPipelineLibraryProperties) Deref() { + if x.ref3266d876 == nil { return } - x.SType = (StructureType)(x.refebf46a84.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refebf46a84.pNext)) - x.MemoryTypeBits = (uint32)(x.refebf46a84.memoryTypeBits) + x.SType = (StructureType)(x.ref3266d876.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref3266d876.pNext)) + x.GraphicsPipelineLibraryFastLinking = (Bool32)(x.ref3266d876.graphicsPipelineLibraryFastLinking) + x.GraphicsPipelineLibraryIndependentInterpolationDecoration = (Bool32)(x.ref3266d876.graphicsPipelineLibraryIndependentInterpolationDecoration) } -// allocPhysicalDeviceExternalMemoryHostPropertiesMemory allocates memory for type C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT in C. +// allocGraphicsPipelineLibraryCreateInfoMemory allocates memory for type C.VkGraphicsPipelineLibraryCreateInfoEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceExternalMemoryHostPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExternalMemoryHostPropertiesValue)) +func allocGraphicsPipelineLibraryCreateInfoMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfGraphicsPipelineLibraryCreateInfoValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceExternalMemoryHostPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT{}) +const sizeOfGraphicsPipelineLibraryCreateInfoValue = unsafe.Sizeof([1]C.VkGraphicsPipelineLibraryCreateInfoEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExternalMemoryHostProperties) Ref() *C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT { +func (x *GraphicsPipelineLibraryCreateInfo) Ref() *C.VkGraphicsPipelineLibraryCreateInfoEXT { if x == nil { return nil } - return x.ref7f697d15 + return x.reff164ebfc } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceExternalMemoryHostProperties) Free() { - if x != nil && x.allocs7f697d15 != nil { - x.allocs7f697d15.(*cgoAllocMap).Free() - x.ref7f697d15 = nil +func (x *GraphicsPipelineLibraryCreateInfo) Free() { + if x != nil && x.allocsf164ebfc != nil { + x.allocsf164ebfc.(*cgoAllocMap).Free() + x.reff164ebfc = nil } } -// NewPhysicalDeviceExternalMemoryHostPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewGraphicsPipelineLibraryCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceExternalMemoryHostPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceExternalMemoryHostProperties { +func NewGraphicsPipelineLibraryCreateInfoRef(ref unsafe.Pointer) *GraphicsPipelineLibraryCreateInfo { if ref == nil { return nil } - obj := new(PhysicalDeviceExternalMemoryHostProperties) - obj.ref7f697d15 = (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(GraphicsPipelineLibraryCreateInfo) + obj.reff164ebfc = (*C.VkGraphicsPipelineLibraryCreateInfoEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceExternalMemoryHostProperties) PassRef() (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT, *cgoAllocMap) { +func (x *GraphicsPipelineLibraryCreateInfo) PassRef() (*C.VkGraphicsPipelineLibraryCreateInfoEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref7f697d15 != nil { - return x.ref7f697d15, nil + } else if x.reff164ebfc != nil { + return x.reff164ebfc, nil } - mem7f697d15 := allocPhysicalDeviceExternalMemoryHostPropertiesMemory(1) - ref7f697d15 := (*C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT)(mem7f697d15) - allocs7f697d15 := new(cgoAllocMap) - allocs7f697d15.Add(mem7f697d15) + memf164ebfc := allocGraphicsPipelineLibraryCreateInfoMemory(1) + reff164ebfc := (*C.VkGraphicsPipelineLibraryCreateInfoEXT)(memf164ebfc) + allocsf164ebfc := new(cgoAllocMap) + allocsf164ebfc.Add(memf164ebfc) var csType_allocs *cgoAllocMap - ref7f697d15.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs7f697d15.Borrow(csType_allocs) + reff164ebfc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf164ebfc.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref7f697d15.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs7f697d15.Borrow(cpNext_allocs) + reff164ebfc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf164ebfc.Borrow(cpNext_allocs) - var cminImportedHostPointerAlignment_allocs *cgoAllocMap - ref7f697d15.minImportedHostPointerAlignment, cminImportedHostPointerAlignment_allocs = (C.VkDeviceSize)(x.MinImportedHostPointerAlignment), cgoAllocsUnknown - allocs7f697d15.Borrow(cminImportedHostPointerAlignment_allocs) + var cflags_allocs *cgoAllocMap + reff164ebfc.flags, cflags_allocs = (C.VkGraphicsPipelineLibraryFlagsEXT)(x.Flags), cgoAllocsUnknown + allocsf164ebfc.Borrow(cflags_allocs) - x.ref7f697d15 = ref7f697d15 - x.allocs7f697d15 = allocs7f697d15 - return ref7f697d15, allocs7f697d15 + x.reff164ebfc = reff164ebfc + x.allocsf164ebfc = allocsf164ebfc + return reff164ebfc, allocsf164ebfc } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceExternalMemoryHostProperties) PassValue() (C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT, *cgoAllocMap) { - if x.ref7f697d15 != nil { - return *x.ref7f697d15, nil +func (x GraphicsPipelineLibraryCreateInfo) PassValue() (C.VkGraphicsPipelineLibraryCreateInfoEXT, *cgoAllocMap) { + if x.reff164ebfc != nil { + return *x.reff164ebfc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37496,90 +64275,90 @@ func (x PhysicalDeviceExternalMemoryHostProperties) PassValue() (C.VkPhysicalDev // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceExternalMemoryHostProperties) Deref() { - if x.ref7f697d15 == nil { +func (x *GraphicsPipelineLibraryCreateInfo) Deref() { + if x.reff164ebfc == nil { return } - x.SType = (StructureType)(x.ref7f697d15.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref7f697d15.pNext)) - x.MinImportedHostPointerAlignment = (DeviceSize)(x.ref7f697d15.minImportedHostPointerAlignment) + x.SType = (StructureType)(x.reff164ebfc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff164ebfc.pNext)) + x.Flags = (GraphicsPipelineLibraryFlags)(x.reff164ebfc.flags) } -// allocCalibratedTimestampInfoMemory allocates memory for type C.VkCalibratedTimestampInfoEXT in C. +// allocPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDMemory allocates memory for type C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD in C. // The caller is responsible for freeing the this memory via C.free. -func allocCalibratedTimestampInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCalibratedTimestampInfoValue)) +func allocPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfCalibratedTimestampInfoValue = unsafe.Sizeof([1]C.VkCalibratedTimestampInfoEXT{}) +const sizeOfPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CalibratedTimestampInfo) Ref() *C.VkCalibratedTimestampInfoEXT { +func (x *PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) Ref() *C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD { if x == nil { return nil } - return x.ref5f061d2a + return x.refec282b5f } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CalibratedTimestampInfo) Free() { - if x != nil && x.allocs5f061d2a != nil { - x.allocs5f061d2a.(*cgoAllocMap).Free() - x.ref5f061d2a = nil +func (x *PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) Free() { + if x != nil && x.allocsec282b5f != nil { + x.allocsec282b5f.(*cgoAllocMap).Free() + x.refec282b5f = nil } } -// NewCalibratedTimestampInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCalibratedTimestampInfoRef(ref unsafe.Pointer) *CalibratedTimestampInfo { +func NewPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD { if ref == nil { return nil } - obj := new(CalibratedTimestampInfo) - obj.ref5f061d2a = (*C.VkCalibratedTimestampInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) + obj.refec282b5f = (*C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CalibratedTimestampInfo) PassRef() (*C.VkCalibratedTimestampInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) PassRef() (*C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref5f061d2a != nil { - return x.ref5f061d2a, nil + } else if x.refec282b5f != nil { + return x.refec282b5f, nil } - mem5f061d2a := allocCalibratedTimestampInfoMemory(1) - ref5f061d2a := (*C.VkCalibratedTimestampInfoEXT)(mem5f061d2a) - allocs5f061d2a := new(cgoAllocMap) - allocs5f061d2a.Add(mem5f061d2a) + memec282b5f := allocPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDMemory(1) + refec282b5f := (*C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD)(memec282b5f) + allocsec282b5f := new(cgoAllocMap) + allocsec282b5f.Add(memec282b5f) var csType_allocs *cgoAllocMap - ref5f061d2a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs5f061d2a.Borrow(csType_allocs) + refec282b5f.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsec282b5f.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref5f061d2a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs5f061d2a.Borrow(cpNext_allocs) + refec282b5f.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsec282b5f.Borrow(cpNext_allocs) - var ctimeDomain_allocs *cgoAllocMap - ref5f061d2a.timeDomain, ctimeDomain_allocs = (C.VkTimeDomainEXT)(x.TimeDomain), cgoAllocsUnknown - allocs5f061d2a.Borrow(ctimeDomain_allocs) + var cshaderEarlyAndLateFragmentTests_allocs *cgoAllocMap + refec282b5f.shaderEarlyAndLateFragmentTests, cshaderEarlyAndLateFragmentTests_allocs = (C.VkBool32)(x.ShaderEarlyAndLateFragmentTests), cgoAllocsUnknown + allocsec282b5f.Borrow(cshaderEarlyAndLateFragmentTests_allocs) - x.ref5f061d2a = ref5f061d2a - x.allocs5f061d2a = allocs5f061d2a - return ref5f061d2a, allocs5f061d2a + x.refec282b5f = refec282b5f + x.allocsec282b5f = allocsec282b5f + return refec282b5f, allocsec282b5f } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CalibratedTimestampInfo) PassValue() (C.VkCalibratedTimestampInfoEXT, *cgoAllocMap) { - if x.ref5f061d2a != nil { - return *x.ref5f061d2a, nil +func (x PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) PassValue() (C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, *cgoAllocMap) { + if x.refec282b5f != nil { + return *x.refec282b5f, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37587,142 +64366,98 @@ func (x CalibratedTimestampInfo) PassValue() (C.VkCalibratedTimestampInfoEXT, *c // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CalibratedTimestampInfo) Deref() { - if x.ref5f061d2a == nil { +func (x *PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) Deref() { + if x.refec282b5f == nil { return } - x.SType = (StructureType)(x.ref5f061d2a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref5f061d2a.pNext)) - x.TimeDomain = (TimeDomain)(x.ref5f061d2a.timeDomain) + x.SType = (StructureType)(x.refec282b5f.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refec282b5f.pNext)) + x.ShaderEarlyAndLateFragmentTests = (Bool32)(x.refec282b5f.shaderEarlyAndLateFragmentTests) } -// allocPhysicalDeviceShaderCorePropertiesAMDMemory allocates memory for type C.VkPhysicalDeviceShaderCorePropertiesAMD in C. +// allocPhysicalDeviceFragmentShadingRateEnumsFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderCorePropertiesAMDMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderCorePropertiesAMDValue)) +func allocPhysicalDeviceFragmentShadingRateEnumsFeaturesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateEnumsFeaturesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceShaderCorePropertiesAMDValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderCorePropertiesAMD{}) +const sizeOfPhysicalDeviceFragmentShadingRateEnumsFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderCorePropertiesAMD) Ref() *C.VkPhysicalDeviceShaderCorePropertiesAMD { +func (x *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) Ref() *C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV { if x == nil { return nil } - return x.refde4b3b09 + return x.refd295c0e9 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceShaderCorePropertiesAMD) Free() { - if x != nil && x.allocsde4b3b09 != nil { - x.allocsde4b3b09.(*cgoAllocMap).Free() - x.refde4b3b09 = nil +func (x *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) Free() { + if x != nil && x.allocsd295c0e9 != nil { + x.allocsd295c0e9.(*cgoAllocMap).Free() + x.refd295c0e9 = nil } } -// NewPhysicalDeviceShaderCorePropertiesAMDRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentShadingRateEnumsFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceShaderCorePropertiesAMDRef(ref unsafe.Pointer) *PhysicalDeviceShaderCorePropertiesAMD { +func NewPhysicalDeviceFragmentShadingRateEnumsFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderCorePropertiesAMD) - obj.refde4b3b09 = (*C.VkPhysicalDeviceShaderCorePropertiesAMD)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) + obj.refd295c0e9 = (*C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceShaderCorePropertiesAMD) PassRef() (*C.VkPhysicalDeviceShaderCorePropertiesAMD, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refde4b3b09 != nil { - return x.refde4b3b09, nil + } else if x.refd295c0e9 != nil { + return x.refd295c0e9, nil } - memde4b3b09 := allocPhysicalDeviceShaderCorePropertiesAMDMemory(1) - refde4b3b09 := (*C.VkPhysicalDeviceShaderCorePropertiesAMD)(memde4b3b09) - allocsde4b3b09 := new(cgoAllocMap) - allocsde4b3b09.Add(memde4b3b09) + memd295c0e9 := allocPhysicalDeviceFragmentShadingRateEnumsFeaturesNVMemory(1) + refd295c0e9 := (*C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV)(memd295c0e9) + allocsd295c0e9 := new(cgoAllocMap) + allocsd295c0e9.Add(memd295c0e9) var csType_allocs *cgoAllocMap - refde4b3b09.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsde4b3b09.Borrow(csType_allocs) + refd295c0e9.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsd295c0e9.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refde4b3b09.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsde4b3b09.Borrow(cpNext_allocs) - - var cshaderEngineCount_allocs *cgoAllocMap - refde4b3b09.shaderEngineCount, cshaderEngineCount_allocs = (C.uint32_t)(x.ShaderEngineCount), cgoAllocsUnknown - allocsde4b3b09.Borrow(cshaderEngineCount_allocs) - - var cshaderArraysPerEngineCount_allocs *cgoAllocMap - refde4b3b09.shaderArraysPerEngineCount, cshaderArraysPerEngineCount_allocs = (C.uint32_t)(x.ShaderArraysPerEngineCount), cgoAllocsUnknown - allocsde4b3b09.Borrow(cshaderArraysPerEngineCount_allocs) - - var ccomputeUnitsPerShaderArray_allocs *cgoAllocMap - refde4b3b09.computeUnitsPerShaderArray, ccomputeUnitsPerShaderArray_allocs = (C.uint32_t)(x.ComputeUnitsPerShaderArray), cgoAllocsUnknown - allocsde4b3b09.Borrow(ccomputeUnitsPerShaderArray_allocs) - - var csimdPerComputeUnit_allocs *cgoAllocMap - refde4b3b09.simdPerComputeUnit, csimdPerComputeUnit_allocs = (C.uint32_t)(x.SimdPerComputeUnit), cgoAllocsUnknown - allocsde4b3b09.Borrow(csimdPerComputeUnit_allocs) - - var cwavefrontsPerSimd_allocs *cgoAllocMap - refde4b3b09.wavefrontsPerSimd, cwavefrontsPerSimd_allocs = (C.uint32_t)(x.WavefrontsPerSimd), cgoAllocsUnknown - allocsde4b3b09.Borrow(cwavefrontsPerSimd_allocs) - - var cwavefrontSize_allocs *cgoAllocMap - refde4b3b09.wavefrontSize, cwavefrontSize_allocs = (C.uint32_t)(x.WavefrontSize), cgoAllocsUnknown - allocsde4b3b09.Borrow(cwavefrontSize_allocs) - - var csgprsPerSimd_allocs *cgoAllocMap - refde4b3b09.sgprsPerSimd, csgprsPerSimd_allocs = (C.uint32_t)(x.SgprsPerSimd), cgoAllocsUnknown - allocsde4b3b09.Borrow(csgprsPerSimd_allocs) - - var cminSgprAllocation_allocs *cgoAllocMap - refde4b3b09.minSgprAllocation, cminSgprAllocation_allocs = (C.uint32_t)(x.MinSgprAllocation), cgoAllocsUnknown - allocsde4b3b09.Borrow(cminSgprAllocation_allocs) - - var cmaxSgprAllocation_allocs *cgoAllocMap - refde4b3b09.maxSgprAllocation, cmaxSgprAllocation_allocs = (C.uint32_t)(x.MaxSgprAllocation), cgoAllocsUnknown - allocsde4b3b09.Borrow(cmaxSgprAllocation_allocs) - - var csgprAllocationGranularity_allocs *cgoAllocMap - refde4b3b09.sgprAllocationGranularity, csgprAllocationGranularity_allocs = (C.uint32_t)(x.SgprAllocationGranularity), cgoAllocsUnknown - allocsde4b3b09.Borrow(csgprAllocationGranularity_allocs) - - var cvgprsPerSimd_allocs *cgoAllocMap - refde4b3b09.vgprsPerSimd, cvgprsPerSimd_allocs = (C.uint32_t)(x.VgprsPerSimd), cgoAllocsUnknown - allocsde4b3b09.Borrow(cvgprsPerSimd_allocs) + refd295c0e9.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsd295c0e9.Borrow(cpNext_allocs) - var cminVgprAllocation_allocs *cgoAllocMap - refde4b3b09.minVgprAllocation, cminVgprAllocation_allocs = (C.uint32_t)(x.MinVgprAllocation), cgoAllocsUnknown - allocsde4b3b09.Borrow(cminVgprAllocation_allocs) + var cfragmentShadingRateEnums_allocs *cgoAllocMap + refd295c0e9.fragmentShadingRateEnums, cfragmentShadingRateEnums_allocs = (C.VkBool32)(x.FragmentShadingRateEnums), cgoAllocsUnknown + allocsd295c0e9.Borrow(cfragmentShadingRateEnums_allocs) - var cmaxVgprAllocation_allocs *cgoAllocMap - refde4b3b09.maxVgprAllocation, cmaxVgprAllocation_allocs = (C.uint32_t)(x.MaxVgprAllocation), cgoAllocsUnknown - allocsde4b3b09.Borrow(cmaxVgprAllocation_allocs) + var csupersampleFragmentShadingRates_allocs *cgoAllocMap + refd295c0e9.supersampleFragmentShadingRates, csupersampleFragmentShadingRates_allocs = (C.VkBool32)(x.SupersampleFragmentShadingRates), cgoAllocsUnknown + allocsd295c0e9.Borrow(csupersampleFragmentShadingRates_allocs) - var cvgprAllocationGranularity_allocs *cgoAllocMap - refde4b3b09.vgprAllocationGranularity, cvgprAllocationGranularity_allocs = (C.uint32_t)(x.VgprAllocationGranularity), cgoAllocsUnknown - allocsde4b3b09.Borrow(cvgprAllocationGranularity_allocs) + var cnoInvocationFragmentShadingRates_allocs *cgoAllocMap + refd295c0e9.noInvocationFragmentShadingRates, cnoInvocationFragmentShadingRates_allocs = (C.VkBool32)(x.NoInvocationFragmentShadingRates), cgoAllocsUnknown + allocsd295c0e9.Borrow(cnoInvocationFragmentShadingRates_allocs) - x.refde4b3b09 = refde4b3b09 - x.allocsde4b3b09 = allocsde4b3b09 - return refde4b3b09, allocsde4b3b09 + x.refd295c0e9 = refd295c0e9 + x.allocsd295c0e9 = allocsd295c0e9 + return refd295c0e9, allocsd295c0e9 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceShaderCorePropertiesAMD) PassValue() (C.VkPhysicalDeviceShaderCorePropertiesAMD, *cgoAllocMap) { - if x.refde4b3b09 != nil { - return *x.refde4b3b09, nil +func (x PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) PassValue() (C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, *cgoAllocMap) { + if x.refd295c0e9 != nil { + return *x.refd295c0e9, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37730,103 +64465,92 @@ func (x PhysicalDeviceShaderCorePropertiesAMD) PassValue() (C.VkPhysicalDeviceSh // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceShaderCorePropertiesAMD) Deref() { - if x.refde4b3b09 == nil { +func (x *PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) Deref() { + if x.refd295c0e9 == nil { return } - x.SType = (StructureType)(x.refde4b3b09.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refde4b3b09.pNext)) - x.ShaderEngineCount = (uint32)(x.refde4b3b09.shaderEngineCount) - x.ShaderArraysPerEngineCount = (uint32)(x.refde4b3b09.shaderArraysPerEngineCount) - x.ComputeUnitsPerShaderArray = (uint32)(x.refde4b3b09.computeUnitsPerShaderArray) - x.SimdPerComputeUnit = (uint32)(x.refde4b3b09.simdPerComputeUnit) - x.WavefrontsPerSimd = (uint32)(x.refde4b3b09.wavefrontsPerSimd) - x.WavefrontSize = (uint32)(x.refde4b3b09.wavefrontSize) - x.SgprsPerSimd = (uint32)(x.refde4b3b09.sgprsPerSimd) - x.MinSgprAllocation = (uint32)(x.refde4b3b09.minSgprAllocation) - x.MaxSgprAllocation = (uint32)(x.refde4b3b09.maxSgprAllocation) - x.SgprAllocationGranularity = (uint32)(x.refde4b3b09.sgprAllocationGranularity) - x.VgprsPerSimd = (uint32)(x.refde4b3b09.vgprsPerSimd) - x.MinVgprAllocation = (uint32)(x.refde4b3b09.minVgprAllocation) - x.MaxVgprAllocation = (uint32)(x.refde4b3b09.maxVgprAllocation) - x.VgprAllocationGranularity = (uint32)(x.refde4b3b09.vgprAllocationGranularity) + x.SType = (StructureType)(x.refd295c0e9.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd295c0e9.pNext)) + x.FragmentShadingRateEnums = (Bool32)(x.refd295c0e9.fragmentShadingRateEnums) + x.SupersampleFragmentShadingRates = (Bool32)(x.refd295c0e9.supersampleFragmentShadingRates) + x.NoInvocationFragmentShadingRates = (Bool32)(x.refd295c0e9.noInvocationFragmentShadingRates) } -// allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT in C. +// allocPhysicalDeviceFragmentShadingRateEnumsPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVertexAttributeDivisorPropertiesValue)) +func allocPhysicalDeviceFragmentShadingRateEnumsPropertiesNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShadingRateEnumsPropertiesNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceVertexAttributeDivisorPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT{}) +const sizeOfPhysicalDeviceFragmentShadingRateEnumsPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVertexAttributeDivisorProperties) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { +func (x *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) Ref() *C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV { if x == nil { return nil } - return x.refbd6b5075 + return x.ref49eae7dc } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceVertexAttributeDivisorProperties) Free() { - if x != nil && x.allocsbd6b5075 != nil { - x.allocsbd6b5075.(*cgoAllocMap).Free() - x.refbd6b5075 = nil +func (x *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) Free() { + if x != nil && x.allocs49eae7dc != nil { + x.allocs49eae7dc.(*cgoAllocMap).Free() + x.ref49eae7dc = nil } } -// NewPhysicalDeviceVertexAttributeDivisorPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentShadingRateEnumsPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceVertexAttributeDivisorPropertiesRef(ref unsafe.Pointer) *PhysicalDeviceVertexAttributeDivisorProperties { +func NewPhysicalDeviceFragmentShadingRateEnumsPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV { if ref == nil { return nil } - obj := new(PhysicalDeviceVertexAttributeDivisorProperties) - obj.refbd6b5075 = (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) + obj.ref49eae7dc = (*C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceVertexAttributeDivisorProperties) PassRef() (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) PassRef() (*C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refbd6b5075 != nil { - return x.refbd6b5075, nil + } else if x.ref49eae7dc != nil { + return x.ref49eae7dc, nil } - membd6b5075 := allocPhysicalDeviceVertexAttributeDivisorPropertiesMemory(1) - refbd6b5075 := (*C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)(membd6b5075) - allocsbd6b5075 := new(cgoAllocMap) - allocsbd6b5075.Add(membd6b5075) + mem49eae7dc := allocPhysicalDeviceFragmentShadingRateEnumsPropertiesNVMemory(1) + ref49eae7dc := (*C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV)(mem49eae7dc) + allocs49eae7dc := new(cgoAllocMap) + allocs49eae7dc.Add(mem49eae7dc) var csType_allocs *cgoAllocMap - refbd6b5075.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsbd6b5075.Borrow(csType_allocs) + ref49eae7dc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs49eae7dc.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refbd6b5075.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsbd6b5075.Borrow(cpNext_allocs) + ref49eae7dc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs49eae7dc.Borrow(cpNext_allocs) - var cmaxVertexAttribDivisor_allocs *cgoAllocMap - refbd6b5075.maxVertexAttribDivisor, cmaxVertexAttribDivisor_allocs = (C.uint32_t)(x.MaxVertexAttribDivisor), cgoAllocsUnknown - allocsbd6b5075.Borrow(cmaxVertexAttribDivisor_allocs) + var cmaxFragmentShadingRateInvocationCount_allocs *cgoAllocMap + ref49eae7dc.maxFragmentShadingRateInvocationCount, cmaxFragmentShadingRateInvocationCount_allocs = (C.VkSampleCountFlagBits)(x.MaxFragmentShadingRateInvocationCount), cgoAllocsUnknown + allocs49eae7dc.Borrow(cmaxFragmentShadingRateInvocationCount_allocs) - x.refbd6b5075 = refbd6b5075 - x.allocsbd6b5075 = allocsbd6b5075 - return refbd6b5075, allocsbd6b5075 + x.ref49eae7dc = ref49eae7dc + x.allocs49eae7dc = allocs49eae7dc + return ref49eae7dc, allocs49eae7dc } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceVertexAttributeDivisorProperties) PassValue() (C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, *cgoAllocMap) { - if x.refbd6b5075 != nil { - return *x.refbd6b5075, nil +func (x PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) PassValue() (C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, *cgoAllocMap) { + if x.ref49eae7dc != nil { + return *x.ref49eae7dc, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37834,86 +64558,98 @@ func (x PhysicalDeviceVertexAttributeDivisorProperties) PassValue() (C.VkPhysica // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceVertexAttributeDivisorProperties) Deref() { - if x.refbd6b5075 == nil { +func (x *PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) Deref() { + if x.ref49eae7dc == nil { return } - x.SType = (StructureType)(x.refbd6b5075.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refbd6b5075.pNext)) - x.MaxVertexAttribDivisor = (uint32)(x.refbd6b5075.maxVertexAttribDivisor) + x.SType = (StructureType)(x.ref49eae7dc.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref49eae7dc.pNext)) + x.MaxFragmentShadingRateInvocationCount = (SampleCountFlagBits)(x.ref49eae7dc.maxFragmentShadingRateInvocationCount) } -// allocVertexInputBindingDivisorDescriptionMemory allocates memory for type C.VkVertexInputBindingDivisorDescriptionEXT in C. +// allocPipelineFragmentShadingRateEnumStateCreateInfoNVMemory allocates memory for type C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV in C. // The caller is responsible for freeing the this memory via C.free. -func allocVertexInputBindingDivisorDescriptionMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfVertexInputBindingDivisorDescriptionValue)) +func allocPipelineFragmentShadingRateEnumStateCreateInfoNVMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineFragmentShadingRateEnumStateCreateInfoNVValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfVertexInputBindingDivisorDescriptionValue = unsafe.Sizeof([1]C.VkVertexInputBindingDivisorDescriptionEXT{}) +const sizeOfPipelineFragmentShadingRateEnumStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *VertexInputBindingDivisorDescription) Ref() *C.VkVertexInputBindingDivisorDescriptionEXT { +func (x *PipelineFragmentShadingRateEnumStateCreateInfoNV) Ref() *C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV { if x == nil { return nil } - return x.refd64d4396 + return x.ref82a7e17b } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *VertexInputBindingDivisorDescription) Free() { - if x != nil && x.allocsd64d4396 != nil { - x.allocsd64d4396.(*cgoAllocMap).Free() - x.refd64d4396 = nil +func (x *PipelineFragmentShadingRateEnumStateCreateInfoNV) Free() { + if x != nil && x.allocs82a7e17b != nil { + x.allocs82a7e17b.(*cgoAllocMap).Free() + x.ref82a7e17b = nil } } -// NewVertexInputBindingDivisorDescriptionRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPipelineFragmentShadingRateEnumStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewVertexInputBindingDivisorDescriptionRef(ref unsafe.Pointer) *VertexInputBindingDivisorDescription { +func NewPipelineFragmentShadingRateEnumStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineFragmentShadingRateEnumStateCreateInfoNV { if ref == nil { return nil } - obj := new(VertexInputBindingDivisorDescription) - obj.refd64d4396 = (*C.VkVertexInputBindingDivisorDescriptionEXT)(unsafe.Pointer(ref)) + obj := new(PipelineFragmentShadingRateEnumStateCreateInfoNV) + obj.ref82a7e17b = (*C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *VertexInputBindingDivisorDescription) PassRef() (*C.VkVertexInputBindingDivisorDescriptionEXT, *cgoAllocMap) { +func (x *PipelineFragmentShadingRateEnumStateCreateInfoNV) PassRef() (*C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd64d4396 != nil { - return x.refd64d4396, nil + } else if x.ref82a7e17b != nil { + return x.ref82a7e17b, nil } - memd64d4396 := allocVertexInputBindingDivisorDescriptionMemory(1) - refd64d4396 := (*C.VkVertexInputBindingDivisorDescriptionEXT)(memd64d4396) - allocsd64d4396 := new(cgoAllocMap) - allocsd64d4396.Add(memd64d4396) + mem82a7e17b := allocPipelineFragmentShadingRateEnumStateCreateInfoNVMemory(1) + ref82a7e17b := (*C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV)(mem82a7e17b) + allocs82a7e17b := new(cgoAllocMap) + allocs82a7e17b.Add(mem82a7e17b) - var cbinding_allocs *cgoAllocMap - refd64d4396.binding, cbinding_allocs = (C.uint32_t)(x.Binding), cgoAllocsUnknown - allocsd64d4396.Borrow(cbinding_allocs) + var csType_allocs *cgoAllocMap + ref82a7e17b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs82a7e17b.Borrow(csType_allocs) - var cdivisor_allocs *cgoAllocMap - refd64d4396.divisor, cdivisor_allocs = (C.uint32_t)(x.Divisor), cgoAllocsUnknown - allocsd64d4396.Borrow(cdivisor_allocs) + var cpNext_allocs *cgoAllocMap + ref82a7e17b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs82a7e17b.Borrow(cpNext_allocs) - x.refd64d4396 = refd64d4396 - x.allocsd64d4396 = allocsd64d4396 - return refd64d4396, allocsd64d4396 + var cshadingRateType_allocs *cgoAllocMap + ref82a7e17b.shadingRateType, cshadingRateType_allocs = (C.VkFragmentShadingRateTypeNV)(x.ShadingRateType), cgoAllocsUnknown + allocs82a7e17b.Borrow(cshadingRateType_allocs) + + var cshadingRate_allocs *cgoAllocMap + ref82a7e17b.shadingRate, cshadingRate_allocs = (C.VkFragmentShadingRateNV)(x.ShadingRate), cgoAllocsUnknown + allocs82a7e17b.Borrow(cshadingRate_allocs) + + var ccombinerOps_allocs *cgoAllocMap + ref82a7e17b.combinerOps, ccombinerOps_allocs = *(*[2]C.VkFragmentShadingRateCombinerOpKHR)(unsafe.Pointer(&x.CombinerOps)), cgoAllocsUnknown + allocs82a7e17b.Borrow(ccombinerOps_allocs) + + x.ref82a7e17b = ref82a7e17b + x.allocs82a7e17b = allocs82a7e17b + return ref82a7e17b, allocs82a7e17b } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x VertexInputBindingDivisorDescription) PassValue() (C.VkVertexInputBindingDivisorDescriptionEXT, *cgoAllocMap) { - if x.refd64d4396 != nil { - return *x.refd64d4396, nil +func (x PipelineFragmentShadingRateEnumStateCreateInfoNV) PassValue() (C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV, *cgoAllocMap) { + if x.ref82a7e17b != nil { + return *x.ref82a7e17b, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -37921,131 +64657,92 @@ func (x VertexInputBindingDivisorDescription) PassValue() (C.VkVertexInputBindin // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *VertexInputBindingDivisorDescription) Deref() { - if x.refd64d4396 == nil { +func (x *PipelineFragmentShadingRateEnumStateCreateInfoNV) Deref() { + if x.ref82a7e17b == nil { return } - x.Binding = (uint32)(x.refd64d4396.binding) - x.Divisor = (uint32)(x.refd64d4396.divisor) + x.SType = (StructureType)(x.ref82a7e17b.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref82a7e17b.pNext)) + x.ShadingRateType = (FragmentShadingRateTypeNV)(x.ref82a7e17b.shadingRateType) + x.ShadingRate = (FragmentShadingRateNV)(x.ref82a7e17b.shadingRate) + x.CombinerOps = *(*[2]FragmentShadingRateCombinerOp)(unsafe.Pointer(&x.ref82a7e17b.combinerOps)) } -// allocPipelineVertexInputDivisorStateCreateInfoMemory allocates memory for type C.VkPipelineVertexInputDivisorStateCreateInfoEXT in C. +// allocPhysicalDeviceYcbcr2Plane444FormatsFeaturesMemory allocates memory for type C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineVertexInputDivisorStateCreateInfoMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineVertexInputDivisorStateCreateInfoValue)) +func allocPhysicalDeviceYcbcr2Plane444FormatsFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceYcbcr2Plane444FormatsFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineVertexInputDivisorStateCreateInfoValue = unsafe.Sizeof([1]C.VkPipelineVertexInputDivisorStateCreateInfoEXT{}) - -// unpackSVertexInputBindingDivisorDescription transforms a sliced Go data structure into plain C format. -func unpackSVertexInputBindingDivisorDescription(x []VertexInputBindingDivisorDescription) (unpacked *C.VkVertexInputBindingDivisorDescriptionEXT, allocs *cgoAllocMap) { - if x == nil { - return nil, nil - } - allocs = new(cgoAllocMap) - defer runtime.SetFinalizer(&unpacked, func(**C.VkVertexInputBindingDivisorDescriptionEXT) { - go allocs.Free() - }) - - len0 := len(x) - mem0 := allocVertexInputBindingDivisorDescriptionMemory(len0) - allocs.Add(mem0) - h0 := &sliceHeader{ - Data: mem0, - Cap: len0, - Len: len0, - } - v0 := *(*[]C.VkVertexInputBindingDivisorDescriptionEXT)(unsafe.Pointer(h0)) - for i0 := range x { - allocs0 := new(cgoAllocMap) - v0[i0], allocs0 = x[i0].PassValue() - allocs.Borrow(allocs0) - } - h := (*sliceHeader)(unsafe.Pointer(&v0)) - unpacked = (*C.VkVertexInputBindingDivisorDescriptionEXT)(h.Data) - return -} - -// packSVertexInputBindingDivisorDescription reads sliced Go data structure out from plain C format. -func packSVertexInputBindingDivisorDescription(v []VertexInputBindingDivisorDescription, ptr0 *C.VkVertexInputBindingDivisorDescriptionEXT) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfVertexInputBindingDivisorDescriptionValue]C.VkVertexInputBindingDivisorDescriptionEXT)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewVertexInputBindingDivisorDescriptionRef(unsafe.Pointer(&ptr1)) - } -} +const sizeOfPhysicalDeviceYcbcr2Plane444FormatsFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineVertexInputDivisorStateCreateInfo) Ref() *C.VkPipelineVertexInputDivisorStateCreateInfoEXT { +func (x *PhysicalDeviceYcbcr2Plane444FormatsFeatures) Ref() *C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT { if x == nil { return nil } - return x.ref86096bfd + return x.reff075d674 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineVertexInputDivisorStateCreateInfo) Free() { - if x != nil && x.allocs86096bfd != nil { - x.allocs86096bfd.(*cgoAllocMap).Free() - x.ref86096bfd = nil +func (x *PhysicalDeviceYcbcr2Plane444FormatsFeatures) Free() { + if x != nil && x.allocsf075d674 != nil { + x.allocsf075d674.(*cgoAllocMap).Free() + x.reff075d674 = nil } } -// NewPipelineVertexInputDivisorStateCreateInfoRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceYcbcr2Plane444FormatsFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineVertexInputDivisorStateCreateInfoRef(ref unsafe.Pointer) *PipelineVertexInputDivisorStateCreateInfo { +func NewPhysicalDeviceYcbcr2Plane444FormatsFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceYcbcr2Plane444FormatsFeatures { if ref == nil { return nil } - obj := new(PipelineVertexInputDivisorStateCreateInfo) - obj.ref86096bfd = (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceYcbcr2Plane444FormatsFeatures) + obj.reff075d674 = (*C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineVertexInputDivisorStateCreateInfo) PassRef() (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT, *cgoAllocMap) { +func (x *PhysicalDeviceYcbcr2Plane444FormatsFeatures) PassRef() (*C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref86096bfd != nil { - return x.ref86096bfd, nil + } else if x.reff075d674 != nil { + return x.reff075d674, nil } - mem86096bfd := allocPipelineVertexInputDivisorStateCreateInfoMemory(1) - ref86096bfd := (*C.VkPipelineVertexInputDivisorStateCreateInfoEXT)(mem86096bfd) - allocs86096bfd := new(cgoAllocMap) - allocs86096bfd.Add(mem86096bfd) + memf075d674 := allocPhysicalDeviceYcbcr2Plane444FormatsFeaturesMemory(1) + reff075d674 := (*C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)(memf075d674) + allocsf075d674 := new(cgoAllocMap) + allocsf075d674.Add(memf075d674) var csType_allocs *cgoAllocMap - ref86096bfd.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs86096bfd.Borrow(csType_allocs) + reff075d674.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf075d674.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref86096bfd.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs86096bfd.Borrow(cpNext_allocs) - - var cvertexBindingDivisorCount_allocs *cgoAllocMap - ref86096bfd.vertexBindingDivisorCount, cvertexBindingDivisorCount_allocs = (C.uint32_t)(x.VertexBindingDivisorCount), cgoAllocsUnknown - allocs86096bfd.Borrow(cvertexBindingDivisorCount_allocs) + reff075d674.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf075d674.Borrow(cpNext_allocs) - var cpVertexBindingDivisors_allocs *cgoAllocMap - ref86096bfd.pVertexBindingDivisors, cpVertexBindingDivisors_allocs = unpackSVertexInputBindingDivisorDescription(x.PVertexBindingDivisors) - allocs86096bfd.Borrow(cpVertexBindingDivisors_allocs) + var cycbcr2plane444Formats_allocs *cgoAllocMap + reff075d674.ycbcr2plane444Formats, cycbcr2plane444Formats_allocs = (C.VkBool32)(x.Ycbcr2plane444Formats), cgoAllocsUnknown + allocsf075d674.Borrow(cycbcr2plane444Formats_allocs) - x.ref86096bfd = ref86096bfd - x.allocs86096bfd = allocs86096bfd - return ref86096bfd, allocs86096bfd + x.reff075d674 = reff075d674 + x.allocsf075d674 = allocsf075d674 + return reff075d674, allocsf075d674 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineVertexInputDivisorStateCreateInfo) PassValue() (C.VkPipelineVertexInputDivisorStateCreateInfoEXT, *cgoAllocMap) { - if x.ref86096bfd != nil { - return *x.ref86096bfd, nil +func (x PhysicalDeviceYcbcr2Plane444FormatsFeatures) PassValue() (C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, *cgoAllocMap) { + if x.reff075d674 != nil { + return *x.reff075d674, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38053,95 +64750,90 @@ func (x PipelineVertexInputDivisorStateCreateInfo) PassValue() (C.VkPipelineVert // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineVertexInputDivisorStateCreateInfo) Deref() { - if x.ref86096bfd == nil { +func (x *PhysicalDeviceYcbcr2Plane444FormatsFeatures) Deref() { + if x.reff075d674 == nil { return } - x.SType = (StructureType)(x.ref86096bfd.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref86096bfd.pNext)) - x.VertexBindingDivisorCount = (uint32)(x.ref86096bfd.vertexBindingDivisorCount) - packSVertexInputBindingDivisorDescription(x.PVertexBindingDivisors, x.ref86096bfd.pVertexBindingDivisors) + x.SType = (StructureType)(x.reff075d674.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff075d674.pNext)) + x.Ycbcr2plane444Formats = (Bool32)(x.reff075d674.ycbcr2plane444Formats) } -// allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory allocates memory for type C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT in C. +// allocPhysicalDeviceFragmentDensityMap2FeaturesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceVertexAttributeDivisorFeaturesValue)) +func allocPhysicalDeviceFragmentDensityMap2FeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMap2FeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceVertexAttributeDivisorFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT{}) +const sizeOfPhysicalDeviceFragmentDensityMap2FeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Ref() *C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { +func (x *PhysicalDeviceFragmentDensityMap2Features) Ref() *C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT { if x == nil { return nil } - return x.refffe7619a + return x.ref30a59f8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Free() { - if x != nil && x.allocsffe7619a != nil { - x.allocsffe7619a.(*cgoAllocMap).Free() - x.refffe7619a = nil +func (x *PhysicalDeviceFragmentDensityMap2Features) Free() { + if x != nil && x.allocs30a59f8 != nil { + x.allocs30a59f8.(*cgoAllocMap).Free() + x.ref30a59f8 = nil } } -// NewPhysicalDeviceVertexAttributeDivisorFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentDensityMap2FeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceVertexAttributeDivisorFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceVertexAttributeDivisorFeatures { +func NewPhysicalDeviceFragmentDensityMap2FeaturesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMap2Features { if ref == nil { return nil } - obj := new(PhysicalDeviceVertexAttributeDivisorFeatures) - obj.refffe7619a = (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentDensityMap2Features) + obj.ref30a59f8 = (*C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceVertexAttributeDivisorFeatures) PassRef() (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentDensityMap2Features) PassRef() (*C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refffe7619a != nil { - return x.refffe7619a, nil + } else if x.ref30a59f8 != nil { + return x.ref30a59f8, nil } - memffe7619a := allocPhysicalDeviceVertexAttributeDivisorFeaturesMemory(1) - refffe7619a := (*C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)(memffe7619a) - allocsffe7619a := new(cgoAllocMap) - allocsffe7619a.Add(memffe7619a) + mem30a59f8 := allocPhysicalDeviceFragmentDensityMap2FeaturesMemory(1) + ref30a59f8 := (*C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT)(mem30a59f8) + allocs30a59f8 := new(cgoAllocMap) + allocs30a59f8.Add(mem30a59f8) var csType_allocs *cgoAllocMap - refffe7619a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsffe7619a.Borrow(csType_allocs) + ref30a59f8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs30a59f8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refffe7619a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsffe7619a.Borrow(cpNext_allocs) - - var cvertexAttributeInstanceRateDivisor_allocs *cgoAllocMap - refffe7619a.vertexAttributeInstanceRateDivisor, cvertexAttributeInstanceRateDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateDivisor), cgoAllocsUnknown - allocsffe7619a.Borrow(cvertexAttributeInstanceRateDivisor_allocs) + ref30a59f8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs30a59f8.Borrow(cpNext_allocs) - var cvertexAttributeInstanceRateZeroDivisor_allocs *cgoAllocMap - refffe7619a.vertexAttributeInstanceRateZeroDivisor, cvertexAttributeInstanceRateZeroDivisor_allocs = (C.VkBool32)(x.VertexAttributeInstanceRateZeroDivisor), cgoAllocsUnknown - allocsffe7619a.Borrow(cvertexAttributeInstanceRateZeroDivisor_allocs) + var cfragmentDensityMapDeferred_allocs *cgoAllocMap + ref30a59f8.fragmentDensityMapDeferred, cfragmentDensityMapDeferred_allocs = (C.VkBool32)(x.FragmentDensityMapDeferred), cgoAllocsUnknown + allocs30a59f8.Borrow(cfragmentDensityMapDeferred_allocs) - x.refffe7619a = refffe7619a - x.allocsffe7619a = allocsffe7619a - return refffe7619a, allocsffe7619a + x.ref30a59f8 = ref30a59f8 + x.allocs30a59f8 = allocs30a59f8 + return ref30a59f8, allocs30a59f8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceVertexAttributeDivisorFeatures) PassValue() (C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, *cgoAllocMap) { - if x.refffe7619a != nil { - return *x.refffe7619a, nil +func (x PhysicalDeviceFragmentDensityMap2Features) PassValue() (C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, *cgoAllocMap) { + if x.ref30a59f8 != nil { + return *x.ref30a59f8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38149,95 +64841,102 @@ func (x PhysicalDeviceVertexAttributeDivisorFeatures) PassValue() (C.VkPhysicalD // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceVertexAttributeDivisorFeatures) Deref() { - if x.refffe7619a == nil { +func (x *PhysicalDeviceFragmentDensityMap2Features) Deref() { + if x.ref30a59f8 == nil { return } - x.SType = (StructureType)(x.refffe7619a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refffe7619a.pNext)) - x.VertexAttributeInstanceRateDivisor = (Bool32)(x.refffe7619a.vertexAttributeInstanceRateDivisor) - x.VertexAttributeInstanceRateZeroDivisor = (Bool32)(x.refffe7619a.vertexAttributeInstanceRateZeroDivisor) + x.SType = (StructureType)(x.ref30a59f8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref30a59f8.pNext)) + x.FragmentDensityMapDeferred = (Bool32)(x.ref30a59f8.fragmentDensityMapDeferred) } -// allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV in C. -// The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceComputeShaderDerivativesFeaturesNVValue)) +// allocPhysicalDeviceFragmentDensityMap2PropertiesMemory allocates memory for type C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT in C. +// The caller is responsible for freeing the this memory via C.free. +func allocPhysicalDeviceFragmentDensityMap2PropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentDensityMap2PropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceComputeShaderDerivativesFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV{}) +const sizeOfPhysicalDeviceFragmentDensityMap2PropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Ref() *C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { +func (x *PhysicalDeviceFragmentDensityMap2Properties) Ref() *C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT { if x == nil { return nil } - return x.reff31d599c + return x.refc2a21d23 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Free() { - if x != nil && x.allocsf31d599c != nil { - x.allocsf31d599c.(*cgoAllocMap).Free() - x.reff31d599c = nil +func (x *PhysicalDeviceFragmentDensityMap2Properties) Free() { + if x != nil && x.allocsc2a21d23 != nil { + x.allocsc2a21d23.(*cgoAllocMap).Free() + x.refc2a21d23 = nil } } -// NewPhysicalDeviceComputeShaderDerivativesFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceFragmentDensityMap2PropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceComputeShaderDerivativesFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceComputeShaderDerivativesFeaturesNV { +func NewPhysicalDeviceFragmentDensityMap2PropertiesRef(ref unsafe.Pointer) *PhysicalDeviceFragmentDensityMap2Properties { if ref == nil { return nil } - obj := new(PhysicalDeviceComputeShaderDerivativesFeaturesNV) - obj.reff31d599c = (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceFragmentDensityMap2Properties) + obj.refc2a21d23 = (*C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassRef() (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, *cgoAllocMap) { +func (x *PhysicalDeviceFragmentDensityMap2Properties) PassRef() (*C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.reff31d599c != nil { - return x.reff31d599c, nil + } else if x.refc2a21d23 != nil { + return x.refc2a21d23, nil } - memf31d599c := allocPhysicalDeviceComputeShaderDerivativesFeaturesNVMemory(1) - reff31d599c := (*C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)(memf31d599c) - allocsf31d599c := new(cgoAllocMap) - allocsf31d599c.Add(memf31d599c) + memc2a21d23 := allocPhysicalDeviceFragmentDensityMap2PropertiesMemory(1) + refc2a21d23 := (*C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT)(memc2a21d23) + allocsc2a21d23 := new(cgoAllocMap) + allocsc2a21d23.Add(memc2a21d23) var csType_allocs *cgoAllocMap - reff31d599c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsf31d599c.Borrow(csType_allocs) + refc2a21d23.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsc2a21d23.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - reff31d599c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsf31d599c.Borrow(cpNext_allocs) + refc2a21d23.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsc2a21d23.Borrow(cpNext_allocs) - var ccomputeDerivativeGroupQuads_allocs *cgoAllocMap - reff31d599c.computeDerivativeGroupQuads, ccomputeDerivativeGroupQuads_allocs = (C.VkBool32)(x.ComputeDerivativeGroupQuads), cgoAllocsUnknown - allocsf31d599c.Borrow(ccomputeDerivativeGroupQuads_allocs) + var csubsampledLoads_allocs *cgoAllocMap + refc2a21d23.subsampledLoads, csubsampledLoads_allocs = (C.VkBool32)(x.SubsampledLoads), cgoAllocsUnknown + allocsc2a21d23.Borrow(csubsampledLoads_allocs) - var ccomputeDerivativeGroupLinear_allocs *cgoAllocMap - reff31d599c.computeDerivativeGroupLinear, ccomputeDerivativeGroupLinear_allocs = (C.VkBool32)(x.ComputeDerivativeGroupLinear), cgoAllocsUnknown - allocsf31d599c.Borrow(ccomputeDerivativeGroupLinear_allocs) + var csubsampledCoarseReconstructionEarlyAccess_allocs *cgoAllocMap + refc2a21d23.subsampledCoarseReconstructionEarlyAccess, csubsampledCoarseReconstructionEarlyAccess_allocs = (C.VkBool32)(x.SubsampledCoarseReconstructionEarlyAccess), cgoAllocsUnknown + allocsc2a21d23.Borrow(csubsampledCoarseReconstructionEarlyAccess_allocs) - x.reff31d599c = reff31d599c - x.allocsf31d599c = allocsf31d599c - return reff31d599c, allocsf31d599c + var cmaxSubsampledArrayLayers_allocs *cgoAllocMap + refc2a21d23.maxSubsampledArrayLayers, cmaxSubsampledArrayLayers_allocs = (C.uint32_t)(x.MaxSubsampledArrayLayers), cgoAllocsUnknown + allocsc2a21d23.Borrow(cmaxSubsampledArrayLayers_allocs) + + var cmaxDescriptorSetSubsampledSamplers_allocs *cgoAllocMap + refc2a21d23.maxDescriptorSetSubsampledSamplers, cmaxDescriptorSetSubsampledSamplers_allocs = (C.uint32_t)(x.MaxDescriptorSetSubsampledSamplers), cgoAllocsUnknown + allocsc2a21d23.Borrow(cmaxDescriptorSetSubsampledSamplers_allocs) + + x.refc2a21d23 = refc2a21d23 + x.allocsc2a21d23 = allocsc2a21d23 + return refc2a21d23, allocsc2a21d23 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassValue() (C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, *cgoAllocMap) { - if x.reff31d599c != nil { - return *x.reff31d599c, nil +func (x PhysicalDeviceFragmentDensityMap2Properties) PassValue() (C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, *cgoAllocMap) { + if x.refc2a21d23 != nil { + return *x.refc2a21d23, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38245,95 +64944,93 @@ func (x PhysicalDeviceComputeShaderDerivativesFeaturesNV) PassValue() (C.VkPhysi // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceComputeShaderDerivativesFeaturesNV) Deref() { - if x.reff31d599c == nil { +func (x *PhysicalDeviceFragmentDensityMap2Properties) Deref() { + if x.refc2a21d23 == nil { return } - x.SType = (StructureType)(x.reff31d599c.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff31d599c.pNext)) - x.ComputeDerivativeGroupQuads = (Bool32)(x.reff31d599c.computeDerivativeGroupQuads) - x.ComputeDerivativeGroupLinear = (Bool32)(x.reff31d599c.computeDerivativeGroupLinear) + x.SType = (StructureType)(x.refc2a21d23.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refc2a21d23.pNext)) + x.SubsampledLoads = (Bool32)(x.refc2a21d23.subsampledLoads) + x.SubsampledCoarseReconstructionEarlyAccess = (Bool32)(x.refc2a21d23.subsampledCoarseReconstructionEarlyAccess) + x.MaxSubsampledArrayLayers = (uint32)(x.refc2a21d23.maxSubsampledArrayLayers) + x.MaxDescriptorSetSubsampledSamplers = (uint32)(x.refc2a21d23.maxDescriptorSetSubsampledSamplers) } -// allocPhysicalDeviceMeshShaderFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderFeaturesNV in C. +// allocCopyCommandTransformInfoQCOMMemory allocates memory for type C.VkCopyCommandTransformInfoQCOM in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMeshShaderFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMeshShaderFeaturesNVValue)) +func allocCopyCommandTransformInfoQCOMMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCopyCommandTransformInfoQCOMValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceMeshShaderFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderFeaturesNV{}) +const sizeOfCopyCommandTransformInfoQCOMValue = unsafe.Sizeof([1]C.VkCopyCommandTransformInfoQCOM{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMeshShaderFeaturesNV) Ref() *C.VkPhysicalDeviceMeshShaderFeaturesNV { +func (x *CopyCommandTransformInfoQCOM) Ref() *C.VkCopyCommandTransformInfoQCOM { if x == nil { return nil } - return x.ref802b98a + return x.refeaa6777c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceMeshShaderFeaturesNV) Free() { - if x != nil && x.allocs802b98a != nil { - x.allocs802b98a.(*cgoAllocMap).Free() - x.ref802b98a = nil +func (x *CopyCommandTransformInfoQCOM) Free() { + if x != nil && x.allocseaa6777c != nil { + x.allocseaa6777c.(*cgoAllocMap).Free() + x.refeaa6777c = nil } } -// NewPhysicalDeviceMeshShaderFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewCopyCommandTransformInfoQCOMRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceMeshShaderFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceMeshShaderFeaturesNV { +func NewCopyCommandTransformInfoQCOMRef(ref unsafe.Pointer) *CopyCommandTransformInfoQCOM { if ref == nil { return nil } - obj := new(PhysicalDeviceMeshShaderFeaturesNV) - obj.ref802b98a = (*C.VkPhysicalDeviceMeshShaderFeaturesNV)(unsafe.Pointer(ref)) + obj := new(CopyCommandTransformInfoQCOM) + obj.refeaa6777c = (*C.VkCopyCommandTransformInfoQCOM)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceMeshShaderFeaturesNV) PassRef() (*C.VkPhysicalDeviceMeshShaderFeaturesNV, *cgoAllocMap) { +func (x *CopyCommandTransformInfoQCOM) PassRef() (*C.VkCopyCommandTransformInfoQCOM, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref802b98a != nil { - return x.ref802b98a, nil + } else if x.refeaa6777c != nil { + return x.refeaa6777c, nil } - mem802b98a := allocPhysicalDeviceMeshShaderFeaturesNVMemory(1) - ref802b98a := (*C.VkPhysicalDeviceMeshShaderFeaturesNV)(mem802b98a) - allocs802b98a := new(cgoAllocMap) - allocs802b98a.Add(mem802b98a) + memeaa6777c := allocCopyCommandTransformInfoQCOMMemory(1) + refeaa6777c := (*C.VkCopyCommandTransformInfoQCOM)(memeaa6777c) + allocseaa6777c := new(cgoAllocMap) + allocseaa6777c.Add(memeaa6777c) var csType_allocs *cgoAllocMap - ref802b98a.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs802b98a.Borrow(csType_allocs) + refeaa6777c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocseaa6777c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref802b98a.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs802b98a.Borrow(cpNext_allocs) - - var ctaskShader_allocs *cgoAllocMap - ref802b98a.taskShader, ctaskShader_allocs = (C.VkBool32)(x.TaskShader), cgoAllocsUnknown - allocs802b98a.Borrow(ctaskShader_allocs) + refeaa6777c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocseaa6777c.Borrow(cpNext_allocs) - var cmeshShader_allocs *cgoAllocMap - ref802b98a.meshShader, cmeshShader_allocs = (C.VkBool32)(x.MeshShader), cgoAllocsUnknown - allocs802b98a.Borrow(cmeshShader_allocs) + var ctransform_allocs *cgoAllocMap + refeaa6777c.transform, ctransform_allocs = (C.VkSurfaceTransformFlagBitsKHR)(x.Transform), cgoAllocsUnknown + allocseaa6777c.Borrow(ctransform_allocs) - x.ref802b98a = ref802b98a - x.allocs802b98a = allocs802b98a - return ref802b98a, allocs802b98a + x.refeaa6777c = refeaa6777c + x.allocseaa6777c = allocseaa6777c + return refeaa6777c, allocseaa6777c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceMeshShaderFeaturesNV) PassValue() (C.VkPhysicalDeviceMeshShaderFeaturesNV, *cgoAllocMap) { - if x.ref802b98a != nil { - return *x.ref802b98a, nil +func (x CopyCommandTransformInfoQCOM) PassValue() (C.VkCopyCommandTransformInfoQCOM, *cgoAllocMap) { + if x.refeaa6777c != nil { + return *x.refeaa6777c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38341,139 +65038,90 @@ func (x PhysicalDeviceMeshShaderFeaturesNV) PassValue() (C.VkPhysicalDeviceMeshS // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMeshShaderFeaturesNV) Deref() { - if x.ref802b98a == nil { +func (x *CopyCommandTransformInfoQCOM) Deref() { + if x.refeaa6777c == nil { return } - x.SType = (StructureType)(x.ref802b98a.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref802b98a.pNext)) - x.TaskShader = (Bool32)(x.ref802b98a.taskShader) - x.MeshShader = (Bool32)(x.ref802b98a.meshShader) + x.SType = (StructureType)(x.refeaa6777c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refeaa6777c.pNext)) + x.Transform = (SurfaceTransformFlagBits)(x.refeaa6777c.transform) } -// allocPhysicalDeviceMeshShaderPropertiesNVMemory allocates memory for type C.VkPhysicalDeviceMeshShaderPropertiesNV in C. +// allocPhysicalDeviceImageCompressionControlFeaturesMemory allocates memory for type C.VkPhysicalDeviceImageCompressionControlFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceMeshShaderPropertiesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceMeshShaderPropertiesNVValue)) +func allocPhysicalDeviceImageCompressionControlFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceImageCompressionControlFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceMeshShaderPropertiesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceMeshShaderPropertiesNV{}) +const sizeOfPhysicalDeviceImageCompressionControlFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceImageCompressionControlFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceMeshShaderPropertiesNV) Ref() *C.VkPhysicalDeviceMeshShaderPropertiesNV { +func (x *PhysicalDeviceImageCompressionControlFeatures) Ref() *C.VkPhysicalDeviceImageCompressionControlFeaturesEXT { if x == nil { return nil } - return x.ref2ee3ccb7 + return x.ref25740c12 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceMeshShaderPropertiesNV) Free() { - if x != nil && x.allocs2ee3ccb7 != nil { - x.allocs2ee3ccb7.(*cgoAllocMap).Free() - x.ref2ee3ccb7 = nil +func (x *PhysicalDeviceImageCompressionControlFeatures) Free() { + if x != nil && x.allocs25740c12 != nil { + x.allocs25740c12.(*cgoAllocMap).Free() + x.ref25740c12 = nil } } -// NewPhysicalDeviceMeshShaderPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceImageCompressionControlFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceMeshShaderPropertiesNVRef(ref unsafe.Pointer) *PhysicalDeviceMeshShaderPropertiesNV { +func NewPhysicalDeviceImageCompressionControlFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceImageCompressionControlFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceMeshShaderPropertiesNV) - obj.ref2ee3ccb7 = (*C.VkPhysicalDeviceMeshShaderPropertiesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceImageCompressionControlFeatures) + obj.ref25740c12 = (*C.VkPhysicalDeviceImageCompressionControlFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceMeshShaderPropertiesNV) PassRef() (*C.VkPhysicalDeviceMeshShaderPropertiesNV, *cgoAllocMap) { +func (x *PhysicalDeviceImageCompressionControlFeatures) PassRef() (*C.VkPhysicalDeviceImageCompressionControlFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref2ee3ccb7 != nil { - return x.ref2ee3ccb7, nil + } else if x.ref25740c12 != nil { + return x.ref25740c12, nil } - mem2ee3ccb7 := allocPhysicalDeviceMeshShaderPropertiesNVMemory(1) - ref2ee3ccb7 := (*C.VkPhysicalDeviceMeshShaderPropertiesNV)(mem2ee3ccb7) - allocs2ee3ccb7 := new(cgoAllocMap) - allocs2ee3ccb7.Add(mem2ee3ccb7) + mem25740c12 := allocPhysicalDeviceImageCompressionControlFeaturesMemory(1) + ref25740c12 := (*C.VkPhysicalDeviceImageCompressionControlFeaturesEXT)(mem25740c12) + allocs25740c12 := new(cgoAllocMap) + allocs25740c12.Add(mem25740c12) var csType_allocs *cgoAllocMap - ref2ee3ccb7.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(csType_allocs) + ref25740c12.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs25740c12.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref2ee3ccb7.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cpNext_allocs) - - var cmaxDrawMeshTasksCount_allocs *cgoAllocMap - ref2ee3ccb7.maxDrawMeshTasksCount, cmaxDrawMeshTasksCount_allocs = (C.uint32_t)(x.MaxDrawMeshTasksCount), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxDrawMeshTasksCount_allocs) - - var cmaxTaskWorkGroupInvocations_allocs *cgoAllocMap - ref2ee3ccb7.maxTaskWorkGroupInvocations, cmaxTaskWorkGroupInvocations_allocs = (C.uint32_t)(x.MaxTaskWorkGroupInvocations), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxTaskWorkGroupInvocations_allocs) - - var cmaxTaskWorkGroupSize_allocs *cgoAllocMap - ref2ee3ccb7.maxTaskWorkGroupSize, cmaxTaskWorkGroupSize_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.MaxTaskWorkGroupSize)), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxTaskWorkGroupSize_allocs) - - var cmaxTaskTotalMemorySize_allocs *cgoAllocMap - ref2ee3ccb7.maxTaskTotalMemorySize, cmaxTaskTotalMemorySize_allocs = (C.uint32_t)(x.MaxTaskTotalMemorySize), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxTaskTotalMemorySize_allocs) - - var cmaxTaskOutputCount_allocs *cgoAllocMap - ref2ee3ccb7.maxTaskOutputCount, cmaxTaskOutputCount_allocs = (C.uint32_t)(x.MaxTaskOutputCount), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxTaskOutputCount_allocs) - - var cmaxMeshWorkGroupInvocations_allocs *cgoAllocMap - ref2ee3ccb7.maxMeshWorkGroupInvocations, cmaxMeshWorkGroupInvocations_allocs = (C.uint32_t)(x.MaxMeshWorkGroupInvocations), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxMeshWorkGroupInvocations_allocs) - - var cmaxMeshWorkGroupSize_allocs *cgoAllocMap - ref2ee3ccb7.maxMeshWorkGroupSize, cmaxMeshWorkGroupSize_allocs = *(*[3]C.uint32_t)(unsafe.Pointer(&x.MaxMeshWorkGroupSize)), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxMeshWorkGroupSize_allocs) - - var cmaxMeshTotalMemorySize_allocs *cgoAllocMap - ref2ee3ccb7.maxMeshTotalMemorySize, cmaxMeshTotalMemorySize_allocs = (C.uint32_t)(x.MaxMeshTotalMemorySize), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxMeshTotalMemorySize_allocs) - - var cmaxMeshOutputVertices_allocs *cgoAllocMap - ref2ee3ccb7.maxMeshOutputVertices, cmaxMeshOutputVertices_allocs = (C.uint32_t)(x.MaxMeshOutputVertices), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxMeshOutputVertices_allocs) - - var cmaxMeshOutputPrimitives_allocs *cgoAllocMap - ref2ee3ccb7.maxMeshOutputPrimitives, cmaxMeshOutputPrimitives_allocs = (C.uint32_t)(x.MaxMeshOutputPrimitives), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxMeshOutputPrimitives_allocs) - - var cmaxMeshMultiviewViewCount_allocs *cgoAllocMap - ref2ee3ccb7.maxMeshMultiviewViewCount, cmaxMeshMultiviewViewCount_allocs = (C.uint32_t)(x.MaxMeshMultiviewViewCount), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmaxMeshMultiviewViewCount_allocs) - - var cmeshOutputPerVertexGranularity_allocs *cgoAllocMap - ref2ee3ccb7.meshOutputPerVertexGranularity, cmeshOutputPerVertexGranularity_allocs = (C.uint32_t)(x.MeshOutputPerVertexGranularity), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmeshOutputPerVertexGranularity_allocs) + ref25740c12.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs25740c12.Borrow(cpNext_allocs) - var cmeshOutputPerPrimitiveGranularity_allocs *cgoAllocMap - ref2ee3ccb7.meshOutputPerPrimitiveGranularity, cmeshOutputPerPrimitiveGranularity_allocs = (C.uint32_t)(x.MeshOutputPerPrimitiveGranularity), cgoAllocsUnknown - allocs2ee3ccb7.Borrow(cmeshOutputPerPrimitiveGranularity_allocs) + var cimageCompressionControl_allocs *cgoAllocMap + ref25740c12.imageCompressionControl, cimageCompressionControl_allocs = (C.VkBool32)(x.ImageCompressionControl), cgoAllocsUnknown + allocs25740c12.Borrow(cimageCompressionControl_allocs) - x.ref2ee3ccb7 = ref2ee3ccb7 - x.allocs2ee3ccb7 = allocs2ee3ccb7 - return ref2ee3ccb7, allocs2ee3ccb7 + x.ref25740c12 = ref25740c12 + x.allocs25740c12 = allocs25740c12 + return ref25740c12, allocs25740c12 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceMeshShaderPropertiesNV) PassValue() (C.VkPhysicalDeviceMeshShaderPropertiesNV, *cgoAllocMap) { - if x.ref2ee3ccb7 != nil { - return *x.ref2ee3ccb7, nil +func (x PhysicalDeviceImageCompressionControlFeatures) PassValue() (C.VkPhysicalDeviceImageCompressionControlFeaturesEXT, *cgoAllocMap) { + if x.ref25740c12 != nil { + return *x.ref25740c12, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38481,98 +65129,98 @@ func (x PhysicalDeviceMeshShaderPropertiesNV) PassValue() (C.VkPhysicalDeviceMes // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceMeshShaderPropertiesNV) Deref() { - if x.ref2ee3ccb7 == nil { +func (x *PhysicalDeviceImageCompressionControlFeatures) Deref() { + if x.ref25740c12 == nil { return } - x.SType = (StructureType)(x.ref2ee3ccb7.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref2ee3ccb7.pNext)) - x.MaxDrawMeshTasksCount = (uint32)(x.ref2ee3ccb7.maxDrawMeshTasksCount) - x.MaxTaskWorkGroupInvocations = (uint32)(x.ref2ee3ccb7.maxTaskWorkGroupInvocations) - x.MaxTaskWorkGroupSize = *(*[3]uint32)(unsafe.Pointer(&x.ref2ee3ccb7.maxTaskWorkGroupSize)) - x.MaxTaskTotalMemorySize = (uint32)(x.ref2ee3ccb7.maxTaskTotalMemorySize) - x.MaxTaskOutputCount = (uint32)(x.ref2ee3ccb7.maxTaskOutputCount) - x.MaxMeshWorkGroupInvocations = (uint32)(x.ref2ee3ccb7.maxMeshWorkGroupInvocations) - x.MaxMeshWorkGroupSize = *(*[3]uint32)(unsafe.Pointer(&x.ref2ee3ccb7.maxMeshWorkGroupSize)) - x.MaxMeshTotalMemorySize = (uint32)(x.ref2ee3ccb7.maxMeshTotalMemorySize) - x.MaxMeshOutputVertices = (uint32)(x.ref2ee3ccb7.maxMeshOutputVertices) - x.MaxMeshOutputPrimitives = (uint32)(x.ref2ee3ccb7.maxMeshOutputPrimitives) - x.MaxMeshMultiviewViewCount = (uint32)(x.ref2ee3ccb7.maxMeshMultiviewViewCount) - x.MeshOutputPerVertexGranularity = (uint32)(x.ref2ee3ccb7.meshOutputPerVertexGranularity) - x.MeshOutputPerPrimitiveGranularity = (uint32)(x.ref2ee3ccb7.meshOutputPerPrimitiveGranularity) + x.SType = (StructureType)(x.ref25740c12.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref25740c12.pNext)) + x.ImageCompressionControl = (Bool32)(x.ref25740c12.imageCompressionControl) } -// allocDrawMeshTasksIndirectCommandNVMemory allocates memory for type C.VkDrawMeshTasksIndirectCommandNV in C. +// allocImageCompressionControlMemory allocates memory for type C.VkImageCompressionControlEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocDrawMeshTasksIndirectCommandNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDrawMeshTasksIndirectCommandNVValue)) +func allocImageCompressionControlMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageCompressionControlValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfDrawMeshTasksIndirectCommandNVValue = unsafe.Sizeof([1]C.VkDrawMeshTasksIndirectCommandNV{}) +const sizeOfImageCompressionControlValue = unsafe.Sizeof([1]C.VkImageCompressionControlEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *DrawMeshTasksIndirectCommandNV) Ref() *C.VkDrawMeshTasksIndirectCommandNV { +func (x *ImageCompressionControl) Ref() *C.VkImageCompressionControlEXT { if x == nil { return nil } - return x.refda6c46ea + return x.ref37cbe96e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *DrawMeshTasksIndirectCommandNV) Free() { - if x != nil && x.allocsda6c46ea != nil { - x.allocsda6c46ea.(*cgoAllocMap).Free() - x.refda6c46ea = nil +func (x *ImageCompressionControl) Free() { + if x != nil && x.allocs37cbe96e != nil { + x.allocs37cbe96e.(*cgoAllocMap).Free() + x.ref37cbe96e = nil } } -// NewDrawMeshTasksIndirectCommandNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageCompressionControlRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewDrawMeshTasksIndirectCommandNVRef(ref unsafe.Pointer) *DrawMeshTasksIndirectCommandNV { +func NewImageCompressionControlRef(ref unsafe.Pointer) *ImageCompressionControl { if ref == nil { return nil } - obj := new(DrawMeshTasksIndirectCommandNV) - obj.refda6c46ea = (*C.VkDrawMeshTasksIndirectCommandNV)(unsafe.Pointer(ref)) + obj := new(ImageCompressionControl) + obj.ref37cbe96e = (*C.VkImageCompressionControlEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *DrawMeshTasksIndirectCommandNV) PassRef() (*C.VkDrawMeshTasksIndirectCommandNV, *cgoAllocMap) { +func (x *ImageCompressionControl) PassRef() (*C.VkImageCompressionControlEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refda6c46ea != nil { - return x.refda6c46ea, nil + } else if x.ref37cbe96e != nil { + return x.ref37cbe96e, nil } - memda6c46ea := allocDrawMeshTasksIndirectCommandNVMemory(1) - refda6c46ea := (*C.VkDrawMeshTasksIndirectCommandNV)(memda6c46ea) - allocsda6c46ea := new(cgoAllocMap) - allocsda6c46ea.Add(memda6c46ea) + mem37cbe96e := allocImageCompressionControlMemory(1) + ref37cbe96e := (*C.VkImageCompressionControlEXT)(mem37cbe96e) + allocs37cbe96e := new(cgoAllocMap) + allocs37cbe96e.Add(mem37cbe96e) - var ctaskCount_allocs *cgoAllocMap - refda6c46ea.taskCount, ctaskCount_allocs = (C.uint32_t)(x.TaskCount), cgoAllocsUnknown - allocsda6c46ea.Borrow(ctaskCount_allocs) + var csType_allocs *cgoAllocMap + ref37cbe96e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs37cbe96e.Borrow(csType_allocs) - var cfirstTask_allocs *cgoAllocMap - refda6c46ea.firstTask, cfirstTask_allocs = (C.uint32_t)(x.FirstTask), cgoAllocsUnknown - allocsda6c46ea.Borrow(cfirstTask_allocs) + var cpNext_allocs *cgoAllocMap + ref37cbe96e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs37cbe96e.Borrow(cpNext_allocs) - x.refda6c46ea = refda6c46ea - x.allocsda6c46ea = allocsda6c46ea - return refda6c46ea, allocsda6c46ea + var cflags_allocs *cgoAllocMap + ref37cbe96e.flags, cflags_allocs = (C.VkImageCompressionFlagsEXT)(x.Flags), cgoAllocsUnknown + allocs37cbe96e.Borrow(cflags_allocs) + + var ccompressionControlPlaneCount_allocs *cgoAllocMap + ref37cbe96e.compressionControlPlaneCount, ccompressionControlPlaneCount_allocs = (C.uint32_t)(x.CompressionControlPlaneCount), cgoAllocsUnknown + allocs37cbe96e.Borrow(ccompressionControlPlaneCount_allocs) + + var cpFixedRateFlags_allocs *cgoAllocMap + ref37cbe96e.pFixedRateFlags, cpFixedRateFlags_allocs = (*C.VkImageCompressionFixedRateFlagsEXT)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&x.PFixedRateFlags)).Data)), cgoAllocsUnknown + allocs37cbe96e.Borrow(cpFixedRateFlags_allocs) + + x.ref37cbe96e = ref37cbe96e + x.allocs37cbe96e = allocs37cbe96e + return ref37cbe96e, allocs37cbe96e } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x DrawMeshTasksIndirectCommandNV) PassValue() (C.VkDrawMeshTasksIndirectCommandNV, *cgoAllocMap) { - if x.refda6c46ea != nil { - return *x.refda6c46ea, nil +func (x ImageCompressionControl) PassValue() (C.VkImageCompressionControlEXT, *cgoAllocMap) { + if x.ref37cbe96e != nil { + return *x.ref37cbe96e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38580,89 +65228,96 @@ func (x DrawMeshTasksIndirectCommandNV) PassValue() (C.VkDrawMeshTasksIndirectCo // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *DrawMeshTasksIndirectCommandNV) Deref() { - if x.refda6c46ea == nil { +func (x *ImageCompressionControl) Deref() { + if x.ref37cbe96e == nil { return } - x.TaskCount = (uint32)(x.refda6c46ea.taskCount) - x.FirstTask = (uint32)(x.refda6c46ea.firstTask) + x.SType = (StructureType)(x.ref37cbe96e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref37cbe96e.pNext)) + x.Flags = (ImageCompressionFlags)(x.ref37cbe96e.flags) + x.CompressionControlPlaneCount = (uint32)(x.ref37cbe96e.compressionControlPlaneCount) + hxfd9261b := (*sliceHeader)(unsafe.Pointer(&x.PFixedRateFlags)) + hxfd9261b.Data = unsafe.Pointer(x.ref37cbe96e.pFixedRateFlags) + hxfd9261b.Cap = 0x7fffffff + // hxfd9261b.Len = ? + } -// allocPhysicalDeviceFragmentShaderBarycentricFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV in C. +// allocSubresourceLayout2Memory allocates memory for type C.VkSubresourceLayout2EXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceFragmentShaderBarycentricFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceFragmentShaderBarycentricFeaturesNVValue)) +func allocSubresourceLayout2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfSubresourceLayout2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceFragmentShaderBarycentricFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV{}) +const sizeOfSubresourceLayout2Value = unsafe.Sizeof([1]C.VkSubresourceLayout2EXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Ref() *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { +func (x *SubresourceLayout2) Ref() *C.VkSubresourceLayout2EXT { if x == nil { return nil } - return x.ref191b97c6 + return x.ref63424f18 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Free() { - if x != nil && x.allocs191b97c6 != nil { - x.allocs191b97c6.(*cgoAllocMap).Free() - x.ref191b97c6 = nil +func (x *SubresourceLayout2) Free() { + if x != nil && x.allocs63424f18 != nil { + x.allocs63424f18.(*cgoAllocMap).Free() + x.ref63424f18 = nil } } -// NewPhysicalDeviceFragmentShaderBarycentricFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewSubresourceLayout2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceFragmentShaderBarycentricFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceFragmentShaderBarycentricFeaturesNV { +func NewSubresourceLayout2Ref(ref unsafe.Pointer) *SubresourceLayout2 { if ref == nil { return nil } - obj := new(PhysicalDeviceFragmentShaderBarycentricFeaturesNV) - obj.ref191b97c6 = (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV)(unsafe.Pointer(ref)) + obj := new(SubresourceLayout2) + obj.ref63424f18 = (*C.VkSubresourceLayout2EXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassRef() (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, *cgoAllocMap) { +func (x *SubresourceLayout2) PassRef() (*C.VkSubresourceLayout2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref191b97c6 != nil { - return x.ref191b97c6, nil + } else if x.ref63424f18 != nil { + return x.ref63424f18, nil } - mem191b97c6 := allocPhysicalDeviceFragmentShaderBarycentricFeaturesNVMemory(1) - ref191b97c6 := (*C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV)(mem191b97c6) - allocs191b97c6 := new(cgoAllocMap) - allocs191b97c6.Add(mem191b97c6) + mem63424f18 := allocSubresourceLayout2Memory(1) + ref63424f18 := (*C.VkSubresourceLayout2EXT)(mem63424f18) + allocs63424f18 := new(cgoAllocMap) + allocs63424f18.Add(mem63424f18) var csType_allocs *cgoAllocMap - ref191b97c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs191b97c6.Borrow(csType_allocs) + ref63424f18.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs63424f18.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref191b97c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs191b97c6.Borrow(cpNext_allocs) + ref63424f18.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs63424f18.Borrow(cpNext_allocs) - var cfragmentShaderBarycentric_allocs *cgoAllocMap - ref191b97c6.fragmentShaderBarycentric, cfragmentShaderBarycentric_allocs = (C.VkBool32)(x.FragmentShaderBarycentric), cgoAllocsUnknown - allocs191b97c6.Borrow(cfragmentShaderBarycentric_allocs) + var csubresourceLayout_allocs *cgoAllocMap + ref63424f18.subresourceLayout, csubresourceLayout_allocs = x.SubresourceLayout.PassValue() + allocs63424f18.Borrow(csubresourceLayout_allocs) - x.ref191b97c6 = ref191b97c6 - x.allocs191b97c6 = allocs191b97c6 - return ref191b97c6, allocs191b97c6 + x.ref63424f18 = ref63424f18 + x.allocs63424f18 = allocs63424f18 + return ref63424f18, allocs63424f18 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassValue() (C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, *cgoAllocMap) { - if x.ref191b97c6 != nil { - return *x.ref191b97c6, nil +func (x SubresourceLayout2) PassValue() (C.VkSubresourceLayout2EXT, *cgoAllocMap) { + if x.ref63424f18 != nil { + return *x.ref63424f18, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38670,90 +65325,90 @@ func (x PhysicalDeviceFragmentShaderBarycentricFeaturesNV) PassValue() (C.VkPhys // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceFragmentShaderBarycentricFeaturesNV) Deref() { - if x.ref191b97c6 == nil { +func (x *SubresourceLayout2) Deref() { + if x.ref63424f18 == nil { return } - x.SType = (StructureType)(x.ref191b97c6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref191b97c6.pNext)) - x.FragmentShaderBarycentric = (Bool32)(x.ref191b97c6.fragmentShaderBarycentric) + x.SType = (StructureType)(x.ref63424f18.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref63424f18.pNext)) + x.SubresourceLayout = *NewSubresourceLayoutRef(unsafe.Pointer(&x.ref63424f18.subresourceLayout)) } -// allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceShaderImageFootprintFeaturesNV in C. +// allocImageSubresource2Memory allocates memory for type C.VkImageSubresource2EXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceShaderImageFootprintFeaturesNVValue)) +func allocImageSubresource2Memory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageSubresource2Value)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceShaderImageFootprintFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceShaderImageFootprintFeaturesNV{}) +const sizeOfImageSubresource2Value = unsafe.Sizeof([1]C.VkImageSubresource2EXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Ref() *C.VkPhysicalDeviceShaderImageFootprintFeaturesNV { +func (x *ImageSubresource2) Ref() *C.VkImageSubresource2EXT { if x == nil { return nil } - return x.ref9d61e1b2 + return x.ref9782acd8 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Free() { - if x != nil && x.allocs9d61e1b2 != nil { - x.allocs9d61e1b2.(*cgoAllocMap).Free() - x.ref9d61e1b2 = nil +func (x *ImageSubresource2) Free() { + if x != nil && x.allocs9782acd8 != nil { + x.allocs9782acd8.(*cgoAllocMap).Free() + x.ref9782acd8 = nil } } -// NewPhysicalDeviceShaderImageFootprintFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageSubresource2Ref creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceShaderImageFootprintFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceShaderImageFootprintFeaturesNV { +func NewImageSubresource2Ref(ref unsafe.Pointer) *ImageSubresource2 { if ref == nil { return nil } - obj := new(PhysicalDeviceShaderImageFootprintFeaturesNV) - obj.ref9d61e1b2 = (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV)(unsafe.Pointer(ref)) + obj := new(ImageSubresource2) + obj.ref9782acd8 = (*C.VkImageSubresource2EXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) PassRef() (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV, *cgoAllocMap) { +func (x *ImageSubresource2) PassRef() (*C.VkImageSubresource2EXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref9d61e1b2 != nil { - return x.ref9d61e1b2, nil + } else if x.ref9782acd8 != nil { + return x.ref9782acd8, nil } - mem9d61e1b2 := allocPhysicalDeviceShaderImageFootprintFeaturesNVMemory(1) - ref9d61e1b2 := (*C.VkPhysicalDeviceShaderImageFootprintFeaturesNV)(mem9d61e1b2) - allocs9d61e1b2 := new(cgoAllocMap) - allocs9d61e1b2.Add(mem9d61e1b2) + mem9782acd8 := allocImageSubresource2Memory(1) + ref9782acd8 := (*C.VkImageSubresource2EXT)(mem9782acd8) + allocs9782acd8 := new(cgoAllocMap) + allocs9782acd8.Add(mem9782acd8) var csType_allocs *cgoAllocMap - ref9d61e1b2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs9d61e1b2.Borrow(csType_allocs) + ref9782acd8.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs9782acd8.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref9d61e1b2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs9d61e1b2.Borrow(cpNext_allocs) + ref9782acd8.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs9782acd8.Borrow(cpNext_allocs) - var cimageFootprint_allocs *cgoAllocMap - ref9d61e1b2.imageFootprint, cimageFootprint_allocs = (C.VkBool32)(x.ImageFootprint), cgoAllocsUnknown - allocs9d61e1b2.Borrow(cimageFootprint_allocs) + var cimageSubresource_allocs *cgoAllocMap + ref9782acd8.imageSubresource, cimageSubresource_allocs = x.ImageSubresource.PassValue() + allocs9782acd8.Borrow(cimageSubresource_allocs) - x.ref9d61e1b2 = ref9d61e1b2 - x.allocs9d61e1b2 = allocs9d61e1b2 - return ref9d61e1b2, allocs9d61e1b2 + x.ref9782acd8 = ref9782acd8 + x.allocs9782acd8 = allocs9782acd8 + return ref9782acd8, allocs9782acd8 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceShaderImageFootprintFeaturesNV) PassValue() (C.VkPhysicalDeviceShaderImageFootprintFeaturesNV, *cgoAllocMap) { - if x.ref9d61e1b2 != nil { - return *x.ref9d61e1b2, nil +func (x ImageSubresource2) PassValue() (C.VkImageSubresource2EXT, *cgoAllocMap) { + if x.ref9782acd8 != nil { + return *x.ref9782acd8, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38761,94 +65416,94 @@ func (x PhysicalDeviceShaderImageFootprintFeaturesNV) PassValue() (C.VkPhysicalD // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceShaderImageFootprintFeaturesNV) Deref() { - if x.ref9d61e1b2 == nil { +func (x *ImageSubresource2) Deref() { + if x.ref9782acd8 == nil { return } - x.SType = (StructureType)(x.ref9d61e1b2.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9d61e1b2.pNext)) - x.ImageFootprint = (Bool32)(x.ref9d61e1b2.imageFootprint) + x.SType = (StructureType)(x.ref9782acd8.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref9782acd8.pNext)) + x.ImageSubresource = *NewImageSubresourceRef(unsafe.Pointer(&x.ref9782acd8.imageSubresource)) } -// allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory allocates memory for type C.VkPipelineViewportExclusiveScissorStateCreateInfoNV in C. +// allocImageCompressionPropertiesMemory allocates memory for type C.VkImageCompressionPropertiesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPipelineViewportExclusiveScissorStateCreateInfoNVValue)) +func allocImageCompressionPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfImageCompressionPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPipelineViewportExclusiveScissorStateCreateInfoNVValue = unsafe.Sizeof([1]C.VkPipelineViewportExclusiveScissorStateCreateInfoNV{}) +const sizeOfImageCompressionPropertiesValue = unsafe.Sizeof([1]C.VkImageCompressionPropertiesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Ref() *C.VkPipelineViewportExclusiveScissorStateCreateInfoNV { +func (x *ImageCompressionProperties) Ref() *C.VkImageCompressionPropertiesEXT { if x == nil { return nil } - return x.refa8715ba6 + return x.ref6a3ccfa2 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Free() { - if x != nil && x.allocsa8715ba6 != nil { - x.allocsa8715ba6.(*cgoAllocMap).Free() - x.refa8715ba6 = nil +func (x *ImageCompressionProperties) Free() { + if x != nil && x.allocs6a3ccfa2 != nil { + x.allocs6a3ccfa2.(*cgoAllocMap).Free() + x.ref6a3ccfa2 = nil } } -// NewPipelineViewportExclusiveScissorStateCreateInfoNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewImageCompressionPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPipelineViewportExclusiveScissorStateCreateInfoNVRef(ref unsafe.Pointer) *PipelineViewportExclusiveScissorStateCreateInfoNV { +func NewImageCompressionPropertiesRef(ref unsafe.Pointer) *ImageCompressionProperties { if ref == nil { return nil } - obj := new(PipelineViewportExclusiveScissorStateCreateInfoNV) - obj.refa8715ba6 = (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV)(unsafe.Pointer(ref)) + obj := new(ImageCompressionProperties) + obj.ref6a3ccfa2 = (*C.VkImageCompressionPropertiesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) PassRef() (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV, *cgoAllocMap) { +func (x *ImageCompressionProperties) PassRef() (*C.VkImageCompressionPropertiesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refa8715ba6 != nil { - return x.refa8715ba6, nil + } else if x.ref6a3ccfa2 != nil { + return x.ref6a3ccfa2, nil } - mema8715ba6 := allocPipelineViewportExclusiveScissorStateCreateInfoNVMemory(1) - refa8715ba6 := (*C.VkPipelineViewportExclusiveScissorStateCreateInfoNV)(mema8715ba6) - allocsa8715ba6 := new(cgoAllocMap) - allocsa8715ba6.Add(mema8715ba6) + mem6a3ccfa2 := allocImageCompressionPropertiesMemory(1) + ref6a3ccfa2 := (*C.VkImageCompressionPropertiesEXT)(mem6a3ccfa2) + allocs6a3ccfa2 := new(cgoAllocMap) + allocs6a3ccfa2.Add(mem6a3ccfa2) var csType_allocs *cgoAllocMap - refa8715ba6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsa8715ba6.Borrow(csType_allocs) + ref6a3ccfa2.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs6a3ccfa2.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refa8715ba6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsa8715ba6.Borrow(cpNext_allocs) + ref6a3ccfa2.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs6a3ccfa2.Borrow(cpNext_allocs) - var cexclusiveScissorCount_allocs *cgoAllocMap - refa8715ba6.exclusiveScissorCount, cexclusiveScissorCount_allocs = (C.uint32_t)(x.ExclusiveScissorCount), cgoAllocsUnknown - allocsa8715ba6.Borrow(cexclusiveScissorCount_allocs) + var cimageCompressionFlags_allocs *cgoAllocMap + ref6a3ccfa2.imageCompressionFlags, cimageCompressionFlags_allocs = (C.VkImageCompressionFlagsEXT)(x.ImageCompressionFlags), cgoAllocsUnknown + allocs6a3ccfa2.Borrow(cimageCompressionFlags_allocs) - var cpExclusiveScissors_allocs *cgoAllocMap - refa8715ba6.pExclusiveScissors, cpExclusiveScissors_allocs = unpackSRect2D(x.PExclusiveScissors) - allocsa8715ba6.Borrow(cpExclusiveScissors_allocs) + var cimageCompressionFixedRateFlags_allocs *cgoAllocMap + ref6a3ccfa2.imageCompressionFixedRateFlags, cimageCompressionFixedRateFlags_allocs = (C.VkImageCompressionFixedRateFlagsEXT)(x.ImageCompressionFixedRateFlags), cgoAllocsUnknown + allocs6a3ccfa2.Borrow(cimageCompressionFixedRateFlags_allocs) - x.refa8715ba6 = refa8715ba6 - x.allocsa8715ba6 = allocsa8715ba6 - return refa8715ba6, allocsa8715ba6 + x.ref6a3ccfa2 = ref6a3ccfa2 + x.allocs6a3ccfa2 = allocs6a3ccfa2 + return ref6a3ccfa2, allocs6a3ccfa2 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PipelineViewportExclusiveScissorStateCreateInfoNV) PassValue() (C.VkPipelineViewportExclusiveScissorStateCreateInfoNV, *cgoAllocMap) { - if x.refa8715ba6 != nil { - return *x.refa8715ba6, nil +func (x ImageCompressionProperties) PassValue() (C.VkImageCompressionPropertiesEXT, *cgoAllocMap) { + if x.ref6a3ccfa2 != nil { + return *x.ref6a3ccfa2, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38856,91 +65511,91 @@ func (x PipelineViewportExclusiveScissorStateCreateInfoNV) PassValue() (C.VkPipe // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PipelineViewportExclusiveScissorStateCreateInfoNV) Deref() { - if x.refa8715ba6 == nil { +func (x *ImageCompressionProperties) Deref() { + if x.ref6a3ccfa2 == nil { return } - x.SType = (StructureType)(x.refa8715ba6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refa8715ba6.pNext)) - x.ExclusiveScissorCount = (uint32)(x.refa8715ba6.exclusiveScissorCount) - packSRect2D(x.PExclusiveScissors, x.refa8715ba6.pExclusiveScissors) + x.SType = (StructureType)(x.ref6a3ccfa2.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref6a3ccfa2.pNext)) + x.ImageCompressionFlags = (ImageCompressionFlags)(x.ref6a3ccfa2.imageCompressionFlags) + x.ImageCompressionFixedRateFlags = (ImageCompressionFixedRateFlags)(x.ref6a3ccfa2.imageCompressionFixedRateFlags) } -// allocPhysicalDeviceExclusiveScissorFeaturesNVMemory allocates memory for type C.VkPhysicalDeviceExclusiveScissorFeaturesNV in C. +// allocPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesMemory allocates memory for type C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDeviceExclusiveScissorFeaturesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceExclusiveScissorFeaturesNVValue)) +func allocPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDeviceExclusiveScissorFeaturesNVValue = unsafe.Sizeof([1]C.VkPhysicalDeviceExclusiveScissorFeaturesNV{}) +const sizeOfPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Ref() *C.VkPhysicalDeviceExclusiveScissorFeaturesNV { +func (x *PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) Ref() *C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT { if x == nil { return nil } - return x.ref52c9fcfc + return x.reff251dd56 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Free() { - if x != nil && x.allocs52c9fcfc != nil { - x.allocs52c9fcfc.(*cgoAllocMap).Free() - x.ref52c9fcfc = nil +func (x *PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) Free() { + if x != nil && x.allocsf251dd56 != nil { + x.allocsf251dd56.(*cgoAllocMap).Free() + x.reff251dd56 = nil } } -// NewPhysicalDeviceExclusiveScissorFeaturesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDeviceExclusiveScissorFeaturesNVRef(ref unsafe.Pointer) *PhysicalDeviceExclusiveScissorFeaturesNV { +func NewPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesRef(ref unsafe.Pointer) *PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures { if ref == nil { return nil } - obj := new(PhysicalDeviceExclusiveScissorFeaturesNV) - obj.ref52c9fcfc = (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) + obj.reff251dd56 = (*C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDeviceExclusiveScissorFeaturesNV) PassRef() (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV, *cgoAllocMap) { +func (x *PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) PassRef() (*C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref52c9fcfc != nil { - return x.ref52c9fcfc, nil + } else if x.reff251dd56 != nil { + return x.reff251dd56, nil } - mem52c9fcfc := allocPhysicalDeviceExclusiveScissorFeaturesNVMemory(1) - ref52c9fcfc := (*C.VkPhysicalDeviceExclusiveScissorFeaturesNV)(mem52c9fcfc) - allocs52c9fcfc := new(cgoAllocMap) - allocs52c9fcfc.Add(mem52c9fcfc) + memf251dd56 := allocPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesMemory(1) + reff251dd56 := (*C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT)(memf251dd56) + allocsf251dd56 := new(cgoAllocMap) + allocsf251dd56.Add(memf251dd56) var csType_allocs *cgoAllocMap - ref52c9fcfc.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs52c9fcfc.Borrow(csType_allocs) + reff251dd56.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocsf251dd56.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref52c9fcfc.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs52c9fcfc.Borrow(cpNext_allocs) + reff251dd56.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocsf251dd56.Borrow(cpNext_allocs) - var cexclusiveScissor_allocs *cgoAllocMap - ref52c9fcfc.exclusiveScissor, cexclusiveScissor_allocs = (C.VkBool32)(x.ExclusiveScissor), cgoAllocsUnknown - allocs52c9fcfc.Borrow(cexclusiveScissor_allocs) + var cattachmentFeedbackLoopLayout_allocs *cgoAllocMap + reff251dd56.attachmentFeedbackLoopLayout, cattachmentFeedbackLoopLayout_allocs = (C.VkBool32)(x.AttachmentFeedbackLoopLayout), cgoAllocsUnknown + allocsf251dd56.Borrow(cattachmentFeedbackLoopLayout_allocs) - x.ref52c9fcfc = ref52c9fcfc - x.allocs52c9fcfc = allocs52c9fcfc - return ref52c9fcfc, allocs52c9fcfc + x.reff251dd56 = reff251dd56 + x.allocsf251dd56 = allocsf251dd56 + return reff251dd56, allocsf251dd56 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDeviceExclusiveScissorFeaturesNV) PassValue() (C.VkPhysicalDeviceExclusiveScissorFeaturesNV, *cgoAllocMap) { - if x.ref52c9fcfc != nil { - return *x.ref52c9fcfc, nil +func (x PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) PassValue() (C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, *cgoAllocMap) { + if x.reff251dd56 != nil { + return *x.reff251dd56, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -38948,90 +65603,94 @@ func (x PhysicalDeviceExclusiveScissorFeaturesNV) PassValue() (C.VkPhysicalDevic // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDeviceExclusiveScissorFeaturesNV) Deref() { - if x.ref52c9fcfc == nil { +func (x *PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures) Deref() { + if x.reff251dd56 == nil { return } - x.SType = (StructureType)(x.ref52c9fcfc.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref52c9fcfc.pNext)) - x.ExclusiveScissor = (Bool32)(x.ref52c9fcfc.exclusiveScissor) + x.SType = (StructureType)(x.reff251dd56.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.reff251dd56.pNext)) + x.AttachmentFeedbackLoopLayout = (Bool32)(x.reff251dd56.attachmentFeedbackLoopLayout) } -// allocQueueFamilyCheckpointPropertiesNVMemory allocates memory for type C.VkQueueFamilyCheckpointPropertiesNV in C. +// allocPhysicalDevice4444FormatsFeaturesMemory allocates memory for type C.VkPhysicalDevice4444FormatsFeaturesEXT in C. // The caller is responsible for freeing the this memory via C.free. -func allocQueueFamilyCheckpointPropertiesNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfQueueFamilyCheckpointPropertiesNVValue)) +func allocPhysicalDevice4444FormatsFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevice4444FormatsFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfQueueFamilyCheckpointPropertiesNVValue = unsafe.Sizeof([1]C.VkQueueFamilyCheckpointPropertiesNV{}) +const sizeOfPhysicalDevice4444FormatsFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevice4444FormatsFeaturesEXT{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *QueueFamilyCheckpointPropertiesNV) Ref() *C.VkQueueFamilyCheckpointPropertiesNV { +func (x *PhysicalDevice4444FormatsFeatures) Ref() *C.VkPhysicalDevice4444FormatsFeaturesEXT { if x == nil { return nil } - return x.ref351f58c6 + return x.ref51c957d0 } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *QueueFamilyCheckpointPropertiesNV) Free() { - if x != nil && x.allocs351f58c6 != nil { - x.allocs351f58c6.(*cgoAllocMap).Free() - x.ref351f58c6 = nil +func (x *PhysicalDevice4444FormatsFeatures) Free() { + if x != nil && x.allocs51c957d0 != nil { + x.allocs51c957d0.(*cgoAllocMap).Free() + x.ref51c957d0 = nil } } -// NewQueueFamilyCheckpointPropertiesNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevice4444FormatsFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewQueueFamilyCheckpointPropertiesNVRef(ref unsafe.Pointer) *QueueFamilyCheckpointPropertiesNV { +func NewPhysicalDevice4444FormatsFeaturesRef(ref unsafe.Pointer) *PhysicalDevice4444FormatsFeatures { if ref == nil { return nil } - obj := new(QueueFamilyCheckpointPropertiesNV) - obj.ref351f58c6 = (*C.VkQueueFamilyCheckpointPropertiesNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDevice4444FormatsFeatures) + obj.ref51c957d0 = (*C.VkPhysicalDevice4444FormatsFeaturesEXT)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *QueueFamilyCheckpointPropertiesNV) PassRef() (*C.VkQueueFamilyCheckpointPropertiesNV, *cgoAllocMap) { +func (x *PhysicalDevice4444FormatsFeatures) PassRef() (*C.VkPhysicalDevice4444FormatsFeaturesEXT, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.ref351f58c6 != nil { - return x.ref351f58c6, nil + } else if x.ref51c957d0 != nil { + return x.ref51c957d0, nil } - mem351f58c6 := allocQueueFamilyCheckpointPropertiesNVMemory(1) - ref351f58c6 := (*C.VkQueueFamilyCheckpointPropertiesNV)(mem351f58c6) - allocs351f58c6 := new(cgoAllocMap) - allocs351f58c6.Add(mem351f58c6) + mem51c957d0 := allocPhysicalDevice4444FormatsFeaturesMemory(1) + ref51c957d0 := (*C.VkPhysicalDevice4444FormatsFeaturesEXT)(mem51c957d0) + allocs51c957d0 := new(cgoAllocMap) + allocs51c957d0.Add(mem51c957d0) var csType_allocs *cgoAllocMap - ref351f58c6.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocs351f58c6.Borrow(csType_allocs) + ref51c957d0.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs51c957d0.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - ref351f58c6.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocs351f58c6.Borrow(cpNext_allocs) + ref51c957d0.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs51c957d0.Borrow(cpNext_allocs) - var ccheckpointExecutionStageMask_allocs *cgoAllocMap - ref351f58c6.checkpointExecutionStageMask, ccheckpointExecutionStageMask_allocs = (C.VkPipelineStageFlags)(x.CheckpointExecutionStageMask), cgoAllocsUnknown - allocs351f58c6.Borrow(ccheckpointExecutionStageMask_allocs) + var cformatA4R4G4B4_allocs *cgoAllocMap + ref51c957d0.formatA4R4G4B4, cformatA4R4G4B4_allocs = (C.VkBool32)(x.FormatA4R4G4B4), cgoAllocsUnknown + allocs51c957d0.Borrow(cformatA4R4G4B4_allocs) - x.ref351f58c6 = ref351f58c6 - x.allocs351f58c6 = allocs351f58c6 - return ref351f58c6, allocs351f58c6 + var cformatA4B4G4R4_allocs *cgoAllocMap + ref51c957d0.formatA4B4G4R4, cformatA4B4G4R4_allocs = (C.VkBool32)(x.FormatA4B4G4R4), cgoAllocsUnknown + allocs51c957d0.Borrow(cformatA4B4G4R4_allocs) + + x.ref51c957d0 = ref51c957d0 + x.allocs51c957d0 = allocs51c957d0 + return ref51c957d0, allocs51c957d0 } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x QueueFamilyCheckpointPropertiesNV) PassValue() (C.VkQueueFamilyCheckpointPropertiesNV, *cgoAllocMap) { - if x.ref351f58c6 != nil { - return *x.ref351f58c6, nil +func (x PhysicalDevice4444FormatsFeatures) PassValue() (C.VkPhysicalDevice4444FormatsFeaturesEXT, *cgoAllocMap) { + if x.ref51c957d0 != nil { + return *x.ref51c957d0, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39039,94 +65698,147 @@ func (x QueueFamilyCheckpointPropertiesNV) PassValue() (C.VkQueueFamilyCheckpoin // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *QueueFamilyCheckpointPropertiesNV) Deref() { - if x.ref351f58c6 == nil { +func (x *PhysicalDevice4444FormatsFeatures) Deref() { + if x.ref51c957d0 == nil { return } - x.SType = (StructureType)(x.ref351f58c6.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref351f58c6.pNext)) - x.CheckpointExecutionStageMask = (PipelineStageFlags)(x.ref351f58c6.checkpointExecutionStageMask) + x.SType = (StructureType)(x.ref51c957d0.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref51c957d0.pNext)) + x.FormatA4R4G4B4 = (Bool32)(x.ref51c957d0.formatA4R4G4B4) + x.FormatA4B4G4R4 = (Bool32)(x.ref51c957d0.formatA4B4G4R4) } -// allocCheckpointDataNVMemory allocates memory for type C.VkCheckpointDataNV in C. +// allocPhysicalDevicePortabilitySubsetFeaturesMemory allocates memory for type C.VkPhysicalDevicePortabilitySubsetFeaturesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocCheckpointDataNVMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfCheckpointDataNVValue)) +func allocPhysicalDevicePortabilitySubsetFeaturesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePortabilitySubsetFeaturesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfCheckpointDataNVValue = unsafe.Sizeof([1]C.VkCheckpointDataNV{}) +const sizeOfPhysicalDevicePortabilitySubsetFeaturesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePortabilitySubsetFeaturesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *CheckpointDataNV) Ref() *C.VkCheckpointDataNV { +func (x *PhysicalDevicePortabilitySubsetFeatures) Ref() *C.VkPhysicalDevicePortabilitySubsetFeaturesKHR { if x == nil { return nil } - return x.refd1c9224b + return x.ref1a31db1e } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *CheckpointDataNV) Free() { - if x != nil && x.allocsd1c9224b != nil { - x.allocsd1c9224b.(*cgoAllocMap).Free() - x.refd1c9224b = nil +func (x *PhysicalDevicePortabilitySubsetFeatures) Free() { + if x != nil && x.allocs1a31db1e != nil { + x.allocs1a31db1e.(*cgoAllocMap).Free() + x.ref1a31db1e = nil } } -// NewCheckpointDataNVRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePortabilitySubsetFeaturesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewCheckpointDataNVRef(ref unsafe.Pointer) *CheckpointDataNV { +func NewPhysicalDevicePortabilitySubsetFeaturesRef(ref unsafe.Pointer) *PhysicalDevicePortabilitySubsetFeatures { if ref == nil { return nil } - obj := new(CheckpointDataNV) - obj.refd1c9224b = (*C.VkCheckpointDataNV)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePortabilitySubsetFeatures) + obj.ref1a31db1e = (*C.VkPhysicalDevicePortabilitySubsetFeaturesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *CheckpointDataNV) PassRef() (*C.VkCheckpointDataNV, *cgoAllocMap) { +func (x *PhysicalDevicePortabilitySubsetFeatures) PassRef() (*C.VkPhysicalDevicePortabilitySubsetFeaturesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refd1c9224b != nil { - return x.refd1c9224b, nil + } else if x.ref1a31db1e != nil { + return x.ref1a31db1e, nil } - memd1c9224b := allocCheckpointDataNVMemory(1) - refd1c9224b := (*C.VkCheckpointDataNV)(memd1c9224b) - allocsd1c9224b := new(cgoAllocMap) - allocsd1c9224b.Add(memd1c9224b) + mem1a31db1e := allocPhysicalDevicePortabilitySubsetFeaturesMemory(1) + ref1a31db1e := (*C.VkPhysicalDevicePortabilitySubsetFeaturesKHR)(mem1a31db1e) + allocs1a31db1e := new(cgoAllocMap) + allocs1a31db1e.Add(mem1a31db1e) var csType_allocs *cgoAllocMap - refd1c9224b.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsd1c9224b.Borrow(csType_allocs) + ref1a31db1e.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs1a31db1e.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refd1c9224b.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsd1c9224b.Borrow(cpNext_allocs) + ref1a31db1e.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs1a31db1e.Borrow(cpNext_allocs) - var cstage_allocs *cgoAllocMap - refd1c9224b.stage, cstage_allocs = (C.VkPipelineStageFlagBits)(x.Stage), cgoAllocsUnknown - allocsd1c9224b.Borrow(cstage_allocs) + var cconstantAlphaColorBlendFactors_allocs *cgoAllocMap + ref1a31db1e.constantAlphaColorBlendFactors, cconstantAlphaColorBlendFactors_allocs = (C.VkBool32)(x.ConstantAlphaColorBlendFactors), cgoAllocsUnknown + allocs1a31db1e.Borrow(cconstantAlphaColorBlendFactors_allocs) - var cpCheckpointMarker_allocs *cgoAllocMap - refd1c9224b.pCheckpointMarker, cpCheckpointMarker_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PCheckpointMarker)), cgoAllocsUnknown - allocsd1c9224b.Borrow(cpCheckpointMarker_allocs) + var cevents_allocs *cgoAllocMap + ref1a31db1e.events, cevents_allocs = (C.VkBool32)(x.Events), cgoAllocsUnknown + allocs1a31db1e.Borrow(cevents_allocs) - x.refd1c9224b = refd1c9224b - x.allocsd1c9224b = allocsd1c9224b - return refd1c9224b, allocsd1c9224b + var cimageViewFormatReinterpretation_allocs *cgoAllocMap + ref1a31db1e.imageViewFormatReinterpretation, cimageViewFormatReinterpretation_allocs = (C.VkBool32)(x.ImageViewFormatReinterpretation), cgoAllocsUnknown + allocs1a31db1e.Borrow(cimageViewFormatReinterpretation_allocs) + + var cimageViewFormatSwizzle_allocs *cgoAllocMap + ref1a31db1e.imageViewFormatSwizzle, cimageViewFormatSwizzle_allocs = (C.VkBool32)(x.ImageViewFormatSwizzle), cgoAllocsUnknown + allocs1a31db1e.Borrow(cimageViewFormatSwizzle_allocs) + + var cimageView2DOn3DImage_allocs *cgoAllocMap + ref1a31db1e.imageView2DOn3DImage, cimageView2DOn3DImage_allocs = (C.VkBool32)(x.ImageView2DOn3DImage), cgoAllocsUnknown + allocs1a31db1e.Borrow(cimageView2DOn3DImage_allocs) + + var cmultisampleArrayImage_allocs *cgoAllocMap + ref1a31db1e.multisampleArrayImage, cmultisampleArrayImage_allocs = (C.VkBool32)(x.MultisampleArrayImage), cgoAllocsUnknown + allocs1a31db1e.Borrow(cmultisampleArrayImage_allocs) + + var cmutableComparisonSamplers_allocs *cgoAllocMap + ref1a31db1e.mutableComparisonSamplers, cmutableComparisonSamplers_allocs = (C.VkBool32)(x.MutableComparisonSamplers), cgoAllocsUnknown + allocs1a31db1e.Borrow(cmutableComparisonSamplers_allocs) + + var cpointPolygons_allocs *cgoAllocMap + ref1a31db1e.pointPolygons, cpointPolygons_allocs = (C.VkBool32)(x.PointPolygons), cgoAllocsUnknown + allocs1a31db1e.Borrow(cpointPolygons_allocs) + + var csamplerMipLodBias_allocs *cgoAllocMap + ref1a31db1e.samplerMipLodBias, csamplerMipLodBias_allocs = (C.VkBool32)(x.SamplerMipLodBias), cgoAllocsUnknown + allocs1a31db1e.Borrow(csamplerMipLodBias_allocs) + + var cseparateStencilMaskRef_allocs *cgoAllocMap + ref1a31db1e.separateStencilMaskRef, cseparateStencilMaskRef_allocs = (C.VkBool32)(x.SeparateStencilMaskRef), cgoAllocsUnknown + allocs1a31db1e.Borrow(cseparateStencilMaskRef_allocs) + + var cshaderSampleRateInterpolationFunctions_allocs *cgoAllocMap + ref1a31db1e.shaderSampleRateInterpolationFunctions, cshaderSampleRateInterpolationFunctions_allocs = (C.VkBool32)(x.ShaderSampleRateInterpolationFunctions), cgoAllocsUnknown + allocs1a31db1e.Borrow(cshaderSampleRateInterpolationFunctions_allocs) + + var ctessellationIsolines_allocs *cgoAllocMap + ref1a31db1e.tessellationIsolines, ctessellationIsolines_allocs = (C.VkBool32)(x.TessellationIsolines), cgoAllocsUnknown + allocs1a31db1e.Borrow(ctessellationIsolines_allocs) + + var ctessellationPointMode_allocs *cgoAllocMap + ref1a31db1e.tessellationPointMode, ctessellationPointMode_allocs = (C.VkBool32)(x.TessellationPointMode), cgoAllocsUnknown + allocs1a31db1e.Borrow(ctessellationPointMode_allocs) + + var ctriangleFans_allocs *cgoAllocMap + ref1a31db1e.triangleFans, ctriangleFans_allocs = (C.VkBool32)(x.TriangleFans), cgoAllocsUnknown + allocs1a31db1e.Borrow(ctriangleFans_allocs) + + var cvertexAttributeAccessBeyondStride_allocs *cgoAllocMap + ref1a31db1e.vertexAttributeAccessBeyondStride, cvertexAttributeAccessBeyondStride_allocs = (C.VkBool32)(x.VertexAttributeAccessBeyondStride), cgoAllocsUnknown + allocs1a31db1e.Borrow(cvertexAttributeAccessBeyondStride_allocs) + + x.ref1a31db1e = ref1a31db1e + x.allocs1a31db1e = allocs1a31db1e + return ref1a31db1e, allocs1a31db1e } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x CheckpointDataNV) PassValue() (C.VkCheckpointDataNV, *cgoAllocMap) { - if x.refd1c9224b != nil { - return *x.refd1c9224b, nil +func (x PhysicalDevicePortabilitySubsetFeatures) PassValue() (C.VkPhysicalDevicePortabilitySubsetFeaturesKHR, *cgoAllocMap) { + if x.ref1a31db1e != nil { + return *x.ref1a31db1e, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39134,103 +65846,104 @@ func (x CheckpointDataNV) PassValue() (C.VkCheckpointDataNV, *cgoAllocMap) { // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *CheckpointDataNV) Deref() { - if x.refd1c9224b == nil { +func (x *PhysicalDevicePortabilitySubsetFeatures) Deref() { + if x.ref1a31db1e == nil { return } - x.SType = (StructureType)(x.refd1c9224b.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refd1c9224b.pNext)) - x.Stage = (PipelineStageFlagBits)(x.refd1c9224b.stage) - x.PCheckpointMarker = (unsafe.Pointer)(unsafe.Pointer(x.refd1c9224b.pCheckpointMarker)) -} - -// allocPhysicalDevicePCIBusInfoPropertiesMemory allocates memory for type C.VkPhysicalDevicePCIBusInfoPropertiesEXT in C. + x.SType = (StructureType)(x.ref1a31db1e.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref1a31db1e.pNext)) + x.ConstantAlphaColorBlendFactors = (Bool32)(x.ref1a31db1e.constantAlphaColorBlendFactors) + x.Events = (Bool32)(x.ref1a31db1e.events) + x.ImageViewFormatReinterpretation = (Bool32)(x.ref1a31db1e.imageViewFormatReinterpretation) + x.ImageViewFormatSwizzle = (Bool32)(x.ref1a31db1e.imageViewFormatSwizzle) + x.ImageView2DOn3DImage = (Bool32)(x.ref1a31db1e.imageView2DOn3DImage) + x.MultisampleArrayImage = (Bool32)(x.ref1a31db1e.multisampleArrayImage) + x.MutableComparisonSamplers = (Bool32)(x.ref1a31db1e.mutableComparisonSamplers) + x.PointPolygons = (Bool32)(x.ref1a31db1e.pointPolygons) + x.SamplerMipLodBias = (Bool32)(x.ref1a31db1e.samplerMipLodBias) + x.SeparateStencilMaskRef = (Bool32)(x.ref1a31db1e.separateStencilMaskRef) + x.ShaderSampleRateInterpolationFunctions = (Bool32)(x.ref1a31db1e.shaderSampleRateInterpolationFunctions) + x.TessellationIsolines = (Bool32)(x.ref1a31db1e.tessellationIsolines) + x.TessellationPointMode = (Bool32)(x.ref1a31db1e.tessellationPointMode) + x.TriangleFans = (Bool32)(x.ref1a31db1e.triangleFans) + x.VertexAttributeAccessBeyondStride = (Bool32)(x.ref1a31db1e.vertexAttributeAccessBeyondStride) +} + +// allocPhysicalDevicePortabilitySubsetPropertiesMemory allocates memory for type C.VkPhysicalDevicePortabilitySubsetPropertiesKHR in C. // The caller is responsible for freeing the this memory via C.free. -func allocPhysicalDevicePCIBusInfoPropertiesMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePCIBusInfoPropertiesValue)) +func allocPhysicalDevicePortabilitySubsetPropertiesMemory(n int) unsafe.Pointer { + mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfPhysicalDevicePortabilitySubsetPropertiesValue)) if err != nil { panic("memory alloc error: " + err.Error()) } return mem } -const sizeOfPhysicalDevicePCIBusInfoPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePCIBusInfoPropertiesEXT{}) +const sizeOfPhysicalDevicePortabilitySubsetPropertiesValue = unsafe.Sizeof([1]C.VkPhysicalDevicePortabilitySubsetPropertiesKHR{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *PhysicalDevicePCIBusInfoProperties) Ref() *C.VkPhysicalDevicePCIBusInfoPropertiesEXT { +func (x *PhysicalDevicePortabilitySubsetProperties) Ref() *C.VkPhysicalDevicePortabilitySubsetPropertiesKHR { if x == nil { return nil } - return x.refdd9947ff + return x.ref8babbd5c } // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. // Does nothing if struct is nil or has no allocation map. -func (x *PhysicalDevicePCIBusInfoProperties) Free() { - if x != nil && x.allocsdd9947ff != nil { - x.allocsdd9947ff.(*cgoAllocMap).Free() - x.refdd9947ff = nil +func (x *PhysicalDevicePortabilitySubsetProperties) Free() { + if x != nil && x.allocs8babbd5c != nil { + x.allocs8babbd5c.(*cgoAllocMap).Free() + x.ref8babbd5c = nil } } -// NewPhysicalDevicePCIBusInfoPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. +// NewPhysicalDevicePortabilitySubsetPropertiesRef creates a new wrapper struct with underlying reference set to the original C object. // Returns nil if the provided pointer to C object is nil too. -func NewPhysicalDevicePCIBusInfoPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePCIBusInfoProperties { +func NewPhysicalDevicePortabilitySubsetPropertiesRef(ref unsafe.Pointer) *PhysicalDevicePortabilitySubsetProperties { if ref == nil { return nil } - obj := new(PhysicalDevicePCIBusInfoProperties) - obj.refdd9947ff = (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT)(unsafe.Pointer(ref)) + obj := new(PhysicalDevicePortabilitySubsetProperties) + obj.ref8babbd5c = (*C.VkPhysicalDevicePortabilitySubsetPropertiesKHR)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *PhysicalDevicePCIBusInfoProperties) PassRef() (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT, *cgoAllocMap) { +func (x *PhysicalDevicePortabilitySubsetProperties) PassRef() (*C.VkPhysicalDevicePortabilitySubsetPropertiesKHR, *cgoAllocMap) { if x == nil { return nil, nil - } else if x.refdd9947ff != nil { - return x.refdd9947ff, nil + } else if x.ref8babbd5c != nil { + return x.ref8babbd5c, nil } - memdd9947ff := allocPhysicalDevicePCIBusInfoPropertiesMemory(1) - refdd9947ff := (*C.VkPhysicalDevicePCIBusInfoPropertiesEXT)(memdd9947ff) - allocsdd9947ff := new(cgoAllocMap) - allocsdd9947ff.Add(memdd9947ff) + mem8babbd5c := allocPhysicalDevicePortabilitySubsetPropertiesMemory(1) + ref8babbd5c := (*C.VkPhysicalDevicePortabilitySubsetPropertiesKHR)(mem8babbd5c) + allocs8babbd5c := new(cgoAllocMap) + allocs8babbd5c.Add(mem8babbd5c) var csType_allocs *cgoAllocMap - refdd9947ff.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown - allocsdd9947ff.Borrow(csType_allocs) + ref8babbd5c.sType, csType_allocs = (C.VkStructureType)(x.SType), cgoAllocsUnknown + allocs8babbd5c.Borrow(csType_allocs) var cpNext_allocs *cgoAllocMap - refdd9947ff.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpNext_allocs) - - var cpciDomain_allocs *cgoAllocMap - refdd9947ff.pciDomain, cpciDomain_allocs = (C.uint16_t)(x.PciDomain), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpciDomain_allocs) - - var cpciBus_allocs *cgoAllocMap - refdd9947ff.pciBus, cpciBus_allocs = (C.uint8_t)(x.PciBus), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpciBus_allocs) + ref8babbd5c.pNext, cpNext_allocs = *(*unsafe.Pointer)(unsafe.Pointer(&x.PNext)), cgoAllocsUnknown + allocs8babbd5c.Borrow(cpNext_allocs) - var cpciDevice_allocs *cgoAllocMap - refdd9947ff.pciDevice, cpciDevice_allocs = (C.uint8_t)(x.PciDevice), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpciDevice_allocs) - - var cpciFunction_allocs *cgoAllocMap - refdd9947ff.pciFunction, cpciFunction_allocs = (C.uint8_t)(x.PciFunction), cgoAllocsUnknown - allocsdd9947ff.Borrow(cpciFunction_allocs) + var cminVertexInputBindingStrideAlignment_allocs *cgoAllocMap + ref8babbd5c.minVertexInputBindingStrideAlignment, cminVertexInputBindingStrideAlignment_allocs = (C.uint32_t)(x.MinVertexInputBindingStrideAlignment), cgoAllocsUnknown + allocs8babbd5c.Borrow(cminVertexInputBindingStrideAlignment_allocs) - x.refdd9947ff = refdd9947ff - x.allocsdd9947ff = allocsdd9947ff - return refdd9947ff, allocsdd9947ff + x.ref8babbd5c = ref8babbd5c + x.allocs8babbd5c = allocs8babbd5c + return ref8babbd5c, allocs8babbd5c } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x PhysicalDevicePCIBusInfoProperties) PassValue() (C.VkPhysicalDevicePCIBusInfoPropertiesEXT, *cgoAllocMap) { - if x.refdd9947ff != nil { - return *x.refdd9947ff, nil +func (x PhysicalDevicePortabilitySubsetProperties) PassValue() (C.VkPhysicalDevicePortabilitySubsetPropertiesKHR, *cgoAllocMap) { + if x.ref8babbd5c != nil { + return *x.ref8babbd5c, nil } ref, allocs := x.PassRef() return *ref, allocs @@ -39238,16 +65951,13 @@ func (x PhysicalDevicePCIBusInfoProperties) PassValue() (C.VkPhysicalDevicePCIBu // Deref uses the underlying reference to C object and fills the wrapping struct with values. // Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *PhysicalDevicePCIBusInfoProperties) Deref() { - if x.refdd9947ff == nil { +func (x *PhysicalDevicePortabilitySubsetProperties) Deref() { + if x.ref8babbd5c == nil { return } - x.SType = (StructureType)(x.refdd9947ff.sType) - x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.refdd9947ff.pNext)) - x.PciDomain = (uint16)(x.refdd9947ff.pciDomain) - x.PciBus = (byte)(x.refdd9947ff.pciBus) - x.PciDevice = (byte)(x.refdd9947ff.pciDevice) - x.PciFunction = (byte)(x.refdd9947ff.pciFunction) + x.SType = (StructureType)(x.ref8babbd5c.sType) + x.PNext = (unsafe.Pointer)(unsafe.Pointer(x.ref8babbd5c.pNext)) + x.MinVertexInputBindingStrideAlignment = (uint32)(x.ref8babbd5c.minVertexInputBindingStrideAlignment) } // unpackArgSQueueFamilyProperties transforms a sliced Go data structure into plain C format. @@ -39317,15 +66027,6 @@ func unpackArgSExtensionProperties(x []ExtensionProperties) (unpacked *C.VkExten return } -// packSExtensionProperties reads sliced Go data structure out from plain C format. -func packSExtensionProperties(v []ExtensionProperties, ptr0 *C.VkExtensionProperties) { - const m = 0x7fffffff - for i0 := range v { - ptr1 := (*(*[m / sizeOfExtensionPropertiesValue]C.VkExtensionProperties)(unsafe.Pointer(ptr0)))[i0] - v[i0] = *NewExtensionPropertiesRef(unsafe.Pointer(&ptr1)) - } -} - // unpackArgSLayerProperties transforms a sliced Go data structure into plain C format. func unpackArgSLayerProperties(x []LayerProperties) (unpacked *C.VkLayerProperties, allocs *cgoAllocMap) { if x == nil { diff --git a/cgo_helpers.h b/cgo_helpers.h index 78c2901..4843e46 100644 --- a/cgo_helpers.h +++ b/cgo_helpers.h @@ -1,9 +1,10 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Mon, 15 Oct 2018 01:04:16 +07. +// WARNING: This file has automatically been generated on Fri, 10 Feb 2023 11:56:02 PST. // Code generated by https://git.io/c-for-go. DO NOT EDIT. #include "vulkan/vulkan.h" +#include "vulkan/vulkan_beta.h" #include "vk_wrapper.h" #include "vk_bridge.h" #include @@ -12,5 +13,8 @@ #define __CGOGEN 1 // PFN_vkDebugReportCallbackEXT_c918aac4 is a proxy for callback PFN_vkDebugReportCallbackEXT. -unsigned int PFN_vkDebugReportCallbackEXT_c918aac4(unsigned int flags, VkDebugReportObjectTypeEXT objectType, unsigned long long object, unsigned long int location, int messageCode, char* pLayerPrefix, char* pMessage, void* pUserData); +unsigned int PFN_vkDebugReportCallbackEXT_c918aac4(unsigned int flags, VkDebugReportObjectTypeEXT objectType, unsigned long long object, unsigned long long location, int messageCode, char* pLayerPrefix, char* pMessage, void* pUserData); + +// PFN_vkDeviceMemoryReportCallbackEXT_e34d104c is a proxy for callback PFN_vkDeviceMemoryReportCallbackEXT. +void PFN_vkDeviceMemoryReportCallbackEXT_e34d104c(VkDeviceMemoryReportCallbackDataEXT* pCallbackData, void* pUserData); diff --git a/const.go b/const.go index e48162e..db2c5a9 100644 --- a/const.go +++ b/const.go @@ -1,6 +1,6 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Mon, 15 Oct 2018 01:04:16 +07. +// WARNING: This file has automatically been generated on Fri, 10 Feb 2023 11:56:02 PST. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -8,6 +8,7 @@ package vulkan /* #cgo CFLAGS: -I. -DVK_NO_PROTOTYPES #include "vulkan/vulkan.h" +#include "vulkan/vulkan_beta.h" #include "vk_wrapper.h" #include "vk_bridge.h" #include @@ -16,814 +17,1416 @@ package vulkan import "C" const ( - // NoPrototypes as defined in vulkan/:24 + // EnableBetaExtensions as defined in vulkan/:24 + EnableBetaExtensions = 1 + // NoPrototypes as defined in vulkan/:25 NoPrototypes = 1 - // Version10 as defined in vulkan/vulkan_core.h:30 + // Version10 as defined in vulkan/vulkan_core.h:22 Version10 = 1 - // ApiVersion10 as defined in vulkan/vulkan_core.h:40 - ApiVersion10 = 4194304 - // HeaderVersion as defined in vulkan/vulkan_core.h:46 - HeaderVersion = 88 - // LodClampNone as defined in vulkan/vulkan_core.h:97 - LodClampNone = 1000.0 - // RemainingMipLevels as defined in vulkan/vulkan_core.h:98 - RemainingMipLevels = (^uint32(0)) - // RemainingArrayLayers as defined in vulkan/vulkan_core.h:99 - RemainingArrayLayers = (^uint32(0)) - // WholeSize as defined in vulkan/vulkan_core.h:100 - WholeSize = (^uint64(0)) - // AttachmentUnused as defined in vulkan/vulkan_core.h:101 + // Use64BitPtrDefines as defined in vulkan/vulkan_core.h:30 + Use64BitPtrDefines = 1 + // HeaderVersion as defined in vulkan/vulkan_core.h:75 + HeaderVersion = 239 + // AttachmentUnused as defined in vulkan/vulkan_core.h:123 AttachmentUnused = (^uint32(0)) - // True as defined in vulkan/vulkan_core.h:102 - True = 1 - // False as defined in vulkan/vulkan_core.h:103 + // False as defined in vulkan/vulkan_core.h:124 False = 0 - // QueueFamilyIgnored as defined in vulkan/vulkan_core.h:104 + // LodClampNone as defined in vulkan/vulkan_core.h:125 + LodClampNone = 1000.0 + // QueueFamilyIgnored as defined in vulkan/vulkan_core.h:126 QueueFamilyIgnored = (^uint32(0)) - // SubpassExternal as defined in vulkan/vulkan_core.h:105 + // RemainingArrayLayers as defined in vulkan/vulkan_core.h:127 + RemainingArrayLayers = (^uint32(0)) + // RemainingMipLevels as defined in vulkan/vulkan_core.h:128 + RemainingMipLevels = (^uint32(0)) + // SubpassExternal as defined in vulkan/vulkan_core.h:129 SubpassExternal = (^uint32(0)) - // MaxPhysicalDeviceNameSize as defined in vulkan/vulkan_core.h:106 - MaxPhysicalDeviceNameSize = 256 - // UuidSize as defined in vulkan/vulkan_core.h:107 - UuidSize = 16 - // MaxMemoryTypes as defined in vulkan/vulkan_core.h:108 - MaxMemoryTypes = 32 - // MaxMemoryHeaps as defined in vulkan/vulkan_core.h:109 - MaxMemoryHeaps = 16 - // MaxExtensionNameSize as defined in vulkan/vulkan_core.h:110 - MaxExtensionNameSize = 256 - // MaxDescriptionSize as defined in vulkan/vulkan_core.h:111 - MaxDescriptionSize = 256 - // Version11 as defined in vulkan/vulkan_core.h:3787 + // True as defined in vulkan/vulkan_core.h:130 + True = 1 + // WholeSize as defined in vulkan/vulkan_core.h:131 + WholeSize = (^uint64(0)) + // MaxMemoryTypes as defined in vulkan/vulkan_core.h:132 + MaxMemoryTypes = uint32(32) + // MaxPhysicalDeviceNameSize as defined in vulkan/vulkan_core.h:133 + MaxPhysicalDeviceNameSize = uint32(256) + // UuidSize as defined in vulkan/vulkan_core.h:134 + UuidSize = uint32(16) + // MaxExtensionNameSize as defined in vulkan/vulkan_core.h:135 + MaxExtensionNameSize = uint32(256) + // MaxDescriptionSize as defined in vulkan/vulkan_core.h:136 + MaxDescriptionSize = uint32(256) + // MaxMemoryHeaps as defined in vulkan/vulkan_core.h:137 + MaxMemoryHeaps = uint32(16) + // Version11 as defined in vulkan/vulkan_core.h:4751 Version11 = 1 - // ApiVersion11 as defined in vulkan/vulkan_core.h:3789 - ApiVersion11 = 4198400 - // MaxDeviceGroupSize as defined in vulkan/vulkan_core.h:3795 - MaxDeviceGroupSize = 32 - // LuidSize as defined in vulkan/vulkan_core.h:3796 - LuidSize = 8 - // QueueFamilyExternal as defined in vulkan/vulkan_core.h:3797 - QueueFamilyExternal = (^uint32(0) - 1) - // KhrSurface as defined in vulkan/vulkan_core.h:4665 + // MaxDeviceGroupSize as defined in vulkan/vulkan_core.h:4757 + MaxDeviceGroupSize = uint32(32) + // LuidSize as defined in vulkan/vulkan_core.h:4758 + LuidSize = uint32(8) + // QueueFamilyExternal as defined in vulkan/vulkan_core.h:4759 + QueueFamilyExternal = (^uint32(1)) + // Version12 as defined in vulkan/vulkan_core.h:5616 + Version12 = 1 + // MaxDriverNameSize as defined in vulkan/vulkan_core.h:5620 + MaxDriverNameSize = uint32(256) + // MaxDriverInfoSize as defined in vulkan/vulkan_core.h:5621 + MaxDriverInfoSize = uint32(256) + // Version13 as defined in vulkan/vulkan_core.h:6370 + Version13 = 1 + // KhrSurface as defined in vulkan/vulkan_core.h:7411 KhrSurface = 1 - // KhrSurfaceSpecVersion as defined in vulkan/vulkan_core.h:4668 + // KhrSurfaceSpecVersion as defined in vulkan/vulkan_core.h:7413 KhrSurfaceSpecVersion = 25 - // KhrSurfaceExtensionName as defined in vulkan/vulkan_core.h:4669 + // KhrSurfaceExtensionName as defined in vulkan/vulkan_core.h:7414 KhrSurfaceExtensionName = "VK_KHR_surface" - // KhrSwapchain as defined in vulkan/vulkan_core.h:4787 + // KhrSwapchain as defined in vulkan/vulkan_core.h:7525 KhrSwapchain = 1 - // KhrSwapchainSpecVersion as defined in vulkan/vulkan_core.h:4790 + // KhrSwapchainSpecVersion as defined in vulkan/vulkan_core.h:7527 KhrSwapchainSpecVersion = 70 - // KhrSwapchainExtensionName as defined in vulkan/vulkan_core.h:4791 + // KhrSwapchainExtensionName as defined in vulkan/vulkan_core.h:7528 KhrSwapchainExtensionName = "VK_KHR_swapchain" - // KhrDisplay as defined in vulkan/vulkan_core.h:4948 + // KhrDisplay as defined in vulkan/vulkan_core.h:7685 KhrDisplay = 1 - // KhrDisplaySpecVersion as defined in vulkan/vulkan_core.h:4952 - KhrDisplaySpecVersion = 21 - // KhrDisplayExtensionName as defined in vulkan/vulkan_core.h:4953 + // KhrDisplaySpecVersion as defined in vulkan/vulkan_core.h:7688 + KhrDisplaySpecVersion = 23 + // KhrDisplayExtensionName as defined in vulkan/vulkan_core.h:7689 KhrDisplayExtensionName = "VK_KHR_display" - // KhrDisplaySwapchain as defined in vulkan/vulkan_core.h:5076 + // KhrDisplaySwapchain as defined in vulkan/vulkan_core.h:7810 KhrDisplaySwapchain = 1 - // KhrDisplaySwapchainSpecVersion as defined in vulkan/vulkan_core.h:5077 - KhrDisplaySwapchainSpecVersion = 9 - // KhrDisplaySwapchainExtensionName as defined in vulkan/vulkan_core.h:5078 + // KhrDisplaySwapchainSpecVersion as defined in vulkan/vulkan_core.h:7811 + KhrDisplaySwapchainSpecVersion = 10 + // KhrDisplaySwapchainExtensionName as defined in vulkan/vulkan_core.h:7812 KhrDisplaySwapchainExtensionName = "VK_KHR_display_swapchain" - // KhrSamplerMirrorClampToEdge as defined in vulkan/vulkan_core.h:5100 + // KhrSamplerMirrorClampToEdge as defined in vulkan/vulkan_core.h:7833 KhrSamplerMirrorClampToEdge = 1 - // KhrSamplerMirrorClampToEdgeSpecVersion as defined in vulkan/vulkan_core.h:5101 - KhrSamplerMirrorClampToEdgeSpecVersion = 1 - // KhrSamplerMirrorClampToEdgeExtensionName as defined in vulkan/vulkan_core.h:5102 + // KhrSamplerMirrorClampToEdgeSpecVersion as defined in vulkan/vulkan_core.h:7834 + KhrSamplerMirrorClampToEdgeSpecVersion = 3 + // KhrSamplerMirrorClampToEdgeExtensionName as defined in vulkan/vulkan_core.h:7835 KhrSamplerMirrorClampToEdgeExtensionName = "VK_KHR_sampler_mirror_clamp_to_edge" - // KhrMultiview as defined in vulkan/vulkan_core.h:5105 + // KhrVideoQueue as defined in vulkan/vulkan_core.h:7838 + KhrVideoQueue = 1 + // KhrVideoQueueSpecVersion as defined in vulkan/vulkan_core.h:7841 + KhrVideoQueueSpecVersion = 8 + // KhrVideoQueueExtensionName as defined in vulkan/vulkan_core.h:7842 + KhrVideoQueueExtensionName = "VK_KHR_video_queue" + // KhrVideoDecodeQueue as defined in vulkan/vulkan_core.h:8130 + KhrVideoDecodeQueue = 1 + // KhrVideoDecodeQueueSpecVersion as defined in vulkan/vulkan_core.h:8131 + KhrVideoDecodeQueueSpecVersion = 7 + // KhrVideoDecodeQueueExtensionName as defined in vulkan/vulkan_core.h:8132 + KhrVideoDecodeQueueExtensionName = "VK_KHR_video_decode_queue" + // KhrDynamicRendering as defined in vulkan/vulkan_core.h:8245 + KhrDynamicRendering = 1 + // KhrDynamicRenderingSpecVersion as defined in vulkan/vulkan_core.h:8246 + KhrDynamicRenderingSpecVersion = 1 + // KhrDynamicRenderingExtensionName as defined in vulkan/vulkan_core.h:8247 + KhrDynamicRenderingExtensionName = "VK_KHR_dynamic_rendering" + // KhrMultiview as defined in vulkan/vulkan_core.h:8307 KhrMultiview = 1 - // KhrMultiviewSpecVersion as defined in vulkan/vulkan_core.h:5106 + // KhrMultiviewSpecVersion as defined in vulkan/vulkan_core.h:8308 KhrMultiviewSpecVersion = 1 - // KhrMultiviewExtensionName as defined in vulkan/vulkan_core.h:5107 + // KhrMultiviewExtensionName as defined in vulkan/vulkan_core.h:8309 KhrMultiviewExtensionName = "VK_KHR_multiview" - // KhrGetPhysicalDeviceProperties2 as defined in vulkan/vulkan_core.h:5117 + // KhrGetPhysicalDeviceProperties2 as defined in vulkan/vulkan_core.h:8318 KhrGetPhysicalDeviceProperties2 = 1 - // KhrGetPhysicalDeviceProperties2SpecVersion as defined in vulkan/vulkan_core.h:5118 - KhrGetPhysicalDeviceProperties2SpecVersion = 1 - // KhrGetPhysicalDeviceProperties2ExtensionName as defined in vulkan/vulkan_core.h:5119 + // KhrGetPhysicalDeviceProperties2SpecVersion as defined in vulkan/vulkan_core.h:8319 + KhrGetPhysicalDeviceProperties2SpecVersion = 2 + // KhrGetPhysicalDeviceProperties2ExtensionName as defined in vulkan/vulkan_core.h:8320 KhrGetPhysicalDeviceProperties2ExtensionName = "VK_KHR_get_physical_device_properties2" - // KhrDeviceGroup as defined in vulkan/vulkan_core.h:5183 + // KhrDeviceGroup as defined in vulkan/vulkan_core.h:8383 KhrDeviceGroup = 1 - // KhrDeviceGroupSpecVersion as defined in vulkan/vulkan_core.h:5184 - KhrDeviceGroupSpecVersion = 3 - // KhrDeviceGroupExtensionName as defined in vulkan/vulkan_core.h:5185 + // KhrDeviceGroupSpecVersion as defined in vulkan/vulkan_core.h:8384 + KhrDeviceGroupSpecVersion = 4 + // KhrDeviceGroupExtensionName as defined in vulkan/vulkan_core.h:8385 KhrDeviceGroupExtensionName = "VK_KHR_device_group" - // KhrShaderDrawParameters as defined in vulkan/vulkan_core.h:5237 + // KhrShaderDrawParameters as defined in vulkan/vulkan_core.h:8435 KhrShaderDrawParameters = 1 - // KhrShaderDrawParametersSpecVersion as defined in vulkan/vulkan_core.h:5238 + // KhrShaderDrawParametersSpecVersion as defined in vulkan/vulkan_core.h:8436 KhrShaderDrawParametersSpecVersion = 1 - // KhrShaderDrawParametersExtensionName as defined in vulkan/vulkan_core.h:5239 + // KhrShaderDrawParametersExtensionName as defined in vulkan/vulkan_core.h:8437 KhrShaderDrawParametersExtensionName = "VK_KHR_shader_draw_parameters" - // KhrMaintenance1 as defined in vulkan/vulkan_core.h:5242 + // KhrMaintenance1 as defined in vulkan/vulkan_core.h:8440 KhrMaintenance1 = 1 - // KhrMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:5243 + // KhrMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:8441 KhrMaintenance1SpecVersion = 2 - // KhrMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:5244 + // KhrMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:8442 KhrMaintenance1ExtensionName = "VK_KHR_maintenance1" - // KhrDeviceGroupCreation as defined in vulkan/vulkan_core.h:5258 + // KhrDeviceGroupCreation as defined in vulkan/vulkan_core.h:8457 KhrDeviceGroupCreation = 1 - // KhrDeviceGroupCreationSpecVersion as defined in vulkan/vulkan_core.h:5259 + // KhrDeviceGroupCreationSpecVersion as defined in vulkan/vulkan_core.h:8458 KhrDeviceGroupCreationSpecVersion = 1 - // KhrDeviceGroupCreationExtensionName as defined in vulkan/vulkan_core.h:5260 + // KhrDeviceGroupCreationExtensionName as defined in vulkan/vulkan_core.h:8459 KhrDeviceGroupCreationExtensionName = "VK_KHR_device_group_creation" - // KhrExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:5277 + // KhrExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:8475 KhrExternalMemoryCapabilities = 1 - // KhrExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:5278 + // KhrExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8476 KhrExternalMemoryCapabilitiesSpecVersion = 1 - // KhrExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:5279 + // KhrExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8477 KhrExternalMemoryCapabilitiesExtensionName = "VK_KHR_external_memory_capabilities" - // KhrExternalMemory as defined in vulkan/vulkan_core.h:5313 + // KhrExternalMemory as defined in vulkan/vulkan_core.h:8509 KhrExternalMemory = 1 - // KhrExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:5314 + // KhrExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:8510 KhrExternalMemorySpecVersion = 1 - // KhrExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:5315 + // KhrExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:8511 KhrExternalMemoryExtensionName = "VK_KHR_external_memory" - // KhrExternalMemoryFd as defined in vulkan/vulkan_core.h:5326 + // KhrExternalMemoryFd as defined in vulkan/vulkan_core.h:8521 KhrExternalMemoryFd = 1 - // KhrExternalMemoryFdSpecVersion as defined in vulkan/vulkan_core.h:5327 + // KhrExternalMemoryFdSpecVersion as defined in vulkan/vulkan_core.h:8522 KhrExternalMemoryFdSpecVersion = 1 - // KhrExternalMemoryFdExtensionName as defined in vulkan/vulkan_core.h:5328 + // KhrExternalMemoryFdExtensionName as defined in vulkan/vulkan_core.h:8523 KhrExternalMemoryFdExtensionName = "VK_KHR_external_memory_fd" - // KhrExternalSemaphoreCapabilities as defined in vulkan/vulkan_core.h:5367 + // KhrExternalSemaphoreCapabilities as defined in vulkan/vulkan_core.h:8561 KhrExternalSemaphoreCapabilities = 1 - // KhrExternalSemaphoreCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:5368 + // KhrExternalSemaphoreCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8562 KhrExternalSemaphoreCapabilitiesSpecVersion = 1 - // KhrExternalSemaphoreCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:5369 + // KhrExternalSemaphoreCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8563 KhrExternalSemaphoreCapabilitiesExtensionName = "VK_KHR_external_semaphore_capabilities" - // KhrExternalSemaphore as defined in vulkan/vulkan_core.h:5394 + // KhrExternalSemaphore as defined in vulkan/vulkan_core.h:8586 KhrExternalSemaphore = 1 - // KhrExternalSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:5395 + // KhrExternalSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:8587 KhrExternalSemaphoreSpecVersion = 1 - // KhrExternalSemaphoreExtensionName as defined in vulkan/vulkan_core.h:5396 + // KhrExternalSemaphoreExtensionName as defined in vulkan/vulkan_core.h:8588 KhrExternalSemaphoreExtensionName = "VK_KHR_external_semaphore" - // KhrExternalSemaphoreFd as defined in vulkan/vulkan_core.h:5407 + // KhrExternalSemaphoreFd as defined in vulkan/vulkan_core.h:8597 KhrExternalSemaphoreFd = 1 - // KhrExternalSemaphoreFdSpecVersion as defined in vulkan/vulkan_core.h:5408 + // KhrExternalSemaphoreFdSpecVersion as defined in vulkan/vulkan_core.h:8598 KhrExternalSemaphoreFdSpecVersion = 1 - // KhrExternalSemaphoreFdExtensionName as defined in vulkan/vulkan_core.h:5409 + // KhrExternalSemaphoreFdExtensionName as defined in vulkan/vulkan_core.h:8599 KhrExternalSemaphoreFdExtensionName = "VK_KHR_external_semaphore_fd" - // KhrPushDescriptor as defined in vulkan/vulkan_core.h:5442 + // KhrPushDescriptor as defined in vulkan/vulkan_core.h:8631 KhrPushDescriptor = 1 - // KhrPushDescriptorSpecVersion as defined in vulkan/vulkan_core.h:5443 + // KhrPushDescriptorSpecVersion as defined in vulkan/vulkan_core.h:8632 KhrPushDescriptorSpecVersion = 2 - // KhrPushDescriptorExtensionName as defined in vulkan/vulkan_core.h:5444 + // KhrPushDescriptorExtensionName as defined in vulkan/vulkan_core.h:8633 KhrPushDescriptorExtensionName = "VK_KHR_push_descriptor" - // Khr16bitStorage as defined in vulkan/vulkan_core.h:5473 + // KhrShaderFloat16Int8 as defined in vulkan/vulkan_core.h:8661 + KhrShaderFloat16Int8 = 1 + // KhrShaderFloat16Int8SpecVersion as defined in vulkan/vulkan_core.h:8662 + KhrShaderFloat16Int8SpecVersion = 1 + // KhrShaderFloat16Int8ExtensionName as defined in vulkan/vulkan_core.h:8663 + KhrShaderFloat16Int8ExtensionName = "VK_KHR_shader_float16_int8" + // Khr16bitStorage as defined in vulkan/vulkan_core.h:8670 Khr16bitStorage = 1 - // Khr16bitStorageSpecVersion as defined in vulkan/vulkan_core.h:5474 + // Khr16bitStorageSpecVersion as defined in vulkan/vulkan_core.h:8671 Khr16bitStorageSpecVersion = 1 - // Khr16bitStorageExtensionName as defined in vulkan/vulkan_core.h:5475 + // Khr16bitStorageExtensionName as defined in vulkan/vulkan_core.h:8672 Khr16bitStorageExtensionName = "VK_KHR_16bit_storage" - // KhrIncrementalPresent as defined in vulkan/vulkan_core.h:5481 + // KhrIncrementalPresent as defined in vulkan/vulkan_core.h:8677 KhrIncrementalPresent = 1 - // KhrIncrementalPresentSpecVersion as defined in vulkan/vulkan_core.h:5482 - KhrIncrementalPresentSpecVersion = 1 - // KhrIncrementalPresentExtensionName as defined in vulkan/vulkan_core.h:5483 + // KhrIncrementalPresentSpecVersion as defined in vulkan/vulkan_core.h:8678 + KhrIncrementalPresentSpecVersion = 2 + // KhrIncrementalPresentExtensionName as defined in vulkan/vulkan_core.h:8679 KhrIncrementalPresentExtensionName = "VK_KHR_incremental_present" - // KhrDescriptorUpdateTemplate as defined in vulkan/vulkan_core.h:5505 + // KhrDescriptorUpdateTemplate as defined in vulkan/vulkan_core.h:8700 KhrDescriptorUpdateTemplate = 1 - // KhrDescriptorUpdateTemplateSpecVersion as defined in vulkan/vulkan_core.h:5509 + // KhrDescriptorUpdateTemplateSpecVersion as defined in vulkan/vulkan_core.h:8703 KhrDescriptorUpdateTemplateSpecVersion = 1 - // KhrDescriptorUpdateTemplateExtensionName as defined in vulkan/vulkan_core.h:5510 + // KhrDescriptorUpdateTemplateExtensionName as defined in vulkan/vulkan_core.h:8704 KhrDescriptorUpdateTemplateExtensionName = "VK_KHR_descriptor_update_template" - // KhrCreateRenderpass2 as defined in vulkan/vulkan_core.h:5546 + // KhrImagelessFramebuffer as defined in vulkan/vulkan_core.h:8737 + KhrImagelessFramebuffer = 1 + // KhrImagelessFramebufferSpecVersion as defined in vulkan/vulkan_core.h:8738 + KhrImagelessFramebufferSpecVersion = 1 + // KhrImagelessFramebufferExtensionName as defined in vulkan/vulkan_core.h:8739 + KhrImagelessFramebufferExtensionName = "VK_KHR_imageless_framebuffer" + // KhrCreateRenderpass2 as defined in vulkan/vulkan_core.h:8750 KhrCreateRenderpass2 = 1 - // KhrCreateRenderpass2SpecVersion as defined in vulkan/vulkan_core.h:5547 + // KhrCreateRenderpass2SpecVersion as defined in vulkan/vulkan_core.h:8751 KhrCreateRenderpass2SpecVersion = 1 - // KhrCreateRenderpass2ExtensionName as defined in vulkan/vulkan_core.h:5548 + // KhrCreateRenderpass2ExtensionName as defined in vulkan/vulkan_core.h:8752 KhrCreateRenderpass2ExtensionName = "VK_KHR_create_renderpass2" - // KhrSharedPresentableImage as defined in vulkan/vulkan_core.h:5654 + // KhrSharedPresentableImage as defined in vulkan/vulkan_core.h:8795 KhrSharedPresentableImage = 1 - // KhrSharedPresentableImageSpecVersion as defined in vulkan/vulkan_core.h:5655 + // KhrSharedPresentableImageSpecVersion as defined in vulkan/vulkan_core.h:8796 KhrSharedPresentableImageSpecVersion = 1 - // KhrSharedPresentableImageExtensionName as defined in vulkan/vulkan_core.h:5656 + // KhrSharedPresentableImageExtensionName as defined in vulkan/vulkan_core.h:8797 KhrSharedPresentableImageExtensionName = "VK_KHR_shared_presentable_image" - // KhrExternalFenceCapabilities as defined in vulkan/vulkan_core.h:5673 + // KhrExternalFenceCapabilities as defined in vulkan/vulkan_core.h:8813 KhrExternalFenceCapabilities = 1 - // KhrExternalFenceCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:5674 + // KhrExternalFenceCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:8814 KhrExternalFenceCapabilitiesSpecVersion = 1 - // KhrExternalFenceCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:5675 + // KhrExternalFenceCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:8815 KhrExternalFenceCapabilitiesExtensionName = "VK_KHR_external_fence_capabilities" - // KhrExternalFence as defined in vulkan/vulkan_core.h:5700 + // KhrExternalFence as defined in vulkan/vulkan_core.h:8838 KhrExternalFence = 1 - // KhrExternalFenceSpecVersion as defined in vulkan/vulkan_core.h:5701 + // KhrExternalFenceSpecVersion as defined in vulkan/vulkan_core.h:8839 KhrExternalFenceSpecVersion = 1 - // KhrExternalFenceExtensionName as defined in vulkan/vulkan_core.h:5702 + // KhrExternalFenceExtensionName as defined in vulkan/vulkan_core.h:8840 KhrExternalFenceExtensionName = "VK_KHR_external_fence" - // KhrExternalFenceFd as defined in vulkan/vulkan_core.h:5713 + // KhrExternalFenceFd as defined in vulkan/vulkan_core.h:8849 KhrExternalFenceFd = 1 - // KhrExternalFenceFdSpecVersion as defined in vulkan/vulkan_core.h:5714 + // KhrExternalFenceFdSpecVersion as defined in vulkan/vulkan_core.h:8850 KhrExternalFenceFdSpecVersion = 1 - // KhrExternalFenceFdExtensionName as defined in vulkan/vulkan_core.h:5715 + // KhrExternalFenceFdExtensionName as defined in vulkan/vulkan_core.h:8851 KhrExternalFenceFdExtensionName = "VK_KHR_external_fence_fd" - // KhrMaintenance2 as defined in vulkan/vulkan_core.h:5748 + // KhrPerformanceQuery as defined in vulkan/vulkan_core.h:8883 + KhrPerformanceQuery = 1 + // KhrPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:8884 + KhrPerformanceQuerySpecVersion = 1 + // KhrPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:8885 + KhrPerformanceQueryExtensionName = "VK_KHR_performance_query" + // KhrMaintenance2 as defined in vulkan/vulkan_core.h:9023 KhrMaintenance2 = 1 - // KhrMaintenance2SpecVersion as defined in vulkan/vulkan_core.h:5749 + // KhrMaintenance2SpecVersion as defined in vulkan/vulkan_core.h:9024 KhrMaintenance2SpecVersion = 1 - // KhrMaintenance2ExtensionName as defined in vulkan/vulkan_core.h:5750 + // KhrMaintenance2ExtensionName as defined in vulkan/vulkan_core.h:9025 KhrMaintenance2ExtensionName = "VK_KHR_maintenance2" - // KhrGetSurfaceCapabilities2 as defined in vulkan/vulkan_core.h:5769 + // KhrGetSurfaceCapabilities2 as defined in vulkan/vulkan_core.h:9044 KhrGetSurfaceCapabilities2 = 1 - // KhrGetSurfaceCapabilities2SpecVersion as defined in vulkan/vulkan_core.h:5770 + // KhrGetSurfaceCapabilities2SpecVersion as defined in vulkan/vulkan_core.h:9045 KhrGetSurfaceCapabilities2SpecVersion = 1 - // KhrGetSurfaceCapabilities2ExtensionName as defined in vulkan/vulkan_core.h:5771 + // KhrGetSurfaceCapabilities2ExtensionName as defined in vulkan/vulkan_core.h:9046 KhrGetSurfaceCapabilities2ExtensionName = "VK_KHR_get_surface_capabilities2" - // KhrVariablePointers as defined in vulkan/vulkan_core.h:5808 + // KhrVariablePointers as defined in vulkan/vulkan_core.h:9082 KhrVariablePointers = 1 - // KhrVariablePointersSpecVersion as defined in vulkan/vulkan_core.h:5809 + // KhrVariablePointersSpecVersion as defined in vulkan/vulkan_core.h:9083 KhrVariablePointersSpecVersion = 1 - // KhrVariablePointersExtensionName as defined in vulkan/vulkan_core.h:5810 + // KhrVariablePointersExtensionName as defined in vulkan/vulkan_core.h:9084 KhrVariablePointersExtensionName = "VK_KHR_variable_pointers" - // KhrGetDisplayProperties2 as defined in vulkan/vulkan_core.h:5816 + // KhrGetDisplayProperties2 as defined in vulkan/vulkan_core.h:9091 KhrGetDisplayProperties2 = 1 - // KhrGetDisplayProperties2SpecVersion as defined in vulkan/vulkan_core.h:5817 + // KhrGetDisplayProperties2SpecVersion as defined in vulkan/vulkan_core.h:9092 KhrGetDisplayProperties2SpecVersion = 1 - // KhrGetDisplayProperties2ExtensionName as defined in vulkan/vulkan_core.h:5818 + // KhrGetDisplayProperties2ExtensionName as defined in vulkan/vulkan_core.h:9093 KhrGetDisplayProperties2ExtensionName = "VK_KHR_get_display_properties2" - // KhrDedicatedAllocation as defined in vulkan/vulkan_core.h:5880 + // KhrDedicatedAllocation as defined in vulkan/vulkan_core.h:9154 KhrDedicatedAllocation = 1 - // KhrDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:5881 + // KhrDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:9155 KhrDedicatedAllocationSpecVersion = 3 - // KhrDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:5882 + // KhrDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:9156 KhrDedicatedAllocationExtensionName = "VK_KHR_dedicated_allocation" - // KhrStorageBufferStorageClass as defined in vulkan/vulkan_core.h:5890 + // KhrStorageBufferStorageClass as defined in vulkan/vulkan_core.h:9163 KhrStorageBufferStorageClass = 1 - // KhrStorageBufferStorageClassSpecVersion as defined in vulkan/vulkan_core.h:5891 + // KhrStorageBufferStorageClassSpecVersion as defined in vulkan/vulkan_core.h:9164 KhrStorageBufferStorageClassSpecVersion = 1 - // KhrStorageBufferStorageClassExtensionName as defined in vulkan/vulkan_core.h:5892 + // KhrStorageBufferStorageClassExtensionName as defined in vulkan/vulkan_core.h:9165 KhrStorageBufferStorageClassExtensionName = "VK_KHR_storage_buffer_storage_class" - // KhrRelaxedBlockLayout as defined in vulkan/vulkan_core.h:5895 + // KhrRelaxedBlockLayout as defined in vulkan/vulkan_core.h:9168 KhrRelaxedBlockLayout = 1 - // KhrRelaxedBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:5896 + // KhrRelaxedBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:9169 KhrRelaxedBlockLayoutSpecVersion = 1 - // KhrRelaxedBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:5897 + // KhrRelaxedBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:9170 KhrRelaxedBlockLayoutExtensionName = "VK_KHR_relaxed_block_layout" - // KhrGetMemoryRequirements2 as defined in vulkan/vulkan_core.h:5900 + // KhrGetMemoryRequirements2 as defined in vulkan/vulkan_core.h:9173 KhrGetMemoryRequirements2 = 1 - // KhrGetMemoryRequirements2SpecVersion as defined in vulkan/vulkan_core.h:5901 + // KhrGetMemoryRequirements2SpecVersion as defined in vulkan/vulkan_core.h:9174 KhrGetMemoryRequirements2SpecVersion = 1 - // KhrGetMemoryRequirements2ExtensionName as defined in vulkan/vulkan_core.h:5902 + // KhrGetMemoryRequirements2ExtensionName as defined in vulkan/vulkan_core.h:9175 KhrGetMemoryRequirements2ExtensionName = "VK_KHR_get_memory_requirements2" - // KhrImageFormatList as defined in vulkan/vulkan_core.h:5935 + // KhrImageFormatList as defined in vulkan/vulkan_core.h:9209 KhrImageFormatList = 1 - // KhrImageFormatListSpecVersion as defined in vulkan/vulkan_core.h:5936 + // KhrImageFormatListSpecVersion as defined in vulkan/vulkan_core.h:9210 KhrImageFormatListSpecVersion = 1 - // KhrImageFormatListExtensionName as defined in vulkan/vulkan_core.h:5937 + // KhrImageFormatListExtensionName as defined in vulkan/vulkan_core.h:9211 KhrImageFormatListExtensionName = "VK_KHR_image_format_list" - // KhrSamplerYcbcrConversion as defined in vulkan/vulkan_core.h:5948 + // KhrSamplerYcbcrConversion as defined in vulkan/vulkan_core.h:9216 KhrSamplerYcbcrConversion = 1 - // KhrSamplerYcbcrConversionSpecVersion as defined in vulkan/vulkan_core.h:5952 - KhrSamplerYcbcrConversionSpecVersion = 1 - // KhrSamplerYcbcrConversionExtensionName as defined in vulkan/vulkan_core.h:5953 + // KhrSamplerYcbcrConversionSpecVersion as defined in vulkan/vulkan_core.h:9219 + KhrSamplerYcbcrConversionSpecVersion = 14 + // KhrSamplerYcbcrConversionExtensionName as defined in vulkan/vulkan_core.h:9220 KhrSamplerYcbcrConversionExtensionName = "VK_KHR_sampler_ycbcr_conversion" - // KhrBindMemory2 as defined in vulkan/vulkan_core.h:5991 + // KhrBindMemory2 as defined in vulkan/vulkan_core.h:9256 KhrBindMemory2 = 1 - // KhrBindMemory2SpecVersion as defined in vulkan/vulkan_core.h:5992 + // KhrBindMemory2SpecVersion as defined in vulkan/vulkan_core.h:9257 KhrBindMemory2SpecVersion = 1 - // KhrBindMemory2ExtensionName as defined in vulkan/vulkan_core.h:5993 + // KhrBindMemory2ExtensionName as defined in vulkan/vulkan_core.h:9258 KhrBindMemory2ExtensionName = "VK_KHR_bind_memory2" - // KhrMaintenance3 as defined in vulkan/vulkan_core.h:6015 + // KhrMaintenance3 as defined in vulkan/vulkan_core.h:9279 KhrMaintenance3 = 1 - // KhrMaintenance3SpecVersion as defined in vulkan/vulkan_core.h:6016 + // KhrMaintenance3SpecVersion as defined in vulkan/vulkan_core.h:9280 KhrMaintenance3SpecVersion = 1 - // KhrMaintenance3ExtensionName as defined in vulkan/vulkan_core.h:6017 + // KhrMaintenance3ExtensionName as defined in vulkan/vulkan_core.h:9281 KhrMaintenance3ExtensionName = "VK_KHR_maintenance3" - // KhrDrawIndirectCount as defined in vulkan/vulkan_core.h:6033 + // KhrDrawIndirectCount as defined in vulkan/vulkan_core.h:9298 KhrDrawIndirectCount = 1 - // KhrDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:6034 + // KhrDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:9299 KhrDrawIndirectCountSpecVersion = 1 - // KhrDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:6035 + // KhrDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:9300 KhrDrawIndirectCountExtensionName = "VK_KHR_draw_indirect_count" - // Khr8bitStorage as defined in vulkan/vulkan_core.h:6060 + // KhrShaderSubgroupExtendedTypes as defined in vulkan/vulkan_core.h:9325 + KhrShaderSubgroupExtendedTypes = 1 + // KhrShaderSubgroupExtendedTypesSpecVersion as defined in vulkan/vulkan_core.h:9326 + KhrShaderSubgroupExtendedTypesSpecVersion = 1 + // KhrShaderSubgroupExtendedTypesExtensionName as defined in vulkan/vulkan_core.h:9327 + KhrShaderSubgroupExtendedTypesExtensionName = "VK_KHR_shader_subgroup_extended_types" + // Khr8bitStorage as defined in vulkan/vulkan_core.h:9332 Khr8bitStorage = 1 - // Khr8bitStorageSpecVersion as defined in vulkan/vulkan_core.h:6061 + // Khr8bitStorageSpecVersion as defined in vulkan/vulkan_core.h:9333 Khr8bitStorageSpecVersion = 1 - // Khr8bitStorageExtensionName as defined in vulkan/vulkan_core.h:6062 + // Khr8bitStorageExtensionName as defined in vulkan/vulkan_core.h:9334 Khr8bitStorageExtensionName = "VK_KHR_8bit_storage" - // KhrShaderAtomicInt64 as defined in vulkan/vulkan_core.h:6074 + // KhrShaderAtomicInt64 as defined in vulkan/vulkan_core.h:9339 KhrShaderAtomicInt64 = 1 - // KhrShaderAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:6075 + // KhrShaderAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:9340 KhrShaderAtomicInt64SpecVersion = 1 - // KhrShaderAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:6076 + // KhrShaderAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:9341 KhrShaderAtomicInt64ExtensionName = "VK_KHR_shader_atomic_int64" - // KhrDriverProperties as defined in vulkan/vulkan_core.h:6087 + // KhrShaderClock as defined in vulkan/vulkan_core.h:9346 + KhrShaderClock = 1 + // KhrShaderClockSpecVersion as defined in vulkan/vulkan_core.h:9347 + KhrShaderClockSpecVersion = 1 + // KhrShaderClockExtensionName as defined in vulkan/vulkan_core.h:9348 + KhrShaderClockExtensionName = "VK_KHR_shader_clock" + // KhrGlobalPriority as defined in vulkan/vulkan_core.h:9412 + KhrGlobalPriority = 1 + // MaxGlobalPrioritySize as defined in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVK_MAX_GLOBAL_PRIORITY_SIZE_KHR + MaxGlobalPrioritySize = uint32(16) + // KhrGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:9414 + KhrGlobalPrioritySpecVersion = 1 + // KhrGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:9415 + KhrGlobalPriorityExtensionName = "VK_KHR_global_priority" + // KhrDriverProperties as defined in vulkan/vulkan_core.h:9449 KhrDriverProperties = 1 - // MaxDriverNameSize as defined in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVK_MAX_DRIVER_NAME_SIZE_KHR - MaxDriverNameSize = 256 - // MaxDriverInfoSize as defined in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVK_MAX_DRIVER_INFO_SIZE_KHR - MaxDriverInfoSize = 256 - // KhrDriverPropertiesSpecVersion as defined in vulkan/vulkan_core.h:6090 + // KhrDriverPropertiesSpecVersion as defined in vulkan/vulkan_core.h:9450 KhrDriverPropertiesSpecVersion = 1 - // KhrDriverPropertiesExtensionName as defined in vulkan/vulkan_core.h:6091 + // KhrDriverPropertiesExtensionName as defined in vulkan/vulkan_core.h:9451 KhrDriverPropertiesExtensionName = "VK_KHR_driver_properties" - // KhrVulkanMemoryModel as defined in vulkan/vulkan_core.h:6128 + // KhrShaderFloatControls as defined in vulkan/vulkan_core.h:9462 + KhrShaderFloatControls = 1 + // KhrShaderFloatControlsSpecVersion as defined in vulkan/vulkan_core.h:9463 + KhrShaderFloatControlsSpecVersion = 4 + // KhrShaderFloatControlsExtensionName as defined in vulkan/vulkan_core.h:9464 + KhrShaderFloatControlsExtensionName = "VK_KHR_shader_float_controls" + // KhrDepthStencilResolve as defined in vulkan/vulkan_core.h:9471 + KhrDepthStencilResolve = 1 + // KhrDepthStencilResolveSpecVersion as defined in vulkan/vulkan_core.h:9472 + KhrDepthStencilResolveSpecVersion = 1 + // KhrDepthStencilResolveExtensionName as defined in vulkan/vulkan_core.h:9473 + KhrDepthStencilResolveExtensionName = "VK_KHR_depth_stencil_resolve" + // KhrSwapchainMutableFormat as defined in vulkan/vulkan_core.h:9484 + KhrSwapchainMutableFormat = 1 + // KhrSwapchainMutableFormatSpecVersion as defined in vulkan/vulkan_core.h:9485 + KhrSwapchainMutableFormatSpecVersion = 1 + // KhrSwapchainMutableFormatExtensionName as defined in vulkan/vulkan_core.h:9486 + KhrSwapchainMutableFormatExtensionName = "VK_KHR_swapchain_mutable_format" + // KhrTimelineSemaphore as defined in vulkan/vulkan_core.h:9489 + KhrTimelineSemaphore = 1 + // KhrTimelineSemaphoreSpecVersion as defined in vulkan/vulkan_core.h:9490 + KhrTimelineSemaphoreSpecVersion = 2 + // KhrTimelineSemaphoreExtensionName as defined in vulkan/vulkan_core.h:9491 + KhrTimelineSemaphoreExtensionName = "VK_KHR_timeline_semaphore" + // KhrVulkanMemoryModel as defined in vulkan/vulkan_core.h:9531 KhrVulkanMemoryModel = 1 - // KhrVulkanMemoryModelSpecVersion as defined in vulkan/vulkan_core.h:6129 - KhrVulkanMemoryModelSpecVersion = 2 - // KhrVulkanMemoryModelExtensionName as defined in vulkan/vulkan_core.h:6130 + // KhrVulkanMemoryModelSpecVersion as defined in vulkan/vulkan_core.h:9532 + KhrVulkanMemoryModelSpecVersion = 3 + // KhrVulkanMemoryModelExtensionName as defined in vulkan/vulkan_core.h:9533 KhrVulkanMemoryModelExtensionName = "VK_KHR_vulkan_memory_model" - // ExtDebugReport as defined in vulkan/vulkan_core.h:6141 + // KhrShaderTerminateInvocation as defined in vulkan/vulkan_core.h:9538 + KhrShaderTerminateInvocation = 1 + // KhrShaderTerminateInvocationSpecVersion as defined in vulkan/vulkan_core.h:9539 + KhrShaderTerminateInvocationSpecVersion = 1 + // KhrShaderTerminateInvocationExtensionName as defined in vulkan/vulkan_core.h:9540 + KhrShaderTerminateInvocationExtensionName = "VK_KHR_shader_terminate_invocation" + // KhrFragmentShadingRate as defined in vulkan/vulkan_core.h:9545 + KhrFragmentShadingRate = 1 + // KhrFragmentShadingRateSpecVersion as defined in vulkan/vulkan_core.h:9546 + KhrFragmentShadingRateSpecVersion = 2 + // KhrFragmentShadingRateExtensionName as defined in vulkan/vulkan_core.h:9547 + KhrFragmentShadingRateExtensionName = "VK_KHR_fragment_shading_rate" + // KhrSpirv14 as defined in vulkan/vulkan_core.h:9624 + KhrSpirv14 = 1 + // KhrSpirv14SpecVersion as defined in vulkan/vulkan_core.h:9625 + KhrSpirv14SpecVersion = 1 + // KhrSpirv14ExtensionName as defined in vulkan/vulkan_core.h:9626 + KhrSpirv14ExtensionName = "VK_KHR_spirv_1_4" + // KhrSurfaceProtectedCapabilities as defined in vulkan/vulkan_core.h:9629 + KhrSurfaceProtectedCapabilities = 1 + // KhrSurfaceProtectedCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:9630 + KhrSurfaceProtectedCapabilitiesSpecVersion = 1 + // KhrSurfaceProtectedCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:9631 + KhrSurfaceProtectedCapabilitiesExtensionName = "VK_KHR_surface_protected_capabilities" + // KhrSeparateDepthStencilLayouts as defined in vulkan/vulkan_core.h:9640 + KhrSeparateDepthStencilLayouts = 1 + // KhrSeparateDepthStencilLayoutsSpecVersion as defined in vulkan/vulkan_core.h:9641 + KhrSeparateDepthStencilLayoutsSpecVersion = 1 + // KhrSeparateDepthStencilLayoutsExtensionName as defined in vulkan/vulkan_core.h:9642 + KhrSeparateDepthStencilLayoutsExtensionName = "VK_KHR_separate_depth_stencil_layouts" + // KhrPresentWait as defined in vulkan/vulkan_core.h:9651 + KhrPresentWait = 1 + // KhrPresentWaitSpecVersion as defined in vulkan/vulkan_core.h:9652 + KhrPresentWaitSpecVersion = 1 + // KhrPresentWaitExtensionName as defined in vulkan/vulkan_core.h:9653 + KhrPresentWaitExtensionName = "VK_KHR_present_wait" + // KhrUniformBufferStandardLayout as defined in vulkan/vulkan_core.h:9671 + KhrUniformBufferStandardLayout = 1 + // KhrUniformBufferStandardLayoutSpecVersion as defined in vulkan/vulkan_core.h:9672 + KhrUniformBufferStandardLayoutSpecVersion = 1 + // KhrUniformBufferStandardLayoutExtensionName as defined in vulkan/vulkan_core.h:9673 + KhrUniformBufferStandardLayoutExtensionName = "VK_KHR_uniform_buffer_standard_layout" + // KhrBufferDeviceAddress as defined in vulkan/vulkan_core.h:9678 + KhrBufferDeviceAddress = 1 + // KhrBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:9679 + KhrBufferDeviceAddressSpecVersion = 1 + // KhrBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:9680 + KhrBufferDeviceAddressExtensionName = "VK_KHR_buffer_device_address" + // KhrDeferredHostOperations as defined in vulkan/vulkan_core.h:9710 + KhrDeferredHostOperations = 1 + // KhrDeferredHostOperationsSpecVersion as defined in vulkan/vulkan_core.h:9712 + KhrDeferredHostOperationsSpecVersion = 4 + // KhrDeferredHostOperationsExtensionName as defined in vulkan/vulkan_core.h:9713 + KhrDeferredHostOperationsExtensionName = "VK_KHR_deferred_host_operations" + // KhrPipelineExecutableProperties as defined in vulkan/vulkan_core.h:9745 + KhrPipelineExecutableProperties = 1 + // KhrPipelineExecutablePropertiesSpecVersion as defined in vulkan/vulkan_core.h:9746 + KhrPipelineExecutablePropertiesSpecVersion = 1 + // KhrPipelineExecutablePropertiesExtensionName as defined in vulkan/vulkan_core.h:9747 + KhrPipelineExecutablePropertiesExtensionName = "VK_KHR_pipeline_executable_properties" + // KhrShaderIntegerDotProduct as defined in vulkan/vulkan_core.h:9835 + KhrShaderIntegerDotProduct = 1 + // KhrShaderIntegerDotProductSpecVersion as defined in vulkan/vulkan_core.h:9836 + KhrShaderIntegerDotProductSpecVersion = 1 + // KhrShaderIntegerDotProductExtensionName as defined in vulkan/vulkan_core.h:9837 + KhrShaderIntegerDotProductExtensionName = "VK_KHR_shader_integer_dot_product" + // KhrPipelineLibrary as defined in vulkan/vulkan_core.h:9844 + KhrPipelineLibrary = 1 + // KhrPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:9845 + KhrPipelineLibrarySpecVersion = 1 + // KhrPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:9846 + KhrPipelineLibraryExtensionName = "VK_KHR_pipeline_library" + // KhrShaderNonSemanticInfo as defined in vulkan/vulkan_core.h:9856 + KhrShaderNonSemanticInfo = 1 + // KhrShaderNonSemanticInfoSpecVersion as defined in vulkan/vulkan_core.h:9857 + KhrShaderNonSemanticInfoSpecVersion = 1 + // KhrShaderNonSemanticInfoExtensionName as defined in vulkan/vulkan_core.h:9858 + KhrShaderNonSemanticInfoExtensionName = "VK_KHR_shader_non_semantic_info" + // KhrPresentId as defined in vulkan/vulkan_core.h:9861 + KhrPresentId = 1 + // KhrPresentIdSpecVersion as defined in vulkan/vulkan_core.h:9862 + KhrPresentIdSpecVersion = 1 + // KhrPresentIdExtensionName as defined in vulkan/vulkan_core.h:9863 + KhrPresentIdExtensionName = "VK_KHR_present_id" + // KhrSynchronization2 as defined in vulkan/vulkan_core.h:9879 + KhrSynchronization2 = 1 + // KhrSynchronization2SpecVersion as defined in vulkan/vulkan_core.h:9880 + KhrSynchronization2SpecVersion = 1 + // KhrSynchronization2ExtensionName as defined in vulkan/vulkan_core.h:9881 + KhrSynchronization2ExtensionName = "VK_KHR_synchronization2" + // KhrFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:9979 + KhrFragmentShaderBarycentric = 1 + // KhrFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:9980 + KhrFragmentShaderBarycentricSpecVersion = 1 + // KhrFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:9981 + KhrFragmentShaderBarycentricExtensionName = "VK_KHR_fragment_shader_barycentric" + // KhrShaderSubgroupUniformControlFlow as defined in vulkan/vulkan_core.h:9996 + KhrShaderSubgroupUniformControlFlow = 1 + // KhrShaderSubgroupUniformControlFlowSpecVersion as defined in vulkan/vulkan_core.h:9997 + KhrShaderSubgroupUniformControlFlowSpecVersion = 1 + // KhrShaderSubgroupUniformControlFlowExtensionName as defined in vulkan/vulkan_core.h:9998 + KhrShaderSubgroupUniformControlFlowExtensionName = "VK_KHR_shader_subgroup_uniform_control_flow" + // KhrZeroInitializeWorkgroupMemory as defined in vulkan/vulkan_core.h:10007 + KhrZeroInitializeWorkgroupMemory = 1 + // KhrZeroInitializeWorkgroupMemorySpecVersion as defined in vulkan/vulkan_core.h:10008 + KhrZeroInitializeWorkgroupMemorySpecVersion = 1 + // KhrZeroInitializeWorkgroupMemoryExtensionName as defined in vulkan/vulkan_core.h:10009 + KhrZeroInitializeWorkgroupMemoryExtensionName = "VK_KHR_zero_initialize_workgroup_memory" + // KhrWorkgroupMemoryExplicitLayout as defined in vulkan/vulkan_core.h:10014 + KhrWorkgroupMemoryExplicitLayout = 1 + // KhrWorkgroupMemoryExplicitLayoutSpecVersion as defined in vulkan/vulkan_core.h:10015 + KhrWorkgroupMemoryExplicitLayoutSpecVersion = 1 + // KhrWorkgroupMemoryExplicitLayoutExtensionName as defined in vulkan/vulkan_core.h:10016 + KhrWorkgroupMemoryExplicitLayoutExtensionName = "VK_KHR_workgroup_memory_explicit_layout" + // KhrCopyCommands2 as defined in vulkan/vulkan_core.h:10028 + KhrCopyCommands2 = 1 + // KhrCopyCommands2SpecVersion as defined in vulkan/vulkan_core.h:10029 + KhrCopyCommands2SpecVersion = 1 + // KhrCopyCommands2ExtensionName as defined in vulkan/vulkan_core.h:10030 + KhrCopyCommands2ExtensionName = "VK_KHR_copy_commands2" + // KhrFormatFeatureFlags2 as defined in vulkan/vulkan_core.h:10087 + KhrFormatFeatureFlags2 = 1 + // KhrFormatFeatureFlags2SpecVersion as defined in vulkan/vulkan_core.h:10088 + KhrFormatFeatureFlags2SpecVersion = 2 + // KhrFormatFeatureFlags2ExtensionName as defined in vulkan/vulkan_core.h:10089 + KhrFormatFeatureFlags2ExtensionName = "VK_KHR_format_feature_flags2" + // KhrRayTracingMaintenance1 as defined in vulkan/vulkan_core.h:10098 + KhrRayTracingMaintenance1 = 1 + // KhrRayTracingMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:10099 + KhrRayTracingMaintenance1SpecVersion = 1 + // KhrRayTracingMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:10100 + KhrRayTracingMaintenance1ExtensionName = "VK_KHR_ray_tracing_maintenance1" + // KhrPortabilityEnumeration as defined in vulkan/vulkan_core.h:10134 + KhrPortabilityEnumeration = 1 + // KhrPortabilityEnumerationSpecVersion as defined in vulkan/vulkan_core.h:10135 + KhrPortabilityEnumerationSpecVersion = 1 + // KhrPortabilityEnumerationExtensionName as defined in vulkan/vulkan_core.h:10136 + KhrPortabilityEnumerationExtensionName = "VK_KHR_portability_enumeration" + // KhrMaintenance4 as defined in vulkan/vulkan_core.h:10139 + KhrMaintenance4 = 1 + // KhrMaintenance4SpecVersion as defined in vulkan/vulkan_core.h:10140 + KhrMaintenance4SpecVersion = 2 + // KhrMaintenance4ExtensionName as defined in vulkan/vulkan_core.h:10141 + KhrMaintenance4ExtensionName = "VK_KHR_maintenance4" + // ExtDebugReport as defined in vulkan/vulkan_core.h:10173 ExtDebugReport = 1 - // ExtDebugReportSpecVersion as defined in vulkan/vulkan_core.h:6144 - ExtDebugReportSpecVersion = 9 - // ExtDebugReportExtensionName as defined in vulkan/vulkan_core.h:6145 + // ExtDebugReportSpecVersion as defined in vulkan/vulkan_core.h:10175 + ExtDebugReportSpecVersion = 10 + // ExtDebugReportExtensionName as defined in vulkan/vulkan_core.h:10176 ExtDebugReportExtensionName = "VK_EXT_debug_report" - // NvGlslShader as defined in vulkan/vulkan_core.h:6253 + // NvGlslShader as defined in vulkan/vulkan_core.h:10280 NvGlslShader = 1 - // NvGlslShaderSpecVersion as defined in vulkan/vulkan_core.h:6254 + // NvGlslShaderSpecVersion as defined in vulkan/vulkan_core.h:10281 NvGlslShaderSpecVersion = 1 - // NvGlslShaderExtensionName as defined in vulkan/vulkan_core.h:6255 + // NvGlslShaderExtensionName as defined in vulkan/vulkan_core.h:10282 NvGlslShaderExtensionName = "VK_NV_glsl_shader" - // ExtDepthRangeUnrestricted as defined in vulkan/vulkan_core.h:6258 + // ExtDepthRangeUnrestricted as defined in vulkan/vulkan_core.h:10285 ExtDepthRangeUnrestricted = 1 - // ExtDepthRangeUnrestrictedSpecVersion as defined in vulkan/vulkan_core.h:6259 + // ExtDepthRangeUnrestrictedSpecVersion as defined in vulkan/vulkan_core.h:10286 ExtDepthRangeUnrestrictedSpecVersion = 1 - // ExtDepthRangeUnrestrictedExtensionName as defined in vulkan/vulkan_core.h:6260 + // ExtDepthRangeUnrestrictedExtensionName as defined in vulkan/vulkan_core.h:10287 ExtDepthRangeUnrestrictedExtensionName = "VK_EXT_depth_range_unrestricted" - // ImgFilterCubic as defined in vulkan/vulkan_core.h:6263 + // ImgFilterCubic as defined in vulkan/vulkan_core.h:10290 ImgFilterCubic = 1 - // ImgFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:6264 + // ImgFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:10291 ImgFilterCubicSpecVersion = 1 - // ImgFilterCubicExtensionName as defined in vulkan/vulkan_core.h:6265 + // ImgFilterCubicExtensionName as defined in vulkan/vulkan_core.h:10292 ImgFilterCubicExtensionName = "VK_IMG_filter_cubic" - // AmdRasterizationOrder as defined in vulkan/vulkan_core.h:6268 + // AmdRasterizationOrder as defined in vulkan/vulkan_core.h:10295 AmdRasterizationOrder = 1 - // AmdRasterizationOrderSpecVersion as defined in vulkan/vulkan_core.h:6269 + // AmdRasterizationOrderSpecVersion as defined in vulkan/vulkan_core.h:10296 AmdRasterizationOrderSpecVersion = 1 - // AmdRasterizationOrderExtensionName as defined in vulkan/vulkan_core.h:6270 + // AmdRasterizationOrderExtensionName as defined in vulkan/vulkan_core.h:10297 AmdRasterizationOrderExtensionName = "VK_AMD_rasterization_order" - // AmdShaderTrinaryMinmax as defined in vulkan/vulkan_core.h:6290 + // AmdShaderTrinaryMinmax as defined in vulkan/vulkan_core.h:10312 AmdShaderTrinaryMinmax = 1 - // AmdShaderTrinaryMinmaxSpecVersion as defined in vulkan/vulkan_core.h:6291 + // AmdShaderTrinaryMinmaxSpecVersion as defined in vulkan/vulkan_core.h:10313 AmdShaderTrinaryMinmaxSpecVersion = 1 - // AmdShaderTrinaryMinmaxExtensionName as defined in vulkan/vulkan_core.h:6292 + // AmdShaderTrinaryMinmaxExtensionName as defined in vulkan/vulkan_core.h:10314 AmdShaderTrinaryMinmaxExtensionName = "VK_AMD_shader_trinary_minmax" - // AmdShaderExplicitVertexParameter as defined in vulkan/vulkan_core.h:6295 + // AmdShaderExplicitVertexParameter as defined in vulkan/vulkan_core.h:10317 AmdShaderExplicitVertexParameter = 1 - // AmdShaderExplicitVertexParameterSpecVersion as defined in vulkan/vulkan_core.h:6296 + // AmdShaderExplicitVertexParameterSpecVersion as defined in vulkan/vulkan_core.h:10318 AmdShaderExplicitVertexParameterSpecVersion = 1 - // AmdShaderExplicitVertexParameterExtensionName as defined in vulkan/vulkan_core.h:6297 + // AmdShaderExplicitVertexParameterExtensionName as defined in vulkan/vulkan_core.h:10319 AmdShaderExplicitVertexParameterExtensionName = "VK_AMD_shader_explicit_vertex_parameter" - // ExtDebugMarker as defined in vulkan/vulkan_core.h:6300 + // ExtDebugMarker as defined in vulkan/vulkan_core.h:10322 ExtDebugMarker = 1 - // ExtDebugMarkerSpecVersion as defined in vulkan/vulkan_core.h:6301 + // ExtDebugMarkerSpecVersion as defined in vulkan/vulkan_core.h:10323 ExtDebugMarkerSpecVersion = 4 - // ExtDebugMarkerExtensionName as defined in vulkan/vulkan_core.h:6302 + // ExtDebugMarkerExtensionName as defined in vulkan/vulkan_core.h:10324 ExtDebugMarkerExtensionName = "VK_EXT_debug_marker" - // AmdGcnShader as defined in vulkan/vulkan_core.h:6357 + // AmdGcnShader as defined in vulkan/vulkan_core.h:10378 AmdGcnShader = 1 - // AmdGcnShaderSpecVersion as defined in vulkan/vulkan_core.h:6358 + // AmdGcnShaderSpecVersion as defined in vulkan/vulkan_core.h:10379 AmdGcnShaderSpecVersion = 1 - // AmdGcnShaderExtensionName as defined in vulkan/vulkan_core.h:6359 + // AmdGcnShaderExtensionName as defined in vulkan/vulkan_core.h:10380 AmdGcnShaderExtensionName = "VK_AMD_gcn_shader" - // NvDedicatedAllocation as defined in vulkan/vulkan_core.h:6362 + // NvDedicatedAllocation as defined in vulkan/vulkan_core.h:10383 NvDedicatedAllocation = 1 - // NvDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:6363 + // NvDedicatedAllocationSpecVersion as defined in vulkan/vulkan_core.h:10384 NvDedicatedAllocationSpecVersion = 1 - // NvDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:6364 + // NvDedicatedAllocationExtensionName as defined in vulkan/vulkan_core.h:10385 NvDedicatedAllocationExtensionName = "VK_NV_dedicated_allocation" - // ExtTransformFeedback as defined in vulkan/vulkan_core.h:6387 + // ExtTransformFeedback as defined in vulkan/vulkan_core.h:10407 ExtTransformFeedback = 1 - // ExtTransformFeedbackSpecVersion as defined in vulkan/vulkan_core.h:6388 + // ExtTransformFeedbackSpecVersion as defined in vulkan/vulkan_core.h:10408 ExtTransformFeedbackSpecVersion = 1 - // ExtTransformFeedbackExtensionName as defined in vulkan/vulkan_core.h:6389 + // ExtTransformFeedbackExtensionName as defined in vulkan/vulkan_core.h:10409 ExtTransformFeedbackExtensionName = "VK_EXT_transform_feedback" - // AmdDrawIndirectCount as defined in vulkan/vulkan_core.h:6476 + // NvxImageViewHandle as defined in vulkan/vulkan_core.h:10565 + NvxImageViewHandle = 1 + // NvxImageViewHandleSpecVersion as defined in vulkan/vulkan_core.h:10566 + NvxImageViewHandleSpecVersion = 2 + // NvxImageViewHandleExtensionName as defined in vulkan/vulkan_core.h:10567 + NvxImageViewHandleExtensionName = "VK_NVX_image_view_handle" + // AmdDrawIndirectCount as defined in vulkan/vulkan_core.h:10598 AmdDrawIndirectCount = 1 - // AmdDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:6477 - AmdDrawIndirectCountSpecVersion = 1 - // AmdDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:6478 + // AmdDrawIndirectCountSpecVersion as defined in vulkan/vulkan_core.h:10599 + AmdDrawIndirectCountSpecVersion = 2 + // AmdDrawIndirectCountExtensionName as defined in vulkan/vulkan_core.h:10600 AmdDrawIndirectCountExtensionName = "VK_AMD_draw_indirect_count" - // AmdNegativeViewportHeight as defined in vulkan/vulkan_core.h:6503 + // AmdNegativeViewportHeight as defined in vulkan/vulkan_core.h:10625 AmdNegativeViewportHeight = 1 - // AmdNegativeViewportHeightSpecVersion as defined in vulkan/vulkan_core.h:6504 + // AmdNegativeViewportHeightSpecVersion as defined in vulkan/vulkan_core.h:10626 AmdNegativeViewportHeightSpecVersion = 1 - // AmdNegativeViewportHeightExtensionName as defined in vulkan/vulkan_core.h:6505 + // AmdNegativeViewportHeightExtensionName as defined in vulkan/vulkan_core.h:10627 AmdNegativeViewportHeightExtensionName = "VK_AMD_negative_viewport_height" - // AmdGpuShaderHalfFloat as defined in vulkan/vulkan_core.h:6508 + // AmdGpuShaderHalfFloat as defined in vulkan/vulkan_core.h:10630 AmdGpuShaderHalfFloat = 1 - // AmdGpuShaderHalfFloatSpecVersion as defined in vulkan/vulkan_core.h:6509 - AmdGpuShaderHalfFloatSpecVersion = 1 - // AmdGpuShaderHalfFloatExtensionName as defined in vulkan/vulkan_core.h:6510 + // AmdGpuShaderHalfFloatSpecVersion as defined in vulkan/vulkan_core.h:10631 + AmdGpuShaderHalfFloatSpecVersion = 2 + // AmdGpuShaderHalfFloatExtensionName as defined in vulkan/vulkan_core.h:10632 AmdGpuShaderHalfFloatExtensionName = "VK_AMD_gpu_shader_half_float" - // AmdShaderBallot as defined in vulkan/vulkan_core.h:6513 + // AmdShaderBallot as defined in vulkan/vulkan_core.h:10635 AmdShaderBallot = 1 - // AmdShaderBallotSpecVersion as defined in vulkan/vulkan_core.h:6514 + // AmdShaderBallotSpecVersion as defined in vulkan/vulkan_core.h:10636 AmdShaderBallotSpecVersion = 1 - // AmdShaderBallotExtensionName as defined in vulkan/vulkan_core.h:6515 + // AmdShaderBallotExtensionName as defined in vulkan/vulkan_core.h:10637 AmdShaderBallotExtensionName = "VK_AMD_shader_ballot" - // AmdTextureGatherBiasLod as defined in vulkan/vulkan_core.h:6518 + // AmdTextureGatherBiasLod as defined in vulkan/vulkan_core.h:10640 AmdTextureGatherBiasLod = 1 - // AmdTextureGatherBiasLodSpecVersion as defined in vulkan/vulkan_core.h:6519 + // AmdTextureGatherBiasLodSpecVersion as defined in vulkan/vulkan_core.h:10641 AmdTextureGatherBiasLodSpecVersion = 1 - // AmdTextureGatherBiasLodExtensionName as defined in vulkan/vulkan_core.h:6520 + // AmdTextureGatherBiasLodExtensionName as defined in vulkan/vulkan_core.h:10642 AmdTextureGatherBiasLodExtensionName = "VK_AMD_texture_gather_bias_lod" - // AmdShaderInfo as defined in vulkan/vulkan_core.h:6530 + // AmdShaderInfo as defined in vulkan/vulkan_core.h:10651 AmdShaderInfo = 1 - // AmdShaderInfoSpecVersion as defined in vulkan/vulkan_core.h:6531 + // AmdShaderInfoSpecVersion as defined in vulkan/vulkan_core.h:10652 AmdShaderInfoSpecVersion = 1 - // AmdShaderInfoExtensionName as defined in vulkan/vulkan_core.h:6532 + // AmdShaderInfoExtensionName as defined in vulkan/vulkan_core.h:10653 AmdShaderInfoExtensionName = "VK_AMD_shader_info" - // AmdShaderImageLoadStoreLod as defined in vulkan/vulkan_core.h:6576 + // AmdShaderImageLoadStoreLod as defined in vulkan/vulkan_core.h:10692 AmdShaderImageLoadStoreLod = 1 - // AmdShaderImageLoadStoreLodSpecVersion as defined in vulkan/vulkan_core.h:6577 + // AmdShaderImageLoadStoreLodSpecVersion as defined in vulkan/vulkan_core.h:10693 AmdShaderImageLoadStoreLodSpecVersion = 1 - // AmdShaderImageLoadStoreLodExtensionName as defined in vulkan/vulkan_core.h:6578 + // AmdShaderImageLoadStoreLodExtensionName as defined in vulkan/vulkan_core.h:10694 AmdShaderImageLoadStoreLodExtensionName = "VK_AMD_shader_image_load_store_lod" - // NvCornerSampledImage as defined in vulkan/vulkan_core.h:6581 + // NvCornerSampledImage as defined in vulkan/vulkan_core.h:10697 NvCornerSampledImage = 1 - // NvCornerSampledImageSpecVersion as defined in vulkan/vulkan_core.h:6582 + // NvCornerSampledImageSpecVersion as defined in vulkan/vulkan_core.h:10698 NvCornerSampledImageSpecVersion = 2 - // NvCornerSampledImageExtensionName as defined in vulkan/vulkan_core.h:6583 + // NvCornerSampledImageExtensionName as defined in vulkan/vulkan_core.h:10699 NvCornerSampledImageExtensionName = "VK_NV_corner_sampled_image" - // ImgFormatPvrtc as defined in vulkan/vulkan_core.h:6593 + // ImgFormatPvrtc as defined in vulkan/vulkan_core.h:10708 ImgFormatPvrtc = 1 - // ImgFormatPvrtcSpecVersion as defined in vulkan/vulkan_core.h:6594 + // ImgFormatPvrtcSpecVersion as defined in vulkan/vulkan_core.h:10709 ImgFormatPvrtcSpecVersion = 1 - // ImgFormatPvrtcExtensionName as defined in vulkan/vulkan_core.h:6595 + // ImgFormatPvrtcExtensionName as defined in vulkan/vulkan_core.h:10710 ImgFormatPvrtcExtensionName = "VK_IMG_format_pvrtc" - // NvExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:6598 + // NvExternalMemoryCapabilities as defined in vulkan/vulkan_core.h:10713 NvExternalMemoryCapabilities = 1 - // NvExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:6599 + // NvExternalMemoryCapabilitiesSpecVersion as defined in vulkan/vulkan_core.h:10714 NvExternalMemoryCapabilitiesSpecVersion = 1 - // NvExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:6600 + // NvExternalMemoryCapabilitiesExtensionName as defined in vulkan/vulkan_core.h:10715 NvExternalMemoryCapabilitiesExtensionName = "VK_NV_external_memory_capabilities" - // NvExternalMemory as defined in vulkan/vulkan_core.h:6642 + // NvExternalMemory as defined in vulkan/vulkan_core.h:10755 NvExternalMemory = 1 - // NvExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:6643 + // NvExternalMemorySpecVersion as defined in vulkan/vulkan_core.h:10756 NvExternalMemorySpecVersion = 1 - // NvExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:6644 + // NvExternalMemoryExtensionName as defined in vulkan/vulkan_core.h:10757 NvExternalMemoryExtensionName = "VK_NV_external_memory" - // ExtValidationFlags as defined in vulkan/vulkan_core.h:6660 + // ExtValidationFlags as defined in vulkan/vulkan_core.h:10772 ExtValidationFlags = 1 - // ExtValidationFlagsSpecVersion as defined in vulkan/vulkan_core.h:6661 - ExtValidationFlagsSpecVersion = 1 - // ExtValidationFlagsExtensionName as defined in vulkan/vulkan_core.h:6662 + // ExtValidationFlagsSpecVersion as defined in vulkan/vulkan_core.h:10773 + ExtValidationFlagsSpecVersion = 2 + // ExtValidationFlagsExtensionName as defined in vulkan/vulkan_core.h:10774 ExtValidationFlagsExtensionName = "VK_EXT_validation_flags" - // ExtShaderSubgroupBallot as defined in vulkan/vulkan_core.h:6683 + // ExtShaderSubgroupBallot as defined in vulkan/vulkan_core.h:10790 ExtShaderSubgroupBallot = 1 - // ExtShaderSubgroupBallotSpecVersion as defined in vulkan/vulkan_core.h:6684 + // ExtShaderSubgroupBallotSpecVersion as defined in vulkan/vulkan_core.h:10791 ExtShaderSubgroupBallotSpecVersion = 1 - // ExtShaderSubgroupBallotExtensionName as defined in vulkan/vulkan_core.h:6685 + // ExtShaderSubgroupBallotExtensionName as defined in vulkan/vulkan_core.h:10792 ExtShaderSubgroupBallotExtensionName = "VK_EXT_shader_subgroup_ballot" - // ExtShaderSubgroupVote as defined in vulkan/vulkan_core.h:6688 + // ExtShaderSubgroupVote as defined in vulkan/vulkan_core.h:10795 ExtShaderSubgroupVote = 1 - // ExtShaderSubgroupVoteSpecVersion as defined in vulkan/vulkan_core.h:6689 + // ExtShaderSubgroupVoteSpecVersion as defined in vulkan/vulkan_core.h:10796 ExtShaderSubgroupVoteSpecVersion = 1 - // ExtShaderSubgroupVoteExtensionName as defined in vulkan/vulkan_core.h:6690 + // ExtShaderSubgroupVoteExtensionName as defined in vulkan/vulkan_core.h:10797 ExtShaderSubgroupVoteExtensionName = "VK_EXT_shader_subgroup_vote" - // ExtAstcDecodeMode as defined in vulkan/vulkan_core.h:6693 + // ExtTextureCompressionAstcHdr as defined in vulkan/vulkan_core.h:10800 + ExtTextureCompressionAstcHdr = 1 + // ExtTextureCompressionAstcHdrSpecVersion as defined in vulkan/vulkan_core.h:10801 + ExtTextureCompressionAstcHdrSpecVersion = 1 + // ExtTextureCompressionAstcHdrExtensionName as defined in vulkan/vulkan_core.h:10802 + ExtTextureCompressionAstcHdrExtensionName = "VK_EXT_texture_compression_astc_hdr" + // ExtAstcDecodeMode as defined in vulkan/vulkan_core.h:10807 ExtAstcDecodeMode = 1 - // ExtAstcDecodeModeSpecVersion as defined in vulkan/vulkan_core.h:6694 + // ExtAstcDecodeModeSpecVersion as defined in vulkan/vulkan_core.h:10808 ExtAstcDecodeModeSpecVersion = 1 - // ExtAstcDecodeModeExtensionName as defined in vulkan/vulkan_core.h:6695 + // ExtAstcDecodeModeExtensionName as defined in vulkan/vulkan_core.h:10809 ExtAstcDecodeModeExtensionName = "VK_EXT_astc_decode_mode" - // ExtConditionalRendering as defined in vulkan/vulkan_core.h:6711 + // ExtPipelineRobustness as defined in vulkan/vulkan_core.h:10824 + ExtPipelineRobustness = 1 + // ExtPipelineRobustnessSpecVersion as defined in vulkan/vulkan_core.h:10825 + ExtPipelineRobustnessSpecVersion = 1 + // ExtPipelineRobustnessExtensionName as defined in vulkan/vulkan_core.h:10826 + ExtPipelineRobustnessExtensionName = "VK_EXT_pipeline_robustness" + // ExtConditionalRendering as defined in vulkan/vulkan_core.h:10869 ExtConditionalRendering = 1 - // ExtConditionalRenderingSpecVersion as defined in vulkan/vulkan_core.h:6712 - ExtConditionalRenderingSpecVersion = 1 - // ExtConditionalRenderingExtensionName as defined in vulkan/vulkan_core.h:6713 + // ExtConditionalRenderingSpecVersion as defined in vulkan/vulkan_core.h:10870 + ExtConditionalRenderingSpecVersion = 2 + // ExtConditionalRenderingExtensionName as defined in vulkan/vulkan_core.h:10871 ExtConditionalRenderingExtensionName = "VK_EXT_conditional_rendering" - // NvxDeviceGeneratedCommands as defined in vulkan/vulkan_core.h:6756 - NvxDeviceGeneratedCommands = 1 - // NvxDeviceGeneratedCommandsSpecVersion as defined in vulkan/vulkan_core.h:6760 - NvxDeviceGeneratedCommandsSpecVersion = 3 - // NvxDeviceGeneratedCommandsExtensionName as defined in vulkan/vulkan_core.h:6761 - NvxDeviceGeneratedCommandsExtensionName = "VK_NVX_device_generated_commands" - // NvClipSpaceWScaling as defined in vulkan/vulkan_core.h:6983 + // NvClipSpaceWScaling as defined in vulkan/vulkan_core.h:10912 NvClipSpaceWScaling = 1 - // NvClipSpaceWScalingSpecVersion as defined in vulkan/vulkan_core.h:6984 + // NvClipSpaceWScalingSpecVersion as defined in vulkan/vulkan_core.h:10913 NvClipSpaceWScalingSpecVersion = 1 - // NvClipSpaceWScalingExtensionName as defined in vulkan/vulkan_core.h:6985 + // NvClipSpaceWScalingExtensionName as defined in vulkan/vulkan_core.h:10914 NvClipSpaceWScalingExtensionName = "VK_NV_clip_space_w_scaling" - // ExtDirectModeDisplay as defined in vulkan/vulkan_core.h:7011 + // ExtDirectModeDisplay as defined in vulkan/vulkan_core.h:10939 ExtDirectModeDisplay = 1 - // ExtDirectModeDisplaySpecVersion as defined in vulkan/vulkan_core.h:7012 + // ExtDirectModeDisplaySpecVersion as defined in vulkan/vulkan_core.h:10940 ExtDirectModeDisplaySpecVersion = 1 - // ExtDirectModeDisplayExtensionName as defined in vulkan/vulkan_core.h:7013 + // ExtDirectModeDisplayExtensionName as defined in vulkan/vulkan_core.h:10941 ExtDirectModeDisplayExtensionName = "VK_EXT_direct_mode_display" - // ExtDisplaySurfaceCounter as defined in vulkan/vulkan_core.h:7023 + // ExtDisplaySurfaceCounter as defined in vulkan/vulkan_core.h:10951 ExtDisplaySurfaceCounter = 1 - // ExtDisplaySurfaceCounterSpecVersion as defined in vulkan/vulkan_core.h:7024 + // ExtDisplaySurfaceCounterSpecVersion as defined in vulkan/vulkan_core.h:10952 ExtDisplaySurfaceCounterSpecVersion = 1 - // ExtDisplaySurfaceCounterExtensionName as defined in vulkan/vulkan_core.h:7025 + // ExtDisplaySurfaceCounterExtensionName as defined in vulkan/vulkan_core.h:10953 ExtDisplaySurfaceCounterExtensionName = "VK_EXT_display_surface_counter" - // ExtDisplayControl as defined in vulkan/vulkan_core.h:7060 + // ExtDisplayControl as defined in vulkan/vulkan_core.h:10987 ExtDisplayControl = 1 - // ExtDisplayControlSpecVersion as defined in vulkan/vulkan_core.h:7061 + // ExtDisplayControlSpecVersion as defined in vulkan/vulkan_core.h:10988 ExtDisplayControlSpecVersion = 1 - // ExtDisplayControlExtensionName as defined in vulkan/vulkan_core.h:7062 + // ExtDisplayControlExtensionName as defined in vulkan/vulkan_core.h:10989 ExtDisplayControlExtensionName = "VK_EXT_display_control" - // GoogleDisplayTiming as defined in vulkan/vulkan_core.h:7147 + // GoogleDisplayTiming as defined in vulkan/vulkan_core.h:11063 GoogleDisplayTiming = 1 - // GoogleDisplayTimingSpecVersion as defined in vulkan/vulkan_core.h:7148 + // GoogleDisplayTimingSpecVersion as defined in vulkan/vulkan_core.h:11064 GoogleDisplayTimingSpecVersion = 1 - // GoogleDisplayTimingExtensionName as defined in vulkan/vulkan_core.h:7149 + // GoogleDisplayTimingExtensionName as defined in vulkan/vulkan_core.h:11065 GoogleDisplayTimingExtensionName = "VK_GOOGLE_display_timing" - // NvSampleMaskOverrideCoverage as defined in vulkan/vulkan_core.h:7192 + // NvSampleMaskOverrideCoverage as defined in vulkan/vulkan_core.h:11107 NvSampleMaskOverrideCoverage = 1 - // NvSampleMaskOverrideCoverageSpecVersion as defined in vulkan/vulkan_core.h:7193 + // NvSampleMaskOverrideCoverageSpecVersion as defined in vulkan/vulkan_core.h:11108 NvSampleMaskOverrideCoverageSpecVersion = 1 - // NvSampleMaskOverrideCoverageExtensionName as defined in vulkan/vulkan_core.h:7194 + // NvSampleMaskOverrideCoverageExtensionName as defined in vulkan/vulkan_core.h:11109 NvSampleMaskOverrideCoverageExtensionName = "VK_NV_sample_mask_override_coverage" - // NvGeometryShaderPassthrough as defined in vulkan/vulkan_core.h:7197 + // NvGeometryShaderPassthrough as defined in vulkan/vulkan_core.h:11112 NvGeometryShaderPassthrough = 1 - // NvGeometryShaderPassthroughSpecVersion as defined in vulkan/vulkan_core.h:7198 + // NvGeometryShaderPassthroughSpecVersion as defined in vulkan/vulkan_core.h:11113 NvGeometryShaderPassthroughSpecVersion = 1 - // NvGeometryShaderPassthroughExtensionName as defined in vulkan/vulkan_core.h:7199 + // NvGeometryShaderPassthroughExtensionName as defined in vulkan/vulkan_core.h:11114 NvGeometryShaderPassthroughExtensionName = "VK_NV_geometry_shader_passthrough" - // NvViewportArray2 as defined in vulkan/vulkan_core.h:7202 + // NvViewportArray2 as defined in vulkan/vulkan_core.h:11117 NvViewportArray2 = 1 - // NvViewportArray2SpecVersion as defined in vulkan/vulkan_core.h:7203 + // NvViewportArray2SpecVersion as defined in vulkan/vulkan_core.h:11118 NvViewportArray2SpecVersion = 1 - // NvViewportArray2ExtensionName as defined in vulkan/vulkan_core.h:7204 + // NvViewportArray2ExtensionName as defined in vulkan/vulkan_core.h:11119 NvViewportArray2ExtensionName = "VK_NV_viewport_array2" - // NvxMultiviewPerViewAttributes as defined in vulkan/vulkan_core.h:7207 + // NvxMultiviewPerViewAttributes as defined in vulkan/vulkan_core.h:11124 NvxMultiviewPerViewAttributes = 1 - // NvxMultiviewPerViewAttributesSpecVersion as defined in vulkan/vulkan_core.h:7208 + // NvxMultiviewPerViewAttributesSpecVersion as defined in vulkan/vulkan_core.h:11125 NvxMultiviewPerViewAttributesSpecVersion = 1 - // NvxMultiviewPerViewAttributesExtensionName as defined in vulkan/vulkan_core.h:7209 + // NvxMultiviewPerViewAttributesExtensionName as defined in vulkan/vulkan_core.h:11126 NvxMultiviewPerViewAttributesExtensionName = "VK_NVX_multiview_per_view_attributes" - // NvViewportSwizzle as defined in vulkan/vulkan_core.h:7219 + // NvViewportSwizzle as defined in vulkan/vulkan_core.h:11135 NvViewportSwizzle = 1 - // NvViewportSwizzleSpecVersion as defined in vulkan/vulkan_core.h:7220 + // NvViewportSwizzleSpecVersion as defined in vulkan/vulkan_core.h:11136 NvViewportSwizzleSpecVersion = 1 - // NvViewportSwizzleExtensionName as defined in vulkan/vulkan_core.h:7221 + // NvViewportSwizzleExtensionName as defined in vulkan/vulkan_core.h:11137 NvViewportSwizzleExtensionName = "VK_NV_viewport_swizzle" - // ExtDiscardRectangles as defined in vulkan/vulkan_core.h:7258 + // ExtDiscardRectangles as defined in vulkan/vulkan_core.h:11168 ExtDiscardRectangles = 1 - // ExtDiscardRectanglesSpecVersion as defined in vulkan/vulkan_core.h:7259 + // ExtDiscardRectanglesSpecVersion as defined in vulkan/vulkan_core.h:11169 ExtDiscardRectanglesSpecVersion = 1 - // ExtDiscardRectanglesExtensionName as defined in vulkan/vulkan_core.h:7260 + // ExtDiscardRectanglesExtensionName as defined in vulkan/vulkan_core.h:11170 ExtDiscardRectanglesExtensionName = "VK_EXT_discard_rectangles" - // ExtConservativeRasterization as defined in vulkan/vulkan_core.h:7300 + // ExtConservativeRasterization as defined in vulkan/vulkan_core.h:11204 ExtConservativeRasterization = 1 - // ExtConservativeRasterizationSpecVersion as defined in vulkan/vulkan_core.h:7301 + // ExtConservativeRasterizationSpecVersion as defined in vulkan/vulkan_core.h:11205 ExtConservativeRasterizationSpecVersion = 1 - // ExtConservativeRasterizationExtensionName as defined in vulkan/vulkan_core.h:7302 + // ExtConservativeRasterizationExtensionName as defined in vulkan/vulkan_core.h:11206 ExtConservativeRasterizationExtensionName = "VK_EXT_conservative_rasterization" - // ExtSwapchainColorspace as defined in vulkan/vulkan_core.h:7341 + // ExtDepthClipEnable as defined in vulkan/vulkan_core.h:11239 + ExtDepthClipEnable = 1 + // ExtDepthClipEnableSpecVersion as defined in vulkan/vulkan_core.h:11240 + ExtDepthClipEnableSpecVersion = 1 + // ExtDepthClipEnableExtensionName as defined in vulkan/vulkan_core.h:11241 + ExtDepthClipEnableExtensionName = "VK_EXT_depth_clip_enable" + // ExtSwapchainColorspace as defined in vulkan/vulkan_core.h:11258 ExtSwapchainColorspace = 1 - // ExtSwapchainColorSpaceSpecVersion as defined in vulkan/vulkan_core.h:7342 - ExtSwapchainColorSpaceSpecVersion = 3 - // ExtSwapchainColorSpaceExtensionName as defined in vulkan/vulkan_core.h:7343 + // ExtSwapchainColorSpaceSpecVersion as defined in vulkan/vulkan_core.h:11259 + ExtSwapchainColorSpaceSpecVersion = 4 + // ExtSwapchainColorSpaceExtensionName as defined in vulkan/vulkan_core.h:11260 ExtSwapchainColorSpaceExtensionName = "VK_EXT_swapchain_colorspace" - // ExtHdrMetadata as defined in vulkan/vulkan_core.h:7346 + // ExtHdrMetadata as defined in vulkan/vulkan_core.h:11263 ExtHdrMetadata = 1 - // ExtHdrMetadataSpecVersion as defined in vulkan/vulkan_core.h:7347 - ExtHdrMetadataSpecVersion = 1 - // ExtHdrMetadataExtensionName as defined in vulkan/vulkan_core.h:7348 + // ExtHdrMetadataSpecVersion as defined in vulkan/vulkan_core.h:11264 + ExtHdrMetadataSpecVersion = 2 + // ExtHdrMetadataExtensionName as defined in vulkan/vulkan_core.h:11265 ExtHdrMetadataExtensionName = "VK_EXT_hdr_metadata" - // ExtExternalMemoryDmaBuf as defined in vulkan/vulkan_core.h:7379 + // ExtExternalMemoryDmaBuf as defined in vulkan/vulkan_core.h:11295 ExtExternalMemoryDmaBuf = 1 - // ExtExternalMemoryDmaBufSpecVersion as defined in vulkan/vulkan_core.h:7380 + // ExtExternalMemoryDmaBufSpecVersion as defined in vulkan/vulkan_core.h:11296 ExtExternalMemoryDmaBufSpecVersion = 1 - // ExtExternalMemoryDmaBufExtensionName as defined in vulkan/vulkan_core.h:7381 + // ExtExternalMemoryDmaBufExtensionName as defined in vulkan/vulkan_core.h:11297 ExtExternalMemoryDmaBufExtensionName = "VK_EXT_external_memory_dma_buf" - // ExtQueueFamilyForeign as defined in vulkan/vulkan_core.h:7384 + // ExtQueueFamilyForeign as defined in vulkan/vulkan_core.h:11300 ExtQueueFamilyForeign = 1 - // ExtQueueFamilyForeignSpecVersion as defined in vulkan/vulkan_core.h:7385 + // ExtQueueFamilyForeignSpecVersion as defined in vulkan/vulkan_core.h:11301 ExtQueueFamilyForeignSpecVersion = 1 - // ExtQueueFamilyForeignExtensionName as defined in vulkan/vulkan_core.h:7386 + // ExtQueueFamilyForeignExtensionName as defined in vulkan/vulkan_core.h:11302 ExtQueueFamilyForeignExtensionName = "VK_EXT_queue_family_foreign" - // QueueFamilyForeign as defined in vulkan/vulkan_core.h:7387 - QueueFamilyForeign = (^uint32(0) - 2) - // ExtDebugUtils as defined in vulkan/vulkan_core.h:7390 + // QueueFamilyForeign as defined in vulkan/vulkan_core.h:11303 + QueueFamilyForeign = (^uint32(2)) + // ExtDebugUtils as defined in vulkan/vulkan_core.h:11306 ExtDebugUtils = 1 - // ExtDebugUtilsSpecVersion as defined in vulkan/vulkan_core.h:7393 - ExtDebugUtilsSpecVersion = 1 - // ExtDebugUtilsExtensionName as defined in vulkan/vulkan_core.h:7394 + // ExtDebugUtilsSpecVersion as defined in vulkan/vulkan_core.h:11308 + ExtDebugUtilsSpecVersion = 2 + // ExtDebugUtilsExtensionName as defined in vulkan/vulkan_core.h:11309 ExtDebugUtilsExtensionName = "VK_EXT_debug_utils" - // ExtSamplerFilterMinmax as defined in vulkan/vulkan_core.h:7534 + // ExtSamplerFilterMinmax as defined in vulkan/vulkan_core.h:11448 ExtSamplerFilterMinmax = 1 - // ExtSamplerFilterMinmaxSpecVersion as defined in vulkan/vulkan_core.h:7535 - ExtSamplerFilterMinmaxSpecVersion = 1 - // ExtSamplerFilterMinmaxExtensionName as defined in vulkan/vulkan_core.h:7536 + // ExtSamplerFilterMinmaxSpecVersion as defined in vulkan/vulkan_core.h:11449 + ExtSamplerFilterMinmaxSpecVersion = 2 + // ExtSamplerFilterMinmaxExtensionName as defined in vulkan/vulkan_core.h:11450 ExtSamplerFilterMinmaxExtensionName = "VK_EXT_sampler_filter_minmax" - // AmdGpuShaderInt16 as defined in vulkan/vulkan_core.h:7564 + // AmdGpuShaderInt16 as defined in vulkan/vulkan_core.h:11459 AmdGpuShaderInt16 = 1 - // AmdGpuShaderInt16SpecVersion as defined in vulkan/vulkan_core.h:7565 - AmdGpuShaderInt16SpecVersion = 1 - // AmdGpuShaderInt16ExtensionName as defined in vulkan/vulkan_core.h:7566 + // AmdGpuShaderInt16SpecVersion as defined in vulkan/vulkan_core.h:11460 + AmdGpuShaderInt16SpecVersion = 2 + // AmdGpuShaderInt16ExtensionName as defined in vulkan/vulkan_core.h:11461 AmdGpuShaderInt16ExtensionName = "VK_AMD_gpu_shader_int16" - // AmdMixedAttachmentSamples as defined in vulkan/vulkan_core.h:7569 + // AmdMixedAttachmentSamples as defined in vulkan/vulkan_core.h:11464 AmdMixedAttachmentSamples = 1 - // AmdMixedAttachmentSamplesSpecVersion as defined in vulkan/vulkan_core.h:7570 + // AmdMixedAttachmentSamplesSpecVersion as defined in vulkan/vulkan_core.h:11465 AmdMixedAttachmentSamplesSpecVersion = 1 - // AmdMixedAttachmentSamplesExtensionName as defined in vulkan/vulkan_core.h:7571 + // AmdMixedAttachmentSamplesExtensionName as defined in vulkan/vulkan_core.h:11466 AmdMixedAttachmentSamplesExtensionName = "VK_AMD_mixed_attachment_samples" - // AmdShaderFragmentMask as defined in vulkan/vulkan_core.h:7574 + // AmdShaderFragmentMask as defined in vulkan/vulkan_core.h:11469 AmdShaderFragmentMask = 1 - // AmdShaderFragmentMaskSpecVersion as defined in vulkan/vulkan_core.h:7575 + // AmdShaderFragmentMaskSpecVersion as defined in vulkan/vulkan_core.h:11470 AmdShaderFragmentMaskSpecVersion = 1 - // AmdShaderFragmentMaskExtensionName as defined in vulkan/vulkan_core.h:7576 + // AmdShaderFragmentMaskExtensionName as defined in vulkan/vulkan_core.h:11471 AmdShaderFragmentMaskExtensionName = "VK_AMD_shader_fragment_mask" - // ExtInlineUniformBlock as defined in vulkan/vulkan_core.h:7579 + // ExtInlineUniformBlock as defined in vulkan/vulkan_core.h:11474 ExtInlineUniformBlock = 1 - // ExtInlineUniformBlockSpecVersion as defined in vulkan/vulkan_core.h:7580 + // ExtInlineUniformBlockSpecVersion as defined in vulkan/vulkan_core.h:11475 ExtInlineUniformBlockSpecVersion = 1 - // ExtInlineUniformBlockExtensionName as defined in vulkan/vulkan_core.h:7581 + // ExtInlineUniformBlockExtensionName as defined in vulkan/vulkan_core.h:11476 ExtInlineUniformBlockExtensionName = "VK_EXT_inline_uniform_block" - // ExtShaderStencilExport as defined in vulkan/vulkan_core.h:7615 + // ExtShaderStencilExport as defined in vulkan/vulkan_core.h:11487 ExtShaderStencilExport = 1 - // ExtShaderStencilExportSpecVersion as defined in vulkan/vulkan_core.h:7616 + // ExtShaderStencilExportSpecVersion as defined in vulkan/vulkan_core.h:11488 ExtShaderStencilExportSpecVersion = 1 - // ExtShaderStencilExportExtensionName as defined in vulkan/vulkan_core.h:7617 + // ExtShaderStencilExportExtensionName as defined in vulkan/vulkan_core.h:11489 ExtShaderStencilExportExtensionName = "VK_EXT_shader_stencil_export" - // ExtSampleLocations as defined in vulkan/vulkan_core.h:7620 + // ExtSampleLocations as defined in vulkan/vulkan_core.h:11492 ExtSampleLocations = 1 - // ExtSampleLocationsSpecVersion as defined in vulkan/vulkan_core.h:7621 + // ExtSampleLocationsSpecVersion as defined in vulkan/vulkan_core.h:11493 ExtSampleLocationsSpecVersion = 1 - // ExtSampleLocationsExtensionName as defined in vulkan/vulkan_core.h:7622 + // ExtSampleLocationsExtensionName as defined in vulkan/vulkan_core.h:11494 ExtSampleLocationsExtensionName = "VK_EXT_sample_locations" - // ExtBlendOperationAdvanced as defined in vulkan/vulkan_core.h:7695 + // ExtBlendOperationAdvanced as defined in vulkan/vulkan_core.h:11566 ExtBlendOperationAdvanced = 1 - // ExtBlendOperationAdvancedSpecVersion as defined in vulkan/vulkan_core.h:7696 + // ExtBlendOperationAdvancedSpecVersion as defined in vulkan/vulkan_core.h:11567 ExtBlendOperationAdvancedSpecVersion = 2 - // ExtBlendOperationAdvancedExtensionName as defined in vulkan/vulkan_core.h:7697 + // ExtBlendOperationAdvancedExtensionName as defined in vulkan/vulkan_core.h:11568 ExtBlendOperationAdvancedExtensionName = "VK_EXT_blend_operation_advanced" - // NvFragmentCoverageToColor as defined in vulkan/vulkan_core.h:7737 + // NvFragmentCoverageToColor as defined in vulkan/vulkan_core.h:11603 NvFragmentCoverageToColor = 1 - // NvFragmentCoverageToColorSpecVersion as defined in vulkan/vulkan_core.h:7738 + // NvFragmentCoverageToColorSpecVersion as defined in vulkan/vulkan_core.h:11604 NvFragmentCoverageToColorSpecVersion = 1 - // NvFragmentCoverageToColorExtensionName as defined in vulkan/vulkan_core.h:7739 + // NvFragmentCoverageToColorExtensionName as defined in vulkan/vulkan_core.h:11605 NvFragmentCoverageToColorExtensionName = "VK_NV_fragment_coverage_to_color" - // NvFramebufferMixedSamples as defined in vulkan/vulkan_core.h:7753 + // NvFramebufferMixedSamples as defined in vulkan/vulkan_core.h:11617 NvFramebufferMixedSamples = 1 - // NvFramebufferMixedSamplesSpecVersion as defined in vulkan/vulkan_core.h:7754 + // NvFramebufferMixedSamplesSpecVersion as defined in vulkan/vulkan_core.h:11618 NvFramebufferMixedSamplesSpecVersion = 1 - // NvFramebufferMixedSamplesExtensionName as defined in vulkan/vulkan_core.h:7755 + // NvFramebufferMixedSamplesExtensionName as defined in vulkan/vulkan_core.h:11619 NvFramebufferMixedSamplesExtensionName = "VK_NV_framebuffer_mixed_samples" - // NvFillRectangle as defined in vulkan/vulkan_core.h:7783 + // NvFillRectangle as defined in vulkan/vulkan_core.h:11641 NvFillRectangle = 1 - // NvFillRectangleSpecVersion as defined in vulkan/vulkan_core.h:7784 + // NvFillRectangleSpecVersion as defined in vulkan/vulkan_core.h:11642 NvFillRectangleSpecVersion = 1 - // NvFillRectangleExtensionName as defined in vulkan/vulkan_core.h:7785 + // NvFillRectangleExtensionName as defined in vulkan/vulkan_core.h:11643 NvFillRectangleExtensionName = "VK_NV_fill_rectangle" - // ExtPostDepthCoverage as defined in vulkan/vulkan_core.h:7788 + // NvShaderSmBuiltins as defined in vulkan/vulkan_core.h:11646 + NvShaderSmBuiltins = 1 + // NvShaderSmBuiltinsSpecVersion as defined in vulkan/vulkan_core.h:11647 + NvShaderSmBuiltinsSpecVersion = 1 + // NvShaderSmBuiltinsExtensionName as defined in vulkan/vulkan_core.h:11648 + NvShaderSmBuiltinsExtensionName = "VK_NV_shader_sm_builtins" + // ExtPostDepthCoverage as defined in vulkan/vulkan_core.h:11664 ExtPostDepthCoverage = 1 - // ExtPostDepthCoverageSpecVersion as defined in vulkan/vulkan_core.h:7789 + // ExtPostDepthCoverageSpecVersion as defined in vulkan/vulkan_core.h:11665 ExtPostDepthCoverageSpecVersion = 1 - // ExtPostDepthCoverageExtensionName as defined in vulkan/vulkan_core.h:7790 + // ExtPostDepthCoverageExtensionName as defined in vulkan/vulkan_core.h:11666 ExtPostDepthCoverageExtensionName = "VK_EXT_post_depth_coverage" - // ExtImageDrmFormatModifier as defined in vulkan/vulkan_core.h:7793 + // ExtImageDrmFormatModifier as defined in vulkan/vulkan_core.h:11669 ExtImageDrmFormatModifier = 1 - // ExtExtension159SpecVersion as defined in vulkan/vulkan_core.h:7794 - ExtExtension159SpecVersion = 0 - // ExtExtension159ExtensionName as defined in vulkan/vulkan_core.h:7795 - ExtExtension159ExtensionName = "VK_EXT_extension_159" - // ExtImageDrmFormatModifierSpecVersion as defined in vulkan/vulkan_core.h:7796 - ExtImageDrmFormatModifierSpecVersion = 1 - // ExtImageDrmFormatModifierExtensionName as defined in vulkan/vulkan_core.h:7797 + // ExtImageDrmFormatModifierSpecVersion as defined in vulkan/vulkan_core.h:11670 + ExtImageDrmFormatModifierSpecVersion = 2 + // ExtImageDrmFormatModifierExtensionName as defined in vulkan/vulkan_core.h:11671 ExtImageDrmFormatModifierExtensionName = "VK_EXT_image_drm_format_modifier" - // ExtValidationCache as defined in vulkan/vulkan_core.h:7852 + // ExtValidationCache as defined in vulkan/vulkan_core.h:11738 ExtValidationCache = 1 - // ExtValidationCacheSpecVersion as defined in vulkan/vulkan_core.h:7855 + // ExtValidationCacheSpecVersion as defined in vulkan/vulkan_core.h:11740 ExtValidationCacheSpecVersion = 1 - // ExtValidationCacheExtensionName as defined in vulkan/vulkan_core.h:7856 + // ExtValidationCacheExtensionName as defined in vulkan/vulkan_core.h:11741 ExtValidationCacheExtensionName = "VK_EXT_validation_cache" - // ExtDescriptorIndexing as defined in vulkan/vulkan_core.h:7914 + // ExtDescriptorIndexing as defined in vulkan/vulkan_core.h:11793 ExtDescriptorIndexing = 1 - // ExtDescriptorIndexingSpecVersion as defined in vulkan/vulkan_core.h:7915 + // ExtDescriptorIndexingSpecVersion as defined in vulkan/vulkan_core.h:11794 ExtDescriptorIndexingSpecVersion = 2 - // ExtDescriptorIndexingExtensionName as defined in vulkan/vulkan_core.h:7916 + // ExtDescriptorIndexingExtensionName as defined in vulkan/vulkan_core.h:11795 ExtDescriptorIndexingExtensionName = "VK_EXT_descriptor_indexing" - // ExtShaderViewportIndexLayer as defined in vulkan/vulkan_core.h:8003 + // ExtShaderViewportIndexLayer as defined in vulkan/vulkan_core.h:11812 ExtShaderViewportIndexLayer = 1 - // ExtShaderViewportIndexLayerSpecVersion as defined in vulkan/vulkan_core.h:8004 + // ExtShaderViewportIndexLayerSpecVersion as defined in vulkan/vulkan_core.h:11813 ExtShaderViewportIndexLayerSpecVersion = 1 - // ExtShaderViewportIndexLayerExtensionName as defined in vulkan/vulkan_core.h:8005 + // ExtShaderViewportIndexLayerExtensionName as defined in vulkan/vulkan_core.h:11814 ExtShaderViewportIndexLayerExtensionName = "VK_EXT_shader_viewport_index_layer" - // NvShadingRateImage as defined in vulkan/vulkan_core.h:8008 + // NvShadingRateImage as defined in vulkan/vulkan_core.h:11817 NvShadingRateImage = 1 - // NvShadingRateImageSpecVersion as defined in vulkan/vulkan_core.h:8009 + // NvShadingRateImageSpecVersion as defined in vulkan/vulkan_core.h:11818 NvShadingRateImageSpecVersion = 3 - // NvShadingRateImageExtensionName as defined in vulkan/vulkan_core.h:8010 + // NvShadingRateImageExtensionName as defined in vulkan/vulkan_core.h:11819 NvShadingRateImageExtensionName = "VK_NV_shading_rate_image" - // NvxRaytracing as defined in vulkan/vulkan_core.h:8116 - NvxRaytracing = 1 - // NvxRaytracingSpecVersion as defined in vulkan/vulkan_core.h:8119 - NvxRaytracingSpecVersion = 1 - // NvxRaytracingExtensionName as defined in vulkan/vulkan_core.h:8120 - NvxRaytracingExtensionName = "VK_NVX_raytracing" - // NvRepresentativeFragmentTest as defined in vulkan/vulkan_core.h:8381 + // NvRepresentativeFragmentTest as defined in vulkan/vulkan_core.h:12294 NvRepresentativeFragmentTest = 1 - // NvRepresentativeFragmentTestSpecVersion as defined in vulkan/vulkan_core.h:8382 - NvRepresentativeFragmentTestSpecVersion = 1 - // NvRepresentativeFragmentTestExtensionName as defined in vulkan/vulkan_core.h:8383 + // NvRepresentativeFragmentTestSpecVersion as defined in vulkan/vulkan_core.h:12295 + NvRepresentativeFragmentTestSpecVersion = 2 + // NvRepresentativeFragmentTestExtensionName as defined in vulkan/vulkan_core.h:12296 NvRepresentativeFragmentTestExtensionName = "VK_NV_representative_fragment_test" - // ExtGlobalPriority as defined in vulkan/vulkan_core.h:8399 + // ExtFilterCubic as defined in vulkan/vulkan_core.h:12311 + ExtFilterCubic = 1 + // ExtFilterCubicSpecVersion as defined in vulkan/vulkan_core.h:12312 + ExtFilterCubicSpecVersion = 3 + // ExtFilterCubicExtensionName as defined in vulkan/vulkan_core.h:12313 + ExtFilterCubicExtensionName = "VK_EXT_filter_cubic" + // QcomRenderPassShaderResolve as defined in vulkan/vulkan_core.h:12329 + QcomRenderPassShaderResolve = 1 + // QcomRenderPassShaderResolveSpecVersion as defined in vulkan/vulkan_core.h:12330 + QcomRenderPassShaderResolveSpecVersion = 4 + // QcomRenderPassShaderResolveExtensionName as defined in vulkan/vulkan_core.h:12331 + QcomRenderPassShaderResolveExtensionName = "VK_QCOM_render_pass_shader_resolve" + // ExtGlobalPriority as defined in vulkan/vulkan_core.h:12334 ExtGlobalPriority = 1 - // ExtGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:8400 + // ExtGlobalPrioritySpecVersion as defined in vulkan/vulkan_core.h:12335 ExtGlobalPrioritySpecVersion = 2 - // ExtGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:8401 + // ExtGlobalPriorityExtensionName as defined in vulkan/vulkan_core.h:12336 ExtGlobalPriorityExtensionName = "VK_EXT_global_priority" - // ExtExternalMemoryHost as defined in vulkan/vulkan_core.h:8423 + // ExtExternalMemoryHost as defined in vulkan/vulkan_core.h:12343 ExtExternalMemoryHost = 1 - // ExtExternalMemoryHostSpecVersion as defined in vulkan/vulkan_core.h:8424 + // ExtExternalMemoryHostSpecVersion as defined in vulkan/vulkan_core.h:12344 ExtExternalMemoryHostSpecVersion = 1 - // ExtExternalMemoryHostExtensionName as defined in vulkan/vulkan_core.h:8425 + // ExtExternalMemoryHostExtensionName as defined in vulkan/vulkan_core.h:12345 ExtExternalMemoryHostExtensionName = "VK_EXT_external_memory_host" - // AmdBufferMarker as defined in vulkan/vulkan_core.h:8457 + // AmdBufferMarker as defined in vulkan/vulkan_core.h:12376 AmdBufferMarker = 1 - // AmdBufferMarkerSpecVersion as defined in vulkan/vulkan_core.h:8458 + // AmdBufferMarkerSpecVersion as defined in vulkan/vulkan_core.h:12377 AmdBufferMarkerSpecVersion = 1 - // AmdBufferMarkerExtensionName as defined in vulkan/vulkan_core.h:8459 + // AmdBufferMarkerExtensionName as defined in vulkan/vulkan_core.h:12378 AmdBufferMarkerExtensionName = "VK_AMD_buffer_marker" - // ExtCalibratedTimestamps as defined in vulkan/vulkan_core.h:8472 + // AmdPipelineCompilerControl as defined in vulkan/vulkan_core.h:12391 + AmdPipelineCompilerControl = 1 + // AmdPipelineCompilerControlSpecVersion as defined in vulkan/vulkan_core.h:12392 + AmdPipelineCompilerControlSpecVersion = 1 + // AmdPipelineCompilerControlExtensionName as defined in vulkan/vulkan_core.h:12393 + AmdPipelineCompilerControlExtensionName = "VK_AMD_pipeline_compiler_control" + // ExtCalibratedTimestamps as defined in vulkan/vulkan_core.h:12407 ExtCalibratedTimestamps = 1 - // ExtCalibratedTimestampsSpecVersion as defined in vulkan/vulkan_core.h:8473 - ExtCalibratedTimestampsSpecVersion = 1 - // ExtCalibratedTimestampsExtensionName as defined in vulkan/vulkan_core.h:8474 + // ExtCalibratedTimestampsSpecVersion as defined in vulkan/vulkan_core.h:12408 + ExtCalibratedTimestampsSpecVersion = 2 + // ExtCalibratedTimestampsExtensionName as defined in vulkan/vulkan_core.h:12409 ExtCalibratedTimestampsExtensionName = "VK_EXT_calibrated_timestamps" - // AmdShaderCoreProperties as defined in vulkan/vulkan_core.h:8512 + // AmdShaderCoreProperties as defined in vulkan/vulkan_core.h:12442 AmdShaderCoreProperties = 1 - // AmdShaderCorePropertiesSpecVersion as defined in vulkan/vulkan_core.h:8513 - AmdShaderCorePropertiesSpecVersion = 1 - // AmdShaderCorePropertiesExtensionName as defined in vulkan/vulkan_core.h:8514 + // AmdShaderCorePropertiesSpecVersion as defined in vulkan/vulkan_core.h:12443 + AmdShaderCorePropertiesSpecVersion = 2 + // AmdShaderCorePropertiesExtensionName as defined in vulkan/vulkan_core.h:12444 AmdShaderCorePropertiesExtensionName = "VK_AMD_shader_core_properties" - // ExtVertexAttributeDivisor as defined in vulkan/vulkan_core.h:8537 + // AmdMemoryOverallocationBehavior as defined in vulkan/vulkan_core.h:12466 + AmdMemoryOverallocationBehavior = 1 + // AmdMemoryOverallocationBehaviorSpecVersion as defined in vulkan/vulkan_core.h:12467 + AmdMemoryOverallocationBehaviorSpecVersion = 1 + // AmdMemoryOverallocationBehaviorExtensionName as defined in vulkan/vulkan_core.h:12468 + AmdMemoryOverallocationBehaviorExtensionName = "VK_AMD_memory_overallocation_behavior" + // ExtVertexAttributeDivisor as defined in vulkan/vulkan_core.h:12484 ExtVertexAttributeDivisor = 1 - // ExtVertexAttributeDivisorSpecVersion as defined in vulkan/vulkan_core.h:8538 + // ExtVertexAttributeDivisorSpecVersion as defined in vulkan/vulkan_core.h:12485 ExtVertexAttributeDivisorSpecVersion = 3 - // ExtVertexAttributeDivisorExtensionName as defined in vulkan/vulkan_core.h:8539 + // ExtVertexAttributeDivisorExtensionName as defined in vulkan/vulkan_core.h:12486 ExtVertexAttributeDivisorExtensionName = "VK_EXT_vertex_attribute_divisor" - // NvShaderSubgroupPartitioned as defined in vulkan/vulkan_core.h:8568 + // ExtPipelineCreationFeedback as defined in vulkan/vulkan_core.h:12514 + ExtPipelineCreationFeedback = 1 + // ExtPipelineCreationFeedbackSpecVersion as defined in vulkan/vulkan_core.h:12515 + ExtPipelineCreationFeedbackSpecVersion = 1 + // ExtPipelineCreationFeedbackExtensionName as defined in vulkan/vulkan_core.h:12516 + ExtPipelineCreationFeedbackExtensionName = "VK_EXT_pipeline_creation_feedback" + // NvShaderSubgroupPartitioned as defined in vulkan/vulkan_core.h:12527 NvShaderSubgroupPartitioned = 1 - // NvShaderSubgroupPartitionedSpecVersion as defined in vulkan/vulkan_core.h:8569 + // NvShaderSubgroupPartitionedSpecVersion as defined in vulkan/vulkan_core.h:12528 NvShaderSubgroupPartitionedSpecVersion = 1 - // NvShaderSubgroupPartitionedExtensionName as defined in vulkan/vulkan_core.h:8570 + // NvShaderSubgroupPartitionedExtensionName as defined in vulkan/vulkan_core.h:12529 NvShaderSubgroupPartitionedExtensionName = "VK_NV_shader_subgroup_partitioned" - // NvComputeShaderDerivatives as defined in vulkan/vulkan_core.h:8573 + // NvComputeShaderDerivatives as defined in vulkan/vulkan_core.h:12532 NvComputeShaderDerivatives = 1 - // NvComputeShaderDerivativesSpecVersion as defined in vulkan/vulkan_core.h:8574 + // NvComputeShaderDerivativesSpecVersion as defined in vulkan/vulkan_core.h:12533 NvComputeShaderDerivativesSpecVersion = 1 - // NvComputeShaderDerivativesExtensionName as defined in vulkan/vulkan_core.h:8575 + // NvComputeShaderDerivativesExtensionName as defined in vulkan/vulkan_core.h:12534 NvComputeShaderDerivativesExtensionName = "VK_NV_compute_shader_derivatives" - // NvMeshShader as defined in vulkan/vulkan_core.h:8586 + // NvMeshShader as defined in vulkan/vulkan_core.h:12544 NvMeshShader = 1 - // NvMeshShaderSpecVersion as defined in vulkan/vulkan_core.h:8587 + // NvMeshShaderSpecVersion as defined in vulkan/vulkan_core.h:12545 NvMeshShaderSpecVersion = 1 - // NvMeshShaderExtensionName as defined in vulkan/vulkan_core.h:8588 + // NvMeshShaderExtensionName as defined in vulkan/vulkan_core.h:12546 NvMeshShaderExtensionName = "VK_NV_mesh_shader" - // NvFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:8648 + // NvFragmentShaderBarycentric as defined in vulkan/vulkan_core.h:12605 NvFragmentShaderBarycentric = 1 - // NvFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:8649 + // NvFragmentShaderBarycentricSpecVersion as defined in vulkan/vulkan_core.h:12606 NvFragmentShaderBarycentricSpecVersion = 1 - // NvFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:8650 + // NvFragmentShaderBarycentricExtensionName as defined in vulkan/vulkan_core.h:12607 NvFragmentShaderBarycentricExtensionName = "VK_NV_fragment_shader_barycentric" - // NvShaderImageFootprint as defined in vulkan/vulkan_core.h:8660 + // NvShaderImageFootprint as defined in vulkan/vulkan_core.h:12612 NvShaderImageFootprint = 1 - // NvShaderImageFootprintSpecVersion as defined in vulkan/vulkan_core.h:8661 - NvShaderImageFootprintSpecVersion = 1 - // NvShaderImageFootprintExtensionName as defined in vulkan/vulkan_core.h:8662 + // NvShaderImageFootprintSpecVersion as defined in vulkan/vulkan_core.h:12613 + NvShaderImageFootprintSpecVersion = 2 + // NvShaderImageFootprintExtensionName as defined in vulkan/vulkan_core.h:12614 NvShaderImageFootprintExtensionName = "VK_NV_shader_image_footprint" - // NvScissorExclusive as defined in vulkan/vulkan_core.h:8672 + // NvScissorExclusive as defined in vulkan/vulkan_core.h:12623 NvScissorExclusive = 1 - // NvScissorExclusiveSpecVersion as defined in vulkan/vulkan_core.h:8673 + // NvScissorExclusiveSpecVersion as defined in vulkan/vulkan_core.h:12624 NvScissorExclusiveSpecVersion = 1 - // NvScissorExclusiveExtensionName as defined in vulkan/vulkan_core.h:8674 + // NvScissorExclusiveExtensionName as defined in vulkan/vulkan_core.h:12625 NvScissorExclusiveExtensionName = "VK_NV_scissor_exclusive" - // NvDeviceDiagnosticCheckpoints as defined in vulkan/vulkan_core.h:8700 + // NvDeviceDiagnosticCheckpoints as defined in vulkan/vulkan_core.h:12650 NvDeviceDiagnosticCheckpoints = 1 - // NvDeviceDiagnosticCheckpointsSpecVersion as defined in vulkan/vulkan_core.h:8701 + // NvDeviceDiagnosticCheckpointsSpecVersion as defined in vulkan/vulkan_core.h:12651 NvDeviceDiagnosticCheckpointsSpecVersion = 2 - // NvDeviceDiagnosticCheckpointsExtensionName as defined in vulkan/vulkan_core.h:8702 + // NvDeviceDiagnosticCheckpointsExtensionName as defined in vulkan/vulkan_core.h:12652 NvDeviceDiagnosticCheckpointsExtensionName = "VK_NV_device_diagnostic_checkpoints" - // ExtPciBusInfo as defined in vulkan/vulkan_core.h:8732 + // IntelShaderIntegerFunctions2 as defined in vulkan/vulkan_core.h:12681 + IntelShaderIntegerFunctions2 = 1 + // IntelShaderIntegerFunctions2SpecVersion as defined in vulkan/vulkan_core.h:12682 + IntelShaderIntegerFunctions2SpecVersion = 1 + // IntelShaderIntegerFunctions2ExtensionName as defined in vulkan/vulkan_core.h:12683 + IntelShaderIntegerFunctions2ExtensionName = "VK_INTEL_shader_integer_functions2" + // IntelPerformanceQuery as defined in vulkan/vulkan_core.h:12692 + IntelPerformanceQuery = 1 + // IntelPerformanceQuerySpecVersion as defined in vulkan/vulkan_core.h:12694 + IntelPerformanceQuerySpecVersion = 2 + // IntelPerformanceQueryExtensionName as defined in vulkan/vulkan_core.h:12695 + IntelPerformanceQueryExtensionName = "VK_INTEL_performance_query" + // ExtPciBusInfo as defined in vulkan/vulkan_core.h:12830 ExtPciBusInfo = 1 - // ExtPciBusInfoSpecVersion as defined in vulkan/vulkan_core.h:8733 - ExtPciBusInfoSpecVersion = 1 - // ExtPciBusInfoExtensionName as defined in vulkan/vulkan_core.h:8734 + // ExtPciBusInfoSpecVersion as defined in vulkan/vulkan_core.h:12831 + ExtPciBusInfoSpecVersion = 2 + // ExtPciBusInfoExtensionName as defined in vulkan/vulkan_core.h:12832 ExtPciBusInfoExtensionName = "VK_EXT_pci_bus_info" - // GoogleHlslFunctionality1 as defined in vulkan/vulkan_core.h:8747 + // AmdDisplayNativeHdr as defined in vulkan/vulkan_core.h:12844 + AmdDisplayNativeHdr = 1 + // AmdDisplayNativeHdrSpecVersion as defined in vulkan/vulkan_core.h:12845 + AmdDisplayNativeHdrSpecVersion = 1 + // AmdDisplayNativeHdrExtensionName as defined in vulkan/vulkan_core.h:12846 + AmdDisplayNativeHdrExtensionName = "VK_AMD_display_native_hdr" + // ExtFragmentDensityMap as defined in vulkan/vulkan_core.h:12869 + ExtFragmentDensityMap = 1 + // ExtFragmentDensityMapSpecVersion as defined in vulkan/vulkan_core.h:12870 + ExtFragmentDensityMapSpecVersion = 2 + // ExtFragmentDensityMapExtensionName as defined in vulkan/vulkan_core.h:12871 + ExtFragmentDensityMapExtensionName = "VK_EXT_fragment_density_map" + // ExtScalarBlockLayout as defined in vulkan/vulkan_core.h:12896 + ExtScalarBlockLayout = 1 + // ExtScalarBlockLayoutSpecVersion as defined in vulkan/vulkan_core.h:12897 + ExtScalarBlockLayoutSpecVersion = 1 + // ExtScalarBlockLayoutExtensionName as defined in vulkan/vulkan_core.h:12898 + ExtScalarBlockLayoutExtensionName = "VK_EXT_scalar_block_layout" + // GoogleHlslFunctionality1 as defined in vulkan/vulkan_core.h:12903 GoogleHlslFunctionality1 = 1 - // GoogleHlslFunctionality1SpecVersion as defined in vulkan/vulkan_core.h:8748 - GoogleHlslFunctionality1SpecVersion = 0 - // GoogleHlslFunctionality1ExtensionName as defined in vulkan/vulkan_core.h:8749 + // GoogleHlslFunctionality1SpecVersion as defined in vulkan/vulkan_core.h:12904 + GoogleHlslFunctionality1SpecVersion = 1 + // GoogleHlslFunctionality1ExtensionName as defined in vulkan/vulkan_core.h:12905 GoogleHlslFunctionality1ExtensionName = "VK_GOOGLE_hlsl_functionality1" - // GoogleDecorateString as defined in vulkan/vulkan_core.h:8752 + // GoogleDecorateString as defined in vulkan/vulkan_core.h:12910 GoogleDecorateString = 1 - // GoogleDecorateStringSpecVersion as defined in vulkan/vulkan_core.h:8753 - GoogleDecorateStringSpecVersion = 0 - // GoogleDecorateStringExtensionName as defined in vulkan/vulkan_core.h:8754 + // GoogleDecorateStringSpecVersion as defined in vulkan/vulkan_core.h:12911 + GoogleDecorateStringSpecVersion = 1 + // GoogleDecorateStringExtensionName as defined in vulkan/vulkan_core.h:12912 GoogleDecorateStringExtensionName = "VK_GOOGLE_decorate_string" -) - -// PipelineCacheHeaderVersion as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheHeaderVersion.html -type PipelineCacheHeaderVersion int32 - -// PipelineCacheHeaderVersion enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheHeaderVersion.html -const ( - PipelineCacheHeaderVersionOne PipelineCacheHeaderVersion = 1 - PipelineCacheHeaderVersionBeginRange PipelineCacheHeaderVersion = 1 - PipelineCacheHeaderVersionEndRange PipelineCacheHeaderVersion = 1 - PipelineCacheHeaderVersionRangeSize PipelineCacheHeaderVersion = 1 - PipelineCacheHeaderVersionMaxEnum PipelineCacheHeaderVersion = 2147483647 + // ExtSubgroupSizeControl as defined in vulkan/vulkan_core.h:12915 + ExtSubgroupSizeControl = 1 + // ExtSubgroupSizeControlSpecVersion as defined in vulkan/vulkan_core.h:12916 + ExtSubgroupSizeControlSpecVersion = 2 + // ExtSubgroupSizeControlExtensionName as defined in vulkan/vulkan_core.h:12917 + ExtSubgroupSizeControlExtensionName = "VK_EXT_subgroup_size_control" + // AmdShaderCoreProperties2 as defined in vulkan/vulkan_core.h:12926 + AmdShaderCoreProperties2 = 1 + // AmdShaderCoreProperties2SpecVersion as defined in vulkan/vulkan_core.h:12927 + AmdShaderCoreProperties2SpecVersion = 1 + // AmdShaderCoreProperties2ExtensionName as defined in vulkan/vulkan_core.h:12928 + AmdShaderCoreProperties2ExtensionName = "VK_AMD_shader_core_properties2" + // AmdDeviceCoherentMemory as defined in vulkan/vulkan_core.h:12943 + AmdDeviceCoherentMemory = 1 + // AmdDeviceCoherentMemorySpecVersion as defined in vulkan/vulkan_core.h:12944 + AmdDeviceCoherentMemorySpecVersion = 1 + // AmdDeviceCoherentMemoryExtensionName as defined in vulkan/vulkan_core.h:12945 + AmdDeviceCoherentMemoryExtensionName = "VK_AMD_device_coherent_memory" + // ExtShaderImageAtomicInt64 as defined in vulkan/vulkan_core.h:12954 + ExtShaderImageAtomicInt64 = 1 + // ExtShaderImageAtomicInt64SpecVersion as defined in vulkan/vulkan_core.h:12955 + ExtShaderImageAtomicInt64SpecVersion = 1 + // ExtShaderImageAtomicInt64ExtensionName as defined in vulkan/vulkan_core.h:12956 + ExtShaderImageAtomicInt64ExtensionName = "VK_EXT_shader_image_atomic_int64" + // ExtMemoryBudget as defined in vulkan/vulkan_core.h:12966 + ExtMemoryBudget = 1 + // ExtMemoryBudgetSpecVersion as defined in vulkan/vulkan_core.h:12967 + ExtMemoryBudgetSpecVersion = 1 + // ExtMemoryBudgetExtensionName as defined in vulkan/vulkan_core.h:12968 + ExtMemoryBudgetExtensionName = "VK_EXT_memory_budget" + // ExtMemoryPriority as defined in vulkan/vulkan_core.h:12978 + ExtMemoryPriority = 1 + // ExtMemoryPrioritySpecVersion as defined in vulkan/vulkan_core.h:12979 + ExtMemoryPrioritySpecVersion = 1 + // ExtMemoryPriorityExtensionName as defined in vulkan/vulkan_core.h:12980 + ExtMemoryPriorityExtensionName = "VK_EXT_memory_priority" + // NvDedicatedAllocationImageAliasing as defined in vulkan/vulkan_core.h:12995 + NvDedicatedAllocationImageAliasing = 1 + // NvDedicatedAllocationImageAliasingSpecVersion as defined in vulkan/vulkan_core.h:12996 + NvDedicatedAllocationImageAliasingSpecVersion = 1 + // NvDedicatedAllocationImageAliasingExtensionName as defined in vulkan/vulkan_core.h:12997 + NvDedicatedAllocationImageAliasingExtensionName = "VK_NV_dedicated_allocation_image_aliasing" + // ExtBufferDeviceAddress as defined in vulkan/vulkan_core.h:13006 + ExtBufferDeviceAddress = 1 + // ExtBufferDeviceAddressSpecVersion as defined in vulkan/vulkan_core.h:13007 + ExtBufferDeviceAddressSpecVersion = 2 + // ExtBufferDeviceAddressExtensionName as defined in vulkan/vulkan_core.h:13008 + ExtBufferDeviceAddressExtensionName = "VK_EXT_buffer_device_address" + // ExtToolingInfo as defined in vulkan/vulkan_core.h:13036 + ExtToolingInfo = 1 + // ExtToolingInfoSpecVersion as defined in vulkan/vulkan_core.h:13037 + ExtToolingInfoSpecVersion = 1 + // ExtToolingInfoExtensionName as defined in vulkan/vulkan_core.h:13038 + ExtToolingInfoExtensionName = "VK_EXT_tooling_info" + // ExtSeparateStencilUsage as defined in vulkan/vulkan_core.h:13055 + ExtSeparateStencilUsage = 1 + // ExtSeparateStencilUsageSpecVersion as defined in vulkan/vulkan_core.h:13056 + ExtSeparateStencilUsageSpecVersion = 1 + // ExtSeparateStencilUsageExtensionName as defined in vulkan/vulkan_core.h:13057 + ExtSeparateStencilUsageExtensionName = "VK_EXT_separate_stencil_usage" + // ExtValidationFeatures as defined in vulkan/vulkan_core.h:13062 + ExtValidationFeatures = 1 + // ExtValidationFeaturesSpecVersion as defined in vulkan/vulkan_core.h:13063 + ExtValidationFeaturesSpecVersion = 5 + // ExtValidationFeaturesExtensionName as defined in vulkan/vulkan_core.h:13064 + ExtValidationFeaturesExtensionName = "VK_EXT_validation_features" + // NvCooperativeMatrix as defined in vulkan/vulkan_core.h:13097 + NvCooperativeMatrix = 1 + // NvCooperativeMatrixSpecVersion as defined in vulkan/vulkan_core.h:13098 + NvCooperativeMatrixSpecVersion = 1 + // NvCooperativeMatrixExtensionName as defined in vulkan/vulkan_core.h:13099 + NvCooperativeMatrixExtensionName = "VK_NV_cooperative_matrix" + // NvCoverageReductionMode as defined in vulkan/vulkan_core.h:13159 + NvCoverageReductionMode = 1 + // NvCoverageReductionModeSpecVersion as defined in vulkan/vulkan_core.h:13160 + NvCoverageReductionModeSpecVersion = 1 + // NvCoverageReductionModeExtensionName as defined in vulkan/vulkan_core.h:13161 + NvCoverageReductionModeExtensionName = "VK_NV_coverage_reduction_mode" + // ExtFragmentShaderInterlock as defined in vulkan/vulkan_core.h:13201 + ExtFragmentShaderInterlock = 1 + // ExtFragmentShaderInterlockSpecVersion as defined in vulkan/vulkan_core.h:13202 + ExtFragmentShaderInterlockSpecVersion = 1 + // ExtFragmentShaderInterlockExtensionName as defined in vulkan/vulkan_core.h:13203 + ExtFragmentShaderInterlockExtensionName = "VK_EXT_fragment_shader_interlock" + // ExtYcbcrImageArrays as defined in vulkan/vulkan_core.h:13214 + ExtYcbcrImageArrays = 1 + // ExtYcbcrImageArraysSpecVersion as defined in vulkan/vulkan_core.h:13215 + ExtYcbcrImageArraysSpecVersion = 1 + // ExtYcbcrImageArraysExtensionName as defined in vulkan/vulkan_core.h:13216 + ExtYcbcrImageArraysExtensionName = "VK_EXT_ycbcr_image_arrays" + // ExtProvokingVertex as defined in vulkan/vulkan_core.h:13225 + ExtProvokingVertex = 1 + // ExtProvokingVertexSpecVersion as defined in vulkan/vulkan_core.h:13226 + ExtProvokingVertexSpecVersion = 1 + // ExtProvokingVertexExtensionName as defined in vulkan/vulkan_core.h:13227 + ExtProvokingVertexExtensionName = "VK_EXT_provoking_vertex" + // ExtHeadlessSurface as defined in vulkan/vulkan_core.h:13256 + ExtHeadlessSurface = 1 + // ExtHeadlessSurfaceSpecVersion as defined in vulkan/vulkan_core.h:13257 + ExtHeadlessSurfaceSpecVersion = 1 + // ExtHeadlessSurfaceExtensionName as defined in vulkan/vulkan_core.h:13258 + ExtHeadlessSurfaceExtensionName = "VK_EXT_headless_surface" + // ExtLineRasterization as defined in vulkan/vulkan_core.h:13277 + ExtLineRasterization = 1 + // ExtLineRasterizationSpecVersion as defined in vulkan/vulkan_core.h:13278 + ExtLineRasterizationSpecVersion = 1 + // ExtLineRasterizationExtensionName as defined in vulkan/vulkan_core.h:13279 + ExtLineRasterizationExtensionName = "VK_EXT_line_rasterization" + // ExtShaderAtomicFloat as defined in vulkan/vulkan_core.h:13324 + ExtShaderAtomicFloat = 1 + // ExtShaderAtomicFloatSpecVersion as defined in vulkan/vulkan_core.h:13325 + ExtShaderAtomicFloatSpecVersion = 1 + // ExtShaderAtomicFloatExtensionName as defined in vulkan/vulkan_core.h:13326 + ExtShaderAtomicFloatExtensionName = "VK_EXT_shader_atomic_float" + // ExtHostQueryReset as defined in vulkan/vulkan_core.h:13346 + ExtHostQueryReset = 1 + // ExtHostQueryResetSpecVersion as defined in vulkan/vulkan_core.h:13347 + ExtHostQueryResetSpecVersion = 1 + // ExtHostQueryResetExtensionName as defined in vulkan/vulkan_core.h:13348 + ExtHostQueryResetExtensionName = "VK_EXT_host_query_reset" + // ExtIndexTypeUint8 as defined in vulkan/vulkan_core.h:13362 + ExtIndexTypeUint8 = 1 + // ExtIndexTypeUint8SpecVersion as defined in vulkan/vulkan_core.h:13363 + ExtIndexTypeUint8SpecVersion = 1 + // ExtIndexTypeUint8ExtensionName as defined in vulkan/vulkan_core.h:13364 + ExtIndexTypeUint8ExtensionName = "VK_EXT_index_type_uint8" + // ExtExtendedDynamicState as defined in vulkan/vulkan_core.h:13373 + ExtExtendedDynamicState = 1 + // ExtExtendedDynamicStateSpecVersion as defined in vulkan/vulkan_core.h:13374 + ExtExtendedDynamicStateSpecVersion = 1 + // ExtExtendedDynamicStateExtensionName as defined in vulkan/vulkan_core.h:13375 + ExtExtendedDynamicStateExtensionName = "VK_EXT_extended_dynamic_state" + // ExtShaderAtomicFloat2 as defined in vulkan/vulkan_core.h:13457 + ExtShaderAtomicFloat2 = 1 + // ExtShaderAtomicFloat2SpecVersion as defined in vulkan/vulkan_core.h:13458 + ExtShaderAtomicFloat2SpecVersion = 1 + // ExtShaderAtomicFloat2ExtensionName as defined in vulkan/vulkan_core.h:13459 + ExtShaderAtomicFloat2ExtensionName = "VK_EXT_shader_atomic_float2" + // ExtSurfaceMaintenance1 as defined in vulkan/vulkan_core.h:13479 + ExtSurfaceMaintenance1 = 1 + // ExtSurfaceMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:13480 + ExtSurfaceMaintenance1SpecVersion = 1 + // ExtSurfaceMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:13481 + ExtSurfaceMaintenance1ExtensionName = "VK_EXT_surface_maintenance1" + // ExtSwapchainMaintenance1 as defined in vulkan/vulkan_core.h:13523 + ExtSwapchainMaintenance1 = 1 + // ExtSwapchainMaintenance1SpecVersion as defined in vulkan/vulkan_core.h:13524 + ExtSwapchainMaintenance1SpecVersion = 1 + // ExtSwapchainMaintenance1ExtensionName as defined in vulkan/vulkan_core.h:13525 + ExtSwapchainMaintenance1ExtensionName = "VK_EXT_swapchain_maintenance1" + // ExtShaderDemoteToHelperInvocation as defined in vulkan/vulkan_core.h:13578 + ExtShaderDemoteToHelperInvocation = 1 + // ExtShaderDemoteToHelperInvocationSpecVersion as defined in vulkan/vulkan_core.h:13579 + ExtShaderDemoteToHelperInvocationSpecVersion = 1 + // ExtShaderDemoteToHelperInvocationExtensionName as defined in vulkan/vulkan_core.h:13580 + ExtShaderDemoteToHelperInvocationExtensionName = "VK_EXT_shader_demote_to_helper_invocation" + // NvDeviceGeneratedCommands as defined in vulkan/vulkan_core.h:13585 + NvDeviceGeneratedCommands = 1 + // NvDeviceGeneratedCommandsSpecVersion as defined in vulkan/vulkan_core.h:13587 + NvDeviceGeneratedCommandsSpecVersion = 3 + // NvDeviceGeneratedCommandsExtensionName as defined in vulkan/vulkan_core.h:13588 + NvDeviceGeneratedCommandsExtensionName = "VK_NV_device_generated_commands" + // NvInheritedViewportScissor as defined in vulkan/vulkan_core.h:13776 + NvInheritedViewportScissor = 1 + // NvInheritedViewportScissorSpecVersion as defined in vulkan/vulkan_core.h:13777 + NvInheritedViewportScissorSpecVersion = 1 + // NvInheritedViewportScissorExtensionName as defined in vulkan/vulkan_core.h:13778 + NvInheritedViewportScissorExtensionName = "VK_NV_inherited_viewport_scissor" + // ExtTexelBufferAlignment as defined in vulkan/vulkan_core.h:13795 + ExtTexelBufferAlignment = 1 + // ExtTexelBufferAlignmentSpecVersion as defined in vulkan/vulkan_core.h:13796 + ExtTexelBufferAlignmentSpecVersion = 1 + // ExtTexelBufferAlignmentExtensionName as defined in vulkan/vulkan_core.h:13797 + ExtTexelBufferAlignmentExtensionName = "VK_EXT_texel_buffer_alignment" + // QcomRenderPassTransform as defined in vulkan/vulkan_core.h:13808 + QcomRenderPassTransform = 1 + // QcomRenderPassTransformSpecVersion as defined in vulkan/vulkan_core.h:13809 + QcomRenderPassTransformSpecVersion = 3 + // QcomRenderPassTransformExtensionName as defined in vulkan/vulkan_core.h:13810 + QcomRenderPassTransformExtensionName = "VK_QCOM_render_pass_transform" + // ExtDeviceMemoryReport as defined in vulkan/vulkan_core.h:13826 + ExtDeviceMemoryReport = 1 + // ExtDeviceMemoryReportSpecVersion as defined in vulkan/vulkan_core.h:13827 + ExtDeviceMemoryReportSpecVersion = 2 + // ExtDeviceMemoryReportExtensionName as defined in vulkan/vulkan_core.h:13828 + ExtDeviceMemoryReportExtensionName = "VK_EXT_device_memory_report" + // ExtAcquireDrmDisplay as defined in vulkan/vulkan_core.h:13871 + ExtAcquireDrmDisplay = 1 + // ExtAcquireDrmDisplaySpecVersion as defined in vulkan/vulkan_core.h:13872 + ExtAcquireDrmDisplaySpecVersion = 1 + // ExtAcquireDrmDisplayExtensionName as defined in vulkan/vulkan_core.h:13873 + ExtAcquireDrmDisplayExtensionName = "VK_EXT_acquire_drm_display" + // ExtRobustness2 as defined in vulkan/vulkan_core.h:13891 + ExtRobustness2 = 1 + // ExtRobustness2SpecVersion as defined in vulkan/vulkan_core.h:13892 + ExtRobustness2SpecVersion = 1 + // ExtRobustness2ExtensionName as defined in vulkan/vulkan_core.h:13893 + ExtRobustness2ExtensionName = "VK_EXT_robustness2" + // ExtCustomBorderColor as defined in vulkan/vulkan_core.h:13911 + ExtCustomBorderColor = 1 + // ExtCustomBorderColorSpecVersion as defined in vulkan/vulkan_core.h:13912 + ExtCustomBorderColorSpecVersion = 12 + // ExtCustomBorderColorExtensionName as defined in vulkan/vulkan_core.h:13913 + ExtCustomBorderColorExtensionName = "VK_EXT_custom_border_color" + // GoogleUserType as defined in vulkan/vulkan_core.h:13936 + GoogleUserType = 1 + // GoogleUserTypeSpecVersion as defined in vulkan/vulkan_core.h:13937 + GoogleUserTypeSpecVersion = 1 + // GoogleUserTypeExtensionName as defined in vulkan/vulkan_core.h:13938 + GoogleUserTypeExtensionName = "VK_GOOGLE_user_type" + // NvPresentBarrier as defined in vulkan/vulkan_core.h:13941 + NvPresentBarrier = 1 + // NvPresentBarrierSpecVersion as defined in vulkan/vulkan_core.h:13942 + NvPresentBarrierSpecVersion = 1 + // NvPresentBarrierExtensionName as defined in vulkan/vulkan_core.h:13943 + NvPresentBarrierExtensionName = "VK_NV_present_barrier" + // ExtPrivateData as defined in vulkan/vulkan_core.h:13964 + ExtPrivateData = 1 + // ExtPrivateDataSpecVersion as defined in vulkan/vulkan_core.h:13967 + ExtPrivateDataSpecVersion = 1 + // ExtPrivateDataExtensionName as defined in vulkan/vulkan_core.h:13968 + ExtPrivateDataExtensionName = "VK_EXT_private_data" + // ExtPipelineCreationCacheControl as defined in vulkan/vulkan_core.h:14010 + ExtPipelineCreationCacheControl = 1 + // ExtPipelineCreationCacheControlSpecVersion as defined in vulkan/vulkan_core.h:14011 + ExtPipelineCreationCacheControlSpecVersion = 3 + // ExtPipelineCreationCacheControlExtensionName as defined in vulkan/vulkan_core.h:14012 + ExtPipelineCreationCacheControlExtensionName = "VK_EXT_pipeline_creation_cache_control" + // NvDeviceDiagnosticsConfig as defined in vulkan/vulkan_core.h:14017 + NvDeviceDiagnosticsConfig = 1 + // NvDeviceDiagnosticsConfigSpecVersion as defined in vulkan/vulkan_core.h:14018 + NvDeviceDiagnosticsConfigSpecVersion = 2 + // NvDeviceDiagnosticsConfigExtensionName as defined in vulkan/vulkan_core.h:14019 + NvDeviceDiagnosticsConfigExtensionName = "VK_NV_device_diagnostics_config" + // QcomRenderPassStoreOps as defined in vulkan/vulkan_core.h:14043 + QcomRenderPassStoreOps = 1 + // QcomRenderPassStoreOpsSpecVersion as defined in vulkan/vulkan_core.h:14044 + QcomRenderPassStoreOpsSpecVersion = 2 + // QcomRenderPassStoreOpsExtensionName as defined in vulkan/vulkan_core.h:14045 + QcomRenderPassStoreOpsExtensionName = "VK_QCOM_render_pass_store_ops" + // ExtDescriptorBuffer as defined in vulkan/vulkan_core.h:14048 + ExtDescriptorBuffer = 1 + // ExtDescriptorBufferSpecVersion as defined in vulkan/vulkan_core.h:14050 + ExtDescriptorBufferSpecVersion = 1 + // ExtDescriptorBufferExtensionName as defined in vulkan/vulkan_core.h:14051 + ExtDescriptorBufferExtensionName = "VK_EXT_descriptor_buffer" + // ExtGraphicsPipelineLibrary as defined in vulkan/vulkan_core.h:14267 + ExtGraphicsPipelineLibrary = 1 + // ExtGraphicsPipelineLibrarySpecVersion as defined in vulkan/vulkan_core.h:14268 + ExtGraphicsPipelineLibrarySpecVersion = 1 + // ExtGraphicsPipelineLibraryExtensionName as defined in vulkan/vulkan_core.h:14269 + ExtGraphicsPipelineLibraryExtensionName = "VK_EXT_graphics_pipeline_library" + // AmdShaderEarlyAndLateFragmentTests as defined in vulkan/vulkan_core.h:14300 + AmdShaderEarlyAndLateFragmentTests = 1 + // AmdShaderEarlyAndLateFragmentTestsSpecVersion as defined in vulkan/vulkan_core.h:14301 + AmdShaderEarlyAndLateFragmentTestsSpecVersion = 1 + // AmdShaderEarlyAndLateFragmentTestsExtensionName as defined in vulkan/vulkan_core.h:14302 + AmdShaderEarlyAndLateFragmentTestsExtensionName = "VK_AMD_shader_early_and_late_fragment_tests" + // NvFragmentShadingRateEnums as defined in vulkan/vulkan_core.h:14311 + NvFragmentShadingRateEnums = 1 + // NvFragmentShadingRateEnumsSpecVersion as defined in vulkan/vulkan_core.h:14312 + NvFragmentShadingRateEnumsSpecVersion = 1 + // NvFragmentShadingRateEnumsExtensionName as defined in vulkan/vulkan_core.h:14313 + NvFragmentShadingRateEnumsExtensionName = "VK_NV_fragment_shading_rate_enums" + // ExtYcbcr2plane444Formats as defined in vulkan/vulkan_core.h:14459 + ExtYcbcr2plane444Formats = 1 + // ExtYcbcr2plane444FormatsSpecVersion as defined in vulkan/vulkan_core.h:14460 + ExtYcbcr2plane444FormatsSpecVersion = 1 + // ExtYcbcr2plane444FormatsExtensionName as defined in vulkan/vulkan_core.h:14461 + ExtYcbcr2plane444FormatsExtensionName = "VK_EXT_ycbcr_2plane_444_formats" + // ExtFragmentDensityMap2 as defined in vulkan/vulkan_core.h:14470 + ExtFragmentDensityMap2 = 1 + // ExtFragmentDensityMap2SpecVersion as defined in vulkan/vulkan_core.h:14471 + ExtFragmentDensityMap2SpecVersion = 1 + // ExtFragmentDensityMap2ExtensionName as defined in vulkan/vulkan_core.h:14472 + ExtFragmentDensityMap2ExtensionName = "VK_EXT_fragment_density_map2" + // QcomRotatedCopyCommands as defined in vulkan/vulkan_core.h:14490 + QcomRotatedCopyCommands = 1 + // QcomRotatedCopyCommandsSpecVersion as defined in vulkan/vulkan_core.h:14491 + QcomRotatedCopyCommandsSpecVersion = 1 + // QcomRotatedCopyCommandsExtensionName as defined in vulkan/vulkan_core.h:14492 + QcomRotatedCopyCommandsExtensionName = "VK_QCOM_rotated_copy_commands" + // ExtImageRobustness as defined in vulkan/vulkan_core.h:14501 + ExtImageRobustness = 1 + // ExtImageRobustnessSpecVersion as defined in vulkan/vulkan_core.h:14502 + ExtImageRobustnessSpecVersion = 1 + // ExtImageRobustnessExtensionName as defined in vulkan/vulkan_core.h:14503 + ExtImageRobustnessExtensionName = "VK_EXT_image_robustness" + // ExtImageCompressionControl as defined in vulkan/vulkan_core.h:14508 + ExtImageCompressionControl = 1 + // ExtImageCompressionControlSpecVersion as defined in vulkan/vulkan_core.h:14509 + ExtImageCompressionControlSpecVersion = 1 + // ExtImageCompressionControlExtensionName as defined in vulkan/vulkan_core.h:14510 + ExtImageCompressionControlExtensionName = "VK_EXT_image_compression_control" + // ExtAttachmentFeedbackLoopLayout as defined in vulkan/vulkan_core.h:14594 + ExtAttachmentFeedbackLoopLayout = 1 + // ExtAttachmentFeedbackLoopLayoutSpecVersion as defined in vulkan/vulkan_core.h:14595 + ExtAttachmentFeedbackLoopLayoutSpecVersion = 2 + // ExtAttachmentFeedbackLoopLayoutExtensionName as defined in vulkan/vulkan_core.h:14596 + ExtAttachmentFeedbackLoopLayoutExtensionName = "VK_EXT_attachment_feedback_loop_layout" + // Ext4444Formats as defined in vulkan/vulkan_core.h:14605 + Ext4444Formats = 1 + // Ext4444FormatsSpecVersion as defined in vulkan/vulkan_core.h:14606 + Ext4444FormatsSpecVersion = 1 + // Ext4444FormatsExtensionName as defined in vulkan/vulkan_core.h:14607 + Ext4444FormatsExtensionName = "VK_EXT_4444_formats" + // KhrPortabilitySubset as defined in vulkan/vulkan_beta.h:22 + KhrPortabilitySubset = 1 + // KhrPortabilitySubsetSpecVersion as defined in vulkan/vulkan_beta.h:23 + KhrPortabilitySubsetSpecVersion = 1 + // KhrPortabilitySubsetExtensionName as defined in vulkan/vulkan_beta.h:24 + KhrPortabilitySubsetExtensionName = "VK_KHR_portability_subset" ) // Result as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkResult.html @@ -849,8 +1452,12 @@ const ( ErrorTooManyObjects Result = -10 ErrorFormatNotSupported Result = -11 ErrorFragmentedPool Result = -12 + ErrorUnknown Result = -13 ErrorOutOfPoolMemory Result = -1000069000 ErrorInvalidExternalHandle Result = -1000072003 + ErrorFragmentation Result = -1000161000 + ErrorInvalidOpaqueCaptureAddress Result = -1000257000 + PipelineCompileRequired Result = 1000297000 ErrorSurfaceLost Result = -1000000000 ErrorNativeWindowInUse Result = -1000000001 Suboptimal Result = 1000001003 @@ -858,12 +1465,22 @@ const ( ErrorIncompatibleDisplay Result = -1000003001 ErrorValidationFailed Result = -1000011001 ErrorInvalidShaderNv Result = -1000012000 + ErrorImageUsageNotSupported Result = -1000023000 + ErrorVideoPictureLayoutNotSupported Result = -1000023001 + ErrorVideoProfileOperationNotSupported Result = -1000023002 + ErrorVideoProfileFormatNotSupported Result = -1000023003 + ErrorVideoProfileCodecNotSupported Result = -1000023004 + ErrorVideoStdVersionNotSupported Result = -1000023005 ErrorInvalidDrmFormatModifierPlaneLayout Result = -1000158000 - ErrorFragmentation Result = -1000161000 ErrorNotPermitted Result = -1000174001 - ResultBeginRange Result = -12 - ResultEndRange Result = 5 - ResultRangeSize Result = 18 + ErrorFullScreenExclusiveModeLost Result = -1000255000 + ThreadIdle Result = 1000268000 + ThreadDone Result = 1000268001 + OperationDeferred Result = 1000268002 + OperationNotDeferred Result = 1000268003 + ErrorCompressionExhausted Result = -1000338000 + ErrorInvalidDeviceAddress Result = -1000257000 + ErrorPipelineCompileRequired Result = 1000297000 ResultMaxEnum Result = 2147483647 ) @@ -872,307 +1489,881 @@ type StructureType int32 // StructureType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkStructureType.html const ( - StructureTypeApplicationInfo StructureType = iota - StructureTypeInstanceCreateInfo StructureType = 1 - StructureTypeDeviceQueueCreateInfo StructureType = 2 - StructureTypeDeviceCreateInfo StructureType = 3 - StructureTypeSubmitInfo StructureType = 4 - StructureTypeMemoryAllocateInfo StructureType = 5 - StructureTypeMappedMemoryRange StructureType = 6 - StructureTypeBindSparseInfo StructureType = 7 - StructureTypeFenceCreateInfo StructureType = 8 - StructureTypeSemaphoreCreateInfo StructureType = 9 - StructureTypeEventCreateInfo StructureType = 10 - StructureTypeQueryPoolCreateInfo StructureType = 11 - StructureTypeBufferCreateInfo StructureType = 12 - StructureTypeBufferViewCreateInfo StructureType = 13 - StructureTypeImageCreateInfo StructureType = 14 - StructureTypeImageViewCreateInfo StructureType = 15 - StructureTypeShaderModuleCreateInfo StructureType = 16 - StructureTypePipelineCacheCreateInfo StructureType = 17 - StructureTypePipelineShaderStageCreateInfo StructureType = 18 - StructureTypePipelineVertexInputStateCreateInfo StructureType = 19 - StructureTypePipelineInputAssemblyStateCreateInfo StructureType = 20 - StructureTypePipelineTessellationStateCreateInfo StructureType = 21 - StructureTypePipelineViewportStateCreateInfo StructureType = 22 - StructureTypePipelineRasterizationStateCreateInfo StructureType = 23 - StructureTypePipelineMultisampleStateCreateInfo StructureType = 24 - StructureTypePipelineDepthStencilStateCreateInfo StructureType = 25 - StructureTypePipelineColorBlendStateCreateInfo StructureType = 26 - StructureTypePipelineDynamicStateCreateInfo StructureType = 27 - StructureTypeGraphicsPipelineCreateInfo StructureType = 28 - StructureTypeComputePipelineCreateInfo StructureType = 29 - StructureTypePipelineLayoutCreateInfo StructureType = 30 - StructureTypeSamplerCreateInfo StructureType = 31 - StructureTypeDescriptorSetLayoutCreateInfo StructureType = 32 - StructureTypeDescriptorPoolCreateInfo StructureType = 33 - StructureTypeDescriptorSetAllocateInfo StructureType = 34 - StructureTypeWriteDescriptorSet StructureType = 35 - StructureTypeCopyDescriptorSet StructureType = 36 - StructureTypeFramebufferCreateInfo StructureType = 37 - StructureTypeRenderPassCreateInfo StructureType = 38 - StructureTypeCommandPoolCreateInfo StructureType = 39 - StructureTypeCommandBufferAllocateInfo StructureType = 40 - StructureTypeCommandBufferInheritanceInfo StructureType = 41 - StructureTypeCommandBufferBeginInfo StructureType = 42 - StructureTypeRenderPassBeginInfo StructureType = 43 - StructureTypeBufferMemoryBarrier StructureType = 44 - StructureTypeImageMemoryBarrier StructureType = 45 - StructureTypeMemoryBarrier StructureType = 46 - StructureTypeLoaderInstanceCreateInfo StructureType = 47 - StructureTypeLoaderDeviceCreateInfo StructureType = 48 - StructureTypePhysicalDeviceSubgroupProperties StructureType = 1000094000 - StructureTypeBindBufferMemoryInfo StructureType = 1000157000 - StructureTypeBindImageMemoryInfo StructureType = 1000157001 - StructureTypePhysicalDevice16bitStorageFeatures StructureType = 1000083000 - StructureTypeMemoryDedicatedRequirements StructureType = 1000127000 - StructureTypeMemoryDedicatedAllocateInfo StructureType = 1000127001 - StructureTypeMemoryAllocateFlagsInfo StructureType = 1000060000 - StructureTypeDeviceGroupRenderPassBeginInfo StructureType = 1000060003 - StructureTypeDeviceGroupCommandBufferBeginInfo StructureType = 1000060004 - StructureTypeDeviceGroupSubmitInfo StructureType = 1000060005 - StructureTypeDeviceGroupBindSparseInfo StructureType = 1000060006 - StructureTypeBindBufferMemoryDeviceGroupInfo StructureType = 1000060013 - StructureTypeBindImageMemoryDeviceGroupInfo StructureType = 1000060014 - StructureTypePhysicalDeviceGroupProperties StructureType = 1000070000 - StructureTypeDeviceGroupDeviceCreateInfo StructureType = 1000070001 - StructureTypeBufferMemoryRequirementsInfo2 StructureType = 1000146000 - StructureTypeImageMemoryRequirementsInfo2 StructureType = 1000146001 - StructureTypeImageSparseMemoryRequirementsInfo2 StructureType = 1000146002 - StructureTypeMemoryRequirements2 StructureType = 1000146003 - StructureTypeSparseImageMemoryRequirements2 StructureType = 1000146004 - StructureTypePhysicalDeviceFeatures2 StructureType = 1000059000 - StructureTypePhysicalDeviceProperties2 StructureType = 1000059001 - StructureTypeFormatProperties2 StructureType = 1000059002 - StructureTypeImageFormatProperties2 StructureType = 1000059003 - StructureTypePhysicalDeviceImageFormatInfo2 StructureType = 1000059004 - StructureTypeQueueFamilyProperties2 StructureType = 1000059005 - StructureTypePhysicalDeviceMemoryProperties2 StructureType = 1000059006 - StructureTypeSparseImageFormatProperties2 StructureType = 1000059007 - StructureTypePhysicalDeviceSparseImageFormatInfo2 StructureType = 1000059008 - StructureTypePhysicalDevicePointClippingProperties StructureType = 1000117000 - StructureTypeRenderPassInputAttachmentAspectCreateInfo StructureType = 1000117001 - StructureTypeImageViewUsageCreateInfo StructureType = 1000117002 - StructureTypePipelineTessellationDomainOriginStateCreateInfo StructureType = 1000117003 - StructureTypeRenderPassMultiviewCreateInfo StructureType = 1000053000 - StructureTypePhysicalDeviceMultiviewFeatures StructureType = 1000053001 - StructureTypePhysicalDeviceMultiviewProperties StructureType = 1000053002 - StructureTypePhysicalDeviceVariablePointerFeatures StructureType = 1000120000 - StructureTypeProtectedSubmitInfo StructureType = 1000145000 - StructureTypePhysicalDeviceProtectedMemoryFeatures StructureType = 1000145001 - StructureTypePhysicalDeviceProtectedMemoryProperties StructureType = 1000145002 - StructureTypeDeviceQueueInfo2 StructureType = 1000145003 - StructureTypeSamplerYcbcrConversionCreateInfo StructureType = 1000156000 - StructureTypeSamplerYcbcrConversionInfo StructureType = 1000156001 - StructureTypeBindImagePlaneMemoryInfo StructureType = 1000156002 - StructureTypeImagePlaneMemoryRequirementsInfo StructureType = 1000156003 - StructureTypePhysicalDeviceSamplerYcbcrConversionFeatures StructureType = 1000156004 - StructureTypeSamplerYcbcrConversionImageFormatProperties StructureType = 1000156005 - StructureTypeDescriptorUpdateTemplateCreateInfo StructureType = 1000085000 - StructureTypePhysicalDeviceExternalImageFormatInfo StructureType = 1000071000 - StructureTypeExternalImageFormatProperties StructureType = 1000071001 - StructureTypePhysicalDeviceExternalBufferInfo StructureType = 1000071002 - StructureTypeExternalBufferProperties StructureType = 1000071003 - StructureTypePhysicalDeviceIdProperties StructureType = 1000071004 - StructureTypeExternalMemoryBufferCreateInfo StructureType = 1000072000 - StructureTypeExternalMemoryImageCreateInfo StructureType = 1000072001 - StructureTypeExportMemoryAllocateInfo StructureType = 1000072002 - StructureTypePhysicalDeviceExternalFenceInfo StructureType = 1000112000 - StructureTypeExternalFenceProperties StructureType = 1000112001 - StructureTypeExportFenceCreateInfo StructureType = 1000113000 - StructureTypeExportSemaphoreCreateInfo StructureType = 1000077000 - StructureTypePhysicalDeviceExternalSemaphoreInfo StructureType = 1000076000 - StructureTypeExternalSemaphoreProperties StructureType = 1000076001 - StructureTypePhysicalDeviceMaintenance3Properties StructureType = 1000168000 - StructureTypeDescriptorSetLayoutSupport StructureType = 1000168001 - StructureTypePhysicalDeviceShaderDrawParameterFeatures StructureType = 1000063000 - StructureTypeSwapchainCreateInfo StructureType = 1000001000 - StructureTypePresentInfo StructureType = 1000001001 - StructureTypeDeviceGroupPresentCapabilities StructureType = 1000060007 - StructureTypeImageSwapchainCreateInfo StructureType = 1000060008 - StructureTypeBindImageMemorySwapchainInfo StructureType = 1000060009 - StructureTypeAcquireNextImageInfo StructureType = 1000060010 - StructureTypeDeviceGroupPresentInfo StructureType = 1000060011 - StructureTypeDeviceGroupSwapchainCreateInfo StructureType = 1000060012 - StructureTypeDisplayModeCreateInfo StructureType = 1000002000 - StructureTypeDisplaySurfaceCreateInfo StructureType = 1000002001 - StructureTypeDisplayPresentInfo StructureType = 1000003000 - StructureTypeXlibSurfaceCreateInfo StructureType = 1000004000 - StructureTypeXcbSurfaceCreateInfo StructureType = 1000005000 - StructureTypeWaylandSurfaceCreateInfo StructureType = 1000006000 - StructureTypeMirSurfaceCreateInfo StructureType = 1000007000 - StructureTypeAndroidSurfaceCreateInfo StructureType = 1000008000 - StructureTypeWin32SurfaceCreateInfo StructureType = 1000009000 - StructureTypeDebugReportCallbackCreateInfo StructureType = 1000011000 - StructureTypePipelineRasterizationStateRasterizationOrderAmd StructureType = 1000018000 - StructureTypeDebugMarkerObjectNameInfo StructureType = 1000022000 - StructureTypeDebugMarkerObjectTagInfo StructureType = 1000022001 - StructureTypeDebugMarkerMarkerInfo StructureType = 1000022002 - StructureTypeDedicatedAllocationImageCreateInfoNv StructureType = 1000026000 - StructureTypeDedicatedAllocationBufferCreateInfoNv StructureType = 1000026001 - StructureTypeDedicatedAllocationMemoryAllocateInfoNv StructureType = 1000026002 - StructureTypePhysicalDeviceTransformFeedbackFeatures StructureType = 1000028000 - StructureTypePhysicalDeviceTransformFeedbackProperties StructureType = 1000028001 - StructureTypePipelineRasterizationStateStreamCreateInfo StructureType = 1000028002 - StructureTypeTextureLodGatherFormatPropertiesAmd StructureType = 1000041000 - StructureTypePhysicalDeviceCornerSampledImageFeaturesNv StructureType = 1000050000 - StructureTypeExternalMemoryImageCreateInfoNv StructureType = 1000056000 - StructureTypeExportMemoryAllocateInfoNv StructureType = 1000056001 - StructureTypeImportMemoryWin32HandleInfoNv StructureType = 1000057000 - StructureTypeExportMemoryWin32HandleInfoNv StructureType = 1000057001 - StructureTypeWin32KeyedMutexAcquireReleaseInfoNv StructureType = 1000058000 - StructureTypeValidationFlags StructureType = 1000061000 - StructureTypeViSurfaceCreateInfoNn StructureType = 1000062000 - StructureTypeImageViewAstcDecodeMode StructureType = 1000067000 - StructureTypePhysicalDeviceAstcDecodeFeatures StructureType = 1000067001 - StructureTypeImportMemoryWin32HandleInfo StructureType = 1000073000 - StructureTypeExportMemoryWin32HandleInfo StructureType = 1000073001 - StructureTypeMemoryWin32HandleProperties StructureType = 1000073002 - StructureTypeMemoryGetWin32HandleInfo StructureType = 1000073003 - StructureTypeImportMemoryFdInfo StructureType = 1000074000 - StructureTypeMemoryFdProperties StructureType = 1000074001 - StructureTypeMemoryGetFdInfo StructureType = 1000074002 - StructureTypeWin32KeyedMutexAcquireReleaseInfo StructureType = 1000075000 - StructureTypeImportSemaphoreWin32HandleInfo StructureType = 1000078000 - StructureTypeExportSemaphoreWin32HandleInfo StructureType = 1000078001 - StructureTypeD3d12FenceSubmitInfo StructureType = 1000078002 - StructureTypeSemaphoreGetWin32HandleInfo StructureType = 1000078003 - StructureTypeImportSemaphoreFdInfo StructureType = 1000079000 - StructureTypeSemaphoreGetFdInfo StructureType = 1000079001 - StructureTypePhysicalDevicePushDescriptorProperties StructureType = 1000080000 - StructureTypeCommandBufferInheritanceConditionalRenderingInfo StructureType = 1000081000 - StructureTypePhysicalDeviceConditionalRenderingFeatures StructureType = 1000081001 - StructureTypeConditionalRenderingBeginInfo StructureType = 1000081002 - StructureTypePresentRegions StructureType = 1000084000 - StructureTypeObjectTableCreateInfoNvx StructureType = 1000086000 - StructureTypeIndirectCommandsLayoutCreateInfoNvx StructureType = 1000086001 - StructureTypeCmdProcessCommandsInfoNvx StructureType = 1000086002 - StructureTypeCmdReserveSpaceForCommandsInfoNvx StructureType = 1000086003 - StructureTypeDeviceGeneratedCommandsLimitsNvx StructureType = 1000086004 - StructureTypeDeviceGeneratedCommandsFeaturesNvx StructureType = 1000086005 - StructureTypePipelineViewportWScalingStateCreateInfoNv StructureType = 1000087000 - StructureTypeSurfaceCapabilities2 StructureType = 1000090000 - StructureTypeDisplayPowerInfo StructureType = 1000091000 - StructureTypeDeviceEventInfo StructureType = 1000091001 - StructureTypeDisplayEventInfo StructureType = 1000091002 - StructureTypeSwapchainCounterCreateInfo StructureType = 1000091003 - StructureTypePresentTimesInfoGoogle StructureType = 1000092000 - StructureTypePhysicalDeviceMultiviewPerViewAttributesPropertiesNvx StructureType = 1000097000 - StructureTypePipelineViewportSwizzleStateCreateInfoNv StructureType = 1000098000 - StructureTypePhysicalDeviceDiscardRectangleProperties StructureType = 1000099000 - StructureTypePipelineDiscardRectangleStateCreateInfo StructureType = 1000099001 - StructureTypePhysicalDeviceConservativeRasterizationProperties StructureType = 1000101000 - StructureTypePipelineRasterizationConservativeStateCreateInfo StructureType = 1000101001 - StructureTypeHdrMetadata StructureType = 1000105000 - StructureTypeAttachmentDescription2 StructureType = 1000109000 - StructureTypeAttachmentReference2 StructureType = 1000109001 - StructureTypeSubpassDescription2 StructureType = 1000109002 - StructureTypeSubpassDependency2 StructureType = 1000109003 - StructureTypeRenderPassCreateInfo2 StructureType = 1000109004 - StructureTypeSubpassBeginInfo StructureType = 1000109005 - StructureTypeSubpassEndInfo StructureType = 1000109006 - StructureTypeSharedPresentSurfaceCapabilities StructureType = 1000111000 - StructureTypeImportFenceWin32HandleInfo StructureType = 1000114000 - StructureTypeExportFenceWin32HandleInfo StructureType = 1000114001 - StructureTypeFenceGetWin32HandleInfo StructureType = 1000114002 - StructureTypeImportFenceFdInfo StructureType = 1000115000 - StructureTypeFenceGetFdInfo StructureType = 1000115001 - StructureTypePhysicalDeviceSurfaceInfo2 StructureType = 1000119000 - StructureTypeSurfaceFormat2 StructureType = 1000119002 - StructureTypeDisplayProperties2 StructureType = 1000121000 - StructureTypeDisplayPlaneProperties2 StructureType = 1000121001 - StructureTypeDisplayModeProperties2 StructureType = 1000121002 - StructureTypeDisplayPlaneInfo2 StructureType = 1000121003 - StructureTypeDisplayPlaneCapabilities2 StructureType = 1000121004 - StructureTypeIosSurfaceCreateInfoMvk StructureType = 1000122000 - StructureTypeMacosSurfaceCreateInfoMvk StructureType = 1000123000 - StructureTypeDebugUtilsObjectNameInfo StructureType = 1000128000 - StructureTypeDebugUtilsObjectTagInfo StructureType = 1000128001 - StructureTypeDebugUtilsLabel StructureType = 1000128002 - StructureTypeDebugUtilsMessengerCallbackData StructureType = 1000128003 - StructureTypeDebugUtilsMessengerCreateInfo StructureType = 1000128004 - StructureTypeAndroidHardwareBufferUsageAndroid StructureType = 1000129000 - StructureTypeAndroidHardwareBufferPropertiesAndroid StructureType = 1000129001 - StructureTypeAndroidHardwareBufferFormatPropertiesAndroid StructureType = 1000129002 - StructureTypeImportAndroidHardwareBufferInfoAndroid StructureType = 1000129003 - StructureTypeMemoryGetAndroidHardwareBufferInfoAndroid StructureType = 1000129004 - StructureTypeExternalFormatAndroid StructureType = 1000129005 - StructureTypePhysicalDeviceSamplerFilterMinmaxProperties StructureType = 1000130000 - StructureTypeSamplerReductionModeCreateInfo StructureType = 1000130001 - StructureTypePhysicalDeviceInlineUniformBlockFeatures StructureType = 1000138000 - StructureTypePhysicalDeviceInlineUniformBlockProperties StructureType = 1000138001 - StructureTypeWriteDescriptorSetInlineUniformBlock StructureType = 1000138002 - StructureTypeDescriptorPoolInlineUniformBlockCreateInfo StructureType = 1000138003 - StructureTypeSampleLocationsInfo StructureType = 1000143000 - StructureTypeRenderPassSampleLocationsBeginInfo StructureType = 1000143001 - StructureTypePipelineSampleLocationsStateCreateInfo StructureType = 1000143002 - StructureTypePhysicalDeviceSampleLocationsProperties StructureType = 1000143003 - StructureTypeMultisampleProperties StructureType = 1000143004 - StructureTypeImageFormatListCreateInfo StructureType = 1000147000 - StructureTypePhysicalDeviceBlendOperationAdvancedFeatures StructureType = 1000148000 - StructureTypePhysicalDeviceBlendOperationAdvancedProperties StructureType = 1000148001 - StructureTypePipelineColorBlendAdvancedStateCreateInfo StructureType = 1000148002 - StructureTypePipelineCoverageToColorStateCreateInfoNv StructureType = 1000149000 - StructureTypePipelineCoverageModulationStateCreateInfoNv StructureType = 1000152000 - StructureTypeDrmFormatModifierPropertiesList StructureType = 1000158000 - StructureTypeDrmFormatModifierProperties StructureType = 1000158001 - StructureTypePhysicalDeviceImageDrmFormatModifierInfo StructureType = 1000158002 - StructureTypeImageDrmFormatModifierListCreateInfo StructureType = 1000158003 - StructureTypeImageExcplicitDrmFormatModifierCreateInfo StructureType = 1000158004 - StructureTypeImageDrmFormatModifierProperties StructureType = 1000158005 - StructureTypeValidationCacheCreateInfo StructureType = 1000160000 - StructureTypeShaderModuleValidationCacheCreateInfo StructureType = 1000160001 - StructureTypeDescriptorSetLayoutBindingFlagsCreateInfo StructureType = 1000161000 - StructureTypePhysicalDeviceDescriptorIndexingFeatures StructureType = 1000161001 - StructureTypePhysicalDeviceDescriptorIndexingProperties StructureType = 1000161002 - StructureTypeDescriptorSetVariableDescriptorCountAllocateInfo StructureType = 1000161003 - StructureTypeDescriptorSetVariableDescriptorCountLayoutSupport StructureType = 1000161004 - StructureTypePipelineViewportShadingRateImageStateCreateInfoNv StructureType = 1000164000 - StructureTypePhysicalDeviceShadingRateImageFeaturesNv StructureType = 1000164001 - StructureTypePhysicalDeviceShadingRateImagePropertiesNv StructureType = 1000164002 - StructureTypePipelineViewportCoarseSampleOrderStateCreateInfoNv StructureType = 1000164005 - StructureTypeRaytracingPipelineCreateInfoNvx StructureType = 1000165000 - StructureTypeAccelerationStructureCreateInfoNvx StructureType = 1000165001 - StructureTypeGeometryInstanceNvx StructureType = 1000165002 - StructureTypeGeometryNvx StructureType = 1000165003 - StructureTypeGeometryTrianglesNvx StructureType = 1000165004 - StructureTypeGeometryAabbNvx StructureType = 1000165005 - StructureTypeBindAccelerationStructureMemoryInfoNvx StructureType = 1000165006 - StructureTypeDescriptorAccelerationStructureInfoNvx StructureType = 1000165007 - StructureTypeAccelerationStructureMemoryRequirementsInfoNvx StructureType = 1000165008 - StructureTypePhysicalDeviceRaytracingPropertiesNvx StructureType = 1000165009 - StructureTypeHitShaderModuleCreateInfoNvx StructureType = 1000165010 - StructureTypePhysicalDeviceRepresentativeFragmentTestFeaturesNv StructureType = 1000166000 - StructureTypePipelineRepresentativeFragmentTestStateCreateInfoNv StructureType = 1000166001 - StructureTypeDeviceQueueGlobalPriorityCreateInfo StructureType = 1000174000 - StructureTypePhysicalDevice8bitStorageFeatures StructureType = 1000177000 - StructureTypeImportMemoryHostPointerInfo StructureType = 1000178000 - StructureTypeMemoryHostPointerProperties StructureType = 1000178001 - StructureTypePhysicalDeviceExternalMemoryHostProperties StructureType = 1000178002 - StructureTypePhysicalDeviceShaderAtomicInt64Features StructureType = 1000180000 - StructureTypeCalibratedTimestampInfo StructureType = 1000184000 - StructureTypePhysicalDeviceShaderCorePropertiesAmd StructureType = 1000185000 - StructureTypePhysicalDeviceVertexAttributeDivisorProperties StructureType = 1000190000 - StructureTypePipelineVertexInputDivisorStateCreateInfo StructureType = 1000190001 - StructureTypePhysicalDeviceVertexAttributeDivisorFeatures StructureType = 1000190002 - StructureTypePhysicalDeviceDriverProperties StructureType = 1000196000 - StructureTypePhysicalDeviceComputeShaderDerivativesFeaturesNv StructureType = 1000201000 - StructureTypePhysicalDeviceMeshShaderFeaturesNv StructureType = 1000202000 - StructureTypePhysicalDeviceMeshShaderPropertiesNv StructureType = 1000202001 - StructureTypePhysicalDeviceFragmentShaderBarycentricFeaturesNv StructureType = 1000203000 - StructureTypePhysicalDeviceShaderImageFootprintFeaturesNv StructureType = 1000204000 - StructureTypePipelineViewportExclusiveScissorStateCreateInfoNv StructureType = 1000205000 - StructureTypePhysicalDeviceExclusiveScissorFeaturesNv StructureType = 1000205002 - StructureTypeCheckpointDataNv StructureType = 1000206000 - StructureTypeQueueFamilyCheckpointPropertiesNv StructureType = 1000206001 - StructureTypePhysicalDeviceVulkanMemoryModelFeatures StructureType = 1000211000 - StructureTypePhysicalDevicePciBusInfoProperties StructureType = 1000212000 - StructureTypeImagepipeSurfaceCreateInfoFuchsia StructureType = 1000214000 - StructureTypeDebugReportCreateInfo StructureType = 1000011000 - StructureTypeBeginRange StructureType = 0 - StructureTypeEndRange StructureType = 48 - StructureTypeRangeSize StructureType = 49 - StructureTypeMaxEnum StructureType = 2147483647 + StructureTypeApplicationInfo StructureType = iota + StructureTypeInstanceCreateInfo StructureType = 1 + StructureTypeDeviceQueueCreateInfo StructureType = 2 + StructureTypeDeviceCreateInfo StructureType = 3 + StructureTypeSubmitInfo StructureType = 4 + StructureTypeMemoryAllocateInfo StructureType = 5 + StructureTypeMappedMemoryRange StructureType = 6 + StructureTypeBindSparseInfo StructureType = 7 + StructureTypeFenceCreateInfo StructureType = 8 + StructureTypeSemaphoreCreateInfo StructureType = 9 + StructureTypeEventCreateInfo StructureType = 10 + StructureTypeQueryPoolCreateInfo StructureType = 11 + StructureTypeBufferCreateInfo StructureType = 12 + StructureTypeBufferViewCreateInfo StructureType = 13 + StructureTypeImageCreateInfo StructureType = 14 + StructureTypeImageViewCreateInfo StructureType = 15 + StructureTypeShaderModuleCreateInfo StructureType = 16 + StructureTypePipelineCacheCreateInfo StructureType = 17 + StructureTypePipelineShaderStageCreateInfo StructureType = 18 + StructureTypePipelineVertexInputStateCreateInfo StructureType = 19 + StructureTypePipelineInputAssemblyStateCreateInfo StructureType = 20 + StructureTypePipelineTessellationStateCreateInfo StructureType = 21 + StructureTypePipelineViewportStateCreateInfo StructureType = 22 + StructureTypePipelineRasterizationStateCreateInfo StructureType = 23 + StructureTypePipelineMultisampleStateCreateInfo StructureType = 24 + StructureTypePipelineDepthStencilStateCreateInfo StructureType = 25 + StructureTypePipelineColorBlendStateCreateInfo StructureType = 26 + StructureTypePipelineDynamicStateCreateInfo StructureType = 27 + StructureTypeGraphicsPipelineCreateInfo StructureType = 28 + StructureTypeComputePipelineCreateInfo StructureType = 29 + StructureTypePipelineLayoutCreateInfo StructureType = 30 + StructureTypeSamplerCreateInfo StructureType = 31 + StructureTypeDescriptorSetLayoutCreateInfo StructureType = 32 + StructureTypeDescriptorPoolCreateInfo StructureType = 33 + StructureTypeDescriptorSetAllocateInfo StructureType = 34 + StructureTypeWriteDescriptorSet StructureType = 35 + StructureTypeCopyDescriptorSet StructureType = 36 + StructureTypeFramebufferCreateInfo StructureType = 37 + StructureTypeRenderPassCreateInfo StructureType = 38 + StructureTypeCommandPoolCreateInfo StructureType = 39 + StructureTypeCommandBufferAllocateInfo StructureType = 40 + StructureTypeCommandBufferInheritanceInfo StructureType = 41 + StructureTypeCommandBufferBeginInfo StructureType = 42 + StructureTypeRenderPassBeginInfo StructureType = 43 + StructureTypeBufferMemoryBarrier StructureType = 44 + StructureTypeImageMemoryBarrier StructureType = 45 + StructureTypeMemoryBarrier StructureType = 46 + StructureTypeLoaderInstanceCreateInfo StructureType = 47 + StructureTypeLoaderDeviceCreateInfo StructureType = 48 + StructureTypePhysicalDeviceSubgroupProperties StructureType = 1000094000 + StructureTypeBindBufferMemoryInfo StructureType = 1000157000 + StructureTypeBindImageMemoryInfo StructureType = 1000157001 + StructureTypePhysicalDevice16bitStorageFeatures StructureType = 1000083000 + StructureTypeMemoryDedicatedRequirements StructureType = 1000127000 + StructureTypeMemoryDedicatedAllocateInfo StructureType = 1000127001 + StructureTypeMemoryAllocateFlagsInfo StructureType = 1000060000 + StructureTypeDeviceGroupRenderPassBeginInfo StructureType = 1000060003 + StructureTypeDeviceGroupCommandBufferBeginInfo StructureType = 1000060004 + StructureTypeDeviceGroupSubmitInfo StructureType = 1000060005 + StructureTypeDeviceGroupBindSparseInfo StructureType = 1000060006 + StructureTypeBindBufferMemoryDeviceGroupInfo StructureType = 1000060013 + StructureTypeBindImageMemoryDeviceGroupInfo StructureType = 1000060014 + StructureTypePhysicalDeviceGroupProperties StructureType = 1000070000 + StructureTypeDeviceGroupDeviceCreateInfo StructureType = 1000070001 + StructureTypeBufferMemoryRequirementsInfo2 StructureType = 1000146000 + StructureTypeImageMemoryRequirementsInfo2 StructureType = 1000146001 + StructureTypeImageSparseMemoryRequirementsInfo2 StructureType = 1000146002 + StructureTypeMemoryRequirements2 StructureType = 1000146003 + StructureTypeSparseImageMemoryRequirements2 StructureType = 1000146004 + StructureTypePhysicalDeviceFeatures2 StructureType = 1000059000 + StructureTypePhysicalDeviceProperties2 StructureType = 1000059001 + StructureTypeFormatProperties2 StructureType = 1000059002 + StructureTypeImageFormatProperties2 StructureType = 1000059003 + StructureTypePhysicalDeviceImageFormatInfo2 StructureType = 1000059004 + StructureTypeQueueFamilyProperties2 StructureType = 1000059005 + StructureTypePhysicalDeviceMemoryProperties2 StructureType = 1000059006 + StructureTypeSparseImageFormatProperties2 StructureType = 1000059007 + StructureTypePhysicalDeviceSparseImageFormatInfo2 StructureType = 1000059008 + StructureTypePhysicalDevicePointClippingProperties StructureType = 1000117000 + StructureTypeRenderPassInputAttachmentAspectCreateInfo StructureType = 1000117001 + StructureTypeImageViewUsageCreateInfo StructureType = 1000117002 + StructureTypePipelineTessellationDomainOriginStateCreateInfo StructureType = 1000117003 + StructureTypeRenderPassMultiviewCreateInfo StructureType = 1000053000 + StructureTypePhysicalDeviceMultiviewFeatures StructureType = 1000053001 + StructureTypePhysicalDeviceMultiviewProperties StructureType = 1000053002 + StructureTypePhysicalDeviceVariablePointersFeatures StructureType = 1000120000 + StructureTypeProtectedSubmitInfo StructureType = 1000145000 + StructureTypePhysicalDeviceProtectedMemoryFeatures StructureType = 1000145001 + StructureTypePhysicalDeviceProtectedMemoryProperties StructureType = 1000145002 + StructureTypeDeviceQueueInfo2 StructureType = 1000145003 + StructureTypeSamplerYcbcrConversionCreateInfo StructureType = 1000156000 + StructureTypeSamplerYcbcrConversionInfo StructureType = 1000156001 + StructureTypeBindImagePlaneMemoryInfo StructureType = 1000156002 + StructureTypeImagePlaneMemoryRequirementsInfo StructureType = 1000156003 + StructureTypePhysicalDeviceSamplerYcbcrConversionFeatures StructureType = 1000156004 + StructureTypeSamplerYcbcrConversionImageFormatProperties StructureType = 1000156005 + StructureTypeDescriptorUpdateTemplateCreateInfo StructureType = 1000085000 + StructureTypePhysicalDeviceExternalImageFormatInfo StructureType = 1000071000 + StructureTypeExternalImageFormatProperties StructureType = 1000071001 + StructureTypePhysicalDeviceExternalBufferInfo StructureType = 1000071002 + StructureTypeExternalBufferProperties StructureType = 1000071003 + StructureTypePhysicalDeviceIdProperties StructureType = 1000071004 + StructureTypeExternalMemoryBufferCreateInfo StructureType = 1000072000 + StructureTypeExternalMemoryImageCreateInfo StructureType = 1000072001 + StructureTypeExportMemoryAllocateInfo StructureType = 1000072002 + StructureTypePhysicalDeviceExternalFenceInfo StructureType = 1000112000 + StructureTypeExternalFenceProperties StructureType = 1000112001 + StructureTypeExportFenceCreateInfo StructureType = 1000113000 + StructureTypeExportSemaphoreCreateInfo StructureType = 1000077000 + StructureTypePhysicalDeviceExternalSemaphoreInfo StructureType = 1000076000 + StructureTypeExternalSemaphoreProperties StructureType = 1000076001 + StructureTypePhysicalDeviceMaintenance3Properties StructureType = 1000168000 + StructureTypeDescriptorSetLayoutSupport StructureType = 1000168001 + StructureTypePhysicalDeviceShaderDrawParametersFeatures StructureType = 1000063000 + StructureTypePhysicalDeviceVulkan11Features StructureType = 49 + StructureTypePhysicalDeviceVulkan11Properties StructureType = 50 + StructureTypePhysicalDeviceVulkan12Features StructureType = 51 + StructureTypePhysicalDeviceVulkan12Properties StructureType = 52 + StructureTypeImageFormatListCreateInfo StructureType = 1000147000 + StructureTypeAttachmentDescription2 StructureType = 1000109000 + StructureTypeAttachmentReference2 StructureType = 1000109001 + StructureTypeSubpassDescription2 StructureType = 1000109002 + StructureTypeSubpassDependency2 StructureType = 1000109003 + StructureTypeRenderPassCreateInfo2 StructureType = 1000109004 + StructureTypeSubpassBeginInfo StructureType = 1000109005 + StructureTypeSubpassEndInfo StructureType = 1000109006 + StructureTypePhysicalDevice8bitStorageFeatures StructureType = 1000177000 + StructureTypePhysicalDeviceDriverProperties StructureType = 1000196000 + StructureTypePhysicalDeviceShaderAtomicInt64Features StructureType = 1000180000 + StructureTypePhysicalDeviceShaderFloat16Int8Features StructureType = 1000082000 + StructureTypePhysicalDeviceFloatControlsProperties StructureType = 1000197000 + StructureTypeDescriptorSetLayoutBindingFlagsCreateInfo StructureType = 1000161000 + StructureTypePhysicalDeviceDescriptorIndexingFeatures StructureType = 1000161001 + StructureTypePhysicalDeviceDescriptorIndexingProperties StructureType = 1000161002 + StructureTypeDescriptorSetVariableDescriptorCountAllocateInfo StructureType = 1000161003 + StructureTypeDescriptorSetVariableDescriptorCountLayoutSupport StructureType = 1000161004 + StructureTypePhysicalDeviceDepthStencilResolveProperties StructureType = 1000199000 + StructureTypeSubpassDescriptionDepthStencilResolve StructureType = 1000199001 + StructureTypePhysicalDeviceScalarBlockLayoutFeatures StructureType = 1000221000 + StructureTypeImageStencilUsageCreateInfo StructureType = 1000246000 + StructureTypePhysicalDeviceSamplerFilterMinmaxProperties StructureType = 1000130000 + StructureTypeSamplerReductionModeCreateInfo StructureType = 1000130001 + StructureTypePhysicalDeviceVulkanMemoryModelFeatures StructureType = 1000211000 + StructureTypePhysicalDeviceImagelessFramebufferFeatures StructureType = 1000108000 + StructureTypeFramebufferAttachmentsCreateInfo StructureType = 1000108001 + StructureTypeFramebufferAttachmentImageInfo StructureType = 1000108002 + StructureTypeRenderPassAttachmentBeginInfo StructureType = 1000108003 + StructureTypePhysicalDeviceUniformBufferStandardLayoutFeatures StructureType = 1000253000 + StructureTypePhysicalDeviceShaderSubgroupExtendedTypesFeatures StructureType = 1000175000 + StructureTypePhysicalDeviceSeparateDepthStencilLayoutsFeatures StructureType = 1000241000 + StructureTypeAttachmentReferenceStencilLayout StructureType = 1000241001 + StructureTypeAttachmentDescriptionStencilLayout StructureType = 1000241002 + StructureTypePhysicalDeviceHostQueryResetFeatures StructureType = 1000261000 + StructureTypePhysicalDeviceTimelineSemaphoreFeatures StructureType = 1000207000 + StructureTypePhysicalDeviceTimelineSemaphoreProperties StructureType = 1000207001 + StructureTypeSemaphoreTypeCreateInfo StructureType = 1000207002 + StructureTypeTimelineSemaphoreSubmitInfo StructureType = 1000207003 + StructureTypeSemaphoreWaitInfo StructureType = 1000207004 + StructureTypeSemaphoreSignalInfo StructureType = 1000207005 + StructureTypePhysicalDeviceBufferDeviceAddressFeatures StructureType = 1000257000 + StructureTypeBufferDeviceAddressInfo StructureType = 1000244001 + StructureTypeBufferOpaqueCaptureAddressCreateInfo StructureType = 1000257002 + StructureTypeMemoryOpaqueCaptureAddressAllocateInfo StructureType = 1000257003 + StructureTypeDeviceMemoryOpaqueCaptureAddressInfo StructureType = 1000257004 + StructureTypePhysicalDeviceVulkan13Features StructureType = 53 + StructureTypePhysicalDeviceVulkan13Properties StructureType = 54 + StructureTypePipelineCreationFeedbackCreateInfo StructureType = 1000192000 + StructureTypePhysicalDeviceShaderTerminateInvocationFeatures StructureType = 1000215000 + StructureTypePhysicalDeviceToolProperties StructureType = 1000245000 + StructureTypePhysicalDeviceShaderDemoteToHelperInvocationFeatures StructureType = 1000276000 + StructureTypePhysicalDevicePrivateDataFeatures StructureType = 1000295000 + StructureTypeDevicePrivateDataCreateInfo StructureType = 1000295001 + StructureTypePrivateDataSlotCreateInfo StructureType = 1000295002 + StructureTypePhysicalDevicePipelineCreationCacheControlFeatures StructureType = 1000297000 + StructureTypeMemoryBarrier2 StructureType = 1000314000 + StructureTypeBufferMemoryBarrier2 StructureType = 1000314001 + StructureTypeImageMemoryBarrier2 StructureType = 1000314002 + StructureTypeDependencyInfo StructureType = 1000314003 + StructureTypeSubmitInfo2 StructureType = 1000314004 + StructureTypeSemaphoreSubmitInfo StructureType = 1000314005 + StructureTypeCommandBufferSubmitInfo StructureType = 1000314006 + StructureTypePhysicalDeviceSynchronization2Features StructureType = 1000314007 + StructureTypePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures StructureType = 1000325000 + StructureTypePhysicalDeviceImageRobustnessFeatures StructureType = 1000335000 + StructureTypeCopyBufferInfo2 StructureType = 1000337000 + StructureTypeCopyImageInfo2 StructureType = 1000337001 + StructureTypeCopyBufferToImageInfo2 StructureType = 1000337002 + StructureTypeCopyImageToBufferInfo2 StructureType = 1000337003 + StructureTypeBlitImageInfo2 StructureType = 1000337004 + StructureTypeResolveImageInfo2 StructureType = 1000337005 + StructureTypeBufferCopy2 StructureType = 1000337006 + StructureTypeImageCopy2 StructureType = 1000337007 + StructureTypeImageBlit2 StructureType = 1000337008 + StructureTypeBufferImageCopy2 StructureType = 1000337009 + StructureTypeImageResolve2 StructureType = 1000337010 + StructureTypePhysicalDeviceSubgroupSizeControlProperties StructureType = 1000225000 + StructureTypePipelineShaderStageRequiredSubgroupSizeCreateInfo StructureType = 1000225001 + StructureTypePhysicalDeviceSubgroupSizeControlFeatures StructureType = 1000225002 + StructureTypePhysicalDeviceInlineUniformBlockFeatures StructureType = 1000138000 + StructureTypePhysicalDeviceInlineUniformBlockProperties StructureType = 1000138001 + StructureTypeWriteDescriptorSetInlineUniformBlock StructureType = 1000138002 + StructureTypeDescriptorPoolInlineUniformBlockCreateInfo StructureType = 1000138003 + StructureTypePhysicalDeviceTextureCompressionAstcHdrFeatures StructureType = 1000066000 + StructureTypeRenderingInfo StructureType = 1000044000 + StructureTypeRenderingAttachmentInfo StructureType = 1000044001 + StructureTypePipelineRenderingCreateInfo StructureType = 1000044002 + StructureTypePhysicalDeviceDynamicRenderingFeatures StructureType = 1000044003 + StructureTypeCommandBufferInheritanceRenderingInfo StructureType = 1000044004 + StructureTypePhysicalDeviceShaderIntegerDotProductFeatures StructureType = 1000280000 + StructureTypePhysicalDeviceShaderIntegerDotProductProperties StructureType = 1000280001 + StructureTypePhysicalDeviceTexelBufferAlignmentProperties StructureType = 1000281001 + StructureTypeFormatProperties3 StructureType = 1000360000 + StructureTypePhysicalDeviceMaintenance4Features StructureType = 1000413000 + StructureTypePhysicalDeviceMaintenance4Properties StructureType = 1000413001 + StructureTypeDeviceBufferMemoryRequirements StructureType = 1000413002 + StructureTypeDeviceImageMemoryRequirements StructureType = 1000413003 + StructureTypeSwapchainCreateInfo StructureType = 1000001000 + StructureTypePresentInfo StructureType = 1000001001 + StructureTypeDeviceGroupPresentCapabilities StructureType = 1000060007 + StructureTypeImageSwapchainCreateInfo StructureType = 1000060008 + StructureTypeBindImageMemorySwapchainInfo StructureType = 1000060009 + StructureTypeAcquireNextImageInfo StructureType = 1000060010 + StructureTypeDeviceGroupPresentInfo StructureType = 1000060011 + StructureTypeDeviceGroupSwapchainCreateInfo StructureType = 1000060012 + StructureTypeDisplayModeCreateInfo StructureType = 1000002000 + StructureTypeDisplaySurfaceCreateInfo StructureType = 1000002001 + StructureTypeDisplayPresentInfo StructureType = 1000003000 + StructureTypeXlibSurfaceCreateInfo StructureType = 1000004000 + StructureTypeXcbSurfaceCreateInfo StructureType = 1000005000 + StructureTypeWaylandSurfaceCreateInfo StructureType = 1000006000 + StructureTypeAndroidSurfaceCreateInfo StructureType = 1000008000 + StructureTypeWin32SurfaceCreateInfo StructureType = 1000009000 + StructureTypeDebugReportCallbackCreateInfo StructureType = 1000011000 + StructureTypePipelineRasterizationStateRasterizationOrderAmd StructureType = 1000018000 + StructureTypeDebugMarkerObjectNameInfo StructureType = 1000022000 + StructureTypeDebugMarkerObjectTagInfo StructureType = 1000022001 + StructureTypeDebugMarkerMarkerInfo StructureType = 1000022002 + StructureTypeVideoProfileInfo StructureType = 1000023000 + StructureTypeVideoCapabilities StructureType = 1000023001 + StructureTypeVideoPictureResourceInfo StructureType = 1000023002 + StructureTypeVideoSessionMemoryRequirements StructureType = 1000023003 + StructureTypeBindVideoSessionMemoryInfo StructureType = 1000023004 + StructureTypeVideoSessionCreateInfo StructureType = 1000023005 + StructureTypeVideoSessionParametersCreateInfo StructureType = 1000023006 + StructureTypeVideoSessionParametersUpdateInfo StructureType = 1000023007 + StructureTypeVideoBeginCodingInfo StructureType = 1000023008 + StructureTypeVideoEndCodingInfo StructureType = 1000023009 + StructureTypeVideoCodingControlInfo StructureType = 1000023010 + StructureTypeVideoReferenceSlotInfo StructureType = 1000023011 + StructureTypeQueueFamilyVideoProperties StructureType = 1000023012 + StructureTypeVideoProfileListInfo StructureType = 1000023013 + StructureTypePhysicalDeviceVideoFormatInfo StructureType = 1000023014 + StructureTypeVideoFormatProperties StructureType = 1000023015 + StructureTypeQueueFamilyQueryResultStatusProperties StructureType = 1000023016 + StructureTypeVideoDecodeInfo StructureType = 1000024000 + StructureTypeVideoDecodeCapabilities StructureType = 1000024001 + StructureTypeVideoDecodeUsageInfo StructureType = 1000024002 + StructureTypeDedicatedAllocationImageCreateInfoNv StructureType = 1000026000 + StructureTypeDedicatedAllocationBufferCreateInfoNv StructureType = 1000026001 + StructureTypeDedicatedAllocationMemoryAllocateInfoNv StructureType = 1000026002 + StructureTypePhysicalDeviceTransformFeedbackFeatures StructureType = 1000028000 + StructureTypePhysicalDeviceTransformFeedbackProperties StructureType = 1000028001 + StructureTypePipelineRasterizationStateStreamCreateInfo StructureType = 1000028002 + StructureTypeCuModuleCreateInfoNvx StructureType = 1000029000 + StructureTypeCuFunctionCreateInfoNvx StructureType = 1000029001 + StructureTypeCuLaunchInfoNvx StructureType = 1000029002 + StructureTypeImageViewHandleInfoNvx StructureType = 1000030000 + StructureTypeImageViewAddressPropertiesNvx StructureType = 1000030001 + StructureTypeVideoEncodeH264Capabilities StructureType = 1000038000 + StructureTypeVideoEncodeH264SessionParametersCreateInfo StructureType = 1000038001 + StructureTypeVideoEncodeH264SessionParametersAddInfo StructureType = 1000038002 + StructureTypeVideoEncodeH264VclFrameInfo StructureType = 1000038003 + StructureTypeVideoEncodeH264DpbSlotInfo StructureType = 1000038004 + StructureTypeVideoEncodeH264NaluSliceInfo StructureType = 1000038005 + StructureTypeVideoEncodeH264EmitPictureParametersInfo StructureType = 1000038006 + StructureTypeVideoEncodeH264ProfileInfo StructureType = 1000038007 + StructureTypeVideoEncodeH264RateControlInfo StructureType = 1000038008 + StructureTypeVideoEncodeH264RateControlLayerInfo StructureType = 1000038009 + StructureTypeVideoEncodeH264ReferenceListsInfo StructureType = 1000038010 + StructureTypeVideoEncodeH265Capabilities StructureType = 1000039000 + StructureTypeVideoEncodeH265SessionParametersCreateInfo StructureType = 1000039001 + StructureTypeVideoEncodeH265SessionParametersAddInfo StructureType = 1000039002 + StructureTypeVideoEncodeH265VclFrameInfo StructureType = 1000039003 + StructureTypeVideoEncodeH265DpbSlotInfo StructureType = 1000039004 + StructureTypeVideoEncodeH265NaluSliceSegmentInfo StructureType = 1000039005 + StructureTypeVideoEncodeH265EmitPictureParametersInfo StructureType = 1000039006 + StructureTypeVideoEncodeH265ProfileInfo StructureType = 1000039007 + StructureTypeVideoEncodeH265ReferenceListsInfo StructureType = 1000039008 + StructureTypeVideoEncodeH265RateControlInfo StructureType = 1000039009 + StructureTypeVideoEncodeH265RateControlLayerInfo StructureType = 1000039010 + StructureTypeVideoDecodeH264Capabilities StructureType = 1000040000 + StructureTypeVideoDecodeH264PictureInfo StructureType = 1000040001 + StructureTypeVideoDecodeH264ProfileInfo StructureType = 1000040003 + StructureTypeVideoDecodeH264SessionParametersCreateInfo StructureType = 1000040004 + StructureTypeVideoDecodeH264SessionParametersAddInfo StructureType = 1000040005 + StructureTypeVideoDecodeH264DpbSlotInfo StructureType = 1000040006 + StructureTypeTextureLodGatherFormatPropertiesAmd StructureType = 1000041000 + StructureTypeRenderingFragmentShadingRateAttachmentInfo StructureType = 1000044006 + StructureTypeRenderingFragmentDensityMapAttachmentInfo StructureType = 1000044007 + StructureTypeAttachmentSampleCountInfoAmd StructureType = 1000044008 + StructureTypeMultiviewPerViewAttributesInfoNvx StructureType = 1000044009 + StructureTypeStreamDescriptorSurfaceCreateInfoGgp StructureType = 1000049000 + StructureTypePhysicalDeviceCornerSampledImageFeaturesNv StructureType = 1000050000 + StructureTypeExternalMemoryImageCreateInfoNv StructureType = 1000056000 + StructureTypeExportMemoryAllocateInfoNv StructureType = 1000056001 + StructureTypeImportMemoryWin32HandleInfoNv StructureType = 1000057000 + StructureTypeExportMemoryWin32HandleInfoNv StructureType = 1000057001 + StructureTypeWin32KeyedMutexAcquireReleaseInfoNv StructureType = 1000058000 + StructureTypeValidationFlags StructureType = 1000061000 + StructureTypeViSurfaceCreateInfoNn StructureType = 1000062000 + StructureTypeImageViewAstcDecodeMode StructureType = 1000067000 + StructureTypePhysicalDeviceAstcDecodeFeatures StructureType = 1000067001 + StructureTypePipelineRobustnessCreateInfo StructureType = 1000068000 + StructureTypePhysicalDevicePipelineRobustnessFeatures StructureType = 1000068001 + StructureTypePhysicalDevicePipelineRobustnessProperties StructureType = 1000068002 + StructureTypeImportMemoryWin32HandleInfo StructureType = 1000073000 + StructureTypeExportMemoryWin32HandleInfo StructureType = 1000073001 + StructureTypeMemoryWin32HandleProperties StructureType = 1000073002 + StructureTypeMemoryGetWin32HandleInfo StructureType = 1000073003 + StructureTypeImportMemoryFdInfo StructureType = 1000074000 + StructureTypeMemoryFdProperties StructureType = 1000074001 + StructureTypeMemoryGetFdInfo StructureType = 1000074002 + StructureTypeWin32KeyedMutexAcquireReleaseInfo StructureType = 1000075000 + StructureTypeImportSemaphoreWin32HandleInfo StructureType = 1000078000 + StructureTypeExportSemaphoreWin32HandleInfo StructureType = 1000078001 + StructureTypeD3d12FenceSubmitInfo StructureType = 1000078002 + StructureTypeSemaphoreGetWin32HandleInfo StructureType = 1000078003 + StructureTypeImportSemaphoreFdInfo StructureType = 1000079000 + StructureTypeSemaphoreGetFdInfo StructureType = 1000079001 + StructureTypePhysicalDevicePushDescriptorProperties StructureType = 1000080000 + StructureTypeCommandBufferInheritanceConditionalRenderingInfo StructureType = 1000081000 + StructureTypePhysicalDeviceConditionalRenderingFeatures StructureType = 1000081001 + StructureTypeConditionalRenderingBeginInfo StructureType = 1000081002 + StructureTypePresentRegions StructureType = 1000084000 + StructureTypePipelineViewportWScalingStateCreateInfoNv StructureType = 1000087000 + StructureTypeSurfaceCapabilities2 StructureType = 1000090000 + StructureTypeDisplayPowerInfo StructureType = 1000091000 + StructureTypeDeviceEventInfo StructureType = 1000091001 + StructureTypeDisplayEventInfo StructureType = 1000091002 + StructureTypeSwapchainCounterCreateInfo StructureType = 1000091003 + StructureTypePresentTimesInfoGoogle StructureType = 1000092000 + StructureTypePhysicalDeviceMultiviewPerViewAttributesPropertiesNvx StructureType = 1000097000 + StructureTypePipelineViewportSwizzleStateCreateInfoNv StructureType = 1000098000 + StructureTypePhysicalDeviceDiscardRectangleProperties StructureType = 1000099000 + StructureTypePipelineDiscardRectangleStateCreateInfo StructureType = 1000099001 + StructureTypePhysicalDeviceConservativeRasterizationProperties StructureType = 1000101000 + StructureTypePipelineRasterizationConservativeStateCreateInfo StructureType = 1000101001 + StructureTypePhysicalDeviceDepthClipEnableFeatures StructureType = 1000102000 + StructureTypePipelineRasterizationDepthClipStateCreateInfo StructureType = 1000102001 + StructureTypeHdrMetadata StructureType = 1000105000 + StructureTypeSharedPresentSurfaceCapabilities StructureType = 1000111000 + StructureTypeImportFenceWin32HandleInfo StructureType = 1000114000 + StructureTypeExportFenceWin32HandleInfo StructureType = 1000114001 + StructureTypeFenceGetWin32HandleInfo StructureType = 1000114002 + StructureTypeImportFenceFdInfo StructureType = 1000115000 + StructureTypeFenceGetFdInfo StructureType = 1000115001 + StructureTypePhysicalDevicePerformanceQueryFeatures StructureType = 1000116000 + StructureTypePhysicalDevicePerformanceQueryProperties StructureType = 1000116001 + StructureTypeQueryPoolPerformanceCreateInfo StructureType = 1000116002 + StructureTypePerformanceQuerySubmitInfo StructureType = 1000116003 + StructureTypeAcquireProfilingLockInfo StructureType = 1000116004 + StructureTypePerformanceCounter StructureType = 1000116005 + StructureTypePerformanceCounterDescription StructureType = 1000116006 + StructureTypePhysicalDeviceSurfaceInfo2 StructureType = 1000119000 + StructureTypeSurfaceFormat2 StructureType = 1000119002 + StructureTypeDisplayProperties2 StructureType = 1000121000 + StructureTypeDisplayPlaneProperties2 StructureType = 1000121001 + StructureTypeDisplayModeProperties2 StructureType = 1000121002 + StructureTypeDisplayPlaneInfo2 StructureType = 1000121003 + StructureTypeDisplayPlaneCapabilities2 StructureType = 1000121004 + StructureTypeIosSurfaceCreateInfoMvk StructureType = 1000122000 + StructureTypeMacosSurfaceCreateInfoMvk StructureType = 1000123000 + StructureTypeDebugUtilsObjectNameInfo StructureType = 1000128000 + StructureTypeDebugUtilsObjectTagInfo StructureType = 1000128001 + StructureTypeDebugUtilsLabel StructureType = 1000128002 + StructureTypeDebugUtilsMessengerCallbackData StructureType = 1000128003 + StructureTypeDebugUtilsMessengerCreateInfo StructureType = 1000128004 + StructureTypeAndroidHardwareBufferUsageAndroid StructureType = 1000129000 + StructureTypeAndroidHardwareBufferPropertiesAndroid StructureType = 1000129001 + StructureTypeAndroidHardwareBufferFormatPropertiesAndroid StructureType = 1000129002 + StructureTypeImportAndroidHardwareBufferInfoAndroid StructureType = 1000129003 + StructureTypeMemoryGetAndroidHardwareBufferInfoAndroid StructureType = 1000129004 + StructureTypeExternalFormatAndroid StructureType = 1000129005 + StructureTypeAndroidHardwareBufferFormatProperties2Android StructureType = 1000129006 + StructureTypeSampleLocationsInfo StructureType = 1000143000 + StructureTypeRenderPassSampleLocationsBeginInfo StructureType = 1000143001 + StructureTypePipelineSampleLocationsStateCreateInfo StructureType = 1000143002 + StructureTypePhysicalDeviceSampleLocationsProperties StructureType = 1000143003 + StructureTypeMultisampleProperties StructureType = 1000143004 + StructureTypePhysicalDeviceBlendOperationAdvancedFeatures StructureType = 1000148000 + StructureTypePhysicalDeviceBlendOperationAdvancedProperties StructureType = 1000148001 + StructureTypePipelineColorBlendAdvancedStateCreateInfo StructureType = 1000148002 + StructureTypePipelineCoverageToColorStateCreateInfoNv StructureType = 1000149000 + StructureTypeWriteDescriptorSetAccelerationStructure StructureType = 1000150007 + StructureTypeAccelerationStructureBuildGeometryInfo StructureType = 1000150000 + StructureTypeAccelerationStructureDeviceAddressInfo StructureType = 1000150002 + StructureTypeAccelerationStructureGeometryAabbsData StructureType = 1000150003 + StructureTypeAccelerationStructureGeometryInstancesData StructureType = 1000150004 + StructureTypeAccelerationStructureGeometryTrianglesData StructureType = 1000150005 + StructureTypeAccelerationStructureGeometry StructureType = 1000150006 + StructureTypeAccelerationStructureVersionInfo StructureType = 1000150009 + StructureTypeCopyAccelerationStructureInfo StructureType = 1000150010 + StructureTypeCopyAccelerationStructureToMemoryInfo StructureType = 1000150011 + StructureTypeCopyMemoryToAccelerationStructureInfo StructureType = 1000150012 + StructureTypePhysicalDeviceAccelerationStructureFeatures StructureType = 1000150013 + StructureTypePhysicalDeviceAccelerationStructureProperties StructureType = 1000150014 + StructureTypeAccelerationStructureCreateInfo StructureType = 1000150017 + StructureTypeAccelerationStructureBuildSizesInfo StructureType = 1000150020 + StructureTypePhysicalDeviceRayTracingPipelineFeatures StructureType = 1000347000 + StructureTypePhysicalDeviceRayTracingPipelineProperties StructureType = 1000347001 + StructureTypeRayTracingPipelineCreateInfo StructureType = 1000150015 + StructureTypeRayTracingShaderGroupCreateInfo StructureType = 1000150016 + StructureTypeRayTracingPipelineInterfaceCreateInfo StructureType = 1000150018 + StructureTypePhysicalDeviceRayQueryFeatures StructureType = 1000348013 + StructureTypePipelineCoverageModulationStateCreateInfoNv StructureType = 1000152000 + StructureTypePhysicalDeviceShaderSmBuiltinsFeaturesNv StructureType = 1000154000 + StructureTypePhysicalDeviceShaderSmBuiltinsPropertiesNv StructureType = 1000154001 + StructureTypeDrmFormatModifierPropertiesList StructureType = 1000158000 + StructureTypePhysicalDeviceImageDrmFormatModifierInfo StructureType = 1000158002 + StructureTypeImageDrmFormatModifierListCreateInfo StructureType = 1000158003 + StructureTypeImageDrmFormatModifierExplicitCreateInfo StructureType = 1000158004 + StructureTypeImageDrmFormatModifierProperties StructureType = 1000158005 + StructureTypeDrmFormatModifierPropertiesList2 StructureType = 1000158006 + StructureTypeValidationCacheCreateInfo StructureType = 1000160000 + StructureTypeShaderModuleValidationCacheCreateInfo StructureType = 1000160001 + StructureTypePhysicalDevicePortabilitySubsetFeatures StructureType = 1000163000 + StructureTypePhysicalDevicePortabilitySubsetProperties StructureType = 1000163001 + StructureTypePipelineViewportShadingRateImageStateCreateInfoNv StructureType = 1000164000 + StructureTypePhysicalDeviceShadingRateImageFeaturesNv StructureType = 1000164001 + StructureTypePhysicalDeviceShadingRateImagePropertiesNv StructureType = 1000164002 + StructureTypePipelineViewportCoarseSampleOrderStateCreateInfoNv StructureType = 1000164005 + StructureTypeRayTracingPipelineCreateInfoNv StructureType = 1000165000 + StructureTypeAccelerationStructureCreateInfoNv StructureType = 1000165001 + StructureTypeGeometryNv StructureType = 1000165003 + StructureTypeGeometryTrianglesNv StructureType = 1000165004 + StructureTypeGeometryAabbNv StructureType = 1000165005 + StructureTypeBindAccelerationStructureMemoryInfoNv StructureType = 1000165006 + StructureTypeWriteDescriptorSetAccelerationStructureNv StructureType = 1000165007 + StructureTypeAccelerationStructureMemoryRequirementsInfoNv StructureType = 1000165008 + StructureTypePhysicalDeviceRayTracingPropertiesNv StructureType = 1000165009 + StructureTypeRayTracingShaderGroupCreateInfoNv StructureType = 1000165011 + StructureTypeAccelerationStructureInfoNv StructureType = 1000165012 + StructureTypePhysicalDeviceRepresentativeFragmentTestFeaturesNv StructureType = 1000166000 + StructureTypePipelineRepresentativeFragmentTestStateCreateInfoNv StructureType = 1000166001 + StructureTypePhysicalDeviceImageViewImageFormatInfo StructureType = 1000170000 + StructureTypeFilterCubicImageViewImageFormatProperties StructureType = 1000170001 + StructureTypeImportMemoryHostPointerInfo StructureType = 1000178000 + StructureTypeMemoryHostPointerProperties StructureType = 1000178001 + StructureTypePhysicalDeviceExternalMemoryHostProperties StructureType = 1000178002 + StructureTypePhysicalDeviceShaderClockFeatures StructureType = 1000181000 + StructureTypePipelineCompilerControlCreateInfoAmd StructureType = 1000183000 + StructureTypeCalibratedTimestampInfo StructureType = 1000184000 + StructureTypePhysicalDeviceShaderCorePropertiesAmd StructureType = 1000185000 + StructureTypeVideoDecodeH265Capabilities StructureType = 1000187000 + StructureTypeVideoDecodeH265SessionParametersCreateInfo StructureType = 1000187001 + StructureTypeVideoDecodeH265SessionParametersAddInfo StructureType = 1000187002 + StructureTypeVideoDecodeH265ProfileInfo StructureType = 1000187003 + StructureTypeVideoDecodeH265PictureInfo StructureType = 1000187004 + StructureTypeVideoDecodeH265DpbSlotInfo StructureType = 1000187005 + StructureTypeDeviceQueueGlobalPriorityCreateInfo StructureType = 1000174000 + StructureTypePhysicalDeviceGlobalPriorityQueryFeatures StructureType = 1000388000 + StructureTypeQueueFamilyGlobalPriorityProperties StructureType = 1000388001 + StructureTypeDeviceMemoryOverallocationCreateInfoAmd StructureType = 1000189000 + StructureTypePhysicalDeviceVertexAttributeDivisorProperties StructureType = 1000190000 + StructureTypePipelineVertexInputDivisorStateCreateInfo StructureType = 1000190001 + StructureTypePhysicalDeviceVertexAttributeDivisorFeatures StructureType = 1000190002 + StructureTypePresentFrameTokenGgp StructureType = 1000191000 + StructureTypePhysicalDeviceComputeShaderDerivativesFeaturesNv StructureType = 1000201000 + StructureTypePhysicalDeviceMeshShaderFeaturesNv StructureType = 1000202000 + StructureTypePhysicalDeviceMeshShaderPropertiesNv StructureType = 1000202001 + StructureTypePhysicalDeviceShaderImageFootprintFeaturesNv StructureType = 1000204000 + StructureTypePipelineViewportExclusiveScissorStateCreateInfoNv StructureType = 1000205000 + StructureTypePhysicalDeviceExclusiveScissorFeaturesNv StructureType = 1000205002 + StructureTypeCheckpointDataNv StructureType = 1000206000 + StructureTypeQueueFamilyCheckpointPropertiesNv StructureType = 1000206001 + StructureTypePhysicalDeviceShaderIntegerFunctions2FeaturesIntel StructureType = 1000209000 + StructureTypeQueryPoolPerformanceQueryCreateInfoIntel StructureType = 1000210000 + StructureTypeInitializePerformanceApiInfoIntel StructureType = 1000210001 + StructureTypePerformanceMarkerInfoIntel StructureType = 1000210002 + StructureTypePerformanceStreamMarkerInfoIntel StructureType = 1000210003 + StructureTypePerformanceOverrideInfoIntel StructureType = 1000210004 + StructureTypePerformanceConfigurationAcquireInfoIntel StructureType = 1000210005 + StructureTypePhysicalDevicePciBusInfoProperties StructureType = 1000212000 + StructureTypeDisplayNativeHdrSurfaceCapabilitiesAmd StructureType = 1000213000 + StructureTypeSwapchainDisplayNativeHdrCreateInfoAmd StructureType = 1000213001 + StructureTypeImagepipeSurfaceCreateInfoFuchsia StructureType = 1000214000 + StructureTypeMetalSurfaceCreateInfo StructureType = 1000217000 + StructureTypePhysicalDeviceFragmentDensityMapFeatures StructureType = 1000218000 + StructureTypePhysicalDeviceFragmentDensityMapProperties StructureType = 1000218001 + StructureTypeRenderPassFragmentDensityMapCreateInfo StructureType = 1000218002 + StructureTypeFragmentShadingRateAttachmentInfo StructureType = 1000226000 + StructureTypePipelineFragmentShadingRateStateCreateInfo StructureType = 1000226001 + StructureTypePhysicalDeviceFragmentShadingRateProperties StructureType = 1000226002 + StructureTypePhysicalDeviceFragmentShadingRateFeatures StructureType = 1000226003 + StructureTypePhysicalDeviceFragmentShadingRate StructureType = 1000226004 + StructureTypePhysicalDeviceShaderCoreProperties2Amd StructureType = 1000227000 + StructureTypePhysicalDeviceCoherentMemoryFeaturesAmd StructureType = 1000229000 + StructureTypePhysicalDeviceShaderImageAtomicInt64Features StructureType = 1000234000 + StructureTypePhysicalDeviceMemoryBudgetProperties StructureType = 1000237000 + StructureTypePhysicalDeviceMemoryPriorityFeatures StructureType = 1000238000 + StructureTypeMemoryPriorityAllocateInfo StructureType = 1000238001 + StructureTypeSurfaceProtectedCapabilities StructureType = 1000239000 + StructureTypePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNv StructureType = 1000240000 + StructureTypeBufferDeviceAddressCreateInfo StructureType = 1000244002 + StructureTypeValidationFeatures StructureType = 1000247000 + StructureTypePhysicalDevicePresentWaitFeatures StructureType = 1000248000 + StructureTypePhysicalDeviceCooperativeMatrixFeaturesNv StructureType = 1000249000 + StructureTypeCooperativeMatrixPropertiesNv StructureType = 1000249001 + StructureTypePhysicalDeviceCooperativeMatrixPropertiesNv StructureType = 1000249002 + StructureTypePhysicalDeviceCoverageReductionModeFeaturesNv StructureType = 1000250000 + StructureTypePipelineCoverageReductionStateCreateInfoNv StructureType = 1000250001 + StructureTypeFramebufferMixedSamplesCombinationNv StructureType = 1000250002 + StructureTypePhysicalDeviceFragmentShaderInterlockFeatures StructureType = 1000251000 + StructureTypePhysicalDeviceYcbcrImageArraysFeatures StructureType = 1000252000 + StructureTypePhysicalDeviceProvokingVertexFeatures StructureType = 1000254000 + StructureTypePipelineRasterizationProvokingVertexStateCreateInfo StructureType = 1000254001 + StructureTypePhysicalDeviceProvokingVertexProperties StructureType = 1000254002 + StructureTypeSurfaceFullScreenExclusiveInfo StructureType = 1000255000 + StructureTypeSurfaceCapabilitiesFullScreenExclusive StructureType = 1000255002 + StructureTypeSurfaceFullScreenExclusiveWin32Info StructureType = 1000255001 + StructureTypeHeadlessSurfaceCreateInfo StructureType = 1000256000 + StructureTypePhysicalDeviceLineRasterizationFeatures StructureType = 1000259000 + StructureTypePipelineRasterizationLineStateCreateInfo StructureType = 1000259001 + StructureTypePhysicalDeviceLineRasterizationProperties StructureType = 1000259002 + StructureTypePhysicalDeviceShaderAtomicFloatFeatures StructureType = 1000260000 + StructureTypePhysicalDeviceIndexTypeUint8Features StructureType = 1000265000 + StructureTypePhysicalDeviceExtendedDynamicStateFeatures StructureType = 1000267000 + StructureTypePhysicalDevicePipelineExecutablePropertiesFeatures StructureType = 1000269000 + StructureTypePipelineInfo StructureType = 1000269001 + StructureTypePipelineExecutableProperties StructureType = 1000269002 + StructureTypePipelineExecutableInfo StructureType = 1000269003 + StructureTypePipelineExecutableStatistic StructureType = 1000269004 + StructureTypePipelineExecutableInternalRepresentation StructureType = 1000269005 + StructureTypePhysicalDeviceShaderAtomicFloat2Features StructureType = 1000273000 + StructureTypeSurfacePresentMode StructureType = 1000274000 + StructureTypeSurfacePresentScalingCapabilities StructureType = 1000274001 + StructureTypeSurfacePresentModeCompatibility StructureType = 1000274002 + StructureTypePhysicalDeviceSwapchainMaintenance1Features StructureType = 1000275000 + StructureTypeSwapchainPresentFenceInfo StructureType = 1000275001 + StructureTypeSwapchainPresentModesCreateInfo StructureType = 1000275002 + StructureTypeSwapchainPresentModeInfo StructureType = 1000275003 + StructureTypeSwapchainPresentScalingCreateInfo StructureType = 1000275004 + StructureTypeReleaseSwapchainImagesInfo StructureType = 1000275005 + StructureTypePhysicalDeviceDeviceGeneratedCommandsPropertiesNv StructureType = 1000277000 + StructureTypeGraphicsShaderGroupCreateInfoNv StructureType = 1000277001 + StructureTypeGraphicsPipelineShaderGroupsCreateInfoNv StructureType = 1000277002 + StructureTypeIndirectCommandsLayoutTokenNv StructureType = 1000277003 + StructureTypeIndirectCommandsLayoutCreateInfoNv StructureType = 1000277004 + StructureTypeGeneratedCommandsInfoNv StructureType = 1000277005 + StructureTypeGeneratedCommandsMemoryRequirementsInfoNv StructureType = 1000277006 + StructureTypePhysicalDeviceDeviceGeneratedCommandsFeaturesNv StructureType = 1000277007 + StructureTypePhysicalDeviceInheritedViewportScissorFeaturesNv StructureType = 1000278000 + StructureTypeCommandBufferInheritanceViewportScissorInfoNv StructureType = 1000278001 + StructureTypePhysicalDeviceTexelBufferAlignmentFeatures StructureType = 1000281000 + StructureTypeCommandBufferInheritanceRenderPassTransformInfoQcom StructureType = 1000282000 + StructureTypeRenderPassTransformBeginInfoQcom StructureType = 1000282001 + StructureTypePhysicalDeviceDeviceMemoryReportFeatures StructureType = 1000284000 + StructureTypeDeviceDeviceMemoryReportCreateInfo StructureType = 1000284001 + StructureTypeDeviceMemoryReportCallbackData StructureType = 1000284002 + StructureTypePhysicalDeviceRobustness2Features StructureType = 1000286000 + StructureTypePhysicalDeviceRobustness2Properties StructureType = 1000286001 + StructureTypeSamplerCustomBorderColorCreateInfo StructureType = 1000287000 + StructureTypePhysicalDeviceCustomBorderColorProperties StructureType = 1000287001 + StructureTypePhysicalDeviceCustomBorderColorFeatures StructureType = 1000287002 + StructureTypePipelineLibraryCreateInfo StructureType = 1000290000 + StructureTypePhysicalDevicePresentBarrierFeaturesNv StructureType = 1000292000 + StructureTypeSurfaceCapabilitiesPresentBarrierNv StructureType = 1000292001 + StructureTypeSwapchainPresentBarrierCreateInfoNv StructureType = 1000292002 + StructureTypePresentId StructureType = 1000294000 + StructureTypePhysicalDevicePresentIdFeatures StructureType = 1000294001 + StructureTypeVideoEncodeInfo StructureType = 1000299000 + StructureTypeVideoEncodeRateControlInfo StructureType = 1000299001 + StructureTypeVideoEncodeRateControlLayerInfo StructureType = 1000299002 + StructureTypeVideoEncodeCapabilities StructureType = 1000299003 + StructureTypeVideoEncodeUsageInfo StructureType = 1000299004 + StructureTypePhysicalDeviceDiagnosticsConfigFeaturesNv StructureType = 1000300000 + StructureTypeDeviceDiagnosticsConfigCreateInfoNv StructureType = 1000300001 + StructureTypeExportMetalObjectCreateInfo StructureType = 1000311000 + StructureTypeExportMetalObjectsInfo StructureType = 1000311001 + StructureTypeExportMetalDeviceInfo StructureType = 1000311002 + StructureTypeExportMetalCommandQueueInfo StructureType = 1000311003 + StructureTypeExportMetalBufferInfo StructureType = 1000311004 + StructureTypeImportMetalBufferInfo StructureType = 1000311005 + StructureTypeExportMetalTextureInfo StructureType = 1000311006 + StructureTypeImportMetalTextureInfo StructureType = 1000311007 + StructureTypeExportMetalIoSurfaceInfo StructureType = 1000311008 + StructureTypeImportMetalIoSurfaceInfo StructureType = 1000311009 + StructureTypeExportMetalSharedEventInfo StructureType = 1000311010 + StructureTypeImportMetalSharedEventInfo StructureType = 1000311011 + StructureTypeQueueFamilyCheckpointProperties2Nv StructureType = 1000314008 + StructureTypeCheckpointData2Nv StructureType = 1000314009 + StructureTypePhysicalDeviceDescriptorBufferProperties StructureType = 1000316000 + StructureTypePhysicalDeviceDescriptorBufferDensityMapProperties StructureType = 1000316001 + StructureTypePhysicalDeviceDescriptorBufferFeatures StructureType = 1000316002 + StructureTypeDescriptorAddressInfo StructureType = 1000316003 + StructureTypeDescriptorGetInfo StructureType = 1000316004 + StructureTypeBufferCaptureDescriptorDataInfo StructureType = 1000316005 + StructureTypeImageCaptureDescriptorDataInfo StructureType = 1000316006 + StructureTypeImageViewCaptureDescriptorDataInfo StructureType = 1000316007 + StructureTypeSamplerCaptureDescriptorDataInfo StructureType = 1000316008 + StructureTypeOpaqueCaptureDescriptorDataCreateInfo StructureType = 1000316010 + StructureTypeDescriptorBufferBindingInfo StructureType = 1000316011 + StructureTypeDescriptorBufferBindingPushDescriptorBufferHandle StructureType = 1000316012 + StructureTypeAccelerationStructureCaptureDescriptorDataInfo StructureType = 1000316009 + StructureTypePhysicalDeviceGraphicsPipelineLibraryFeatures StructureType = 1000320000 + StructureTypePhysicalDeviceGraphicsPipelineLibraryProperties StructureType = 1000320001 + StructureTypeGraphicsPipelineLibraryCreateInfo StructureType = 1000320002 + StructureTypePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAmd StructureType = 1000321000 + StructureTypePhysicalDeviceFragmentShaderBarycentricFeatures StructureType = 1000203000 + StructureTypePhysicalDeviceFragmentShaderBarycentricProperties StructureType = 1000322000 + StructureTypePhysicalDeviceShaderSubgroupUniformControlFlowFeatures StructureType = 1000323000 + StructureTypePhysicalDeviceFragmentShadingRateEnumsPropertiesNv StructureType = 1000326000 + StructureTypePhysicalDeviceFragmentShadingRateEnumsFeaturesNv StructureType = 1000326001 + StructureTypePipelineFragmentShadingRateEnumStateCreateInfoNv StructureType = 1000326002 + StructureTypeAccelerationStructureGeometryMotionTrianglesDataNv StructureType = 1000327000 + StructureTypePhysicalDeviceRayTracingMotionBlurFeaturesNv StructureType = 1000327001 + StructureTypeAccelerationStructureMotionInfoNv StructureType = 1000327002 + StructureTypePhysicalDeviceMeshShaderFeatures StructureType = 1000328000 + StructureTypePhysicalDeviceMeshShaderProperties StructureType = 1000328001 + StructureTypePhysicalDeviceYcbcr2Plane444FormatsFeatures StructureType = 1000330000 + StructureTypePhysicalDeviceFragmentDensityMap2Features StructureType = 1000332000 + StructureTypePhysicalDeviceFragmentDensityMap2Properties StructureType = 1000332001 + StructureTypeCopyCommandTransformInfoQcom StructureType = 1000333000 + StructureTypePhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures StructureType = 1000336000 + StructureTypePhysicalDeviceImageCompressionControlFeatures StructureType = 1000338000 + StructureTypeImageCompressionControl StructureType = 1000338001 + StructureTypeSubresourceLayout2 StructureType = 1000338002 + StructureTypeImageSubresource2 StructureType = 1000338003 + StructureTypeImageCompressionProperties StructureType = 1000338004 + StructureTypePhysicalDeviceAttachmentFeedbackLoopLayoutFeatures StructureType = 1000339000 + StructureTypePhysicalDevice4444FormatsFeatures StructureType = 1000340000 + StructureTypePhysicalDeviceFaultFeatures StructureType = 1000341000 + StructureTypeDeviceFaultCounts StructureType = 1000341001 + StructureTypeDeviceFaultInfo StructureType = 1000341002 + StructureTypePhysicalDeviceRgba10x6FormatsFeatures StructureType = 1000344000 + StructureTypeDirectfbSurfaceCreateInfo StructureType = 1000346000 + StructureTypePhysicalDeviceVertexInputDynamicStateFeatures StructureType = 1000352000 + StructureTypeVertexInputBindingDescription2 StructureType = 1000352001 + StructureTypeVertexInputAttributeDescription2 StructureType = 1000352002 + StructureTypePhysicalDeviceDrmProperties StructureType = 1000353000 + StructureTypePhysicalDeviceAddressBindingReportFeatures StructureType = 1000354000 + StructureTypeDeviceAddressBindingCallbackData StructureType = 1000354001 + StructureTypePhysicalDeviceDepthClipControlFeatures StructureType = 1000355000 + StructureTypePipelineViewportDepthClipControlCreateInfo StructureType = 1000355001 + StructureTypePhysicalDevicePrimitiveTopologyListRestartFeatures StructureType = 1000356000 + StructureTypeImportMemoryZirconHandleInfoFuchsia StructureType = 1000364000 + StructureTypeMemoryZirconHandlePropertiesFuchsia StructureType = 1000364001 + StructureTypeMemoryGetZirconHandleInfoFuchsia StructureType = 1000364002 + StructureTypeImportSemaphoreZirconHandleInfoFuchsia StructureType = 1000365000 + StructureTypeSemaphoreGetZirconHandleInfoFuchsia StructureType = 1000365001 + StructureTypeBufferCollectionCreateInfoFuchsia StructureType = 1000366000 + StructureTypeImportMemoryBufferCollectionFuchsia StructureType = 1000366001 + StructureTypeBufferCollectionImageCreateInfoFuchsia StructureType = 1000366002 + StructureTypeBufferCollectionPropertiesFuchsia StructureType = 1000366003 + StructureTypeBufferConstraintsInfoFuchsia StructureType = 1000366004 + StructureTypeBufferCollectionBufferCreateInfoFuchsia StructureType = 1000366005 + StructureTypeImageConstraintsInfoFuchsia StructureType = 1000366006 + StructureTypeImageFormatConstraintsInfoFuchsia StructureType = 1000366007 + StructureTypeSysmemColorSpaceFuchsia StructureType = 1000366008 + StructureTypeBufferCollectionConstraintsInfoFuchsia StructureType = 1000366009 + StructureTypeSubpassShadingPipelineCreateInfoHuawei StructureType = 1000369000 + StructureTypePhysicalDeviceSubpassShadingFeaturesHuawei StructureType = 1000369001 + StructureTypePhysicalDeviceSubpassShadingPropertiesHuawei StructureType = 1000369002 + StructureTypePhysicalDeviceInvocationMaskFeaturesHuawei StructureType = 1000370000 + StructureTypeMemoryGetRemoteAddressInfoNv StructureType = 1000371000 + StructureTypePhysicalDeviceExternalMemoryRdmaFeaturesNv StructureType = 1000371001 + StructureTypePipelinePropertiesIdentifier StructureType = 1000372000 + StructureTypePhysicalDevicePipelinePropertiesFeatures StructureType = 1000372001 + StructureTypePhysicalDeviceMultisampledRenderToSingleSampledFeatures StructureType = 1000376000 + StructureTypeSubpassResolvePerformanceQuery StructureType = 1000376001 + StructureTypeMultisampledRenderToSingleSampledInfo StructureType = 1000376002 + StructureTypePhysicalDeviceExtendedDynamicState2Features StructureType = 1000377000 + StructureTypeScreenSurfaceCreateInfoQnx StructureType = 1000378000 + StructureTypePhysicalDeviceColorWriteEnableFeatures StructureType = 1000381000 + StructureTypePipelineColorWriteCreateInfo StructureType = 1000381001 + StructureTypePhysicalDevicePrimitivesGeneratedQueryFeatures StructureType = 1000382000 + StructureTypePhysicalDeviceRayTracingMaintenance1Features StructureType = 1000386000 + StructureTypePhysicalDeviceImageViewMinLodFeatures StructureType = 1000391000 + StructureTypeImageViewMinLodCreateInfo StructureType = 1000391001 + StructureTypePhysicalDeviceMultiDrawFeatures StructureType = 1000392000 + StructureTypePhysicalDeviceMultiDrawProperties StructureType = 1000392001 + StructureTypePhysicalDeviceImage2dViewOf3dFeatures StructureType = 1000393000 + StructureTypeMicromapBuildInfo StructureType = 1000396000 + StructureTypeMicromapVersionInfo StructureType = 1000396001 + StructureTypeCopyMicromapInfo StructureType = 1000396002 + StructureTypeCopyMicromapToMemoryInfo StructureType = 1000396003 + StructureTypeCopyMemoryToMicromapInfo StructureType = 1000396004 + StructureTypePhysicalDeviceOpacityMicromapFeatures StructureType = 1000396005 + StructureTypePhysicalDeviceOpacityMicromapProperties StructureType = 1000396006 + StructureTypeMicromapCreateInfo StructureType = 1000396007 + StructureTypeMicromapBuildSizesInfo StructureType = 1000396008 + StructureTypeAccelerationStructureTrianglesOpacityMicromap StructureType = 1000396009 + StructureTypePhysicalDeviceClusterCullingShaderFeaturesHuawei StructureType = 1000404000 + StructureTypePhysicalDeviceClusterCullingShaderPropertiesHuawei StructureType = 1000404001 + StructureTypePhysicalDeviceBorderColorSwizzleFeatures StructureType = 1000411000 + StructureTypeSamplerBorderColorComponentMappingCreateInfo StructureType = 1000411001 + StructureTypePhysicalDevicePageableDeviceLocalMemoryFeatures StructureType = 1000412000 + StructureTypePhysicalDeviceDescriptorSetHostMappingFeaturesValve StructureType = 1000420000 + StructureTypeDescriptorSetBindingReferenceValve StructureType = 1000420001 + StructureTypeDescriptorSetLayoutHostMappingInfoValve StructureType = 1000420002 + StructureTypePhysicalDeviceDepthClampZeroOneFeatures StructureType = 1000421000 + StructureTypePhysicalDeviceNonSeamlessCubeMapFeatures StructureType = 1000422000 + StructureTypePhysicalDeviceFragmentDensityMapOffsetFeaturesQcom StructureType = 1000425000 + StructureTypePhysicalDeviceFragmentDensityMapOffsetPropertiesQcom StructureType = 1000425001 + StructureTypeSubpassFragmentDensityMapOffsetEndInfoQcom StructureType = 1000425002 + StructureTypePhysicalDeviceCopyMemoryIndirectFeaturesNv StructureType = 1000426000 + StructureTypePhysicalDeviceCopyMemoryIndirectPropertiesNv StructureType = 1000426001 + StructureTypePhysicalDeviceMemoryDecompressionFeaturesNv StructureType = 1000427000 + StructureTypePhysicalDeviceMemoryDecompressionPropertiesNv StructureType = 1000427001 + StructureTypePhysicalDeviceLinearColorAttachmentFeaturesNv StructureType = 1000430000 + StructureTypePhysicalDeviceImageCompressionControlSwapchainFeatures StructureType = 1000437000 + StructureTypePhysicalDeviceImageProcessingFeaturesQcom StructureType = 1000440000 + StructureTypePhysicalDeviceImageProcessingPropertiesQcom StructureType = 1000440001 + StructureTypeImageViewSampleWeightCreateInfoQcom StructureType = 1000440002 + StructureTypePhysicalDeviceExtendedDynamicState3Features StructureType = 1000455000 + StructureTypePhysicalDeviceExtendedDynamicState3Properties StructureType = 1000455001 + StructureTypePhysicalDeviceSubpassMergeFeedbackFeatures StructureType = 1000458000 + StructureTypeRenderPassCreationControl StructureType = 1000458001 + StructureTypeRenderPassCreationFeedbackCreateInfo StructureType = 1000458002 + StructureTypeRenderPassSubpassFeedbackCreateInfo StructureType = 1000458003 + StructureTypeDirectDriverLoadingInfoLunarg StructureType = 1000459000 + StructureTypeDirectDriverLoadingListLunarg StructureType = 1000459001 + StructureTypePhysicalDeviceShaderModuleIdentifierFeatures StructureType = 1000462000 + StructureTypePhysicalDeviceShaderModuleIdentifierProperties StructureType = 1000462001 + StructureTypePipelineShaderStageModuleIdentifierCreateInfo StructureType = 1000462002 + StructureTypeShaderModuleIdentifier StructureType = 1000462003 + StructureTypePhysicalDeviceRasterizationOrderAttachmentAccessFeatures StructureType = 1000342000 + StructureTypePhysicalDeviceOpticalFlowFeaturesNv StructureType = 1000464000 + StructureTypePhysicalDeviceOpticalFlowPropertiesNv StructureType = 1000464001 + StructureTypeOpticalFlowImageFormatInfoNv StructureType = 1000464002 + StructureTypeOpticalFlowImageFormatPropertiesNv StructureType = 1000464003 + StructureTypeOpticalFlowSessionCreateInfoNv StructureType = 1000464004 + StructureTypeOpticalFlowExecuteInfoNv StructureType = 1000464005 + StructureTypeOpticalFlowSessionCreatePrivateDataInfoNv StructureType = 1000464010 + StructureTypePhysicalDeviceLegacyDitheringFeatures StructureType = 1000465000 + StructureTypePhysicalDevicePipelineProtectedAccessFeatures StructureType = 1000466000 + StructureTypePhysicalDeviceTilePropertiesFeaturesQcom StructureType = 1000484000 + StructureTypeTilePropertiesQcom StructureType = 1000484001 + StructureTypePhysicalDeviceAmigoProfilingFeaturesSec StructureType = 1000485000 + StructureTypeAmigoProfilingSubmitInfoSec StructureType = 1000485001 + StructureTypePhysicalDeviceMultiviewPerViewViewportsFeaturesQcom StructureType = 1000488000 + StructureTypePhysicalDeviceRayTracingInvocationReorderFeaturesNv StructureType = 1000490000 + StructureTypePhysicalDeviceRayTracingInvocationReorderPropertiesNv StructureType = 1000490001 + StructureTypePhysicalDeviceMutableDescriptorTypeFeatures StructureType = 1000351000 + StructureTypeMutableDescriptorTypeCreateInfo StructureType = 1000351002 + StructureTypePhysicalDeviceShaderCoreBuiltinsFeaturesArm StructureType = 1000497000 + StructureTypePhysicalDeviceShaderCoreBuiltinsPropertiesArm StructureType = 1000497001 + StructureTypePhysicalDeviceVariablePointerFeatures StructureType = 1000120000 + StructureTypePhysicalDeviceShaderDrawParameterFeatures StructureType = 1000063000 + StructureTypeDebugReportCreateInfo StructureType = 1000011000 + StructureTypeAttachmentSampleCountInfoNv StructureType = 1000044008 + StructureTypePhysicalDeviceFloat16Int8Features StructureType = 1000082000 + StructureTypePhysicalDeviceFragmentShaderBarycentricFeaturesNv StructureType = 1000203000 + StructureTypeQueryPoolCreateInfoIntel StructureType = 1000210000 + StructureTypePhysicalDeviceBufferAddressFeatures StructureType = 1000244000 + StructureTypePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesArm StructureType = 1000342000 + StructureTypePhysicalDeviceMutableDescriptorTypeFeaturesValve StructureType = 1000351000 + StructureTypeMutableDescriptorTypeCreateInfoValve StructureType = 1000351002 + StructureTypeMaxEnum StructureType = 2147483647 +) + +// PipelineCacheHeaderVersion as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheHeaderVersion.html +type PipelineCacheHeaderVersion int32 + +// PipelineCacheHeaderVersion enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheHeaderVersion.html +const ( + PipelineCacheHeaderVersion1 PipelineCacheHeaderVersion = 1 + PipelineCacheHeaderVersionMaxEnum PipelineCacheHeaderVersion = 2147483647 +) + +// ImageLayout as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageLayout.html +type ImageLayout int32 + +// ImageLayout enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageLayout.html +const ( + ImageLayoutUndefined ImageLayout = iota + ImageLayoutGeneral ImageLayout = 1 + ImageLayoutColorAttachmentOptimal ImageLayout = 2 + ImageLayoutDepthStencilAttachmentOptimal ImageLayout = 3 + ImageLayoutDepthStencilReadOnlyOptimal ImageLayout = 4 + ImageLayoutShaderReadOnlyOptimal ImageLayout = 5 + ImageLayoutTransferSrcOptimal ImageLayout = 6 + ImageLayoutTransferDstOptimal ImageLayout = 7 + ImageLayoutPreinitialized ImageLayout = 8 + ImageLayoutDepthReadOnlyStencilAttachmentOptimal ImageLayout = 1000117000 + ImageLayoutDepthAttachmentStencilReadOnlyOptimal ImageLayout = 1000117001 + ImageLayoutDepthAttachmentOptimal ImageLayout = 1000241000 + ImageLayoutDepthReadOnlyOptimal ImageLayout = 1000241001 + ImageLayoutStencilAttachmentOptimal ImageLayout = 1000241002 + ImageLayoutStencilReadOnlyOptimal ImageLayout = 1000241003 + ImageLayoutReadOnlyOptimal ImageLayout = 1000314000 + ImageLayoutAttachmentOptimal ImageLayout = 1000314001 + ImageLayoutPresentSrc ImageLayout = 1000001002 + ImageLayoutVideoDecodeDst ImageLayout = 1000024000 + ImageLayoutVideoDecodeSrc ImageLayout = 1000024001 + ImageLayoutVideoDecodeDpb ImageLayout = 1000024002 + ImageLayoutSharedPresent ImageLayout = 1000111000 + ImageLayoutFragmentDensityMapOptimal ImageLayout = 1000218000 + ImageLayoutFragmentShadingRateAttachmentOptimal ImageLayout = 1000164003 + ImageLayoutVideoEncodeDst ImageLayout = 1000299000 + ImageLayoutVideoEncodeSrc ImageLayout = 1000299001 + ImageLayoutVideoEncodeDpb ImageLayout = 1000299002 + ImageLayoutAttachmentFeedbackLoopOptimal ImageLayout = 1000339000 + ImageLayoutShadingRateOptimalNv ImageLayout = 1000164003 + ImageLayoutMaxEnum ImageLayout = 2147483647 +) + +// ObjectType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkObjectType.html +type ObjectType int32 + +// ObjectType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkObjectType.html +const ( + ObjectTypeUnknown ObjectType = iota + ObjectTypeInstance ObjectType = 1 + ObjectTypePhysicalDevice ObjectType = 2 + ObjectTypeDevice ObjectType = 3 + ObjectTypeQueue ObjectType = 4 + ObjectTypeSemaphore ObjectType = 5 + ObjectTypeCommandBuffer ObjectType = 6 + ObjectTypeFence ObjectType = 7 + ObjectTypeDeviceMemory ObjectType = 8 + ObjectTypeBuffer ObjectType = 9 + ObjectTypeImage ObjectType = 10 + ObjectTypeEvent ObjectType = 11 + ObjectTypeQueryPool ObjectType = 12 + ObjectTypeBufferView ObjectType = 13 + ObjectTypeImageView ObjectType = 14 + ObjectTypeShaderModule ObjectType = 15 + ObjectTypePipelineCache ObjectType = 16 + ObjectTypePipelineLayout ObjectType = 17 + ObjectTypeRenderPass ObjectType = 18 + ObjectTypePipeline ObjectType = 19 + ObjectTypeDescriptorSetLayout ObjectType = 20 + ObjectTypeSampler ObjectType = 21 + ObjectTypeDescriptorPool ObjectType = 22 + ObjectTypeDescriptorSet ObjectType = 23 + ObjectTypeFramebuffer ObjectType = 24 + ObjectTypeCommandPool ObjectType = 25 + ObjectTypeSamplerYcbcrConversion ObjectType = 1000156000 + ObjectTypeDescriptorUpdateTemplate ObjectType = 1000085000 + ObjectTypePrivateDataSlot ObjectType = 1000295000 + ObjectTypeSurface ObjectType = 1000000000 + ObjectTypeSwapchain ObjectType = 1000001000 + ObjectTypeDisplay ObjectType = 1000002000 + ObjectTypeDisplayMode ObjectType = 1000002001 + ObjectTypeDebugReportCallback ObjectType = 1000011000 + ObjectTypeVideoSession ObjectType = 1000023000 + ObjectTypeVideoSessionParameters ObjectType = 1000023001 + ObjectTypeCuModuleNvx ObjectType = 1000029000 + ObjectTypeCuFunctionNvx ObjectType = 1000029001 + ObjectTypeDebugUtilsMessenger ObjectType = 1000128000 + ObjectTypeAccelerationStructure ObjectType = 1000150000 + ObjectTypeValidationCache ObjectType = 1000160000 + ObjectTypeAccelerationStructureNv ObjectType = 1000165000 + ObjectTypePerformanceConfigurationIntel ObjectType = 1000210000 + ObjectTypeDeferredOperation ObjectType = 1000268000 + ObjectTypeIndirectCommandsLayoutNv ObjectType = 1000277000 + ObjectTypeBufferCollectionFuchsia ObjectType = 1000366000 + ObjectTypeMicromap ObjectType = 1000396000 + ObjectTypeOpticalFlowSessionNv ObjectType = 1000464000 + ObjectTypeMaxEnum ObjectType = 2147483647 +) + +// VendorId as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVendorId.html +type VendorId int32 + +// VendorId enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVendorId.html +const ( + VendorIdViv VendorId = 65537 + VendorIdVsi VendorId = 65538 + VendorIdKazan VendorId = 65539 + VendorIdCodeplay VendorId = 65540 + VendorIdMesa VendorId = 65541 + VendorIdPocl VendorId = 65542 + VendorIdMaxEnum VendorId = 2147483647 ) // SystemAllocationScope as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSystemAllocationScope.html @@ -1180,15 +2371,12 @@ type SystemAllocationScope int32 // SystemAllocationScope enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSystemAllocationScope.html const ( - SystemAllocationScopeCommand SystemAllocationScope = iota - SystemAllocationScopeObject SystemAllocationScope = 1 - SystemAllocationScopeCache SystemAllocationScope = 2 - SystemAllocationScopeDevice SystemAllocationScope = 3 - SystemAllocationScopeInstance SystemAllocationScope = 4 - SystemAllocationScopeBeginRange SystemAllocationScope = 0 - SystemAllocationScopeEndRange SystemAllocationScope = 4 - SystemAllocationScopeRangeSize SystemAllocationScope = 5 - SystemAllocationScopeMaxEnum SystemAllocationScope = 2147483647 + SystemAllocationScopeCommand SystemAllocationScope = iota + SystemAllocationScopeObject SystemAllocationScope = 1 + SystemAllocationScopeCache SystemAllocationScope = 2 + SystemAllocationScopeDevice SystemAllocationScope = 3 + SystemAllocationScopeInstance SystemAllocationScope = 4 + SystemAllocationScopeMaxEnum SystemAllocationScope = 2147483647 ) // InternalAllocationType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInternalAllocationType.html @@ -1197,9 +2385,6 @@ type InternalAllocationType int32 // InternalAllocationType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInternalAllocationType.html const ( InternalAllocationTypeExecutable InternalAllocationType = iota - InternalAllocationTypeBeginRange InternalAllocationType = 0 - InternalAllocationTypeEndRange InternalAllocationType = 0 - InternalAllocationTypeRangeSize InternalAllocationType = 1 InternalAllocationTypeMaxEnum InternalAllocationType = 2147483647 ) @@ -1427,6 +2612,26 @@ const ( FormatG16B16R163plane422Unorm Format = 1000156031 FormatG16B16r162plane422Unorm Format = 1000156032 FormatG16B16R163plane444Unorm Format = 1000156033 + FormatG8B8r82plane444Unorm Format = 1000330000 + FormatG10x6B10x6r10x62plane444Unorm3pack16 Format = 1000330001 + FormatG12x4B12x4r12x42plane444Unorm3pack16 Format = 1000330002 + FormatG16B16r162plane444Unorm Format = 1000330003 + FormatA4r4g4b4UnormPack16 Format = 1000340000 + FormatA4b4g4r4UnormPack16 Format = 1000340001 + FormatAstc4x4SfloatBlock Format = 1000066000 + FormatAstc5x4SfloatBlock Format = 1000066001 + FormatAstc5x5SfloatBlock Format = 1000066002 + FormatAstc6x5SfloatBlock Format = 1000066003 + FormatAstc6x6SfloatBlock Format = 1000066004 + FormatAstc8x5SfloatBlock Format = 1000066005 + FormatAstc8x6SfloatBlock Format = 1000066006 + FormatAstc8x8SfloatBlock Format = 1000066007 + FormatAstc10x5SfloatBlock Format = 1000066008 + FormatAstc10x6SfloatBlock Format = 1000066009 + FormatAstc10x8SfloatBlock Format = 1000066010 + FormatAstc10x10SfloatBlock Format = 1000066011 + FormatAstc12x10SfloatBlock Format = 1000066012 + FormatAstc12x12SfloatBlock Format = 1000066013 FormatPvrtc12bppUnormBlockImg Format = 1000054000 FormatPvrtc14bppUnormBlockImg Format = 1000054001 FormatPvrtc22bppUnormBlockImg Format = 1000054002 @@ -1435,26 +2640,10 @@ const ( FormatPvrtc14bppSrgbBlockImg Format = 1000054005 FormatPvrtc22bppSrgbBlockImg Format = 1000054006 FormatPvrtc24bppSrgbBlockImg Format = 1000054007 - FormatBeginRange Format = 0 - FormatEndRange Format = 184 - FormatRangeSize Format = 185 + FormatR16g16S105Nv Format = 1000464000 FormatMaxEnum Format = 2147483647 ) -// ImageType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageType.html -type ImageType int32 - -// ImageType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageType.html -const ( - ImageType1d ImageType = iota - ImageType2d ImageType = 1 - ImageType3d ImageType = 2 - ImageTypeBeginRange ImageType = 0 - ImageTypeEndRange ImageType = 2 - ImageTypeRangeSize ImageType = 3 - ImageTypeMaxEnum ImageType = 2147483647 -) - // ImageTiling as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageTiling.html type ImageTiling int32 @@ -1463,12 +2652,20 @@ const ( ImageTilingOptimal ImageTiling = iota ImageTilingLinear ImageTiling = 1 ImageTilingDrmFormatModifier ImageTiling = 1000158000 - ImageTilingBeginRange ImageTiling = 0 - ImageTilingEndRange ImageTiling = 1 - ImageTilingRangeSize ImageTiling = 2 ImageTilingMaxEnum ImageTiling = 2147483647 ) +// ImageType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageType.html +type ImageType int32 + +// ImageType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageType.html +const ( + ImageType1d ImageType = iota + ImageType2d ImageType = 1 + ImageType3d ImageType = 2 + ImageTypeMaxEnum ImageType = 2147483647 +) + // PhysicalDeviceType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceType.html type PhysicalDeviceType int32 @@ -1479,9 +2676,6 @@ const ( PhysicalDeviceTypeDiscreteGpu PhysicalDeviceType = 2 PhysicalDeviceTypeVirtualGpu PhysicalDeviceType = 3 PhysicalDeviceTypeCpu PhysicalDeviceType = 4 - PhysicalDeviceTypeBeginRange PhysicalDeviceType = 0 - PhysicalDeviceTypeEndRange PhysicalDeviceType = 4 - PhysicalDeviceTypeRangeSize PhysicalDeviceType = 5 PhysicalDeviceTypeMaxEnum PhysicalDeviceType = 2147483647 ) @@ -1490,15 +2684,24 @@ type QueryType int32 // QueryType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryType.html const ( - QueryTypeOcclusion QueryType = iota - QueryTypePipelineStatistics QueryType = 1 - QueryTypeTimestamp QueryType = 2 - QueryTypeTransformFeedbackStream QueryType = 1000028004 - QueryTypeCompactedSizeNvx QueryType = 1000165000 - QueryTypeBeginRange QueryType = 0 - QueryTypeEndRange QueryType = 2 - QueryTypeRangeSize QueryType = 3 - QueryTypeMaxEnum QueryType = 2147483647 + QueryTypeOcclusion QueryType = iota + QueryTypePipelineStatistics QueryType = 1 + QueryTypeTimestamp QueryType = 2 + QueryTypeResultStatusOnly QueryType = 1000023000 + QueryTypeTransformFeedbackStream QueryType = 1000028004 + QueryTypePerformanceQuery QueryType = 1000116000 + QueryTypeAccelerationStructureCompactedSize QueryType = 1000150000 + QueryTypeAccelerationStructureSerializationSize QueryType = 1000150001 + QueryTypeAccelerationStructureCompactedSizeNv QueryType = 1000165000 + QueryTypePerformanceQueryIntel QueryType = 1000210000 + QueryTypeVideoEncodeBitstreamBufferRange QueryType = 1000299000 + QueryTypeMeshPrimitivesGenerated QueryType = 1000328000 + QueryTypePrimitivesGenerated QueryType = 1000382000 + QueryTypeAccelerationStructureSerializationBottomLevelPointers QueryType = 1000386000 + QueryTypeAccelerationStructureSize QueryType = 1000386001 + QueryTypeMicromapSerializationSize QueryType = 1000396000 + QueryTypeMicromapCompactedSize QueryType = 1000396001 + QueryTypeMaxEnum QueryType = 2147483647 ) // SharingMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSharingMode.html @@ -1508,199 +2711,37 @@ type SharingMode int32 const ( SharingModeExclusive SharingMode = iota SharingModeConcurrent SharingMode = 1 - SharingModeBeginRange SharingMode = 0 - SharingModeEndRange SharingMode = 1 - SharingModeRangeSize SharingMode = 2 SharingModeMaxEnum SharingMode = 2147483647 ) -// ImageLayout as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageLayout.html -type ImageLayout int32 - -// ImageLayout enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageLayout.html -const ( - ImageLayoutUndefined ImageLayout = iota - ImageLayoutGeneral ImageLayout = 1 - ImageLayoutColorAttachmentOptimal ImageLayout = 2 - ImageLayoutDepthStencilAttachmentOptimal ImageLayout = 3 - ImageLayoutDepthStencilReadOnlyOptimal ImageLayout = 4 - ImageLayoutShaderReadOnlyOptimal ImageLayout = 5 - ImageLayoutTransferSrcOptimal ImageLayout = 6 - ImageLayoutTransferDstOptimal ImageLayout = 7 - ImageLayoutPreinitialized ImageLayout = 8 - ImageLayoutDepthReadOnlyStencilAttachmentOptimal ImageLayout = 1000117000 - ImageLayoutDepthAttachmentStencilReadOnlyOptimal ImageLayout = 1000117001 - ImageLayoutPresentSrc ImageLayout = 1000001002 - ImageLayoutSharedPresent ImageLayout = 1000111000 - ImageLayoutShadingRateOptimalNv ImageLayout = 1000164003 - ImageLayoutBeginRange ImageLayout = 0 - ImageLayoutEndRange ImageLayout = 8 - ImageLayoutRangeSize ImageLayout = 9 - ImageLayoutMaxEnum ImageLayout = 2147483647 -) - -// ImageViewType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewType.html -type ImageViewType int32 - -// ImageViewType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewType.html -const ( - ImageViewType1d ImageViewType = iota - ImageViewType2d ImageViewType = 1 - ImageViewType3d ImageViewType = 2 - ImageViewTypeCube ImageViewType = 3 - ImageViewType1dArray ImageViewType = 4 - ImageViewType2dArray ImageViewType = 5 - ImageViewTypeCubeArray ImageViewType = 6 - ImageViewTypeBeginRange ImageViewType = 0 - ImageViewTypeEndRange ImageViewType = 6 - ImageViewTypeRangeSize ImageViewType = 7 - ImageViewTypeMaxEnum ImageViewType = 2147483647 -) - // ComponentSwizzle as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkComponentSwizzle.html type ComponentSwizzle int32 // ComponentSwizzle enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkComponentSwizzle.html const ( - ComponentSwizzleIdentity ComponentSwizzle = iota - ComponentSwizzleZero ComponentSwizzle = 1 - ComponentSwizzleOne ComponentSwizzle = 2 - ComponentSwizzleR ComponentSwizzle = 3 - ComponentSwizzleG ComponentSwizzle = 4 - ComponentSwizzleB ComponentSwizzle = 5 - ComponentSwizzleA ComponentSwizzle = 6 - ComponentSwizzleBeginRange ComponentSwizzle = 0 - ComponentSwizzleEndRange ComponentSwizzle = 6 - ComponentSwizzleRangeSize ComponentSwizzle = 7 - ComponentSwizzleMaxEnum ComponentSwizzle = 2147483647 -) - -// VertexInputRate as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputRate.html -type VertexInputRate int32 - -// VertexInputRate enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputRate.html -const ( - VertexInputRateVertex VertexInputRate = iota - VertexInputRateInstance VertexInputRate = 1 - VertexInputRateBeginRange VertexInputRate = 0 - VertexInputRateEndRange VertexInputRate = 1 - VertexInputRateRangeSize VertexInputRate = 2 - VertexInputRateMaxEnum VertexInputRate = 2147483647 -) - -// PrimitiveTopology as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPrimitiveTopology.html -type PrimitiveTopology int32 - -// PrimitiveTopology enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPrimitiveTopology.html -const ( - PrimitiveTopologyPointList PrimitiveTopology = iota - PrimitiveTopologyLineList PrimitiveTopology = 1 - PrimitiveTopologyLineStrip PrimitiveTopology = 2 - PrimitiveTopologyTriangleList PrimitiveTopology = 3 - PrimitiveTopologyTriangleStrip PrimitiveTopology = 4 - PrimitiveTopologyTriangleFan PrimitiveTopology = 5 - PrimitiveTopologyLineListWithAdjacency PrimitiveTopology = 6 - PrimitiveTopologyLineStripWithAdjacency PrimitiveTopology = 7 - PrimitiveTopologyTriangleListWithAdjacency PrimitiveTopology = 8 - PrimitiveTopologyTriangleStripWithAdjacency PrimitiveTopology = 9 - PrimitiveTopologyPatchList PrimitiveTopology = 10 - PrimitiveTopologyBeginRange PrimitiveTopology = 0 - PrimitiveTopologyEndRange PrimitiveTopology = 10 - PrimitiveTopologyRangeSize PrimitiveTopology = 11 - PrimitiveTopologyMaxEnum PrimitiveTopology = 2147483647 -) - -// PolygonMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPolygonMode.html -type PolygonMode int32 - -// PolygonMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPolygonMode.html -const ( - PolygonModeFill PolygonMode = iota - PolygonModeLine PolygonMode = 1 - PolygonModePoint PolygonMode = 2 - PolygonModeFillRectangleNv PolygonMode = 1000153000 - PolygonModeBeginRange PolygonMode = 0 - PolygonModeEndRange PolygonMode = 2 - PolygonModeRangeSize PolygonMode = 3 - PolygonModeMaxEnum PolygonMode = 2147483647 -) - -// FrontFace as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFrontFace.html -type FrontFace int32 - -// FrontFace enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFrontFace.html -const ( - FrontFaceCounterClockwise FrontFace = iota - FrontFaceClockwise FrontFace = 1 - FrontFaceBeginRange FrontFace = 0 - FrontFaceEndRange FrontFace = 1 - FrontFaceRangeSize FrontFace = 2 - FrontFaceMaxEnum FrontFace = 2147483647 -) - -// CompareOp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCompareOp.html -type CompareOp int32 - -// CompareOp enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCompareOp.html -const ( - CompareOpNever CompareOp = iota - CompareOpLess CompareOp = 1 - CompareOpEqual CompareOp = 2 - CompareOpLessOrEqual CompareOp = 3 - CompareOpGreater CompareOp = 4 - CompareOpNotEqual CompareOp = 5 - CompareOpGreaterOrEqual CompareOp = 6 - CompareOpAlways CompareOp = 7 - CompareOpBeginRange CompareOp = 0 - CompareOpEndRange CompareOp = 7 - CompareOpRangeSize CompareOp = 8 - CompareOpMaxEnum CompareOp = 2147483647 -) - -// StencilOp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkStencilOp.html -type StencilOp int32 - -// StencilOp enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkStencilOp.html -const ( - StencilOpKeep StencilOp = iota - StencilOpZero StencilOp = 1 - StencilOpReplace StencilOp = 2 - StencilOpIncrementAndClamp StencilOp = 3 - StencilOpDecrementAndClamp StencilOp = 4 - StencilOpInvert StencilOp = 5 - StencilOpIncrementAndWrap StencilOp = 6 - StencilOpDecrementAndWrap StencilOp = 7 - StencilOpBeginRange StencilOp = 0 - StencilOpEndRange StencilOp = 7 - StencilOpRangeSize StencilOp = 8 - StencilOpMaxEnum StencilOp = 2147483647 + ComponentSwizzleIdentity ComponentSwizzle = iota + ComponentSwizzleZero ComponentSwizzle = 1 + ComponentSwizzleOne ComponentSwizzle = 2 + ComponentSwizzleR ComponentSwizzle = 3 + ComponentSwizzleG ComponentSwizzle = 4 + ComponentSwizzleB ComponentSwizzle = 5 + ComponentSwizzleA ComponentSwizzle = 6 + ComponentSwizzleMaxEnum ComponentSwizzle = 2147483647 ) -// LogicOp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkLogicOp.html -type LogicOp int32 +// ImageViewType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewType.html +type ImageViewType int32 -// LogicOp enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkLogicOp.html +// ImageViewType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewType.html const ( - LogicOpClear LogicOp = iota - LogicOpAnd LogicOp = 1 - LogicOpAndReverse LogicOp = 2 - LogicOpCopy LogicOp = 3 - LogicOpAndInverted LogicOp = 4 - LogicOpNoOp LogicOp = 5 - LogicOpXor LogicOp = 6 - LogicOpOr LogicOp = 7 - LogicOpNor LogicOp = 8 - LogicOpEquivalent LogicOp = 9 - LogicOpInvert LogicOp = 10 - LogicOpOrReverse LogicOp = 11 - LogicOpCopyInverted LogicOp = 12 - LogicOpOrInverted LogicOp = 13 - LogicOpNand LogicOp = 14 - LogicOpSet LogicOp = 15 - LogicOpBeginRange LogicOp = 0 - LogicOpEndRange LogicOp = 15 - LogicOpRangeSize LogicOp = 16 - LogicOpMaxEnum LogicOp = 2147483647 + ImageViewType1d ImageViewType = iota + ImageViewType2d ImageViewType = 1 + ImageViewType3d ImageViewType = 2 + ImageViewTypeCube ImageViewType = 3 + ImageViewType1dArray ImageViewType = 4 + ImageViewType2dArray ImageViewType = 5 + ImageViewTypeCubeArray ImageViewType = 6 + ImageViewTypeMaxEnum ImageViewType = 2147483647 ) // BlendFactor as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBlendFactor.html @@ -1727,9 +2768,6 @@ const ( BlendFactorOneMinusSrc1Color BlendFactor = 16 BlendFactorSrc1Alpha BlendFactor = 17 BlendFactorOneMinusSrc1Alpha BlendFactor = 18 - BlendFactorBeginRange BlendFactor = 0 - BlendFactorEndRange BlendFactor = 18 - BlendFactorRangeSize BlendFactor = 19 BlendFactorMaxEnum BlendFactor = 2147483647 ) @@ -1789,85 +2827,196 @@ const ( BlendOpRed BlendOp = 1000148043 BlendOpGreen BlendOp = 1000148044 BlendOpBlue BlendOp = 1000148045 - BlendOpBeginRange BlendOp = 0 - BlendOpEndRange BlendOp = 4 - BlendOpRangeSize BlendOp = 5 BlendOpMaxEnum BlendOp = 2147483647 ) -// DynamicState as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDynamicState.html -type DynamicState int32 +// CompareOp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCompareOp.html +type CompareOp int32 -// DynamicState enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDynamicState.html +// CompareOp enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCompareOp.html const ( - DynamicStateViewport DynamicState = iota - DynamicStateScissor DynamicState = 1 - DynamicStateLineWidth DynamicState = 2 - DynamicStateDepthBias DynamicState = 3 - DynamicStateBlendConstants DynamicState = 4 - DynamicStateDepthBounds DynamicState = 5 - DynamicStateStencilCompareMask DynamicState = 6 - DynamicStateStencilWriteMask DynamicState = 7 - DynamicStateStencilReference DynamicState = 8 - DynamicStateViewportWScalingNv DynamicState = 1000087000 - DynamicStateDiscardRectangle DynamicState = 1000099000 - DynamicStateSampleLocations DynamicState = 1000143000 - DynamicStateViewportShadingRatePaletteNv DynamicState = 1000164004 - DynamicStateViewportCoarseSampleOrderNv DynamicState = 1000164006 - DynamicStateExclusiveScissorNv DynamicState = 1000205001 - DynamicStateBeginRange DynamicState = 0 - DynamicStateEndRange DynamicState = 8 - DynamicStateRangeSize DynamicState = 9 - DynamicStateMaxEnum DynamicState = 2147483647 + CompareOpNever CompareOp = iota + CompareOpLess CompareOp = 1 + CompareOpEqual CompareOp = 2 + CompareOpLessOrEqual CompareOp = 3 + CompareOpGreater CompareOp = 4 + CompareOpNotEqual CompareOp = 5 + CompareOpGreaterOrEqual CompareOp = 6 + CompareOpAlways CompareOp = 7 + CompareOpMaxEnum CompareOp = 2147483647 ) -// Filter as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFilter.html -type Filter int32 +// DynamicState as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDynamicState.html +type DynamicState int32 -// Filter enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFilter.html +// DynamicState enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDynamicState.html const ( - FilterNearest Filter = iota - FilterLinear Filter = 1 - FilterCubicImg Filter = 1000015000 - FilterBeginRange Filter = 0 - FilterEndRange Filter = 1 - FilterRangeSize Filter = 2 - FilterMaxEnum Filter = 2147483647 + DynamicStateViewport DynamicState = iota + DynamicStateScissor DynamicState = 1 + DynamicStateLineWidth DynamicState = 2 + DynamicStateDepthBias DynamicState = 3 + DynamicStateBlendConstants DynamicState = 4 + DynamicStateDepthBounds DynamicState = 5 + DynamicStateStencilCompareMask DynamicState = 6 + DynamicStateStencilWriteMask DynamicState = 7 + DynamicStateStencilReference DynamicState = 8 + DynamicStateCullMode DynamicState = 1000267000 + DynamicStateFrontFace DynamicState = 1000267001 + DynamicStatePrimitiveTopology DynamicState = 1000267002 + DynamicStateViewportWithCount DynamicState = 1000267003 + DynamicStateScissorWithCount DynamicState = 1000267004 + DynamicStateVertexInputBindingStride DynamicState = 1000267005 + DynamicStateDepthTestEnable DynamicState = 1000267006 + DynamicStateDepthWriteEnable DynamicState = 1000267007 + DynamicStateDepthCompareOp DynamicState = 1000267008 + DynamicStateDepthBoundsTestEnable DynamicState = 1000267009 + DynamicStateStencilTestEnable DynamicState = 1000267010 + DynamicStateStencilOp DynamicState = 1000267011 + DynamicStateRasterizerDiscardEnable DynamicState = 1000377001 + DynamicStateDepthBiasEnable DynamicState = 1000377002 + DynamicStatePrimitiveRestartEnable DynamicState = 1000377004 + DynamicStateViewportWScalingNv DynamicState = 1000087000 + DynamicStateDiscardRectangle DynamicState = 1000099000 + DynamicStateSampleLocations DynamicState = 1000143000 + DynamicStateRayTracingPipelineStackSize DynamicState = 1000347000 + DynamicStateViewportShadingRatePaletteNv DynamicState = 1000164004 + DynamicStateViewportCoarseSampleOrderNv DynamicState = 1000164006 + DynamicStateExclusiveScissorNv DynamicState = 1000205001 + DynamicStateFragmentShadingRate DynamicState = 1000226000 + DynamicStateLineStipple DynamicState = 1000259000 + DynamicStateVertexInput DynamicState = 1000352000 + DynamicStatePatchControlPoints DynamicState = 1000377000 + DynamicStateLogicOp DynamicState = 1000377003 + DynamicStateColorWriteEnable DynamicState = 1000381000 + DynamicStateTessellationDomainOrigin DynamicState = 1000455002 + DynamicStateDepthClampEnable DynamicState = 1000455003 + DynamicStatePolygonMode DynamicState = 1000455004 + DynamicStateRasterizationSamples DynamicState = 1000455005 + DynamicStateSampleMask DynamicState = 1000455006 + DynamicStateAlphaToCoverageEnable DynamicState = 1000455007 + DynamicStateAlphaToOneEnable DynamicState = 1000455008 + DynamicStateLogicOpEnable DynamicState = 1000455009 + DynamicStateColorBlendEnable DynamicState = 1000455010 + DynamicStateColorBlendEquation DynamicState = 1000455011 + DynamicStateColorWriteMask DynamicState = 1000455012 + DynamicStateRasterizationStream DynamicState = 1000455013 + DynamicStateConservativeRasterizationMode DynamicState = 1000455014 + DynamicStateExtraPrimitiveOverestimationSize DynamicState = 1000455015 + DynamicStateDepthClipEnable DynamicState = 1000455016 + DynamicStateSampleLocationsEnable DynamicState = 1000455017 + DynamicStateColorBlendAdvanced DynamicState = 1000455018 + DynamicStateProvokingVertexMode DynamicState = 1000455019 + DynamicStateLineRasterizationMode DynamicState = 1000455020 + DynamicStateLineStippleEnable DynamicState = 1000455021 + DynamicStateDepthClipNegativeOneToOne DynamicState = 1000455022 + DynamicStateViewportWScalingEnableNv DynamicState = 1000455023 + DynamicStateViewportSwizzleNv DynamicState = 1000455024 + DynamicStateCoverageToColorEnableNv DynamicState = 1000455025 + DynamicStateCoverageToColorLocationNv DynamicState = 1000455026 + DynamicStateCoverageModulationModeNv DynamicState = 1000455027 + DynamicStateCoverageModulationTableEnableNv DynamicState = 1000455028 + DynamicStateCoverageModulationTableNv DynamicState = 1000455029 + DynamicStateShadingRateImageEnableNv DynamicState = 1000455030 + DynamicStateRepresentativeFragmentTestEnableNv DynamicState = 1000455031 + DynamicStateCoverageReductionModeNv DynamicState = 1000455032 + DynamicStateMaxEnum DynamicState = 2147483647 ) -// SamplerMipmapMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerMipmapMode.html -type SamplerMipmapMode int32 +// FrontFace as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFrontFace.html +type FrontFace int32 -// SamplerMipmapMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerMipmapMode.html +// FrontFace enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFrontFace.html const ( - SamplerMipmapModeNearest SamplerMipmapMode = iota - SamplerMipmapModeLinear SamplerMipmapMode = 1 - SamplerMipmapModeBeginRange SamplerMipmapMode = 0 - SamplerMipmapModeEndRange SamplerMipmapMode = 1 - SamplerMipmapModeRangeSize SamplerMipmapMode = 2 - SamplerMipmapModeMaxEnum SamplerMipmapMode = 2147483647 + FrontFaceCounterClockwise FrontFace = iota + FrontFaceClockwise FrontFace = 1 + FrontFaceMaxEnum FrontFace = 2147483647 ) -// SamplerAddressMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerAddressMode.html -type SamplerAddressMode int32 +// VertexInputRate as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputRate.html +type VertexInputRate int32 -// SamplerAddressMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerAddressMode.html +// VertexInputRate enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputRate.html const ( - SamplerAddressModeRepeat SamplerAddressMode = iota - SamplerAddressModeMirroredRepeat SamplerAddressMode = 1 - SamplerAddressModeClampToEdge SamplerAddressMode = 2 - SamplerAddressModeClampToBorder SamplerAddressMode = 3 - SamplerAddressModeMirrorClampToEdge SamplerAddressMode = 4 - SamplerAddressModeBeginRange SamplerAddressMode = 0 - SamplerAddressModeEndRange SamplerAddressMode = 3 - SamplerAddressModeRangeSize SamplerAddressMode = 4 - SamplerAddressModeMaxEnum SamplerAddressMode = 2147483647 + VertexInputRateVertex VertexInputRate = iota + VertexInputRateInstance VertexInputRate = 1 + VertexInputRateMaxEnum VertexInputRate = 2147483647 ) -// BorderColor as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBorderColor.html -type BorderColor int32 +// PrimitiveTopology as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPrimitiveTopology.html +type PrimitiveTopology int32 -// BorderColor enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBorderColor.html +// PrimitiveTopology enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPrimitiveTopology.html +const ( + PrimitiveTopologyPointList PrimitiveTopology = iota + PrimitiveTopologyLineList PrimitiveTopology = 1 + PrimitiveTopologyLineStrip PrimitiveTopology = 2 + PrimitiveTopologyTriangleList PrimitiveTopology = 3 + PrimitiveTopologyTriangleStrip PrimitiveTopology = 4 + PrimitiveTopologyTriangleFan PrimitiveTopology = 5 + PrimitiveTopologyLineListWithAdjacency PrimitiveTopology = 6 + PrimitiveTopologyLineStripWithAdjacency PrimitiveTopology = 7 + PrimitiveTopologyTriangleListWithAdjacency PrimitiveTopology = 8 + PrimitiveTopologyTriangleStripWithAdjacency PrimitiveTopology = 9 + PrimitiveTopologyPatchList PrimitiveTopology = 10 + PrimitiveTopologyMaxEnum PrimitiveTopology = 2147483647 +) + +// PolygonMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPolygonMode.html +type PolygonMode int32 + +// PolygonMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPolygonMode.html +const ( + PolygonModeFill PolygonMode = iota + PolygonModeLine PolygonMode = 1 + PolygonModePoint PolygonMode = 2 + PolygonModeFillRectangleNv PolygonMode = 1000153000 + PolygonModeMaxEnum PolygonMode = 2147483647 +) + +// StencilOp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkStencilOp.html +type StencilOp int32 + +// StencilOp enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkStencilOp.html +const ( + StencilOpKeep StencilOp = iota + StencilOpZero StencilOp = 1 + StencilOpReplace StencilOp = 2 + StencilOpIncrementAndClamp StencilOp = 3 + StencilOpDecrementAndClamp StencilOp = 4 + StencilOpInvert StencilOp = 5 + StencilOpIncrementAndWrap StencilOp = 6 + StencilOpDecrementAndWrap StencilOp = 7 + StencilOpMaxEnum StencilOp = 2147483647 +) + +// LogicOp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkLogicOp.html +type LogicOp int32 + +// LogicOp enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkLogicOp.html +const ( + LogicOpClear LogicOp = iota + LogicOpAnd LogicOp = 1 + LogicOpAndReverse LogicOp = 2 + LogicOpCopy LogicOp = 3 + LogicOpAndInverted LogicOp = 4 + LogicOpNoOp LogicOp = 5 + LogicOpXor LogicOp = 6 + LogicOpOr LogicOp = 7 + LogicOpNor LogicOp = 8 + LogicOpEquivalent LogicOp = 9 + LogicOpInvert LogicOp = 10 + LogicOpOrReverse LogicOp = 11 + LogicOpCopyInverted LogicOp = 12 + LogicOpOrInverted LogicOp = 13 + LogicOpNand LogicOp = 14 + LogicOpSet LogicOp = 15 + LogicOpMaxEnum LogicOp = 2147483647 +) + +// BorderColor as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBorderColor.html +type BorderColor int32 + +// BorderColor enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBorderColor.html const ( BorderColorFloatTransparentBlack BorderColor = iota BorderColorIntTransparentBlack BorderColor = 1 @@ -1875,34 +3024,70 @@ const ( BorderColorIntOpaqueBlack BorderColor = 3 BorderColorFloatOpaqueWhite BorderColor = 4 BorderColorIntOpaqueWhite BorderColor = 5 - BorderColorBeginRange BorderColor = 0 - BorderColorEndRange BorderColor = 5 - BorderColorRangeSize BorderColor = 6 + BorderColorFloatCustom BorderColor = 1000287003 + BorderColorIntCustom BorderColor = 1000287004 BorderColorMaxEnum BorderColor = 2147483647 ) +// Filter as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFilter.html +type Filter int32 + +// Filter enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFilter.html +const ( + FilterNearest Filter = iota + FilterLinear Filter = 1 + FilterCubic Filter = 1000015000 + FilterCubicImg Filter = 1000015000 + FilterMaxEnum Filter = 2147483647 +) + +// SamplerAddressMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerAddressMode.html +type SamplerAddressMode int32 + +// SamplerAddressMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerAddressMode.html +const ( + SamplerAddressModeRepeat SamplerAddressMode = iota + SamplerAddressModeMirroredRepeat SamplerAddressMode = 1 + SamplerAddressModeClampToEdge SamplerAddressMode = 2 + SamplerAddressModeClampToBorder SamplerAddressMode = 3 + SamplerAddressModeMirrorClampToEdge SamplerAddressMode = 4 + SamplerAddressModeMaxEnum SamplerAddressMode = 2147483647 +) + +// SamplerMipmapMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerMipmapMode.html +type SamplerMipmapMode int32 + +// SamplerMipmapMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerMipmapMode.html +const ( + SamplerMipmapModeNearest SamplerMipmapMode = iota + SamplerMipmapModeLinear SamplerMipmapMode = 1 + SamplerMipmapModeMaxEnum SamplerMipmapMode = 2147483647 +) + // DescriptorType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorType.html type DescriptorType int32 // DescriptorType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorType.html const ( - DescriptorTypeSampler DescriptorType = iota - DescriptorTypeCombinedImageSampler DescriptorType = 1 - DescriptorTypeSampledImage DescriptorType = 2 - DescriptorTypeStorageImage DescriptorType = 3 - DescriptorTypeUniformTexelBuffer DescriptorType = 4 - DescriptorTypeStorageTexelBuffer DescriptorType = 5 - DescriptorTypeUniformBuffer DescriptorType = 6 - DescriptorTypeStorageBuffer DescriptorType = 7 - DescriptorTypeUniformBufferDynamic DescriptorType = 8 - DescriptorTypeStorageBufferDynamic DescriptorType = 9 - DescriptorTypeInputAttachment DescriptorType = 10 - DescriptorTypeInlineUniformBlock DescriptorType = 1000138000 - DescriptorTypeAccelerationStructureNvx DescriptorType = 1000165000 - DescriptorTypeBeginRange DescriptorType = 0 - DescriptorTypeEndRange DescriptorType = 10 - DescriptorTypeRangeSize DescriptorType = 11 - DescriptorTypeMaxEnum DescriptorType = 2147483647 + DescriptorTypeSampler DescriptorType = iota + DescriptorTypeCombinedImageSampler DescriptorType = 1 + DescriptorTypeSampledImage DescriptorType = 2 + DescriptorTypeStorageImage DescriptorType = 3 + DescriptorTypeUniformTexelBuffer DescriptorType = 4 + DescriptorTypeStorageTexelBuffer DescriptorType = 5 + DescriptorTypeUniformBuffer DescriptorType = 6 + DescriptorTypeStorageBuffer DescriptorType = 7 + DescriptorTypeUniformBufferDynamic DescriptorType = 8 + DescriptorTypeStorageBufferDynamic DescriptorType = 9 + DescriptorTypeInputAttachment DescriptorType = 10 + DescriptorTypeInlineUniformBlock DescriptorType = 1000138000 + DescriptorTypeAccelerationStructure DescriptorType = 1000150000 + DescriptorTypeAccelerationStructureNv DescriptorType = 1000165000 + DescriptorTypeSampleWeightImageQcom DescriptorType = 1000440000 + DescriptorTypeBlockMatchImageQcom DescriptorType = 1000440001 + DescriptorTypeMutable DescriptorType = 1000351000 + DescriptorTypeMutableValve DescriptorType = 1000351000 + DescriptorTypeMaxEnum DescriptorType = 2147483647 ) // AttachmentLoadOp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentLoadOp.html @@ -1910,13 +3095,11 @@ type AttachmentLoadOp int32 // AttachmentLoadOp enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentLoadOp.html const ( - AttachmentLoadOpLoad AttachmentLoadOp = iota - AttachmentLoadOpClear AttachmentLoadOp = 1 - AttachmentLoadOpDontCare AttachmentLoadOp = 2 - AttachmentLoadOpBeginRange AttachmentLoadOp = 0 - AttachmentLoadOpEndRange AttachmentLoadOp = 2 - AttachmentLoadOpRangeSize AttachmentLoadOp = 3 - AttachmentLoadOpMaxEnum AttachmentLoadOp = 2147483647 + AttachmentLoadOpLoad AttachmentLoadOp = iota + AttachmentLoadOpClear AttachmentLoadOp = 1 + AttachmentLoadOpDontCare AttachmentLoadOp = 2 + AttachmentLoadOpNone AttachmentLoadOp = 1000400000 + AttachmentLoadOpMaxEnum AttachmentLoadOp = 2147483647 ) // AttachmentStoreOp as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentStoreOp.html @@ -1924,12 +3107,11 @@ type AttachmentStoreOp int32 // AttachmentStoreOp enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentStoreOp.html const ( - AttachmentStoreOpStore AttachmentStoreOp = iota - AttachmentStoreOpDontCare AttachmentStoreOp = 1 - AttachmentStoreOpBeginRange AttachmentStoreOp = 0 - AttachmentStoreOpEndRange AttachmentStoreOp = 1 - AttachmentStoreOpRangeSize AttachmentStoreOp = 2 - AttachmentStoreOpMaxEnum AttachmentStoreOp = 2147483647 + AttachmentStoreOpStore AttachmentStoreOp = iota + AttachmentStoreOpDontCare AttachmentStoreOp = 1 + AttachmentStoreOpNone AttachmentStoreOp = 1000301000 + AttachmentStoreOpNoneQcom AttachmentStoreOp = 1000301000 + AttachmentStoreOpMaxEnum AttachmentStoreOp = 2147483647 ) // PipelineBindPoint as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineBindPoint.html @@ -1937,13 +3119,12 @@ type PipelineBindPoint int32 // PipelineBindPoint enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineBindPoint.html const ( - PipelineBindPointGraphics PipelineBindPoint = iota - PipelineBindPointCompute PipelineBindPoint = 1 - PipelineBindPointRaytracingNvx PipelineBindPoint = 1000165000 - PipelineBindPointBeginRange PipelineBindPoint = 0 - PipelineBindPointEndRange PipelineBindPoint = 1 - PipelineBindPointRangeSize PipelineBindPoint = 2 - PipelineBindPointMaxEnum PipelineBindPoint = 2147483647 + PipelineBindPointGraphics PipelineBindPoint = iota + PipelineBindPointCompute PipelineBindPoint = 1 + PipelineBindPointRayTracing PipelineBindPoint = 1000165000 + PipelineBindPointSubpassShadingHuawei PipelineBindPoint = 1000369003 + PipelineBindPointRayTracingNv PipelineBindPoint = 1000165000 + PipelineBindPointMaxEnum PipelineBindPoint = 2147483647 ) // CommandBufferLevel as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferLevel.html @@ -1951,12 +3132,9 @@ type CommandBufferLevel int32 // CommandBufferLevel enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferLevel.html const ( - CommandBufferLevelPrimary CommandBufferLevel = iota - CommandBufferLevelSecondary CommandBufferLevel = 1 - CommandBufferLevelBeginRange CommandBufferLevel = 0 - CommandBufferLevelEndRange CommandBufferLevel = 1 - CommandBufferLevelRangeSize CommandBufferLevel = 2 - CommandBufferLevelMaxEnum CommandBufferLevel = 2147483647 + CommandBufferLevelPrimary CommandBufferLevel = iota + CommandBufferLevelSecondary CommandBufferLevel = 1 + CommandBufferLevelMaxEnum CommandBufferLevel = 2147483647 ) // IndexType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndexType.html @@ -1964,12 +3142,12 @@ type IndexType int32 // IndexType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndexType.html const ( - IndexTypeUint16 IndexType = iota - IndexTypeUint32 IndexType = 1 - IndexTypeBeginRange IndexType = 0 - IndexTypeEndRange IndexType = 1 - IndexTypeRangeSize IndexType = 2 - IndexTypeMaxEnum IndexType = 2147483647 + IndexTypeUint16 IndexType = iota + IndexTypeUint32 IndexType = 1 + IndexTypeNone IndexType = 1000165000 + IndexTypeUint8 IndexType = 1000265000 + IndexTypeNoneNv IndexType = 1000165000 + IndexTypeMaxEnum IndexType = 2147483647 ) // SubpassContents as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassContents.html @@ -1979,73 +3157,67 @@ type SubpassContents int32 const ( SubpassContentsInline SubpassContents = iota SubpassContentsSecondaryCommandBuffers SubpassContents = 1 - SubpassContentsBeginRange SubpassContents = 0 - SubpassContentsEndRange SubpassContents = 1 - SubpassContentsRangeSize SubpassContents = 2 SubpassContentsMaxEnum SubpassContents = 2147483647 ) -// ObjectType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkObjectType.html -type ObjectType int32 +// AccessFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAccessFlagBits.html +type AccessFlagBits int32 -// ObjectType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkObjectType.html +// AccessFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAccessFlagBits.html const ( - ObjectTypeUnknown ObjectType = iota - ObjectTypeInstance ObjectType = 1 - ObjectTypePhysicalDevice ObjectType = 2 - ObjectTypeDevice ObjectType = 3 - ObjectTypeQueue ObjectType = 4 - ObjectTypeSemaphore ObjectType = 5 - ObjectTypeCommandBuffer ObjectType = 6 - ObjectTypeFence ObjectType = 7 - ObjectTypeDeviceMemory ObjectType = 8 - ObjectTypeBuffer ObjectType = 9 - ObjectTypeImage ObjectType = 10 - ObjectTypeEvent ObjectType = 11 - ObjectTypeQueryPool ObjectType = 12 - ObjectTypeBufferView ObjectType = 13 - ObjectTypeImageView ObjectType = 14 - ObjectTypeShaderModule ObjectType = 15 - ObjectTypePipelineCache ObjectType = 16 - ObjectTypePipelineLayout ObjectType = 17 - ObjectTypeRenderPass ObjectType = 18 - ObjectTypePipeline ObjectType = 19 - ObjectTypeDescriptorSetLayout ObjectType = 20 - ObjectTypeSampler ObjectType = 21 - ObjectTypeDescriptorPool ObjectType = 22 - ObjectTypeDescriptorSet ObjectType = 23 - ObjectTypeFramebuffer ObjectType = 24 - ObjectTypeCommandPool ObjectType = 25 - ObjectTypeSamplerYcbcrConversion ObjectType = 1000156000 - ObjectTypeDescriptorUpdateTemplate ObjectType = 1000085000 - ObjectTypeSurface ObjectType = 1000000000 - ObjectTypeSwapchain ObjectType = 1000001000 - ObjectTypeDisplay ObjectType = 1000002000 - ObjectTypeDisplayMode ObjectType = 1000002001 - ObjectTypeDebugReportCallback ObjectType = 1000011000 - ObjectTypeObjectTableNvx ObjectType = 1000086000 - ObjectTypeIndirectCommandsLayoutNvx ObjectType = 1000086001 - ObjectTypeDebugUtilsMessenger ObjectType = 1000128000 - ObjectTypeValidationCache ObjectType = 1000160000 - ObjectTypeAccelerationStructureNvx ObjectType = 1000165000 - ObjectTypeBeginRange ObjectType = 0 - ObjectTypeEndRange ObjectType = 25 - ObjectTypeRangeSize ObjectType = 26 - ObjectTypeMaxEnum ObjectType = 2147483647 + AccessIndirectCommandReadBit AccessFlagBits = 1 + AccessIndexReadBit AccessFlagBits = 2 + AccessVertexAttributeReadBit AccessFlagBits = 4 + AccessUniformReadBit AccessFlagBits = 8 + AccessInputAttachmentReadBit AccessFlagBits = 16 + AccessShaderReadBit AccessFlagBits = 32 + AccessShaderWriteBit AccessFlagBits = 64 + AccessColorAttachmentReadBit AccessFlagBits = 128 + AccessColorAttachmentWriteBit AccessFlagBits = 256 + AccessDepthStencilAttachmentReadBit AccessFlagBits = 512 + AccessDepthStencilAttachmentWriteBit AccessFlagBits = 1024 + AccessTransferReadBit AccessFlagBits = 2048 + AccessTransferWriteBit AccessFlagBits = 4096 + AccessHostReadBit AccessFlagBits = 8192 + AccessHostWriteBit AccessFlagBits = 16384 + AccessMemoryReadBit AccessFlagBits = 32768 + AccessMemoryWriteBit AccessFlagBits = 65536 + AccessNone AccessFlagBits = 0 + AccessTransformFeedbackWriteBit AccessFlagBits = 33554432 + AccessTransformFeedbackCounterReadBit AccessFlagBits = 67108864 + AccessTransformFeedbackCounterWriteBit AccessFlagBits = 134217728 + AccessConditionalRenderingReadBit AccessFlagBits = 1048576 + AccessColorAttachmentReadNoncoherentBit AccessFlagBits = 524288 + AccessAccelerationStructureReadBit AccessFlagBits = 2097152 + AccessAccelerationStructureWriteBit AccessFlagBits = 4194304 + AccessFragmentDensityMapReadBit AccessFlagBits = 16777216 + AccessFragmentShadingRateAttachmentReadBit AccessFlagBits = 8388608 + AccessCommandPreprocessReadBitNv AccessFlagBits = 131072 + AccessCommandPreprocessWriteBitNv AccessFlagBits = 262144 + AccessShadingRateImageReadBitNv AccessFlagBits = 8388608 + AccessAccelerationStructureReadBitNv AccessFlagBits = 2097152 + AccessAccelerationStructureWriteBitNv AccessFlagBits = 4194304 + AccessFlagBitsMaxEnum AccessFlagBits = 2147483647 ) -// VendorId as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVendorId.html -type VendorId int32 +// ImageAspectFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageAspectFlagBits.html +type ImageAspectFlagBits int32 -// VendorId enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVendorId.html +// ImageAspectFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageAspectFlagBits.html const ( - VendorIdViv VendorId = 65537 - VendorIdVsi VendorId = 65538 - VendorIdKazan VendorId = 65539 - VendorIdBeginRange VendorId = 65537 - VendorIdEndRange VendorId = 65539 - VendorIdRangeSize VendorId = 3 - VendorIdMaxEnum VendorId = 2147483647 + ImageAspectColorBit ImageAspectFlagBits = 1 + ImageAspectDepthBit ImageAspectFlagBits = 2 + ImageAspectStencilBit ImageAspectFlagBits = 4 + ImageAspectMetadataBit ImageAspectFlagBits = 8 + ImageAspectPlane0Bit ImageAspectFlagBits = 16 + ImageAspectPlane1Bit ImageAspectFlagBits = 32 + ImageAspectPlane2Bit ImageAspectFlagBits = 64 + ImageAspectNone ImageAspectFlagBits = 0 + ImageAspectMemoryPlane0Bit ImageAspectFlagBits = 128 + ImageAspectMemoryPlane1Bit ImageAspectFlagBits = 256 + ImageAspectMemoryPlane2Bit ImageAspectFlagBits = 512 + ImageAspectMemoryPlane3Bit ImageAspectFlagBits = 1024 + ImageAspectFlagBitsMaxEnum ImageAspectFlagBits = 2147483647 ) // FormatFeatureFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFormatFeatureFlagBits.html @@ -2075,48 +3247,44 @@ const ( FormatFeatureSampledImageYcbcrConversionChromaReconstructionExplicitForceableBit FormatFeatureFlagBits = 2097152 FormatFeatureDisjointBit FormatFeatureFlagBits = 4194304 FormatFeatureCositedChromaSamplesBit FormatFeatureFlagBits = 8388608 - FormatFeatureSampledImageFilterCubicBitImg FormatFeatureFlagBits = 8192 FormatFeatureSampledImageFilterMinmaxBit FormatFeatureFlagBits = 65536 + FormatFeatureVideoDecodeOutputBit FormatFeatureFlagBits = 33554432 + FormatFeatureVideoDecodeDpbBit FormatFeatureFlagBits = 67108864 + FormatFeatureAccelerationStructureVertexBufferBit FormatFeatureFlagBits = 536870912 + FormatFeatureSampledImageFilterCubicBit FormatFeatureFlagBits = 8192 + FormatFeatureFragmentDensityMapBit FormatFeatureFlagBits = 16777216 + FormatFeatureFragmentShadingRateAttachmentBit FormatFeatureFlagBits = 1073741824 + FormatFeatureVideoEncodeInputBit FormatFeatureFlagBits = 134217728 + FormatFeatureVideoEncodeDpbBit FormatFeatureFlagBits = 268435456 + FormatFeatureSampledImageFilterCubicBitImg FormatFeatureFlagBits = 8192 FormatFeatureFlagBitsMaxEnum FormatFeatureFlagBits = 2147483647 ) -// ImageUsageFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageUsageFlagBits.html -type ImageUsageFlagBits int32 - -// ImageUsageFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageUsageFlagBits.html -const ( - ImageUsageTransferSrcBit ImageUsageFlagBits = 1 - ImageUsageTransferDstBit ImageUsageFlagBits = 2 - ImageUsageSampledBit ImageUsageFlagBits = 4 - ImageUsageStorageBit ImageUsageFlagBits = 8 - ImageUsageColorAttachmentBit ImageUsageFlagBits = 16 - ImageUsageDepthStencilAttachmentBit ImageUsageFlagBits = 32 - ImageUsageTransientAttachmentBit ImageUsageFlagBits = 64 - ImageUsageInputAttachmentBit ImageUsageFlagBits = 128 - ImageUsageShadingRateImageBitNv ImageUsageFlagBits = 256 - ImageUsageFlagBitsMaxEnum ImageUsageFlagBits = 2147483647 -) - // ImageCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCreateFlagBits.html type ImageCreateFlagBits int32 // ImageCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCreateFlagBits.html const ( - ImageCreateSparseBindingBit ImageCreateFlagBits = 1 - ImageCreateSparseResidencyBit ImageCreateFlagBits = 2 - ImageCreateSparseAliasedBit ImageCreateFlagBits = 4 - ImageCreateMutableFormatBit ImageCreateFlagBits = 8 - ImageCreateCubeCompatibleBit ImageCreateFlagBits = 16 - ImageCreateAliasBit ImageCreateFlagBits = 1024 - ImageCreateSplitInstanceBindRegionsBit ImageCreateFlagBits = 64 - ImageCreate2dArrayCompatibleBit ImageCreateFlagBits = 32 - ImageCreateBlockTexelViewCompatibleBit ImageCreateFlagBits = 128 - ImageCreateExtendedUsageBit ImageCreateFlagBits = 256 - ImageCreateProtectedBit ImageCreateFlagBits = 2048 - ImageCreateDisjointBit ImageCreateFlagBits = 512 - ImageCreateCornerSampledBitNv ImageCreateFlagBits = 8192 - ImageCreateSampleLocationsCompatibleDepthBit ImageCreateFlagBits = 4096 - ImageCreateFlagBitsMaxEnum ImageCreateFlagBits = 2147483647 + ImageCreateSparseBindingBit ImageCreateFlagBits = 1 + ImageCreateSparseResidencyBit ImageCreateFlagBits = 2 + ImageCreateSparseAliasedBit ImageCreateFlagBits = 4 + ImageCreateMutableFormatBit ImageCreateFlagBits = 8 + ImageCreateCubeCompatibleBit ImageCreateFlagBits = 16 + ImageCreateAliasBit ImageCreateFlagBits = 1024 + ImageCreateSplitInstanceBindRegionsBit ImageCreateFlagBits = 64 + ImageCreate2dArrayCompatibleBit ImageCreateFlagBits = 32 + ImageCreateBlockTexelViewCompatibleBit ImageCreateFlagBits = 128 + ImageCreateExtendedUsageBit ImageCreateFlagBits = 256 + ImageCreateProtectedBit ImageCreateFlagBits = 2048 + ImageCreateDisjointBit ImageCreateFlagBits = 512 + ImageCreateCornerSampledBitNv ImageCreateFlagBits = 8192 + ImageCreateSampleLocationsCompatibleDepthBit ImageCreateFlagBits = 4096 + ImageCreateSubsampledBit ImageCreateFlagBits = 16384 + ImageCreateDescriptorBufferCaptureReplayBit ImageCreateFlagBits = 65536 + ImageCreateMultisampledRenderToSingleSampledBit ImageCreateFlagBits = 262144 + ImageCreate2dViewCompatibleBit ImageCreateFlagBits = 131072 + ImageCreateFragmentDensityMapOffsetBitQcom ImageCreateFlagBits = 32768 + ImageCreateFlagBitsMaxEnum ImageCreateFlagBits = 2147483647 ) // SampleCountFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSampleCountFlagBits.html @@ -2134,17 +3302,52 @@ const ( SampleCountFlagBitsMaxEnum SampleCountFlagBits = 2147483647 ) -// QueueFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFlagBits.html -type QueueFlagBits int32 +// ImageUsageFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageUsageFlagBits.html +type ImageUsageFlagBits int32 -// QueueFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFlagBits.html +// ImageUsageFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageUsageFlagBits.html const ( - QueueGraphicsBit QueueFlagBits = 1 - QueueComputeBit QueueFlagBits = 2 - QueueTransferBit QueueFlagBits = 4 - QueueSparseBindingBit QueueFlagBits = 8 - QueueProtectedBit QueueFlagBits = 16 - QueueFlagBitsMaxEnum QueueFlagBits = 2147483647 + ImageUsageTransferSrcBit ImageUsageFlagBits = 1 + ImageUsageTransferDstBit ImageUsageFlagBits = 2 + ImageUsageSampledBit ImageUsageFlagBits = 4 + ImageUsageStorageBit ImageUsageFlagBits = 8 + ImageUsageColorAttachmentBit ImageUsageFlagBits = 16 + ImageUsageDepthStencilAttachmentBit ImageUsageFlagBits = 32 + ImageUsageTransientAttachmentBit ImageUsageFlagBits = 64 + ImageUsageInputAttachmentBit ImageUsageFlagBits = 128 + ImageUsageVideoDecodeDstBit ImageUsageFlagBits = 1024 + ImageUsageVideoDecodeSrcBit ImageUsageFlagBits = 2048 + ImageUsageVideoDecodeDpbBit ImageUsageFlagBits = 4096 + ImageUsageFragmentDensityMapBit ImageUsageFlagBits = 512 + ImageUsageFragmentShadingRateAttachmentBit ImageUsageFlagBits = 256 + ImageUsageVideoEncodeDstBit ImageUsageFlagBits = 8192 + ImageUsageVideoEncodeSrcBit ImageUsageFlagBits = 16384 + ImageUsageVideoEncodeDpbBit ImageUsageFlagBits = 32768 + ImageUsageAttachmentFeedbackLoopBit ImageUsageFlagBits = 524288 + ImageUsageInvocationMaskBitHuawei ImageUsageFlagBits = 262144 + ImageUsageSampleWeightBitQcom ImageUsageFlagBits = 1048576 + ImageUsageSampleBlockMatchBitQcom ImageUsageFlagBits = 2097152 + ImageUsageShadingRateImageBitNv ImageUsageFlagBits = 256 + ImageUsageFlagBitsMaxEnum ImageUsageFlagBits = 2147483647 +) + +// InstanceCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateFlagBits.html +type InstanceCreateFlagBits int32 + +// InstanceCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateFlagBits.html +const ( + InstanceCreateEnumeratePortabilityBit InstanceCreateFlagBits = 1 + InstanceCreateFlagBitsMaxEnum InstanceCreateFlagBits = 2147483647 +) + +// MemoryHeapFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryHeapFlagBits.html +type MemoryHeapFlagBits int32 + +// MemoryHeapFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryHeapFlagBits.html +const ( + MemoryHeapDeviceLocalBit MemoryHeapFlagBits = 1 + MemoryHeapMultiInstanceBit MemoryHeapFlagBits = 2 + MemoryHeapFlagBitsMaxEnum MemoryHeapFlagBits = 2147483647 ) // MemoryPropertyFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryPropertyFlagBits.html @@ -2152,23 +3355,32 @@ type MemoryPropertyFlagBits int32 // MemoryPropertyFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryPropertyFlagBits.html const ( - MemoryPropertyDeviceLocalBit MemoryPropertyFlagBits = 1 - MemoryPropertyHostVisibleBit MemoryPropertyFlagBits = 2 - MemoryPropertyHostCoherentBit MemoryPropertyFlagBits = 4 - MemoryPropertyHostCachedBit MemoryPropertyFlagBits = 8 - MemoryPropertyLazilyAllocatedBit MemoryPropertyFlagBits = 16 - MemoryPropertyProtectedBit MemoryPropertyFlagBits = 32 - MemoryPropertyFlagBitsMaxEnum MemoryPropertyFlagBits = 2147483647 + MemoryPropertyDeviceLocalBit MemoryPropertyFlagBits = 1 + MemoryPropertyHostVisibleBit MemoryPropertyFlagBits = 2 + MemoryPropertyHostCoherentBit MemoryPropertyFlagBits = 4 + MemoryPropertyHostCachedBit MemoryPropertyFlagBits = 8 + MemoryPropertyLazilyAllocatedBit MemoryPropertyFlagBits = 16 + MemoryPropertyProtectedBit MemoryPropertyFlagBits = 32 + MemoryPropertyDeviceCoherentBitAmd MemoryPropertyFlagBits = 64 + MemoryPropertyDeviceUncachedBitAmd MemoryPropertyFlagBits = 128 + MemoryPropertyRdmaCapableBitNv MemoryPropertyFlagBits = 256 + MemoryPropertyFlagBitsMaxEnum MemoryPropertyFlagBits = 2147483647 ) -// MemoryHeapFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryHeapFlagBits.html -type MemoryHeapFlagBits int32 +// QueueFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFlagBits.html +type QueueFlagBits int32 -// MemoryHeapFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryHeapFlagBits.html +// QueueFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFlagBits.html const ( - MemoryHeapDeviceLocalBit MemoryHeapFlagBits = 1 - MemoryHeapMultiInstanceBit MemoryHeapFlagBits = 2 - MemoryHeapFlagBitsMaxEnum MemoryHeapFlagBits = 2147483647 + QueueGraphicsBit QueueFlagBits = 1 + QueueComputeBit QueueFlagBits = 2 + QueueTransferBit QueueFlagBits = 4 + QueueSparseBindingBit QueueFlagBits = 8 + QueueProtectedBit QueueFlagBits = 16 + QueueVideoDecodeBit QueueFlagBits = 32 + QueueVideoEncodeBit QueueFlagBits = 64 + QueueOpticalFlowBitNv QueueFlagBits = 256 + QueueFlagBitsMaxEnum QueueFlagBits = 2147483647 ) // DeviceQueueCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueCreateFlagBits.html @@ -2185,50 +3397,48 @@ type PipelineStageFlagBits int32 // PipelineStageFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineStageFlagBits.html const ( - PipelineStageTopOfPipeBit PipelineStageFlagBits = 1 - PipelineStageDrawIndirectBit PipelineStageFlagBits = 2 - PipelineStageVertexInputBit PipelineStageFlagBits = 4 - PipelineStageVertexShaderBit PipelineStageFlagBits = 8 - PipelineStageTessellationControlShaderBit PipelineStageFlagBits = 16 - PipelineStageTessellationEvaluationShaderBit PipelineStageFlagBits = 32 - PipelineStageGeometryShaderBit PipelineStageFlagBits = 64 - PipelineStageFragmentShaderBit PipelineStageFlagBits = 128 - PipelineStageEarlyFragmentTestsBit PipelineStageFlagBits = 256 - PipelineStageLateFragmentTestsBit PipelineStageFlagBits = 512 - PipelineStageColorAttachmentOutputBit PipelineStageFlagBits = 1024 - PipelineStageComputeShaderBit PipelineStageFlagBits = 2048 - PipelineStageTransferBit PipelineStageFlagBits = 4096 - PipelineStageBottomOfPipeBit PipelineStageFlagBits = 8192 - PipelineStageHostBit PipelineStageFlagBits = 16384 - PipelineStageAllGraphicsBit PipelineStageFlagBits = 32768 - PipelineStageAllCommandsBit PipelineStageFlagBits = 65536 - PipelineStageTransformFeedbackBit PipelineStageFlagBits = 16777216 - PipelineStageConditionalRenderingBit PipelineStageFlagBits = 262144 - PipelineStageCommandProcessBitNvx PipelineStageFlagBits = 131072 - PipelineStageShadingRateImageBitNv PipelineStageFlagBits = 4194304 - PipelineStageRaytracingBitNvx PipelineStageFlagBits = 2097152 - PipelineStageTaskShaderBitNv PipelineStageFlagBits = 524288 - PipelineStageMeshShaderBitNv PipelineStageFlagBits = 1048576 - PipelineStageFlagBitsMaxEnum PipelineStageFlagBits = 2147483647 + PipelineStageTopOfPipeBit PipelineStageFlagBits = 1 + PipelineStageDrawIndirectBit PipelineStageFlagBits = 2 + PipelineStageVertexInputBit PipelineStageFlagBits = 4 + PipelineStageVertexShaderBit PipelineStageFlagBits = 8 + PipelineStageTessellationControlShaderBit PipelineStageFlagBits = 16 + PipelineStageTessellationEvaluationShaderBit PipelineStageFlagBits = 32 + PipelineStageGeometryShaderBit PipelineStageFlagBits = 64 + PipelineStageFragmentShaderBit PipelineStageFlagBits = 128 + PipelineStageEarlyFragmentTestsBit PipelineStageFlagBits = 256 + PipelineStageLateFragmentTestsBit PipelineStageFlagBits = 512 + PipelineStageColorAttachmentOutputBit PipelineStageFlagBits = 1024 + PipelineStageComputeShaderBit PipelineStageFlagBits = 2048 + PipelineStageTransferBit PipelineStageFlagBits = 4096 + PipelineStageBottomOfPipeBit PipelineStageFlagBits = 8192 + PipelineStageHostBit PipelineStageFlagBits = 16384 + PipelineStageAllGraphicsBit PipelineStageFlagBits = 32768 + PipelineStageAllCommandsBit PipelineStageFlagBits = 65536 + PipelineStageNone PipelineStageFlagBits = 0 + PipelineStageTransformFeedbackBit PipelineStageFlagBits = 16777216 + PipelineStageConditionalRenderingBit PipelineStageFlagBits = 262144 + PipelineStageAccelerationStructureBuildBit PipelineStageFlagBits = 33554432 + PipelineStageRayTracingShaderBit PipelineStageFlagBits = 2097152 + PipelineStageFragmentDensityProcessBit PipelineStageFlagBits = 8388608 + PipelineStageFragmentShadingRateAttachmentBit PipelineStageFlagBits = 4194304 + PipelineStageCommandPreprocessBitNv PipelineStageFlagBits = 131072 + PipelineStageTaskShaderBit PipelineStageFlagBits = 524288 + PipelineStageMeshShaderBit PipelineStageFlagBits = 1048576 + PipelineStageShadingRateImageBitNv PipelineStageFlagBits = 4194304 + PipelineStageRayTracingShaderBitNv PipelineStageFlagBits = 2097152 + PipelineStageAccelerationStructureBuildBitNv PipelineStageFlagBits = 33554432 + PipelineStageTaskShaderBitNv PipelineStageFlagBits = 524288 + PipelineStageMeshShaderBitNv PipelineStageFlagBits = 1048576 + PipelineStageFlagBitsMaxEnum PipelineStageFlagBits = 2147483647 ) -// ImageAspectFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageAspectFlagBits.html -type ImageAspectFlagBits int32 +// SparseMemoryBindFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseMemoryBindFlagBits.html +type SparseMemoryBindFlagBits int32 -// ImageAspectFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageAspectFlagBits.html +// SparseMemoryBindFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseMemoryBindFlagBits.html const ( - ImageAspectColorBit ImageAspectFlagBits = 1 - ImageAspectDepthBit ImageAspectFlagBits = 2 - ImageAspectStencilBit ImageAspectFlagBits = 4 - ImageAspectMetadataBit ImageAspectFlagBits = 8 - ImageAspectPlane0Bit ImageAspectFlagBits = 16 - ImageAspectPlane1Bit ImageAspectFlagBits = 32 - ImageAspectPlane2Bit ImageAspectFlagBits = 64 - ImageAspectMemoryPlane0Bit ImageAspectFlagBits = 128 - ImageAspectMemoryPlane1Bit ImageAspectFlagBits = 256 - ImageAspectMemoryPlane2Bit ImageAspectFlagBits = 512 - ImageAspectMemoryPlane3Bit ImageAspectFlagBits = 1024 - ImageAspectFlagBitsMaxEnum ImageAspectFlagBits = 2147483647 + SparseMemoryBindMetadataBit SparseMemoryBindFlagBits = 1 + SparseMemoryBindFlagBitsMaxEnum SparseMemoryBindFlagBits = 2147483647 ) // SparseImageFormatFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageFormatFlagBits.html @@ -2242,15 +3452,6 @@ const ( SparseImageFormatFlagBitsMaxEnum SparseImageFormatFlagBits = 2147483647 ) -// SparseMemoryBindFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseMemoryBindFlagBits.html -type SparseMemoryBindFlagBits int32 - -// SparseMemoryBindFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseMemoryBindFlagBits.html -const ( - SparseMemoryBindMetadataBit SparseMemoryBindFlagBits = 1 - SparseMemoryBindFlagBitsMaxEnum SparseMemoryBindFlagBits = 2147483647 -) - // FenceCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceCreateFlagBits.html type FenceCreateFlagBits int32 @@ -2260,6 +3461,15 @@ const ( FenceCreateFlagBitsMaxEnum FenceCreateFlagBits = 2147483647 ) +// EventCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkEventCreateFlagBits.html +type EventCreateFlagBits int32 + +// EventCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkEventCreateFlagBits.html +const ( + EventCreateDeviceOnlyBit EventCreateFlagBits = 1 + EventCreateFlagBitsMaxEnum EventCreateFlagBits = 2147483647 +) + // QueryPipelineStatisticFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPipelineStatisticFlagBits.html type QueryPipelineStatisticFlagBits int32 @@ -2276,6 +3486,9 @@ const ( QueryPipelineStatisticTessellationControlShaderPatchesBit QueryPipelineStatisticFlagBits = 256 QueryPipelineStatisticTessellationEvaluationShaderInvocationsBit QueryPipelineStatisticFlagBits = 512 QueryPipelineStatisticComputeShaderInvocationsBit QueryPipelineStatisticFlagBits = 1024 + QueryPipelineStatisticTaskShaderInvocationsBit QueryPipelineStatisticFlagBits = 2048 + QueryPipelineStatisticMeshShaderInvocationsBit QueryPipelineStatisticFlagBits = 4096 + QueryPipelineStatisticClusterCullingShaderInvocationsBitHuawei QueryPipelineStatisticFlagBits = 8192 QueryPipelineStatisticFlagBitsMaxEnum QueryPipelineStatisticFlagBits = 2147483647 ) @@ -2288,6 +3501,7 @@ const ( QueryResultWaitBit QueryResultFlagBits = 2 QueryResultWithAvailabilityBit QueryResultFlagBits = 4 QueryResultPartialBit QueryResultFlagBits = 8 + QueryResultWithStatusBit QueryResultFlagBits = 16 QueryResultFlagBitsMaxEnum QueryResultFlagBits = 2147483647 ) @@ -2296,11 +3510,13 @@ type BufferCreateFlagBits int32 // BufferCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferCreateFlagBits.html const ( - BufferCreateSparseBindingBit BufferCreateFlagBits = 1 - BufferCreateSparseResidencyBit BufferCreateFlagBits = 2 - BufferCreateSparseAliasedBit BufferCreateFlagBits = 4 - BufferCreateProtectedBit BufferCreateFlagBits = 8 - BufferCreateFlagBitsMaxEnum BufferCreateFlagBits = 2147483647 + BufferCreateSparseBindingBit BufferCreateFlagBits = 1 + BufferCreateSparseResidencyBit BufferCreateFlagBits = 2 + BufferCreateSparseAliasedBit BufferCreateFlagBits = 4 + BufferCreateProtectedBit BufferCreateFlagBits = 8 + BufferCreateDeviceAddressCaptureReplayBit BufferCreateFlagBits = 16 + BufferCreateDescriptorBufferCaptureReplayBit BufferCreateFlagBits = 32 + BufferCreateFlagBitsMaxEnum BufferCreateFlagBits = 2147483647 ) // BufferUsageFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferUsageFlagBits.html @@ -2308,20 +3524,65 @@ type BufferUsageFlagBits int32 // BufferUsageFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferUsageFlagBits.html const ( - BufferUsageTransferSrcBit BufferUsageFlagBits = 1 - BufferUsageTransferDstBit BufferUsageFlagBits = 2 - BufferUsageUniformTexelBufferBit BufferUsageFlagBits = 4 - BufferUsageStorageTexelBufferBit BufferUsageFlagBits = 8 - BufferUsageUniformBufferBit BufferUsageFlagBits = 16 - BufferUsageStorageBufferBit BufferUsageFlagBits = 32 - BufferUsageIndexBufferBit BufferUsageFlagBits = 64 - BufferUsageVertexBufferBit BufferUsageFlagBits = 128 - BufferUsageIndirectBufferBit BufferUsageFlagBits = 256 - BufferUsageTransformFeedbackBufferBit BufferUsageFlagBits = 2048 - BufferUsageTransformFeedbackCounterBufferBit BufferUsageFlagBits = 4096 - BufferUsageConditionalRenderingBit BufferUsageFlagBits = 512 - BufferUsageRaytracingBitNvx BufferUsageFlagBits = 1024 - BufferUsageFlagBitsMaxEnum BufferUsageFlagBits = 2147483647 + BufferUsageTransferSrcBit BufferUsageFlagBits = 1 + BufferUsageTransferDstBit BufferUsageFlagBits = 2 + BufferUsageUniformTexelBufferBit BufferUsageFlagBits = 4 + BufferUsageStorageTexelBufferBit BufferUsageFlagBits = 8 + BufferUsageUniformBufferBit BufferUsageFlagBits = 16 + BufferUsageStorageBufferBit BufferUsageFlagBits = 32 + BufferUsageIndexBufferBit BufferUsageFlagBits = 64 + BufferUsageVertexBufferBit BufferUsageFlagBits = 128 + BufferUsageIndirectBufferBit BufferUsageFlagBits = 256 + BufferUsageShaderDeviceAddressBit BufferUsageFlagBits = 131072 + BufferUsageVideoDecodeSrcBit BufferUsageFlagBits = 8192 + BufferUsageVideoDecodeDstBit BufferUsageFlagBits = 16384 + BufferUsageTransformFeedbackBufferBit BufferUsageFlagBits = 2048 + BufferUsageTransformFeedbackCounterBufferBit BufferUsageFlagBits = 4096 + BufferUsageConditionalRenderingBit BufferUsageFlagBits = 512 + BufferUsageAccelerationStructureBuildInputReadOnlyBit BufferUsageFlagBits = 524288 + BufferUsageAccelerationStructureStorageBit BufferUsageFlagBits = 1048576 + BufferUsageShaderBindingTableBit BufferUsageFlagBits = 1024 + BufferUsageVideoEncodeDstBit BufferUsageFlagBits = 32768 + BufferUsageVideoEncodeSrcBit BufferUsageFlagBits = 65536 + BufferUsageSamplerDescriptorBufferBit BufferUsageFlagBits = 2097152 + BufferUsageResourceDescriptorBufferBit BufferUsageFlagBits = 4194304 + BufferUsagePushDescriptorsDescriptorBufferBit BufferUsageFlagBits = 67108864 + BufferUsageMicromapBuildInputReadOnlyBit BufferUsageFlagBits = 8388608 + BufferUsageMicromapStorageBit BufferUsageFlagBits = 16777216 + BufferUsageRayTracingBitNv BufferUsageFlagBits = 1024 + BufferUsageFlagBitsMaxEnum BufferUsageFlagBits = 2147483647 +) + +// ImageViewCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewCreateFlagBits.html +type ImageViewCreateFlagBits int32 + +// ImageViewCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewCreateFlagBits.html +const ( + ImageViewCreateFragmentDensityMapDynamicBit ImageViewCreateFlagBits = 1 + ImageViewCreateDescriptorBufferCaptureReplayBit ImageViewCreateFlagBits = 4 + ImageViewCreateFragmentDensityMapDeferredBit ImageViewCreateFlagBits = 2 + ImageViewCreateFlagBitsMaxEnum ImageViewCreateFlagBits = 2147483647 +) + +// PipelineCacheCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheCreateFlagBits.html +type PipelineCacheCreateFlagBits int32 + +// PipelineCacheCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheCreateFlagBits.html +const ( + PipelineCacheCreateExternallySynchronizedBit PipelineCacheCreateFlagBits = 1 + PipelineCacheCreateFlagBitsMaxEnum PipelineCacheCreateFlagBits = 2147483647 +) + +// ColorComponentFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkColorComponentFlagBits.html +type ColorComponentFlagBits int32 + +// ColorComponentFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkColorComponentFlagBits.html +const ( + ColorComponentRBit ColorComponentFlagBits = 1 + ColorComponentGBit ColorComponentFlagBits = 2 + ColorComponentBBit ColorComponentFlagBits = 4 + ColorComponentABit ColorComponentFlagBits = 8 + ColorComponentFlagBitsMaxEnum ColorComponentFlagBits = 2147483647 ) // PipelineCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCreateFlagBits.html @@ -2329,13 +3590,50 @@ type PipelineCreateFlagBits int32 // PipelineCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCreateFlagBits.html const ( - PipelineCreateDisableOptimizationBit PipelineCreateFlagBits = 1 - PipelineCreateAllowDerivativesBit PipelineCreateFlagBits = 2 - PipelineCreateDerivativeBit PipelineCreateFlagBits = 4 - PipelineCreateViewIndexFromDeviceIndexBit PipelineCreateFlagBits = 8 - PipelineCreateDispatchBase PipelineCreateFlagBits = 16 - PipelineCreateDeferCompileBitNvx PipelineCreateFlagBits = 32 - PipelineCreateFlagBitsMaxEnum PipelineCreateFlagBits = 2147483647 + PipelineCreateDisableOptimizationBit PipelineCreateFlagBits = 1 + PipelineCreateAllowDerivativesBit PipelineCreateFlagBits = 2 + PipelineCreateDerivativeBit PipelineCreateFlagBits = 4 + PipelineCreateViewIndexFromDeviceIndexBit PipelineCreateFlagBits = 8 + PipelineCreateDispatchBaseBit PipelineCreateFlagBits = 16 + PipelineCreateFailOnPipelineCompileRequiredBit PipelineCreateFlagBits = 256 + PipelineCreateEarlyReturnOnFailureBit PipelineCreateFlagBits = 512 + PipelineCreateRenderingFragmentShadingRateAttachmentBit PipelineCreateFlagBits = 2097152 + PipelineCreateRenderingFragmentDensityMapAttachmentBit PipelineCreateFlagBits = 4194304 + PipelineCreateRayTracingNoNullAnyHitShadersBit PipelineCreateFlagBits = 16384 + PipelineCreateRayTracingNoNullClosestHitShadersBit PipelineCreateFlagBits = 32768 + PipelineCreateRayTracingNoNullMissShadersBit PipelineCreateFlagBits = 65536 + PipelineCreateRayTracingNoNullIntersectionShadersBit PipelineCreateFlagBits = 131072 + PipelineCreateRayTracingSkipTrianglesBit PipelineCreateFlagBits = 4096 + PipelineCreateRayTracingSkipAabbsBit PipelineCreateFlagBits = 8192 + PipelineCreateRayTracingShaderGroupHandleCaptureReplayBit PipelineCreateFlagBits = 524288 + PipelineCreateDeferCompileBitNv PipelineCreateFlagBits = 32 + PipelineCreateCaptureStatisticsBit PipelineCreateFlagBits = 64 + PipelineCreateCaptureInternalRepresentationsBit PipelineCreateFlagBits = 128 + PipelineCreateIndirectBindableBitNv PipelineCreateFlagBits = 262144 + PipelineCreateLibraryBit PipelineCreateFlagBits = 2048 + PipelineCreateDescriptorBufferBit PipelineCreateFlagBits = 536870912 + PipelineCreateRetainLinkTimeOptimizationInfoBit PipelineCreateFlagBits = 8388608 + PipelineCreateLinkTimeOptimizationBit PipelineCreateFlagBits = 1024 + PipelineCreateRayTracingAllowMotionBitNv PipelineCreateFlagBits = 1048576 + PipelineCreateColorAttachmentFeedbackLoopBit PipelineCreateFlagBits = 33554432 + PipelineCreateDepthStencilAttachmentFeedbackLoopBit PipelineCreateFlagBits = 67108864 + PipelineCreateRayTracingOpacityMicromapBit PipelineCreateFlagBits = 16777216 + PipelineCreateNoProtectedAccessBit PipelineCreateFlagBits = 134217728 + PipelineCreateProtectedAccessOnlyBit PipelineCreateFlagBits = 1073741824 + PipelineCreateDispatchBase PipelineCreateFlagBits = 16 + PipelineRasterizationStateCreateFragmentShadingRateAttachmentBit PipelineCreateFlagBits = 2097152 + PipelineRasterizationStateCreateFragmentDensityMapAttachmentBit PipelineCreateFlagBits = 4194304 + PipelineCreateFlagBitsMaxEnum PipelineCreateFlagBits = 2147483647 +) + +// PipelineShaderStageCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineShaderStageCreateFlagBits.html +type PipelineShaderStageCreateFlagBits int32 + +// PipelineShaderStageCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineShaderStageCreateFlagBits.html +const ( + PipelineShaderStageCreateAllowVaryingSubgroupSizeBit PipelineShaderStageCreateFlagBits = 1 + PipelineShaderStageCreateRequireFullSubgroupsBit PipelineShaderStageCreateFlagBits = 2 + PipelineShaderStageCreateFlagBitsMaxEnum PipelineShaderStageCreateFlagBits = 2147483647 ) // ShaderStageFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShaderStageFlagBits.html @@ -2351,12 +3649,22 @@ const ( ShaderStageComputeBit ShaderStageFlagBits = 32 ShaderStageAllGraphics ShaderStageFlagBits = 31 ShaderStageAll ShaderStageFlagBits = 2147483647 - ShaderStageRaygenBitNvx ShaderStageFlagBits = 256 - ShaderStageAnyHitBitNvx ShaderStageFlagBits = 512 - ShaderStageClosestHitBitNvx ShaderStageFlagBits = 1024 - ShaderStageMissBitNvx ShaderStageFlagBits = 2048 - ShaderStageIntersectionBitNvx ShaderStageFlagBits = 4096 - ShaderStageCallableBitNvx ShaderStageFlagBits = 8192 + ShaderStageRaygenBit ShaderStageFlagBits = 256 + ShaderStageAnyHitBit ShaderStageFlagBits = 512 + ShaderStageClosestHitBit ShaderStageFlagBits = 1024 + ShaderStageMissBit ShaderStageFlagBits = 2048 + ShaderStageIntersectionBit ShaderStageFlagBits = 4096 + ShaderStageCallableBit ShaderStageFlagBits = 8192 + ShaderStageTaskBit ShaderStageFlagBits = 64 + ShaderStageMeshBit ShaderStageFlagBits = 128 + ShaderStageSubpassShadingBitHuawei ShaderStageFlagBits = 16384 + ShaderStageClusterCullingBitHuawei ShaderStageFlagBits = 524288 + ShaderStageRaygenBitNv ShaderStageFlagBits = 256 + ShaderStageAnyHitBitNv ShaderStageFlagBits = 512 + ShaderStageClosestHitBitNv ShaderStageFlagBits = 1024 + ShaderStageMissBitNv ShaderStageFlagBits = 2048 + ShaderStageIntersectionBitNv ShaderStageFlagBits = 4096 + ShaderStageCallableBitNv ShaderStageFlagBits = 8192 ShaderStageTaskBitNv ShaderStageFlagBits = 64 ShaderStageMeshBitNv ShaderStageFlagBits = 128 ShaderStageFlagBitsMaxEnum ShaderStageFlagBits = 2147483647 @@ -2374,26 +3682,48 @@ const ( CullModeFlagBitsMaxEnum CullModeFlagBits = 2147483647 ) -// ColorComponentFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkColorComponentFlagBits.html -type ColorComponentFlagBits int32 +// PipelineDepthStencilStateCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDepthStencilStateCreateFlagBits.html +type PipelineDepthStencilStateCreateFlagBits int32 -// ColorComponentFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkColorComponentFlagBits.html +// PipelineDepthStencilStateCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDepthStencilStateCreateFlagBits.html const ( - ColorComponentRBit ColorComponentFlagBits = 1 - ColorComponentGBit ColorComponentFlagBits = 2 - ColorComponentBBit ColorComponentFlagBits = 4 - ColorComponentABit ColorComponentFlagBits = 8 - ColorComponentFlagBitsMaxEnum ColorComponentFlagBits = 2147483647 + PipelineDepthStencilStateCreateRasterizationOrderAttachmentDepthAccessBit PipelineDepthStencilStateCreateFlagBits = 1 + PipelineDepthStencilStateCreateRasterizationOrderAttachmentStencilAccessBit PipelineDepthStencilStateCreateFlagBits = 2 + PipelineDepthStencilStateCreateRasterizationOrderAttachmentDepthAccessBitArm PipelineDepthStencilStateCreateFlagBits = 1 + PipelineDepthStencilStateCreateRasterizationOrderAttachmentStencilAccessBitArm PipelineDepthStencilStateCreateFlagBits = 2 + PipelineDepthStencilStateCreateFlagBitsMaxEnum PipelineDepthStencilStateCreateFlagBits = 2147483647 ) -// DescriptorSetLayoutCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutCreateFlagBits.html -type DescriptorSetLayoutCreateFlagBits int32 +// PipelineColorBlendStateCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorBlendStateCreateFlagBits.html +type PipelineColorBlendStateCreateFlagBits int32 -// DescriptorSetLayoutCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutCreateFlagBits.html +// PipelineColorBlendStateCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorBlendStateCreateFlagBits.html +const ( + PipelineColorBlendStateCreateRasterizationOrderAttachmentAccessBit PipelineColorBlendStateCreateFlagBits = 1 + PipelineColorBlendStateCreateRasterizationOrderAttachmentAccessBitArm PipelineColorBlendStateCreateFlagBits = 1 + PipelineColorBlendStateCreateFlagBitsMaxEnum PipelineColorBlendStateCreateFlagBits = 2147483647 +) + +// PipelineLayoutCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineLayoutCreateFlagBits.html +type PipelineLayoutCreateFlagBits int32 + +// PipelineLayoutCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineLayoutCreateFlagBits.html +const ( + PipelineLayoutCreateIndependentSetsBit PipelineLayoutCreateFlagBits = 2 + PipelineLayoutCreateFlagBitsMaxEnum PipelineLayoutCreateFlagBits = 2147483647 +) + +// SamplerCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerCreateFlagBits.html +type SamplerCreateFlagBits int32 + +// SamplerCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerCreateFlagBits.html const ( - DescriptorSetLayoutCreatePushDescriptorBit DescriptorSetLayoutCreateFlagBits = 1 - DescriptorSetLayoutCreateUpdateAfterBindPoolBit DescriptorSetLayoutCreateFlagBits = 2 - DescriptorSetLayoutCreateFlagBitsMaxEnum DescriptorSetLayoutCreateFlagBits = 2147483647 + SamplerCreateSubsampledBit SamplerCreateFlagBits = 1 + SamplerCreateSubsampledCoarseReconstructionBit SamplerCreateFlagBits = 2 + SamplerCreateDescriptorBufferCaptureReplayBit SamplerCreateFlagBits = 8 + SamplerCreateNonSeamlessCubeMapBit SamplerCreateFlagBits = 4 + SamplerCreateImageProcessingBitQcom SamplerCreateFlagBits = 16 + SamplerCreateFlagBitsMaxEnum SamplerCreateFlagBits = 2147483647 ) // DescriptorPoolCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolCreateFlagBits.html @@ -2403,9 +3733,25 @@ type DescriptorPoolCreateFlagBits int32 const ( DescriptorPoolCreateFreeDescriptorSetBit DescriptorPoolCreateFlagBits = 1 DescriptorPoolCreateUpdateAfterBindBit DescriptorPoolCreateFlagBits = 2 + DescriptorPoolCreateHostOnlyBit DescriptorPoolCreateFlagBits = 4 + DescriptorPoolCreateHostOnlyBitValve DescriptorPoolCreateFlagBits = 4 DescriptorPoolCreateFlagBitsMaxEnum DescriptorPoolCreateFlagBits = 2147483647 ) +// DescriptorSetLayoutCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutCreateFlagBits.html +type DescriptorSetLayoutCreateFlagBits int32 + +// DescriptorSetLayoutCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutCreateFlagBits.html +const ( + DescriptorSetLayoutCreateUpdateAfterBindPoolBit DescriptorSetLayoutCreateFlagBits = 2 + DescriptorSetLayoutCreatePushDescriptorBit DescriptorSetLayoutCreateFlagBits = 1 + DescriptorSetLayoutCreateDescriptorBufferBit DescriptorSetLayoutCreateFlagBits = 16 + DescriptorSetLayoutCreateEmbeddedImmutableSamplersBit DescriptorSetLayoutCreateFlagBits = 32 + DescriptorSetLayoutCreateHostOnlyPoolBit DescriptorSetLayoutCreateFlagBits = 4 + DescriptorSetLayoutCreateHostOnlyPoolBitValve DescriptorSetLayoutCreateFlagBits = 4 + DescriptorSetLayoutCreateFlagBitsMaxEnum DescriptorSetLayoutCreateFlagBits = 2147483647 +) + // AttachmentDescriptionFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentDescriptionFlagBits.html type AttachmentDescriptionFlagBits int32 @@ -2415,60 +3761,53 @@ const ( AttachmentDescriptionFlagBitsMaxEnum AttachmentDescriptionFlagBits = 2147483647 ) -// SubpassDescriptionFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDescriptionFlagBits.html -type SubpassDescriptionFlagBits int32 +// DependencyFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDependencyFlagBits.html +type DependencyFlagBits int32 -// SubpassDescriptionFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDescriptionFlagBits.html +// DependencyFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDependencyFlagBits.html const ( - SubpassDescriptionPerViewAttributesBitNvx SubpassDescriptionFlagBits = 1 - SubpassDescriptionPerViewPositionXOnlyBitNvx SubpassDescriptionFlagBits = 2 - SubpassDescriptionFlagBitsMaxEnum SubpassDescriptionFlagBits = 2147483647 + DependencyByRegionBit DependencyFlagBits = 1 + DependencyDeviceGroupBit DependencyFlagBits = 4 + DependencyViewLocalBit DependencyFlagBits = 2 + DependencyFeedbackLoopBit DependencyFlagBits = 8 + DependencyFlagBitsMaxEnum DependencyFlagBits = 2147483647 ) -// AccessFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAccessFlagBits.html -type AccessFlagBits int32 +// FramebufferCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFramebufferCreateFlagBits.html +type FramebufferCreateFlagBits int32 -// AccessFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAccessFlagBits.html +// FramebufferCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFramebufferCreateFlagBits.html const ( - AccessIndirectCommandReadBit AccessFlagBits = 1 - AccessIndexReadBit AccessFlagBits = 2 - AccessVertexAttributeReadBit AccessFlagBits = 4 - AccessUniformReadBit AccessFlagBits = 8 - AccessInputAttachmentReadBit AccessFlagBits = 16 - AccessShaderReadBit AccessFlagBits = 32 - AccessShaderWriteBit AccessFlagBits = 64 - AccessColorAttachmentReadBit AccessFlagBits = 128 - AccessColorAttachmentWriteBit AccessFlagBits = 256 - AccessDepthStencilAttachmentReadBit AccessFlagBits = 512 - AccessDepthStencilAttachmentWriteBit AccessFlagBits = 1024 - AccessTransferReadBit AccessFlagBits = 2048 - AccessTransferWriteBit AccessFlagBits = 4096 - AccessHostReadBit AccessFlagBits = 8192 - AccessHostWriteBit AccessFlagBits = 16384 - AccessMemoryReadBit AccessFlagBits = 32768 - AccessMemoryWriteBit AccessFlagBits = 65536 - AccessTransformFeedbackWriteBit AccessFlagBits = 33554432 - AccessTransformFeedbackCounterReadBit AccessFlagBits = 67108864 - AccessTransformFeedbackCounterWriteBit AccessFlagBits = 134217728 - AccessConditionalRenderingReadBit AccessFlagBits = 1048576 - AccessCommandProcessReadBitNvx AccessFlagBits = 131072 - AccessCommandProcessWriteBitNvx AccessFlagBits = 262144 - AccessColorAttachmentReadNoncoherentBit AccessFlagBits = 524288 - AccessShadingRateImageReadBitNv AccessFlagBits = 8388608 - AccessAccelerationStructureReadBitNvx AccessFlagBits = 2097152 - AccessAccelerationStructureWriteBitNvx AccessFlagBits = 4194304 - AccessFlagBitsMaxEnum AccessFlagBits = 2147483647 + FramebufferCreateImagelessBit FramebufferCreateFlagBits = 1 + FramebufferCreateFlagBitsMaxEnum FramebufferCreateFlagBits = 2147483647 ) -// DependencyFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDependencyFlagBits.html -type DependencyFlagBits int32 +// RenderPassCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassCreateFlagBits.html +type RenderPassCreateFlagBits int32 -// DependencyFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDependencyFlagBits.html +// RenderPassCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassCreateFlagBits.html const ( - DependencyByRegionBit DependencyFlagBits = 1 - DependencyDeviceGroupBit DependencyFlagBits = 4 - DependencyViewLocalBit DependencyFlagBits = 2 - DependencyFlagBitsMaxEnum DependencyFlagBits = 2147483647 + RenderPassCreateTransformBitQcom RenderPassCreateFlagBits = 2 + RenderPassCreateFlagBitsMaxEnum RenderPassCreateFlagBits = 2147483647 +) + +// SubpassDescriptionFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDescriptionFlagBits.html +type SubpassDescriptionFlagBits int32 + +// SubpassDescriptionFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDescriptionFlagBits.html +const ( + SubpassDescriptionPerViewAttributesBitNvx SubpassDescriptionFlagBits = 1 + SubpassDescriptionPerViewPositionXOnlyBitNvx SubpassDescriptionFlagBits = 2 + SubpassDescriptionFragmentRegionBitQcom SubpassDescriptionFlagBits = 4 + SubpassDescriptionShaderResolveBitQcom SubpassDescriptionFlagBits = 8 + SubpassDescriptionRasterizationOrderAttachmentColorAccessBit SubpassDescriptionFlagBits = 16 + SubpassDescriptionRasterizationOrderAttachmentDepthAccessBit SubpassDescriptionFlagBits = 32 + SubpassDescriptionRasterizationOrderAttachmentStencilAccessBit SubpassDescriptionFlagBits = 64 + SubpassDescriptionEnableLegacyDitheringBit SubpassDescriptionFlagBits = 128 + SubpassDescriptionRasterizationOrderAttachmentColorAccessBitArm SubpassDescriptionFlagBits = 16 + SubpassDescriptionRasterizationOrderAttachmentDepthAccessBitArm SubpassDescriptionFlagBits = 32 + SubpassDescriptionRasterizationOrderAttachmentStencilAccessBitArm SubpassDescriptionFlagBits = 64 + SubpassDescriptionFlagBitsMaxEnum SubpassDescriptionFlagBits = 2147483647 ) // CommandPoolCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandPoolCreateFlagBits.html @@ -2527,6 +3866,7 @@ type StencilFaceFlagBits int32 const ( StencilFaceFrontBit StencilFaceFlagBits = 1 StencilFaceBackBit StencilFaceFlagBits = 2 + StencilFaceFrontAndBack StencilFaceFlagBits = 3 StencilFrontAndBack StencilFaceFlagBits = 3 StencilFaceFlagBitsMaxEnum StencilFaceFlagBits = 2147483647 ) @@ -2538,9 +3878,6 @@ type PointClippingBehavior int32 const ( PointClippingBehaviorAllClipPlanes PointClippingBehavior = iota PointClippingBehaviorUserClipPlanesOnly PointClippingBehavior = 1 - PointClippingBehaviorBeginRange PointClippingBehavior = 0 - PointClippingBehaviorEndRange PointClippingBehavior = 1 - PointClippingBehaviorRangeSize PointClippingBehavior = 2 PointClippingBehaviorMaxEnum PointClippingBehavior = 2147483647 ) @@ -2549,12 +3886,9 @@ type TessellationDomainOrigin int32 // TessellationDomainOrigin enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkTessellationDomainOrigin.html const ( - TessellationDomainOriginUpperLeft TessellationDomainOrigin = iota - TessellationDomainOriginLowerLeft TessellationDomainOrigin = 1 - TessellationDomainOriginBeginRange TessellationDomainOrigin = 0 - TessellationDomainOriginEndRange TessellationDomainOrigin = 1 - TessellationDomainOriginRangeSize TessellationDomainOrigin = 2 - TessellationDomainOriginMaxEnum TessellationDomainOrigin = 2147483647 + TessellationDomainOriginUpperLeft TessellationDomainOrigin = iota + TessellationDomainOriginLowerLeft TessellationDomainOrigin = 1 + TessellationDomainOriginMaxEnum TessellationDomainOrigin = 2147483647 ) // SamplerYcbcrModelConversion as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrModelConversion.html @@ -2567,9 +3901,6 @@ const ( SamplerYcbcrModelConversionYcbcr709 SamplerYcbcrModelConversion = 2 SamplerYcbcrModelConversionYcbcr601 SamplerYcbcrModelConversion = 3 SamplerYcbcrModelConversionYcbcr2020 SamplerYcbcrModelConversion = 4 - SamplerYcbcrModelConversionBeginRange SamplerYcbcrModelConversion = 0 - SamplerYcbcrModelConversionEndRange SamplerYcbcrModelConversion = 4 - SamplerYcbcrModelConversionRangeSize SamplerYcbcrModelConversion = 5 SamplerYcbcrModelConversionMaxEnum SamplerYcbcrModelConversion = 2147483647 ) @@ -2578,12 +3909,9 @@ type SamplerYcbcrRange int32 // SamplerYcbcrRange enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrRange.html const ( - SamplerYcbcrRangeItuFull SamplerYcbcrRange = iota - SamplerYcbcrRangeItuNarrow SamplerYcbcrRange = 1 - SamplerYcbcrRangeBeginRange SamplerYcbcrRange = 0 - SamplerYcbcrRangeEndRange SamplerYcbcrRange = 1 - SamplerYcbcrRangeRangeSize SamplerYcbcrRange = 2 - SamplerYcbcrRangeMaxEnum SamplerYcbcrRange = 2147483647 + SamplerYcbcrRangeItuFull SamplerYcbcrRange = iota + SamplerYcbcrRangeItuNarrow SamplerYcbcrRange = 1 + SamplerYcbcrRangeMaxEnum SamplerYcbcrRange = 2147483647 ) // ChromaLocation as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkChromaLocation.html @@ -2593,9 +3921,6 @@ type ChromaLocation int32 const ( ChromaLocationCositedEven ChromaLocation = iota ChromaLocationMidpoint ChromaLocation = 1 - ChromaLocationBeginRange ChromaLocation = 0 - ChromaLocationEndRange ChromaLocation = 1 - ChromaLocationRangeSize ChromaLocation = 2 ChromaLocationMaxEnum ChromaLocation = 2147483647 ) @@ -2606,9 +3931,6 @@ type DescriptorUpdateTemplateType int32 const ( DescriptorUpdateTemplateTypeDescriptorSet DescriptorUpdateTemplateType = iota DescriptorUpdateTemplateTypePushDescriptors DescriptorUpdateTemplateType = 1 - DescriptorUpdateTemplateTypeBeginRange DescriptorUpdateTemplateType = 0 - DescriptorUpdateTemplateTypeEndRange DescriptorUpdateTemplateType = 0 - DescriptorUpdateTemplateTypeRangeSize DescriptorUpdateTemplateType = 1 DescriptorUpdateTemplateTypeMaxEnum DescriptorUpdateTemplateType = 2147483647 ) @@ -2646,8 +3968,10 @@ type MemoryAllocateFlagBits int32 // MemoryAllocateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryAllocateFlagBits.html const ( - MemoryAllocateDeviceMaskBit MemoryAllocateFlagBits = 1 - MemoryAllocateFlagBitsMaxEnum MemoryAllocateFlagBits = 2147483647 + MemoryAllocateDeviceMaskBit MemoryAllocateFlagBits = 1 + MemoryAllocateDeviceAddressBit MemoryAllocateFlagBits = 2 + MemoryAllocateDeviceAddressCaptureReplayBit MemoryAllocateFlagBits = 4 + MemoryAllocateFlagBitsMaxEnum MemoryAllocateFlagBits = 2147483647 ) // ExternalMemoryHandleTypeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryHandleTypeFlagBits.html @@ -2666,6 +3990,8 @@ const ( ExternalMemoryHandleTypeAndroidHardwareBufferBitAndroid ExternalMemoryHandleTypeFlagBits = 1024 ExternalMemoryHandleTypeHostAllocationBit ExternalMemoryHandleTypeFlagBits = 128 ExternalMemoryHandleTypeHostMappedForeignMemoryBit ExternalMemoryHandleTypeFlagBits = 256 + ExternalMemoryHandleTypeZirconVmoBitFuchsia ExternalMemoryHandleTypeFlagBits = 2048 + ExternalMemoryHandleTypeRdmaAddressBitNv ExternalMemoryHandleTypeFlagBits = 4096 ExternalMemoryHandleTypeFlagBitsMaxEnum ExternalMemoryHandleTypeFlagBits = 2147483647 ) @@ -2685,62 +4011,224 @@ type ExternalFenceHandleTypeFlagBits int32 // ExternalFenceHandleTypeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceHandleTypeFlagBits.html const ( - ExternalFenceHandleTypeOpaqueFdBit ExternalFenceHandleTypeFlagBits = 1 - ExternalFenceHandleTypeOpaqueWin32Bit ExternalFenceHandleTypeFlagBits = 2 - ExternalFenceHandleTypeOpaqueWin32KmtBit ExternalFenceHandleTypeFlagBits = 4 - ExternalFenceHandleTypeSyncFdBit ExternalFenceHandleTypeFlagBits = 8 - ExternalFenceHandleTypeFlagBitsMaxEnum ExternalFenceHandleTypeFlagBits = 2147483647 + ExternalFenceHandleTypeOpaqueFdBit ExternalFenceHandleTypeFlagBits = 1 + ExternalFenceHandleTypeOpaqueWin32Bit ExternalFenceHandleTypeFlagBits = 2 + ExternalFenceHandleTypeOpaqueWin32KmtBit ExternalFenceHandleTypeFlagBits = 4 + ExternalFenceHandleTypeSyncFdBit ExternalFenceHandleTypeFlagBits = 8 + ExternalFenceHandleTypeFlagBitsMaxEnum ExternalFenceHandleTypeFlagBits = 2147483647 +) + +// ExternalFenceFeatureFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceFeatureFlagBits.html +type ExternalFenceFeatureFlagBits int32 + +// ExternalFenceFeatureFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceFeatureFlagBits.html +const ( + ExternalFenceFeatureExportableBit ExternalFenceFeatureFlagBits = 1 + ExternalFenceFeatureImportableBit ExternalFenceFeatureFlagBits = 2 + ExternalFenceFeatureFlagBitsMaxEnum ExternalFenceFeatureFlagBits = 2147483647 +) + +// FenceImportFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceImportFlagBits.html +type FenceImportFlagBits int32 + +// FenceImportFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceImportFlagBits.html +const ( + FenceImportTemporaryBit FenceImportFlagBits = 1 + FenceImportFlagBitsMaxEnum FenceImportFlagBits = 2147483647 +) + +// SemaphoreImportFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreImportFlagBits.html +type SemaphoreImportFlagBits int32 + +// SemaphoreImportFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreImportFlagBits.html +const ( + SemaphoreImportTemporaryBit SemaphoreImportFlagBits = 1 + SemaphoreImportFlagBitsMaxEnum SemaphoreImportFlagBits = 2147483647 +) + +// ExternalSemaphoreHandleTypeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreHandleTypeFlagBits.html +type ExternalSemaphoreHandleTypeFlagBits int32 + +// ExternalSemaphoreHandleTypeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreHandleTypeFlagBits.html +const ( + ExternalSemaphoreHandleTypeOpaqueFdBit ExternalSemaphoreHandleTypeFlagBits = 1 + ExternalSemaphoreHandleTypeOpaqueWin32Bit ExternalSemaphoreHandleTypeFlagBits = 2 + ExternalSemaphoreHandleTypeOpaqueWin32KmtBit ExternalSemaphoreHandleTypeFlagBits = 4 + ExternalSemaphoreHandleTypeD3d12FenceBit ExternalSemaphoreHandleTypeFlagBits = 8 + ExternalSemaphoreHandleTypeSyncFdBit ExternalSemaphoreHandleTypeFlagBits = 16 + ExternalSemaphoreHandleTypeZirconEventBitFuchsia ExternalSemaphoreHandleTypeFlagBits = 128 + ExternalSemaphoreHandleTypeD3d11FenceBit ExternalSemaphoreHandleTypeFlagBits = 8 + ExternalSemaphoreHandleTypeFlagBitsMaxEnum ExternalSemaphoreHandleTypeFlagBits = 2147483647 +) + +// ExternalSemaphoreFeatureFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreFeatureFlagBits.html +type ExternalSemaphoreFeatureFlagBits int32 + +// ExternalSemaphoreFeatureFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreFeatureFlagBits.html +const ( + ExternalSemaphoreFeatureExportableBit ExternalSemaphoreFeatureFlagBits = 1 + ExternalSemaphoreFeatureImportableBit ExternalSemaphoreFeatureFlagBits = 2 + ExternalSemaphoreFeatureFlagBitsMaxEnum ExternalSemaphoreFeatureFlagBits = 2147483647 +) + +// DriverId as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDriverId.html +type DriverId int32 + +// DriverId enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDriverId.html +const ( + DriverIdAmdProprietary DriverId = 1 + DriverIdAmdOpenSource DriverId = 2 + DriverIdMesaRadv DriverId = 3 + DriverIdNvidiaProprietary DriverId = 4 + DriverIdIntelProprietaryWindows DriverId = 5 + DriverIdIntelOpenSourceMesa DriverId = 6 + DriverIdImaginationProprietary DriverId = 7 + DriverIdQualcommProprietary DriverId = 8 + DriverIdArmProprietary DriverId = 9 + DriverIdGoogleSwiftshader DriverId = 10 + DriverIdGgpProprietary DriverId = 11 + DriverIdBroadcomProprietary DriverId = 12 + DriverIdMesaLlvmpipe DriverId = 13 + DriverIdMoltenvk DriverId = 14 + DriverIdCoreaviProprietary DriverId = 15 + DriverIdJuiceProprietary DriverId = 16 + DriverIdVerisiliconProprietary DriverId = 17 + DriverIdMesaTurnip DriverId = 18 + DriverIdMesaV3dv DriverId = 19 + DriverIdMesaPanvk DriverId = 20 + DriverIdSamsungProprietary DriverId = 21 + DriverIdMesaVenus DriverId = 22 + DriverIdMesaDozen DriverId = 23 + DriverIdMesaNvk DriverId = 24 + DriverIdImaginationOpenSourceMesa DriverId = 25 + DriverIdMaxEnum DriverId = 2147483647 +) + +// ShaderFloatControlsIndependence as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShaderFloatControlsIndependence.html +type ShaderFloatControlsIndependence int32 + +// ShaderFloatControlsIndependence enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShaderFloatControlsIndependence.html +const ( + ShaderFloatControlsIndependence32BitOnly ShaderFloatControlsIndependence = iota + ShaderFloatControlsIndependenceAll ShaderFloatControlsIndependence = 1 + ShaderFloatControlsIndependenceNone ShaderFloatControlsIndependence = 2 + ShaderFloatControlsIndependenceMaxEnum ShaderFloatControlsIndependence = 2147483647 +) + +// SamplerReductionMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerReductionMode.html +type SamplerReductionMode int32 + +// SamplerReductionMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerReductionMode.html +const ( + SamplerReductionModeWeightedAverage SamplerReductionMode = iota + SamplerReductionModeMin SamplerReductionMode = 1 + SamplerReductionModeMax SamplerReductionMode = 2 + SamplerReductionModeMaxEnum SamplerReductionMode = 2147483647 +) + +// SemaphoreType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreType.html +type SemaphoreType int32 + +// SemaphoreType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreType.html +const ( + SemaphoreTypeBinary SemaphoreType = iota + SemaphoreTypeTimeline SemaphoreType = 1 + SemaphoreTypeMaxEnum SemaphoreType = 2147483647 +) + +// ResolveModeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkResolveModeFlagBits.html +type ResolveModeFlagBits int32 + +// ResolveModeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkResolveModeFlagBits.html +const ( + ResolveModeNone ResolveModeFlagBits = iota + ResolveModeSampleZeroBit ResolveModeFlagBits = 1 + ResolveModeAverageBit ResolveModeFlagBits = 2 + ResolveModeMinBit ResolveModeFlagBits = 4 + ResolveModeMaxBit ResolveModeFlagBits = 8 + ResolveModeFlagBitsMaxEnum ResolveModeFlagBits = 2147483647 +) + +// DescriptorBindingFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBindingFlagBits.html +type DescriptorBindingFlagBits int32 + +// DescriptorBindingFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBindingFlagBits.html +const ( + DescriptorBindingUpdateAfterBindBit DescriptorBindingFlagBits = 1 + DescriptorBindingUpdateUnusedWhilePendingBit DescriptorBindingFlagBits = 2 + DescriptorBindingPartiallyBoundBit DescriptorBindingFlagBits = 4 + DescriptorBindingVariableDescriptorCountBit DescriptorBindingFlagBits = 8 + DescriptorBindingFlagBitsMaxEnum DescriptorBindingFlagBits = 2147483647 +) + +// SemaphoreWaitFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreWaitFlagBits.html +type SemaphoreWaitFlagBits int32 + +// SemaphoreWaitFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreWaitFlagBits.html +const ( + SemaphoreWaitAnyBit SemaphoreWaitFlagBits = 1 + SemaphoreWaitFlagBitsMaxEnum SemaphoreWaitFlagBits = 2147483647 ) -// ExternalFenceFeatureFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceFeatureFlagBits.html -type ExternalFenceFeatureFlagBits int32 +// PipelineCreationFeedbackFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCreationFeedbackFlagBits.html +type PipelineCreationFeedbackFlagBits int32 -// ExternalFenceFeatureFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceFeatureFlagBits.html +// PipelineCreationFeedbackFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCreationFeedbackFlagBits.html const ( - ExternalFenceFeatureExportableBit ExternalFenceFeatureFlagBits = 1 - ExternalFenceFeatureImportableBit ExternalFenceFeatureFlagBits = 2 - ExternalFenceFeatureFlagBitsMaxEnum ExternalFenceFeatureFlagBits = 2147483647 + PipelineCreationFeedbackValidBit PipelineCreationFeedbackFlagBits = 1 + PipelineCreationFeedbackApplicationPipelineCacheHitBit PipelineCreationFeedbackFlagBits = 2 + PipelineCreationFeedbackBasePipelineAccelerationBit PipelineCreationFeedbackFlagBits = 4 + PipelineCreationFeedbackFlagBitsMaxEnum PipelineCreationFeedbackFlagBits = 2147483647 ) -// FenceImportFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceImportFlagBits.html -type FenceImportFlagBits int32 +// ToolPurposeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkToolPurposeFlagBits.html +type ToolPurposeFlagBits int32 -// FenceImportFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceImportFlagBits.html +// ToolPurposeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkToolPurposeFlagBits.html const ( - FenceImportTemporaryBit FenceImportFlagBits = 1 - FenceImportFlagBitsMaxEnum FenceImportFlagBits = 2147483647 + ToolPurposeValidationBit ToolPurposeFlagBits = 1 + ToolPurposeProfilingBit ToolPurposeFlagBits = 2 + ToolPurposeTracingBit ToolPurposeFlagBits = 4 + ToolPurposeAdditionalFeaturesBit ToolPurposeFlagBits = 8 + ToolPurposeModifyingFeaturesBit ToolPurposeFlagBits = 16 + ToolPurposeDebugReportingBit ToolPurposeFlagBits = 32 + ToolPurposeDebugMarkersBit ToolPurposeFlagBits = 64 + ToolPurposeFlagBitsMaxEnum ToolPurposeFlagBits = 2147483647 ) -// SemaphoreImportFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreImportFlagBits.html -type SemaphoreImportFlagBits int32 +// SubmitFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubmitFlagBits.html +type SubmitFlagBits int32 -// SemaphoreImportFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreImportFlagBits.html +// SubmitFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubmitFlagBits.html const ( - SemaphoreImportTemporaryBit SemaphoreImportFlagBits = 1 - SemaphoreImportFlagBitsMaxEnum SemaphoreImportFlagBits = 2147483647 + SubmitProtectedBit SubmitFlagBits = 1 + SubmitFlagBitsMaxEnum SubmitFlagBits = 2147483647 ) -// ExternalSemaphoreHandleTypeFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreHandleTypeFlagBits.html -type ExternalSemaphoreHandleTypeFlagBits int32 +// RenderingFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderingFlagBits.html +type RenderingFlagBits int32 -// ExternalSemaphoreHandleTypeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreHandleTypeFlagBits.html +// RenderingFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderingFlagBits.html const ( - ExternalSemaphoreHandleTypeOpaqueFdBit ExternalSemaphoreHandleTypeFlagBits = 1 - ExternalSemaphoreHandleTypeOpaqueWin32Bit ExternalSemaphoreHandleTypeFlagBits = 2 - ExternalSemaphoreHandleTypeOpaqueWin32KmtBit ExternalSemaphoreHandleTypeFlagBits = 4 - ExternalSemaphoreHandleTypeD3d12FenceBit ExternalSemaphoreHandleTypeFlagBits = 8 - ExternalSemaphoreHandleTypeSyncFdBit ExternalSemaphoreHandleTypeFlagBits = 16 - ExternalSemaphoreHandleTypeFlagBitsMaxEnum ExternalSemaphoreHandleTypeFlagBits = 2147483647 + RenderingContentsSecondaryCommandBuffersBit RenderingFlagBits = 1 + RenderingSuspendingBit RenderingFlagBits = 2 + RenderingResumingBit RenderingFlagBits = 4 + RenderingEnableLegacyDitheringBit RenderingFlagBits = 8 + RenderingFlagBitsMaxEnum RenderingFlagBits = 2147483647 ) -// ExternalSemaphoreFeatureFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreFeatureFlagBits.html -type ExternalSemaphoreFeatureFlagBits int32 +// PresentMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentModeKHR +type PresentMode int32 -// ExternalSemaphoreFeatureFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreFeatureFlagBits.html +// PresentMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentModeKHR const ( - ExternalSemaphoreFeatureExportableBit ExternalSemaphoreFeatureFlagBits = 1 - ExternalSemaphoreFeatureImportableBit ExternalSemaphoreFeatureFlagBits = 2 - ExternalSemaphoreFeatureFlagBitsMaxEnum ExternalSemaphoreFeatureFlagBits = 2147483647 + PresentModeImmediate PresentMode = iota + PresentModeMailbox PresentMode = 1 + PresentModeFifo PresentMode = 2 + PresentModeFifoRelaxed PresentMode = 3 + PresentModeSharedDemandRefresh PresentMode = 1000111000 + PresentModeSharedContinuousRefresh PresentMode = 1000111001 + PresentModeMaxEnum PresentMode = 2147483647 ) // ColorSpace as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkColorSpaceKHR @@ -2751,7 +4239,7 @@ const ( ColorSpaceSrgbNonlinear ColorSpace = iota ColorSpaceDisplayP3Nonlinear ColorSpace = 1000104001 ColorSpaceExtendedSrgbLinear ColorSpace = 1000104002 - ColorSpaceDciP3Linear ColorSpace = 1000104003 + ColorSpaceDisplayP3Linear ColorSpace = 1000104003 ColorSpaceDciP3Nonlinear ColorSpace = 1000104004 ColorSpaceBt709Linear ColorSpace = 1000104005 ColorSpaceBt709Nonlinear ColorSpace = 1000104006 @@ -2763,30 +4251,12 @@ const ( ColorSpaceAdobergbNonlinear ColorSpace = 1000104012 ColorSpacePassThrough ColorSpace = 1000104013 ColorSpaceExtendedSrgbNonlinear ColorSpace = 1000104014 + ColorSpaceDisplayNativeAmd ColorSpace = 1000213000 ColorspaceSrgbNonlinear ColorSpace = 0 - ColorSpaceBeginRange ColorSpace = 0 - ColorSpaceEndRange ColorSpace = 0 - ColorSpaceRangeSize ColorSpace = 1 + ColorSpaceDciP3Linear ColorSpace = 1000104003 ColorSpaceMaxEnum ColorSpace = 2147483647 ) -// PresentMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentModeKHR -type PresentMode int32 - -// PresentMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentModeKHR -const ( - PresentModeImmediate PresentMode = iota - PresentModeMailbox PresentMode = 1 - PresentModeFifo PresentMode = 2 - PresentModeFifoRelaxed PresentMode = 3 - PresentModeSharedDemandRefresh PresentMode = 1000111000 - PresentModeSharedContinuousRefresh PresentMode = 1000111001 - PresentModeBeginRange PresentMode = 0 - PresentModeEndRange PresentMode = 3 - PresentModeRangeSize PresentMode = 4 - PresentModeMaxEnum PresentMode = 2147483647 -) - // SurfaceTransformFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceTransformFlagBitsKHR type SurfaceTransformFlagBits int32 @@ -2823,6 +4293,8 @@ type SwapchainCreateFlagBits int32 const ( SwapchainCreateSplitInstanceBindRegionsBit SwapchainCreateFlagBits = 1 SwapchainCreateProtectedBit SwapchainCreateFlagBits = 2 + SwapchainCreateMutableFormatBit SwapchainCreateFlagBits = 4 + SwapchainCreateDeferredMemoryAllocationBit SwapchainCreateFlagBits = 8 SwapchainCreateFlagBitsMaxEnum SwapchainCreateFlagBits = 2147483647 ) @@ -2850,24 +4322,209 @@ const ( DisplayPlaneAlphaFlagBitsMaxEnum DisplayPlaneAlphaFlagBits = 2147483647 ) -// DriverId as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDriverIdKHR -type DriverId int32 +// QueryResultStatus as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkQueryResultStatusKHR +type QueryResultStatus int32 + +// QueryResultStatus enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkQueryResultStatusKHR +const ( + QueryResultStatusError QueryResultStatus = -1 + QueryResultStatusNotReady QueryResultStatus = 0 + QueryResultStatusComplete QueryResultStatus = 1 + QueryResultStatusMaxEnum QueryResultStatus = 2147483647 +) + +// VideoCodecOperationFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCodecOperationFlagBitsKHR +type VideoCodecOperationFlagBits int32 + +// VideoCodecOperationFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCodecOperationFlagBitsKHR +const ( + VideoCodecOperationNone VideoCodecOperationFlagBits = iota + VideoCodecOperationEncodeH264Bit VideoCodecOperationFlagBits = 65536 + VideoCodecOperationEncodeH265Bit VideoCodecOperationFlagBits = 131072 + VideoCodecOperationDecodeH264Bit VideoCodecOperationFlagBits = 1 + VideoCodecOperationDecodeH265Bit VideoCodecOperationFlagBits = 2 + VideoCodecOperationFlagBitsMaxEnum VideoCodecOperationFlagBits = 2147483647 +) -// DriverId enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDriverIdKHR +// VideoChromaSubsamplingFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoChromaSubsamplingFlagBitsKHR +type VideoChromaSubsamplingFlagBits int32 + +// VideoChromaSubsamplingFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoChromaSubsamplingFlagBitsKHR +const ( + VideoChromaSubsamplingInvalid VideoChromaSubsamplingFlagBits = iota + VideoChromaSubsamplingMonochromeBit VideoChromaSubsamplingFlagBits = 1 + VideoChromaSubsampling420Bit VideoChromaSubsamplingFlagBits = 2 + VideoChromaSubsampling422Bit VideoChromaSubsamplingFlagBits = 4 + VideoChromaSubsampling444Bit VideoChromaSubsamplingFlagBits = 8 + VideoChromaSubsamplingFlagBitsMaxEnum VideoChromaSubsamplingFlagBits = 2147483647 +) + +// VideoComponentBitDepthFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoComponentBitDepthFlagBitsKHR +type VideoComponentBitDepthFlagBits int32 + +// VideoComponentBitDepthFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoComponentBitDepthFlagBitsKHR +const ( + VideoComponentBitDepthInvalid VideoComponentBitDepthFlagBits = iota + VideoComponentBitDepth8Bit VideoComponentBitDepthFlagBits = 1 + VideoComponentBitDepth10Bit VideoComponentBitDepthFlagBits = 4 + VideoComponentBitDepth12Bit VideoComponentBitDepthFlagBits = 16 + VideoComponentBitDepthFlagBitsMaxEnum VideoComponentBitDepthFlagBits = 2147483647 +) + +// VideoCapabilityFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCapabilityFlagBitsKHR +type VideoCapabilityFlagBits int32 + +// VideoCapabilityFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCapabilityFlagBitsKHR +const ( + VideoCapabilityProtectedContentBit VideoCapabilityFlagBits = 1 + VideoCapabilitySeparateReferenceImagesBit VideoCapabilityFlagBits = 2 + VideoCapabilityFlagBitsMaxEnum VideoCapabilityFlagBits = 2147483647 +) + +// VideoSessionCreateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoSessionCreateFlagBitsKHR +type VideoSessionCreateFlagBits int32 + +// VideoSessionCreateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoSessionCreateFlagBitsKHR +const ( + VideoSessionCreateProtectedContentBit VideoSessionCreateFlagBits = 1 + VideoSessionCreateFlagBitsMaxEnum VideoSessionCreateFlagBits = 2147483647 +) + +// VideoCodingControlFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCodingControlFlagBitsKHR +type VideoCodingControlFlagBits int32 + +// VideoCodingControlFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCodingControlFlagBitsKHR +const ( + VideoCodingControlResetBit VideoCodingControlFlagBits = 1 + VideoCodingControlEncodeRateControlBit VideoCodingControlFlagBits = 2 + VideoCodingControlEncodeRateControlLayerBit VideoCodingControlFlagBits = 4 + VideoCodingControlFlagBitsMaxEnum VideoCodingControlFlagBits = 2147483647 +) + +// VideoDecodeCapabilityFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeCapabilityFlagBitsKHR +type VideoDecodeCapabilityFlagBits int32 + +// VideoDecodeCapabilityFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeCapabilityFlagBitsKHR +const ( + VideoDecodeCapabilityDpbAndOutputCoincideBit VideoDecodeCapabilityFlagBits = 1 + VideoDecodeCapabilityDpbAndOutputDistinctBit VideoDecodeCapabilityFlagBits = 2 + VideoDecodeCapabilityFlagBitsMaxEnum VideoDecodeCapabilityFlagBits = 2147483647 +) + +// VideoDecodeUsageFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeUsageFlagBitsKHR +type VideoDecodeUsageFlagBits int32 + +// VideoDecodeUsageFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeUsageFlagBitsKHR +const ( + VideoDecodeUsageDefault VideoDecodeUsageFlagBits = iota + VideoDecodeUsageTranscodingBit VideoDecodeUsageFlagBits = 1 + VideoDecodeUsageOfflineBit VideoDecodeUsageFlagBits = 2 + VideoDecodeUsageStreamingBit VideoDecodeUsageFlagBits = 4 + VideoDecodeUsageFlagBitsMaxEnum VideoDecodeUsageFlagBits = 2147483647 +) + +// PerformanceCounterUnit as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterUnitKHR +type PerformanceCounterUnit int32 + +// PerformanceCounterUnit enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterUnitKHR +const ( + PerformanceCounterUnitGeneric PerformanceCounterUnit = iota + PerformanceCounterUnitPercentage PerformanceCounterUnit = 1 + PerformanceCounterUnitNanoseconds PerformanceCounterUnit = 2 + PerformanceCounterUnitBytes PerformanceCounterUnit = 3 + PerformanceCounterUnitBytesPerSecond PerformanceCounterUnit = 4 + PerformanceCounterUnitKelvin PerformanceCounterUnit = 5 + PerformanceCounterUnitWatts PerformanceCounterUnit = 6 + PerformanceCounterUnitVolts PerformanceCounterUnit = 7 + PerformanceCounterUnitAmps PerformanceCounterUnit = 8 + PerformanceCounterUnitHertz PerformanceCounterUnit = 9 + PerformanceCounterUnitCycles PerformanceCounterUnit = 10 + PerformanceCounterUnitMaxEnum PerformanceCounterUnit = 2147483647 +) + +// PerformanceCounterScope as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterScopeKHR +type PerformanceCounterScope int32 + +// PerformanceCounterScope enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterScopeKHR +const ( + PerformanceCounterScopeCommandBuffer PerformanceCounterScope = iota + PerformanceCounterScopeRenderPass PerformanceCounterScope = 1 + PerformanceCounterScopeCommand PerformanceCounterScope = 2 + QueryScopeCommandBuffer PerformanceCounterScope = 0 + QueryScopeRenderPass PerformanceCounterScope = 1 + QueryScopeCommand PerformanceCounterScope = 2 + PerformanceCounterScopeMaxEnum PerformanceCounterScope = 2147483647 +) + +// PerformanceCounterStorage as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterStorageKHR +type PerformanceCounterStorage int32 + +// PerformanceCounterStorage enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterStorageKHR +const ( + PerformanceCounterStorageInt32 PerformanceCounterStorage = iota + PerformanceCounterStorageInt64 PerformanceCounterStorage = 1 + PerformanceCounterStorageUint32 PerformanceCounterStorage = 2 + PerformanceCounterStorageUint64 PerformanceCounterStorage = 3 + PerformanceCounterStorageFloat32 PerformanceCounterStorage = 4 + PerformanceCounterStorageFloat64 PerformanceCounterStorage = 5 + PerformanceCounterStorageMaxEnum PerformanceCounterStorage = 2147483647 +) + +// PerformanceCounterDescriptionFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterDescriptionFlagBitsKHR +type PerformanceCounterDescriptionFlagBits int32 + +// PerformanceCounterDescriptionFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterDescriptionFlagBitsKHR +const ( + PerformanceCounterDescriptionPerformanceImpactingBit PerformanceCounterDescriptionFlagBits = 1 + PerformanceCounterDescriptionConcurrentlyImpactedBit PerformanceCounterDescriptionFlagBits = 2 + PerformanceCounterDescriptionPerformanceImpacting PerformanceCounterDescriptionFlagBits = 1 + PerformanceCounterDescriptionConcurrentlyImpacted PerformanceCounterDescriptionFlagBits = 2 + PerformanceCounterDescriptionFlagBitsMaxEnum PerformanceCounterDescriptionFlagBits = 2147483647 +) + +// AcquireProfilingLockFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAcquireProfilingLockFlagBitsKHR +type AcquireProfilingLockFlagBits int32 + +// AcquireProfilingLockFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAcquireProfilingLockFlagBitsKHR +const ( + AcquireProfilingLockFlagBitsMaxEnum AcquireProfilingLockFlagBits = 2147483647 +) + +// QueueGlobalPriority as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkQueueGlobalPriorityKHR +type QueueGlobalPriority int32 + +// QueueGlobalPriority enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkQueueGlobalPriorityKHR +const ( + QueueGlobalPriorityLow QueueGlobalPriority = 128 + QueueGlobalPriorityMedium QueueGlobalPriority = 256 + QueueGlobalPriorityHigh QueueGlobalPriority = 512 + QueueGlobalPriorityRealtime QueueGlobalPriority = 1024 + QueueGlobalPriorityMaxEnum QueueGlobalPriority = 2147483647 +) + +// FragmentShadingRateCombinerOp as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkFragmentShadingRateCombinerOpKHR +type FragmentShadingRateCombinerOp int32 + +// FragmentShadingRateCombinerOp enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkFragmentShadingRateCombinerOpKHR +const ( + FragmentShadingRateCombinerOpKeep FragmentShadingRateCombinerOp = iota + FragmentShadingRateCombinerOpReplace FragmentShadingRateCombinerOp = 1 + FragmentShadingRateCombinerOpMin FragmentShadingRateCombinerOp = 2 + FragmentShadingRateCombinerOpMax FragmentShadingRateCombinerOp = 3 + FragmentShadingRateCombinerOpMul FragmentShadingRateCombinerOp = 4 + FragmentShadingRateCombinerOpMaxEnum FragmentShadingRateCombinerOp = 2147483647 +) + +// PipelineExecutableStatisticFormat as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPipelineExecutableStatisticFormatKHR +type PipelineExecutableStatisticFormat int32 + +// PipelineExecutableStatisticFormat enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPipelineExecutableStatisticFormatKHR const ( - DriverIdAmdProprietary DriverId = 1 - DriverIdAmdOpenSource DriverId = 2 - DriverIdMesaRadv DriverId = 3 - DriverIdNvidiaProprietary DriverId = 4 - DriverIdIntelProprietaryWindows DriverId = 5 - DriverIdIntelOpenSourceMesa DriverId = 6 - DriverIdImaginationProprietary DriverId = 7 - DriverIdQualcommProprietary DriverId = 8 - DriverIdArmProprietary DriverId = 9 - DriverIdBeginRange DriverId = 1 - DriverIdEndRange DriverId = 9 - DriverIdRangeSize DriverId = 9 - DriverIdMaxEnum DriverId = 2147483647 + PipelineExecutableStatisticFormatBool32 PipelineExecutableStatisticFormat = iota + PipelineExecutableStatisticFormatInt64 PipelineExecutableStatisticFormat = 1 + PipelineExecutableStatisticFormatUint64 PipelineExecutableStatisticFormat = 2 + PipelineExecutableStatisticFormatFloat64 PipelineExecutableStatisticFormat = 3 + PipelineExecutableStatisticFormatMaxEnum PipelineExecutableStatisticFormat = 2147483647 ) // DebugReportObjectType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugReportObjectTypeEXT.html @@ -2906,19 +4563,18 @@ const ( DebugReportObjectTypeDebugReportCallbackExt DebugReportObjectType = 28 DebugReportObjectTypeDisplayKhr DebugReportObjectType = 29 DebugReportObjectTypeDisplayModeKhr DebugReportObjectType = 30 - DebugReportObjectTypeObjectTableNvx DebugReportObjectType = 31 - DebugReportObjectTypeIndirectCommandsLayoutNvx DebugReportObjectType = 32 DebugReportObjectTypeValidationCacheExt DebugReportObjectType = 33 DebugReportObjectTypeSamplerYcbcrConversion DebugReportObjectType = 1000156000 DebugReportObjectTypeDescriptorUpdateTemplate DebugReportObjectType = 1000085000 - DebugReportObjectTypeAccelerationStructureNvx DebugReportObjectType = 1000165000 + DebugReportObjectTypeCuModuleNvx DebugReportObjectType = 1000029000 + DebugReportObjectTypeCuFunctionNvx DebugReportObjectType = 1000029001 + DebugReportObjectTypeAccelerationStructureKhr DebugReportObjectType = 1000150000 + DebugReportObjectTypeAccelerationStructureNv DebugReportObjectType = 1000165000 + DebugReportObjectTypeBufferCollectionFuchsia DebugReportObjectType = 1000366000 DebugReportObjectTypeDebugReport DebugReportObjectType = 28 DebugReportObjectTypeValidationCache DebugReportObjectType = 33 DebugReportObjectTypeDescriptorUpdateTemplateKhr DebugReportObjectType = 1000085000 DebugReportObjectTypeSamplerYcbcrConversionKhr DebugReportObjectType = 1000156000 - DebugReportObjectTypeBeginRange DebugReportObjectType = 0 - DebugReportObjectTypeEndRange DebugReportObjectType = 33 - DebugReportObjectTypeRangeSize DebugReportObjectType = 34 DebugReportObjectTypeMaxEnum DebugReportObjectType = 2147483647 ) @@ -2940,12 +4596,9 @@ type RasterizationOrderAMD int32 // RasterizationOrderAMD enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkRasterizationOrderAMD const ( - RasterizationOrderStrictAmd RasterizationOrderAMD = iota - RasterizationOrderRelaxedAmd RasterizationOrderAMD = 1 - RasterizationOrderBeginRangeAmd RasterizationOrderAMD = 0 - RasterizationOrderEndRangeAmd RasterizationOrderAMD = 1 - RasterizationOrderRangeSizeAmd RasterizationOrderAMD = 2 - RasterizationOrderMaxEnumAmd RasterizationOrderAMD = 2147483647 + RasterizationOrderStrictAmd RasterizationOrderAMD = iota + RasterizationOrderRelaxedAmd RasterizationOrderAMD = 1 + RasterizationOrderMaxEnumAmd RasterizationOrderAMD = 2147483647 ) // ShaderInfoTypeAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderInfoTypeAMD @@ -2956,9 +4609,6 @@ const ( ShaderInfoTypeStatisticsAmd ShaderInfoTypeAMD = iota ShaderInfoTypeBinaryAmd ShaderInfoTypeAMD = 1 ShaderInfoTypeDisassemblyAmd ShaderInfoTypeAMD = 2 - ShaderInfoTypeBeginRangeAmd ShaderInfoTypeAMD = 0 - ShaderInfoTypeEndRangeAmd ShaderInfoTypeAMD = 2 - ShaderInfoTypeRangeSizeAmd ShaderInfoTypeAMD = 3 ShaderInfoTypeMaxEnumAmd ShaderInfoTypeAMD = 2147483647 ) @@ -2990,78 +4640,42 @@ type ValidationCheck int32 // ValidationCheck enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCheckEXT.html const ( - ValidationCheckAll ValidationCheck = iota - ValidationCheckShaders ValidationCheck = 1 - ValidationCheckBeginRange ValidationCheck = 0 - ValidationCheckEndRange ValidationCheck = 1 - ValidationCheckRangeSize ValidationCheck = 2 - ValidationCheckMaxEnum ValidationCheck = 2147483647 -) - -// ConditionalRenderingFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagBitsEXT.html -type ConditionalRenderingFlagBits int32 - -// ConditionalRenderingFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagBitsEXT.html -const ( - ConditionalRenderingInvertedBit ConditionalRenderingFlagBits = 1 - ConditionalRenderingFlagBitsMaxEnum ConditionalRenderingFlagBits = 2147483647 -) - -// IndirectCommandsTokenTypeNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsTokenTypeNVX -type IndirectCommandsTokenTypeNVX int32 - -// IndirectCommandsTokenTypeNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsTokenTypeNVX -const ( - IndirectCommandsTokenTypePipelineNvx IndirectCommandsTokenTypeNVX = iota - IndirectCommandsTokenTypeDescriptorSetNvx IndirectCommandsTokenTypeNVX = 1 - IndirectCommandsTokenTypeIndexBufferNvx IndirectCommandsTokenTypeNVX = 2 - IndirectCommandsTokenTypeVertexBufferNvx IndirectCommandsTokenTypeNVX = 3 - IndirectCommandsTokenTypePushConstantNvx IndirectCommandsTokenTypeNVX = 4 - IndirectCommandsTokenTypeDrawIndexedNvx IndirectCommandsTokenTypeNVX = 5 - IndirectCommandsTokenTypeDrawNvx IndirectCommandsTokenTypeNVX = 6 - IndirectCommandsTokenTypeDispatchNvx IndirectCommandsTokenTypeNVX = 7 - IndirectCommandsTokenTypeBeginRangeNvx IndirectCommandsTokenTypeNVX = 0 - IndirectCommandsTokenTypeEndRangeNvx IndirectCommandsTokenTypeNVX = 7 - IndirectCommandsTokenTypeRangeSizeNvx IndirectCommandsTokenTypeNVX = 8 - IndirectCommandsTokenTypeMaxEnumNvx IndirectCommandsTokenTypeNVX = 2147483647 + ValidationCheckAll ValidationCheck = iota + ValidationCheckShaders ValidationCheck = 1 + ValidationCheckMaxEnum ValidationCheck = 2147483647 ) -// ObjectEntryTypeNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectEntryTypeNVX -type ObjectEntryTypeNVX int32 +// PipelineRobustnessBufferBehavior as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRobustnessBufferBehaviorEXT.html +type PipelineRobustnessBufferBehavior int32 -// ObjectEntryTypeNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectEntryTypeNVX +// PipelineRobustnessBufferBehavior enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRobustnessBufferBehaviorEXT.html const ( - ObjectEntryTypeDescriptorSetNvx ObjectEntryTypeNVX = iota - ObjectEntryTypePipelineNvx ObjectEntryTypeNVX = 1 - ObjectEntryTypeIndexBufferNvx ObjectEntryTypeNVX = 2 - ObjectEntryTypeVertexBufferNvx ObjectEntryTypeNVX = 3 - ObjectEntryTypePushConstantNvx ObjectEntryTypeNVX = 4 - ObjectEntryTypeBeginRangeNvx ObjectEntryTypeNVX = 0 - ObjectEntryTypeEndRangeNvx ObjectEntryTypeNVX = 4 - ObjectEntryTypeRangeSizeNvx ObjectEntryTypeNVX = 5 - ObjectEntryTypeMaxEnumNvx ObjectEntryTypeNVX = 2147483647 + PipelineRobustnessBufferBehaviorDeviceDefault PipelineRobustnessBufferBehavior = iota + PipelineRobustnessBufferBehaviorDisabled PipelineRobustnessBufferBehavior = 1 + PipelineRobustnessBufferBehaviorRobustBufferAccess PipelineRobustnessBufferBehavior = 2 + PipelineRobustnessBufferBehaviorRobustBufferAccess2 PipelineRobustnessBufferBehavior = 3 + PipelineRobustnessBufferBehaviorMaxEnum PipelineRobustnessBufferBehavior = 2147483647 ) -// IndirectCommandsLayoutUsageFlagBitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsLayoutUsageFlagBitsNVX -type IndirectCommandsLayoutUsageFlagBitsNVX int32 +// PipelineRobustnessImageBehavior as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRobustnessImageBehaviorEXT.html +type PipelineRobustnessImageBehavior int32 -// IndirectCommandsLayoutUsageFlagBitsNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsLayoutUsageFlagBitsNVX +// PipelineRobustnessImageBehavior enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRobustnessImageBehaviorEXT.html const ( - IndirectCommandsLayoutUsageUnorderedSequencesBitNvx IndirectCommandsLayoutUsageFlagBitsNVX = 1 - IndirectCommandsLayoutUsageSparseSequencesBitNvx IndirectCommandsLayoutUsageFlagBitsNVX = 2 - IndirectCommandsLayoutUsageEmptyExecutionsBitNvx IndirectCommandsLayoutUsageFlagBitsNVX = 4 - IndirectCommandsLayoutUsageIndexedSequencesBitNvx IndirectCommandsLayoutUsageFlagBitsNVX = 8 - IndirectCommandsLayoutUsageFlagBitsMaxEnumNvx IndirectCommandsLayoutUsageFlagBitsNVX = 2147483647 + PipelineRobustnessImageBehaviorDeviceDefault PipelineRobustnessImageBehavior = iota + PipelineRobustnessImageBehaviorDisabled PipelineRobustnessImageBehavior = 1 + PipelineRobustnessImageBehaviorRobustImageAccess PipelineRobustnessImageBehavior = 2 + PipelineRobustnessImageBehaviorRobustImageAccess2 PipelineRobustnessImageBehavior = 3 + PipelineRobustnessImageBehaviorMaxEnum PipelineRobustnessImageBehavior = 2147483647 ) -// ObjectEntryUsageFlagBitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectEntryUsageFlagBitsNVX -type ObjectEntryUsageFlagBitsNVX int32 +// ConditionalRenderingFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagBitsEXT.html +type ConditionalRenderingFlagBits int32 -// ObjectEntryUsageFlagBitsNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectEntryUsageFlagBitsNVX +// ConditionalRenderingFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagBitsEXT.html const ( - ObjectEntryUsageGraphicsBitNvx ObjectEntryUsageFlagBitsNVX = 1 - ObjectEntryUsageComputeBitNvx ObjectEntryUsageFlagBitsNVX = 2 - ObjectEntryUsageFlagBitsMaxEnumNvx ObjectEntryUsageFlagBitsNVX = 2147483647 + ConditionalRenderingInvertedBit ConditionalRenderingFlagBits = 1 + ConditionalRenderingFlagBitsMaxEnum ConditionalRenderingFlagBits = 2147483647 ) // SurfaceCounterFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSurfaceCounterFlagBitsEXT.html @@ -3069,6 +4683,7 @@ type SurfaceCounterFlagBits int32 // SurfaceCounterFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSurfaceCounterFlagBitsEXT.html const ( + SurfaceCounterVblankBit SurfaceCounterFlagBits = 1 SurfaceCounterVblank SurfaceCounterFlagBits = 1 SurfaceCounterFlagBitsMaxEnum SurfaceCounterFlagBits = 2147483647 ) @@ -3078,13 +4693,10 @@ type DisplayPowerState int32 // DisplayPowerState enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDisplayPowerStateEXT.html const ( - DisplayPowerStateOff DisplayPowerState = iota - DisplayPowerStateSuspend DisplayPowerState = 1 - DisplayPowerStateOn DisplayPowerState = 2 - DisplayPowerStateBeginRange DisplayPowerState = 0 - DisplayPowerStateEndRange DisplayPowerState = 2 - DisplayPowerStateRangeSize DisplayPowerState = 3 - DisplayPowerStateMaxEnum DisplayPowerState = 2147483647 + DisplayPowerStateOff DisplayPowerState = iota + DisplayPowerStateSuspend DisplayPowerState = 1 + DisplayPowerStateOn DisplayPowerState = 2 + DisplayPowerStateMaxEnum DisplayPowerState = 2147483647 ) // DeviceEventType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceEventTypeEXT.html @@ -3093,9 +4705,6 @@ type DeviceEventType int32 // DeviceEventType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceEventTypeEXT.html const ( DeviceEventTypeDisplayHotplug DeviceEventType = iota - DeviceEventTypeBeginRange DeviceEventType = 0 - DeviceEventTypeEndRange DeviceEventType = 0 - DeviceEventTypeRangeSize DeviceEventType = 1 DeviceEventTypeMaxEnum DeviceEventType = 2147483647 ) @@ -3105,9 +4714,6 @@ type DisplayEventType int32 // DisplayEventType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDisplayEventTypeEXT.html const ( DisplayEventTypeFirstPixelOut DisplayEventType = iota - DisplayEventTypeBeginRange DisplayEventType = 0 - DisplayEventTypeEndRange DisplayEventType = 0 - DisplayEventTypeRangeSize DisplayEventType = 1 DisplayEventTypeMaxEnum DisplayEventType = 2147483647 ) @@ -3116,18 +4722,15 @@ type ViewportCoordinateSwizzleNV int32 // ViewportCoordinateSwizzleNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkViewportCoordinateSwizzleNV.html const ( - ViewportCoordinateSwizzlePositiveXNv ViewportCoordinateSwizzleNV = iota - ViewportCoordinateSwizzleNegativeXNv ViewportCoordinateSwizzleNV = 1 - ViewportCoordinateSwizzlePositiveYNv ViewportCoordinateSwizzleNV = 2 - ViewportCoordinateSwizzleNegativeYNv ViewportCoordinateSwizzleNV = 3 - ViewportCoordinateSwizzlePositiveZNv ViewportCoordinateSwizzleNV = 4 - ViewportCoordinateSwizzleNegativeZNv ViewportCoordinateSwizzleNV = 5 - ViewportCoordinateSwizzlePositiveWNv ViewportCoordinateSwizzleNV = 6 - ViewportCoordinateSwizzleNegativeWNv ViewportCoordinateSwizzleNV = 7 - ViewportCoordinateSwizzleBeginRangeNv ViewportCoordinateSwizzleNV = 0 - ViewportCoordinateSwizzleEndRangeNv ViewportCoordinateSwizzleNV = 7 - ViewportCoordinateSwizzleRangeSizeNv ViewportCoordinateSwizzleNV = 8 - ViewportCoordinateSwizzleMaxEnumNv ViewportCoordinateSwizzleNV = 2147483647 + ViewportCoordinateSwizzlePositiveXNv ViewportCoordinateSwizzleNV = iota + ViewportCoordinateSwizzleNegativeXNv ViewportCoordinateSwizzleNV = 1 + ViewportCoordinateSwizzlePositiveYNv ViewportCoordinateSwizzleNV = 2 + ViewportCoordinateSwizzleNegativeYNv ViewportCoordinateSwizzleNV = 3 + ViewportCoordinateSwizzlePositiveZNv ViewportCoordinateSwizzleNV = 4 + ViewportCoordinateSwizzleNegativeZNv ViewportCoordinateSwizzleNV = 5 + ViewportCoordinateSwizzlePositiveWNv ViewportCoordinateSwizzleNV = 6 + ViewportCoordinateSwizzleNegativeWNv ViewportCoordinateSwizzleNV = 7 + ViewportCoordinateSwizzleMaxEnumNv ViewportCoordinateSwizzleNV = 2147483647 ) // DiscardRectangleMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDiscardRectangleModeEXT.html @@ -3135,12 +4738,9 @@ type DiscardRectangleMode int32 // DiscardRectangleMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDiscardRectangleModeEXT.html const ( - DiscardRectangleModeInclusive DiscardRectangleMode = iota - DiscardRectangleModeExclusive DiscardRectangleMode = 1 - DiscardRectangleModeBeginRange DiscardRectangleMode = 0 - DiscardRectangleModeEndRange DiscardRectangleMode = 1 - DiscardRectangleModeRangeSize DiscardRectangleMode = 2 - DiscardRectangleModeMaxEnum DiscardRectangleMode = 2147483647 + DiscardRectangleModeInclusive DiscardRectangleMode = iota + DiscardRectangleModeExclusive DiscardRectangleMode = 1 + DiscardRectangleModeMaxEnum DiscardRectangleMode = 2147483647 ) // ConservativeRasterizationMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConservativeRasterizationModeEXT.html @@ -3151,9 +4751,6 @@ const ( ConservativeRasterizationModeDisabled ConservativeRasterizationMode = iota ConservativeRasterizationModeOverestimate ConservativeRasterizationMode = 1 ConservativeRasterizationModeUnderestimate ConservativeRasterizationMode = 2 - ConservativeRasterizationModeBeginRange ConservativeRasterizationMode = 0 - ConservativeRasterizationModeEndRange ConservativeRasterizationMode = 2 - ConservativeRasterizationModeRangeSize ConservativeRasterizationMode = 3 ConservativeRasterizationModeMaxEnum ConservativeRasterizationMode = 2147483647 ) @@ -3174,24 +4771,11 @@ type DebugUtilsMessageTypeFlagBits int32 // DebugUtilsMessageTypeFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsMessageTypeFlagBitsEXT.html const ( - DebugUtilsMessageTypeGeneralBit DebugUtilsMessageTypeFlagBits = 1 - DebugUtilsMessageTypeValidationBit DebugUtilsMessageTypeFlagBits = 2 - DebugUtilsMessageTypePerformanceBit DebugUtilsMessageTypeFlagBits = 4 - DebugUtilsMessageTypeFlagBitsMaxEnum DebugUtilsMessageTypeFlagBits = 2147483647 -) - -// SamplerReductionMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerReductionModeEXT.html -type SamplerReductionMode int32 - -// SamplerReductionMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerReductionModeEXT.html -const ( - SamplerReductionModeWeightedAverage SamplerReductionMode = iota - SamplerReductionModeMin SamplerReductionMode = 1 - SamplerReductionModeMax SamplerReductionMode = 2 - SamplerReductionModeBeginRange SamplerReductionMode = 0 - SamplerReductionModeEndRange SamplerReductionMode = 2 - SamplerReductionModeRangeSize SamplerReductionMode = 3 - SamplerReductionModeMaxEnum SamplerReductionMode = 2147483647 + DebugUtilsMessageTypeGeneralBit DebugUtilsMessageTypeFlagBits = 1 + DebugUtilsMessageTypeValidationBit DebugUtilsMessageTypeFlagBits = 2 + DebugUtilsMessageTypePerformanceBit DebugUtilsMessageTypeFlagBits = 4 + DebugUtilsMessageTypeDeviceAddressBindingBit DebugUtilsMessageTypeFlagBits = 8 + DebugUtilsMessageTypeFlagBitsMaxEnum DebugUtilsMessageTypeFlagBits = 2147483647 ) // BlendOverlap as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBlendOverlapEXT.html @@ -3202,9 +4786,6 @@ const ( BlendOverlapUncorrelated BlendOverlap = iota BlendOverlapDisjoint BlendOverlap = 1 BlendOverlapConjoint BlendOverlap = 2 - BlendOverlapBeginRange BlendOverlap = 0 - BlendOverlapEndRange BlendOverlap = 2 - BlendOverlapRangeSize BlendOverlap = 3 BlendOverlapMaxEnum BlendOverlap = 2147483647 ) @@ -3213,14 +4794,11 @@ type CoverageModulationModeNV int32 // CoverageModulationModeNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCoverageModulationModeNV.html const ( - CoverageModulationModeNoneNv CoverageModulationModeNV = iota - CoverageModulationModeRgbNv CoverageModulationModeNV = 1 - CoverageModulationModeAlphaNv CoverageModulationModeNV = 2 - CoverageModulationModeRgbaNv CoverageModulationModeNV = 3 - CoverageModulationModeBeginRangeNv CoverageModulationModeNV = 0 - CoverageModulationModeEndRangeNv CoverageModulationModeNV = 3 - CoverageModulationModeRangeSizeNv CoverageModulationModeNV = 4 - CoverageModulationModeMaxEnumNv CoverageModulationModeNV = 2147483647 + CoverageModulationModeNoneNv CoverageModulationModeNV = iota + CoverageModulationModeRgbNv CoverageModulationModeNV = 1 + CoverageModulationModeAlphaNv CoverageModulationModeNV = 2 + CoverageModulationModeRgbaNv CoverageModulationModeNV = 3 + CoverageModulationModeMaxEnumNv CoverageModulationModeNV = 2147483647 ) // ValidationCacheHeaderVersion as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCacheHeaderVersionEXT.html @@ -3228,23 +4806,8 @@ type ValidationCacheHeaderVersion int32 // ValidationCacheHeaderVersion enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCacheHeaderVersionEXT.html const ( - ValidationCacheHeaderVersionOne ValidationCacheHeaderVersion = 1 - ValidationCacheHeaderVersionBeginRange ValidationCacheHeaderVersion = 1 - ValidationCacheHeaderVersionEndRange ValidationCacheHeaderVersion = 1 - ValidationCacheHeaderVersionRangeSize ValidationCacheHeaderVersion = 1 - ValidationCacheHeaderVersionMaxEnum ValidationCacheHeaderVersion = 2147483647 -) - -// DescriptorBindingFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBindingFlagBitsEXT.html -type DescriptorBindingFlagBits int32 - -// DescriptorBindingFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBindingFlagBitsEXT.html -const ( - DescriptorBindingUpdateAfterBindBit DescriptorBindingFlagBits = 1 - DescriptorBindingUpdateUnusedWhilePendingBit DescriptorBindingFlagBits = 2 - DescriptorBindingPartiallyBoundBit DescriptorBindingFlagBits = 4 - DescriptorBindingVariableDescriptorCountBit DescriptorBindingFlagBits = 8 - DescriptorBindingFlagBitsMaxEnum DescriptorBindingFlagBits = 2147483647 + ValidationCacheHeaderVersionOne ValidationCacheHeaderVersion = 1 + ValidationCacheHeaderVersionMaxEnum ValidationCacheHeaderVersion = 2147483647 ) // ShadingRatePaletteEntryNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShadingRatePaletteEntryNV.html @@ -3264,9 +4827,6 @@ const ( ShadingRatePaletteEntry1InvocationPer4x2PixelsNv ShadingRatePaletteEntryNV = 9 ShadingRatePaletteEntry1InvocationPer2x4PixelsNv ShadingRatePaletteEntryNV = 10 ShadingRatePaletteEntry1InvocationPer4x4PixelsNv ShadingRatePaletteEntryNV = 11 - ShadingRatePaletteEntryBeginRangeNv ShadingRatePaletteEntryNV = 0 - ShadingRatePaletteEntryEndRangeNv ShadingRatePaletteEntryNV = 11 - ShadingRatePaletteEntryRangeSizeNv ShadingRatePaletteEntryNV = 12 ShadingRatePaletteEntryMaxEnumNv ShadingRatePaletteEntryNV = 2147483647 ) @@ -3279,112 +4839,358 @@ const ( CoarseSampleOrderTypeCustomNv CoarseSampleOrderTypeNV = 1 CoarseSampleOrderTypePixelMajorNv CoarseSampleOrderTypeNV = 2 CoarseSampleOrderTypeSampleMajorNv CoarseSampleOrderTypeNV = 3 - CoarseSampleOrderTypeBeginRangeNv CoarseSampleOrderTypeNV = 0 - CoarseSampleOrderTypeEndRangeNv CoarseSampleOrderTypeNV = 3 - CoarseSampleOrderTypeRangeSizeNv CoarseSampleOrderTypeNV = 4 CoarseSampleOrderTypeMaxEnumNv CoarseSampleOrderTypeNV = 2147483647 ) -// GeometryTypeNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryTypeNVX -type GeometryTypeNVX int32 +// PipelineCompilerControlFlagBitsAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineCompilerControlFlagBitsAMD +type PipelineCompilerControlFlagBitsAMD int32 + +// PipelineCompilerControlFlagBitsAMD enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineCompilerControlFlagBitsAMD +const ( + PipelineCompilerControlFlagBitsMaxEnumAmd PipelineCompilerControlFlagBitsAMD = 2147483647 +) + +// TimeDomain as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkTimeDomainEXT.html +type TimeDomain int32 -// GeometryTypeNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryTypeNVX +// TimeDomain enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkTimeDomainEXT.html const ( - GeometryTypeTrianglesNvx GeometryTypeNVX = iota - GeometryTypeAabbsNvx GeometryTypeNVX = 1 - GeometryTypeBeginRangeNvx GeometryTypeNVX = 0 - GeometryTypeEndRangeNvx GeometryTypeNVX = 1 - GeometryTypeRangeSizeNvx GeometryTypeNVX = 2 - GeometryTypeMaxEnumNvx GeometryTypeNVX = 2147483647 + TimeDomainDevice TimeDomain = iota + TimeDomainClockMonotonic TimeDomain = 1 + TimeDomainClockMonotonicRaw TimeDomain = 2 + TimeDomainQueryPerformanceCounter TimeDomain = 3 + TimeDomainMaxEnum TimeDomain = 2147483647 ) -// AccelerationStructureTypeNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAccelerationStructureTypeNVX -type AccelerationStructureTypeNVX int32 +// MemoryOverallocationBehaviorAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkMemoryOverallocationBehaviorAMD +type MemoryOverallocationBehaviorAMD int32 -// AccelerationStructureTypeNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAccelerationStructureTypeNVX +// MemoryOverallocationBehaviorAMD enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkMemoryOverallocationBehaviorAMD const ( - AccelerationStructureTypeTopLevelNvx AccelerationStructureTypeNVX = iota - AccelerationStructureTypeBottomLevelNvx AccelerationStructureTypeNVX = 1 - AccelerationStructureTypeBeginRangeNvx AccelerationStructureTypeNVX = 0 - AccelerationStructureTypeEndRangeNvx AccelerationStructureTypeNVX = 1 - AccelerationStructureTypeRangeSizeNvx AccelerationStructureTypeNVX = 2 - AccelerationStructureTypeMaxEnumNvx AccelerationStructureTypeNVX = 2147483647 + MemoryOverallocationBehaviorDefaultAmd MemoryOverallocationBehaviorAMD = iota + MemoryOverallocationBehaviorAllowedAmd MemoryOverallocationBehaviorAMD = 1 + MemoryOverallocationBehaviorDisallowedAmd MemoryOverallocationBehaviorAMD = 2 + MemoryOverallocationBehaviorMaxEnumAmd MemoryOverallocationBehaviorAMD = 2147483647 ) -// CopyAccelerationStructureModeNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkCopyAccelerationStructureModeNVX -type CopyAccelerationStructureModeNVX int32 +// PerformanceConfigurationTypeINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceConfigurationTypeINTEL.html +type PerformanceConfigurationTypeINTEL int32 -// CopyAccelerationStructureModeNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkCopyAccelerationStructureModeNVX +// PerformanceConfigurationTypeINTEL enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceConfigurationTypeINTEL.html const ( - CopyAccelerationStructureModeCloneNvx CopyAccelerationStructureModeNVX = iota - CopyAccelerationStructureModeCompactNvx CopyAccelerationStructureModeNVX = 1 - CopyAccelerationStructureModeBeginRangeNvx CopyAccelerationStructureModeNVX = 0 - CopyAccelerationStructureModeEndRangeNvx CopyAccelerationStructureModeNVX = 1 - CopyAccelerationStructureModeRangeSizeNvx CopyAccelerationStructureModeNVX = 2 - CopyAccelerationStructureModeMaxEnumNvx CopyAccelerationStructureModeNVX = 2147483647 + PerformanceConfigurationTypeCommandQueueMetricsDiscoveryActivatedIntel PerformanceConfigurationTypeINTEL = iota + PerformanceConfigurationTypeMaxEnumIntel PerformanceConfigurationTypeINTEL = 2147483647 ) -// GeometryFlagBitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryFlagBitsNVX -type GeometryFlagBitsNVX int32 +// QueryPoolSamplingModeINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPoolSamplingModeINTEL.html +type QueryPoolSamplingModeINTEL int32 -// GeometryFlagBitsNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryFlagBitsNVX +// QueryPoolSamplingModeINTEL enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPoolSamplingModeINTEL.html const ( - GeometryOpaqueBitNvx GeometryFlagBitsNVX = 1 - GeometryNoDuplicateAnyHitInvocationBitNvx GeometryFlagBitsNVX = 2 - GeometryFlagBitsMaxEnumNvx GeometryFlagBitsNVX = 2147483647 + QueryPoolSamplingModeManualIntel QueryPoolSamplingModeINTEL = iota + QueryPoolSamplingModeMaxEnumIntel QueryPoolSamplingModeINTEL = 2147483647 ) -// GeometryInstanceFlagBitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryInstanceFlagBitsNVX -type GeometryInstanceFlagBitsNVX int32 +// PerformanceOverrideTypeINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceOverrideTypeINTEL.html +type PerformanceOverrideTypeINTEL int32 -// GeometryInstanceFlagBitsNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryInstanceFlagBitsNVX +// PerformanceOverrideTypeINTEL enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceOverrideTypeINTEL.html const ( - GeometryInstanceTriangleCullDisableBitNvx GeometryInstanceFlagBitsNVX = 1 - GeometryInstanceTriangleCullFlipWindingBitNvx GeometryInstanceFlagBitsNVX = 2 - GeometryInstanceForceOpaqueBitNvx GeometryInstanceFlagBitsNVX = 4 - GeometryInstanceForceNoOpaqueBitNvx GeometryInstanceFlagBitsNVX = 8 - GeometryInstanceFlagBitsMaxEnumNvx GeometryInstanceFlagBitsNVX = 2147483647 + PerformanceOverrideTypeNullHardwareIntel PerformanceOverrideTypeINTEL = iota + PerformanceOverrideTypeFlushGpuCachesIntel PerformanceOverrideTypeINTEL = 1 + PerformanceOverrideTypeMaxEnumIntel PerformanceOverrideTypeINTEL = 2147483647 ) -// BuildAccelerationStructureFlagBitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBuildAccelerationStructureFlagBitsNVX -type BuildAccelerationStructureFlagBitsNVX int32 +// PerformanceParameterTypeINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceParameterTypeINTEL.html +type PerformanceParameterTypeINTEL int32 -// BuildAccelerationStructureFlagBitsNVX enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBuildAccelerationStructureFlagBitsNVX +// PerformanceParameterTypeINTEL enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceParameterTypeINTEL.html const ( - BuildAccelerationStructureAllowUpdateBitNvx BuildAccelerationStructureFlagBitsNVX = 1 - BuildAccelerationStructureAllowCompactionBitNvx BuildAccelerationStructureFlagBitsNVX = 2 - BuildAccelerationStructurePreferFastTraceBitNvx BuildAccelerationStructureFlagBitsNVX = 4 - BuildAccelerationStructurePreferFastBuildBitNvx BuildAccelerationStructureFlagBitsNVX = 8 - BuildAccelerationStructureLowMemoryBitNvx BuildAccelerationStructureFlagBitsNVX = 16 - BuildAccelerationStructureFlagBitsMaxEnumNvx BuildAccelerationStructureFlagBitsNVX = 2147483647 + PerformanceParameterTypeHwCountersSupportedIntel PerformanceParameterTypeINTEL = iota + PerformanceParameterTypeStreamMarkerValidBitsIntel PerformanceParameterTypeINTEL = 1 + PerformanceParameterTypeMaxEnumIntel PerformanceParameterTypeINTEL = 2147483647 ) -// QueueGlobalPriority as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueGlobalPriorityEXT.html -type QueueGlobalPriority int32 +// PerformanceValueTypeINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceValueTypeINTEL.html +type PerformanceValueTypeINTEL int32 -// QueueGlobalPriority enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueGlobalPriorityEXT.html +// PerformanceValueTypeINTEL enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceValueTypeINTEL.html const ( - QueueGlobalPriorityLow QueueGlobalPriority = 128 - QueueGlobalPriorityMedium QueueGlobalPriority = 256 - QueueGlobalPriorityHigh QueueGlobalPriority = 512 - QueueGlobalPriorityRealtime QueueGlobalPriority = 1024 - QueueGlobalPriorityBeginRange QueueGlobalPriority = 128 - QueueGlobalPriorityEndRange QueueGlobalPriority = 1024 - QueueGlobalPriorityRangeSize QueueGlobalPriority = 897 - QueueGlobalPriorityMaxEnum QueueGlobalPriority = 2147483647 + PerformanceValueTypeUint32Intel PerformanceValueTypeINTEL = iota + PerformanceValueTypeUint64Intel PerformanceValueTypeINTEL = 1 + PerformanceValueTypeFloatIntel PerformanceValueTypeINTEL = 2 + PerformanceValueTypeBoolIntel PerformanceValueTypeINTEL = 3 + PerformanceValueTypeStringIntel PerformanceValueTypeINTEL = 4 + PerformanceValueTypeMaxEnumIntel PerformanceValueTypeINTEL = 2147483647 ) -// TimeDomain as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkTimeDomainEXT.html -type TimeDomain int32 +// ShaderCorePropertiesFlagBitsAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderCorePropertiesFlagBitsAMD +type ShaderCorePropertiesFlagBitsAMD int32 -// TimeDomain enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkTimeDomainEXT.html +// ShaderCorePropertiesFlagBitsAMD enumeration from https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderCorePropertiesFlagBitsAMD const ( - TimeDomainDevice TimeDomain = iota - TimeDomainClockMonotonic TimeDomain = 1 - TimeDomainClockMonotonicRaw TimeDomain = 2 - TimeDomainQueryPerformanceCounter TimeDomain = 3 - TimeDomainBeginRange TimeDomain = 0 - TimeDomainEndRange TimeDomain = 3 - TimeDomainRangeSize TimeDomain = 4 - TimeDomainMaxEnum TimeDomain = 2147483647 + ShaderCorePropertiesFlagBitsMaxEnumAmd ShaderCorePropertiesFlagBitsAMD = 2147483647 +) + +// ValidationFeatureEnable as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationFeatureEnableEXT.html +type ValidationFeatureEnable int32 + +// ValidationFeatureEnable enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationFeatureEnableEXT.html +const ( + ValidationFeatureEnableGpuAssisted ValidationFeatureEnable = iota + ValidationFeatureEnableGpuAssistedReserveBindingSlot ValidationFeatureEnable = 1 + ValidationFeatureEnableBestPractices ValidationFeatureEnable = 2 + ValidationFeatureEnableDebugPrintf ValidationFeatureEnable = 3 + ValidationFeatureEnableSynchronizationValidation ValidationFeatureEnable = 4 + ValidationFeatureEnableMaxEnum ValidationFeatureEnable = 2147483647 +) + +// ValidationFeatureDisable as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationFeatureDisableEXT.html +type ValidationFeatureDisable int32 + +// ValidationFeatureDisable enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationFeatureDisableEXT.html +const ( + ValidationFeatureDisableAll ValidationFeatureDisable = iota + ValidationFeatureDisableShaders ValidationFeatureDisable = 1 + ValidationFeatureDisableThreadSafety ValidationFeatureDisable = 2 + ValidationFeatureDisableApiParameters ValidationFeatureDisable = 3 + ValidationFeatureDisableObjectLifetimes ValidationFeatureDisable = 4 + ValidationFeatureDisableCoreChecks ValidationFeatureDisable = 5 + ValidationFeatureDisableUniqueHandles ValidationFeatureDisable = 6 + ValidationFeatureDisableShaderValidationCache ValidationFeatureDisable = 7 + ValidationFeatureDisableMaxEnum ValidationFeatureDisable = 2147483647 +) + +// ComponentTypeNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkComponentTypeNV.html +type ComponentTypeNV int32 + +// ComponentTypeNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkComponentTypeNV.html +const ( + ComponentTypeFloat16Nv ComponentTypeNV = iota + ComponentTypeFloat32Nv ComponentTypeNV = 1 + ComponentTypeFloat64Nv ComponentTypeNV = 2 + ComponentTypeSint8Nv ComponentTypeNV = 3 + ComponentTypeSint16Nv ComponentTypeNV = 4 + ComponentTypeSint32Nv ComponentTypeNV = 5 + ComponentTypeSint64Nv ComponentTypeNV = 6 + ComponentTypeUint8Nv ComponentTypeNV = 7 + ComponentTypeUint16Nv ComponentTypeNV = 8 + ComponentTypeUint32Nv ComponentTypeNV = 9 + ComponentTypeUint64Nv ComponentTypeNV = 10 + ComponentTypeMaxEnumNv ComponentTypeNV = 2147483647 +) + +// ScopeNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkScopeNV.html +type ScopeNV int32 + +// ScopeNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkScopeNV.html +const ( + ScopeDeviceNv ScopeNV = 1 + ScopeWorkgroupNv ScopeNV = 2 + ScopeSubgroupNv ScopeNV = 3 + ScopeQueueFamilyNv ScopeNV = 5 + ScopeMaxEnumNv ScopeNV = 2147483647 +) + +// CoverageReductionModeNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCoverageReductionModeNV.html +type CoverageReductionModeNV int32 + +// CoverageReductionModeNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCoverageReductionModeNV.html +const ( + CoverageReductionModeMergeNv CoverageReductionModeNV = iota + CoverageReductionModeTruncateNv CoverageReductionModeNV = 1 + CoverageReductionModeMaxEnumNv CoverageReductionModeNV = 2147483647 +) + +// ProvokingVertexMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkProvokingVertexModeEXT.html +type ProvokingVertexMode int32 + +// ProvokingVertexMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkProvokingVertexModeEXT.html +const ( + ProvokingVertexModeFirstVertex ProvokingVertexMode = iota + ProvokingVertexModeLastVertex ProvokingVertexMode = 1 + ProvokingVertexModeMaxEnum ProvokingVertexMode = 2147483647 +) + +// LineRasterizationMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkLineRasterizationModeEXT.html +type LineRasterizationMode int32 + +// LineRasterizationMode enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkLineRasterizationModeEXT.html +const ( + LineRasterizationModeDefault LineRasterizationMode = iota + LineRasterizationModeRectangular LineRasterizationMode = 1 + LineRasterizationModeBresenham LineRasterizationMode = 2 + LineRasterizationModeRectangularSmooth LineRasterizationMode = 3 + LineRasterizationModeMaxEnum LineRasterizationMode = 2147483647 +) + +// PresentScalingFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentScalingFlagBitsEXT.html +type PresentScalingFlagBits int32 + +// PresentScalingFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentScalingFlagBitsEXT.html +const ( + PresentScalingOneToOneBit PresentScalingFlagBits = 1 + PresentScalingAspectRatioStretchBit PresentScalingFlagBits = 2 + PresentScalingStretchBit PresentScalingFlagBits = 4 + PresentScalingFlagBitsMaxEnum PresentScalingFlagBits = 2147483647 +) + +// PresentGravityFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentGravityFlagBitsEXT.html +type PresentGravityFlagBits int32 + +// PresentGravityFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentGravityFlagBitsEXT.html +const ( + PresentGravityMinBit PresentGravityFlagBits = 1 + PresentGravityMaxBit PresentGravityFlagBits = 2 + PresentGravityCenteredBit PresentGravityFlagBits = 4 + PresentGravityFlagBitsMaxEnum PresentGravityFlagBits = 2147483647 +) + +// IndirectCommandsTokenTypeNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectCommandsTokenTypeNV.html +type IndirectCommandsTokenTypeNV int32 + +// IndirectCommandsTokenTypeNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectCommandsTokenTypeNV.html +const ( + IndirectCommandsTokenTypeShaderGroupNv IndirectCommandsTokenTypeNV = iota + IndirectCommandsTokenTypeStateFlagsNv IndirectCommandsTokenTypeNV = 1 + IndirectCommandsTokenTypeIndexBufferNv IndirectCommandsTokenTypeNV = 2 + IndirectCommandsTokenTypeVertexBufferNv IndirectCommandsTokenTypeNV = 3 + IndirectCommandsTokenTypePushConstantNv IndirectCommandsTokenTypeNV = 4 + IndirectCommandsTokenTypeDrawIndexedNv IndirectCommandsTokenTypeNV = 5 + IndirectCommandsTokenTypeDrawNv IndirectCommandsTokenTypeNV = 6 + IndirectCommandsTokenTypeDrawTasksNv IndirectCommandsTokenTypeNV = 7 + IndirectCommandsTokenTypeDrawMeshTasksNv IndirectCommandsTokenTypeNV = 1000328000 + IndirectCommandsTokenTypeMaxEnumNv IndirectCommandsTokenTypeNV = 2147483647 +) + +// IndirectStateFlagBitsNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectStateFlagBitsNV.html +type IndirectStateFlagBitsNV int32 + +// IndirectStateFlagBitsNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectStateFlagBitsNV.html +const ( + IndirectStateFlagFrontfaceBitNv IndirectStateFlagBitsNV = 1 + IndirectStateFlagBitsMaxEnumNv IndirectStateFlagBitsNV = 2147483647 +) + +// IndirectCommandsLayoutUsageFlagBitsNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectCommandsLayoutUsageFlagBitsNV.html +type IndirectCommandsLayoutUsageFlagBitsNV int32 + +// IndirectCommandsLayoutUsageFlagBitsNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectCommandsLayoutUsageFlagBitsNV.html +const ( + IndirectCommandsLayoutUsageExplicitPreprocessBitNv IndirectCommandsLayoutUsageFlagBitsNV = 1 + IndirectCommandsLayoutUsageIndexedSequencesBitNv IndirectCommandsLayoutUsageFlagBitsNV = 2 + IndirectCommandsLayoutUsageUnorderedSequencesBitNv IndirectCommandsLayoutUsageFlagBitsNV = 4 + IndirectCommandsLayoutUsageFlagBitsMaxEnumNv IndirectCommandsLayoutUsageFlagBitsNV = 2147483647 +) + +// DeviceMemoryReportEventType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceMemoryReportEventTypeEXT.html +type DeviceMemoryReportEventType int32 + +// DeviceMemoryReportEventType enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceMemoryReportEventTypeEXT.html +const ( + DeviceMemoryReportEventTypeAllocate DeviceMemoryReportEventType = iota + DeviceMemoryReportEventTypeFree DeviceMemoryReportEventType = 1 + DeviceMemoryReportEventTypeImport DeviceMemoryReportEventType = 2 + DeviceMemoryReportEventTypeUnimport DeviceMemoryReportEventType = 3 + DeviceMemoryReportEventTypeAllocationFailed DeviceMemoryReportEventType = 4 + DeviceMemoryReportEventTypeMaxEnum DeviceMemoryReportEventType = 2147483647 +) + +// DeviceDiagnosticsConfigFlagBitsNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceDiagnosticsConfigFlagBitsNV.html +type DeviceDiagnosticsConfigFlagBitsNV int32 + +// DeviceDiagnosticsConfigFlagBitsNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceDiagnosticsConfigFlagBitsNV.html +const ( + DeviceDiagnosticsConfigEnableShaderDebugInfoBitNv DeviceDiagnosticsConfigFlagBitsNV = 1 + DeviceDiagnosticsConfigEnableResourceTrackingBitNv DeviceDiagnosticsConfigFlagBitsNV = 2 + DeviceDiagnosticsConfigEnableAutomaticCheckpointsBitNv DeviceDiagnosticsConfigFlagBitsNV = 4 + DeviceDiagnosticsConfigEnableShaderErrorReportingBitNv DeviceDiagnosticsConfigFlagBitsNV = 8 + DeviceDiagnosticsConfigFlagBitsMaxEnumNv DeviceDiagnosticsConfigFlagBitsNV = 2147483647 +) + +// GraphicsPipelineLibraryFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGraphicsPipelineLibraryFlagBitsEXT.html +type GraphicsPipelineLibraryFlagBits int32 + +// GraphicsPipelineLibraryFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGraphicsPipelineLibraryFlagBitsEXT.html +const ( + GraphicsPipelineLibraryVertexInputInterfaceBit GraphicsPipelineLibraryFlagBits = 1 + GraphicsPipelineLibraryPreRasterizationShadersBit GraphicsPipelineLibraryFlagBits = 2 + GraphicsPipelineLibraryFragmentShaderBit GraphicsPipelineLibraryFlagBits = 4 + GraphicsPipelineLibraryFragmentOutputInterfaceBit GraphicsPipelineLibraryFlagBits = 8 + GraphicsPipelineLibraryFlagBitsMaxEnum GraphicsPipelineLibraryFlagBits = 2147483647 +) + +// FragmentShadingRateTypeNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFragmentShadingRateTypeNV.html +type FragmentShadingRateTypeNV int32 + +// FragmentShadingRateTypeNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFragmentShadingRateTypeNV.html +const ( + FragmentShadingRateTypeFragmentSizeNv FragmentShadingRateTypeNV = iota + FragmentShadingRateTypeEnumsNv FragmentShadingRateTypeNV = 1 + FragmentShadingRateTypeMaxEnumNv FragmentShadingRateTypeNV = 2147483647 +) + +// FragmentShadingRateNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFragmentShadingRateNV.html +type FragmentShadingRateNV int32 + +// FragmentShadingRateNV enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFragmentShadingRateNV.html +const ( + FragmentShadingRate1InvocationPerPixelNv FragmentShadingRateNV = iota + FragmentShadingRate1InvocationPer1x2PixelsNv FragmentShadingRateNV = 1 + FragmentShadingRate1InvocationPer2x1PixelsNv FragmentShadingRateNV = 4 + FragmentShadingRate1InvocationPer2x2PixelsNv FragmentShadingRateNV = 5 + FragmentShadingRate1InvocationPer2x4PixelsNv FragmentShadingRateNV = 6 + FragmentShadingRate1InvocationPer4x2PixelsNv FragmentShadingRateNV = 9 + FragmentShadingRate1InvocationPer4x4PixelsNv FragmentShadingRateNV = 10 + FragmentShadingRate2InvocationsPerPixelNv FragmentShadingRateNV = 11 + FragmentShadingRate4InvocationsPerPixelNv FragmentShadingRateNV = 12 + FragmentShadingRate8InvocationsPerPixelNv FragmentShadingRateNV = 13 + FragmentShadingRate16InvocationsPerPixelNv FragmentShadingRateNV = 14 + FragmentShadingRateNoInvocationsNv FragmentShadingRateNV = 15 + FragmentShadingRateMaxEnumNv FragmentShadingRateNV = 2147483647 +) + +// ImageCompressionFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCompressionFlagBitsEXT.html +type ImageCompressionFlagBits int32 + +// ImageCompressionFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCompressionFlagBitsEXT.html +const ( + ImageCompressionDefault ImageCompressionFlagBits = iota + ImageCompressionFixedRateDefault ImageCompressionFlagBits = 1 + ImageCompressionFixedRateExplicit ImageCompressionFlagBits = 2 + ImageCompressionDisabled ImageCompressionFlagBits = 4 + ImageCompressionFlagBitsMaxEnum ImageCompressionFlagBits = 2147483647 +) + +// ImageCompressionFixedRateFlagBits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCompressionFixedRateFlagBitsEXT.html +type ImageCompressionFixedRateFlagBits int32 + +// ImageCompressionFixedRateFlagBits enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCompressionFixedRateFlagBitsEXT.html +const ( + ImageCompressionFixedRateNone ImageCompressionFixedRateFlagBits = iota + ImageCompressionFixedRate1bpcBit ImageCompressionFixedRateFlagBits = 1 + ImageCompressionFixedRate2bpcBit ImageCompressionFixedRateFlagBits = 2 + ImageCompressionFixedRate3bpcBit ImageCompressionFixedRateFlagBits = 4 + ImageCompressionFixedRate4bpcBit ImageCompressionFixedRateFlagBits = 8 + ImageCompressionFixedRate5bpcBit ImageCompressionFixedRateFlagBits = 16 + ImageCompressionFixedRate6bpcBit ImageCompressionFixedRateFlagBits = 32 + ImageCompressionFixedRate7bpcBit ImageCompressionFixedRateFlagBits = 64 + ImageCompressionFixedRate8bpcBit ImageCompressionFixedRateFlagBits = 128 + ImageCompressionFixedRate9bpcBit ImageCompressionFixedRateFlagBits = 256 + ImageCompressionFixedRate10bpcBit ImageCompressionFixedRateFlagBits = 512 + ImageCompressionFixedRate11bpcBit ImageCompressionFixedRateFlagBits = 1024 + ImageCompressionFixedRate12bpcBit ImageCompressionFixedRateFlagBits = 2048 + ImageCompressionFixedRate13bpcBit ImageCompressionFixedRateFlagBits = 4096 + ImageCompressionFixedRate14bpcBit ImageCompressionFixedRateFlagBits = 8192 + ImageCompressionFixedRate15bpcBit ImageCompressionFixedRateFlagBits = 16384 + ImageCompressionFixedRate16bpcBit ImageCompressionFixedRateFlagBits = 32768 + ImageCompressionFixedRate17bpcBit ImageCompressionFixedRateFlagBits = 65536 + ImageCompressionFixedRate18bpcBit ImageCompressionFixedRateFlagBits = 131072 + ImageCompressionFixedRate19bpcBit ImageCompressionFixedRateFlagBits = 262144 + ImageCompressionFixedRate20bpcBit ImageCompressionFixedRateFlagBits = 524288 + ImageCompressionFixedRate21bpcBit ImageCompressionFixedRateFlagBits = 1048576 + ImageCompressionFixedRate22bpcBit ImageCompressionFixedRateFlagBits = 2097152 + ImageCompressionFixedRate23bpcBit ImageCompressionFixedRateFlagBits = 4194304 + ImageCompressionFixedRate24bpcBit ImageCompressionFixedRateFlagBits = 8388608 + ImageCompressionFixedRateFlagBitsMaxEnum ImageCompressionFixedRateFlagBits = 2147483647 ) diff --git a/const_go.patch b/const_go.patch new file mode 100644 index 0000000..10b4fcb --- /dev/null +++ b/const_go.patch @@ -0,0 +1,57 @@ +--- const.go.orig 2023-02-09 22:33:10 ++++ const.go 2023-02-09 22:35:41 +@@ -28,7 +28,7 @@ + // AttachmentUnused as defined in vulkan/vulkan_core.h:123 + AttachmentUnused = (^uint32(0)) + // False as defined in vulkan/vulkan_core.h:124 +- False = uint32(0) ++ False = 0 + // LodClampNone as defined in vulkan/vulkan_core.h:125 + LodClampNone = 1000.0 + // QueueFamilyIgnored as defined in vulkan/vulkan_core.h:126 +@@ -40,7 +40,7 @@ + // SubpassExternal as defined in vulkan/vulkan_core.h:129 + SubpassExternal = (^uint32(0)) + // True as defined in vulkan/vulkan_core.h:130 +- True = uint32(1) ++ True = 1 + // WholeSize as defined in vulkan/vulkan_core.h:131 + WholeSize = (^uint64(0)) + // MaxMemoryTypes as defined in vulkan/vulkan_core.h:132 +@@ -1432,11 +1432,11 @@ + // Ext4444FormatsExtensionName as defined in vulkan/vulkan_core.h:14605 + Ext4444FormatsExtensionName = "VK_EXT_4444_formats" + // StdVulkanVideoCodecH264DecodeSpecVersion as defined in vk_video/vulkan_video_codec_h264std_decode.h:27 +- StdVulkanVideoCodecH264DecodeSpecVersion = StdVulkanVideoCodecH264DecodeApiVersion100 ++ // StdVulkanVideoCodecH264DecodeSpecVersion = StdVulkanVideoCodecH264DecodeApiVersion100 + // StdVulkanVideoCodecH264DecodeExtensionName as defined in vk_video/vulkan_video_codec_h264std_decode.h:28 + StdVulkanVideoCodecH264DecodeExtensionName = "VK_STD_vulkan_video_codec_h264_decode" + // StdVulkanVideoCodecH265DecodeSpecVersion as defined in vk_video/vulkan_video_codec_h265std_decode.h:27 +- StdVulkanVideoCodecH265DecodeSpecVersion = StdVulkanVideoCodecH265DecodeApiVersion100 ++ // StdVulkanVideoCodecH265DecodeSpecVersion = StdVulkanVideoCodecH265DecodeApiVersion100 + // StdVulkanVideoCodecH265DecodeExtensionName as defined in vk_video/vulkan_video_codec_h265std_decode.h:28 + StdVulkanVideoCodecH265DecodeExtensionName = "VK_STD_vulkan_video_codec_h265_decode" + // KhrPortabilitySubset as defined in vulkan/vulkan_beta.h:22 +@@ -1464,11 +1464,11 @@ + // ExtVideoEncodeH265ExtensionName as defined in vulkan/vulkan_beta.h:344 + ExtVideoEncodeH265ExtensionName = "VK_EXT_video_encode_h265" + // StdVulkanVideoCodecH264EncodeSpecVersion as defined in vk_video/vulkan_video_codec_h264std_encode.h:26 +- StdVulkanVideoCodecH264EncodeSpecVersion = StdVulkanVideoCodecH264EncodeApiVersion098 ++ // StdVulkanVideoCodecH264EncodeSpecVersion = StdVulkanVideoCodecH264EncodeApiVersion098 + // StdVulkanVideoCodecH264EncodeExtensionName as defined in vk_video/vulkan_video_codec_h264std_encode.h:27 + StdVulkanVideoCodecH264EncodeExtensionName = "VK_STD_vulkan_video_codec_h264_encode" + // StdVulkanVideoCodecH265EncodeSpecVersion as defined in vk_video/vulkan_video_codec_h265std_encode.h:26 +- StdVulkanVideoCodecH265EncodeSpecVersion = StdVulkanVideoCodecH265EncodeApiVersion099 ++ // StdVulkanVideoCodecH265EncodeSpecVersion = StdVulkanVideoCodecH265EncodeApiVersion099 + // StdVulkanVideoCodecH265EncodeExtensionName as defined in vk_video/vulkan_video_codec_h265std_encode.h:27 + StdVulkanVideoCodecH265EncodeExtensionName = "VK_STD_vulkan_video_codec_h265_encode" + ) +@@ -2270,7 +2270,7 @@ + + // PipelineCacheHeaderVersion enumeration from https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheHeaderVersion.html + const ( +- PipelineCacheHeaderVersionOne PipelineCacheHeaderVersion = 1 ++ PipelineCacheHeaderVersion1 PipelineCacheHeaderVersion = 1 + PipelineCacheHeaderVersionMaxEnum PipelineCacheHeaderVersion = 2147483647 + ) + diff --git a/doc.go b/doc.go index 555e9be..9ef9476 100644 --- a/doc.go +++ b/doc.go @@ -1,6 +1,6 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Mon, 15 Oct 2018 01:04:16 +07. +// WARNING: This file has automatically been generated on Fri, 10 Feb 2023 11:56:02 PST. // Code generated by https://git.io/c-for-go. DO NOT EDIT. /* diff --git a/go.mod b/go.mod index f16e06e..3d3e666 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,3 @@ -module github.com/vulkan-go/vulkan +module github.com/goki/vulkan -go 1.16 +go 1.18 diff --git a/moltenVK/mvk_vulkan.h b/moltenVK/mvk_vulkan.h new file mode 100644 index 0000000..3906a67 --- /dev/null +++ b/moltenVK/mvk_vulkan.h @@ -0,0 +1,50 @@ +/* + * mvk_vulkan.h + * + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/** + * This is a convenience header file that loads vulkan.h with the appropriate Vulkan platform extensions. + * + * This header automatically enables the VK_EXT_metal_surface Vulkan extension. + * + * When building for iOS, this header also automatically enables the obsolete VK_MVK_ios_surface Vulkan extension. + * When building for macOS, this header also automatically enables the obsolete VK_MVK_macos_surface Vulkan extension. + * Both of these extensions are obsolete. Consider using the portable VK_EXT_metal_surface extension instead. + */ + +#ifndef __mvk_vulkan_h_ +#define __mvk_vulkan_h_ 1 + + +#include + +#define VK_USE_PLATFORM_METAL_EXT 1 + +#define VK_ENABLE_BETA_EXTENSIONS 1 // VK_KHR_portability_subset + +#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED +# define VK_USE_PLATFORM_IOS_MVK 1 +#endif + +#ifdef __MAC_OS_X_VERSION_MAX_ALLOWED +# define VK_USE_PLATFORM_MACOS_MVK 1 +#endif + +#include + +#endif diff --git a/moltenVK/vk_mvk_moltenvk.h b/moltenVK/vk_mvk_moltenvk.h index b240ca1..55d7476 100644 --- a/moltenVK/vk_mvk_moltenvk.h +++ b/moltenVK/vk_mvk_moltenvk.h @@ -1,15 +1,19 @@ /* * vk_mvk_moltenvk.h * - * Copyright (c) 2014-2017 The Brenwill Workshop Ltd. All rights reserved. - * http://www.brenwill.com - * - * Use of this document is governed by the Molten License Agreement, as included - * in the Molten distribution package. CAREFULLY READ THAT LICENSE AGREEMENT BEFORE - * READING AND USING THIS DOCUMENT. BY READING OR OTHERWISE USING THIS DOCUMENT, - * YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS AND CONDITIONS OF THAT LICENSE - * AGREEMENT. IF YOU DO NOT ACCEPT THE TERMS AND CONDITIONS OF THAT LICENSE AGREEMENT, - * DO NOT READ OR USE THIS DOCUMENT. + * Copyright (c) 2015-2023 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ @@ -20,90 +24,1039 @@ #ifdef __cplusplus extern "C" { -#endif // __cplusplus - +#endif // __cplusplus + +#include "mvk_vulkan.h" +#include #ifdef __OBJC__ #import -#import +#else +typedef unsigned long MTLLanguageVersion; +typedef unsigned long MTLArgumentBuffersTier; #endif -#define VK_MVK_MOLTENVK_SPEC_VERSION 3 +/** + * The version number of MoltenVK is a single integer value, derived from the Major, Minor, + * and Patch version values, where each of the Major, Minor, and Patch components is allocated + * two decimal digits, in the format MjMnPt. This creates a version number that is both human + * readable and allows efficient computational comparisons to a single integer number. + * + * The following examples illustrate how the MoltenVK version number is built from its components: + * - 002000 (version 0.20.0) + * - 010000 (version 1.0.0) + * - 030104 (version 3.1.4) + * - 401215 (version 4.12.15) + */ +#define MVK_VERSION_MAJOR 1 +#define MVK_VERSION_MINOR 2 +#define MVK_VERSION_PATCH 3 + +#define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) +#define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) + +#define VK_MVK_MOLTENVK_SPEC_VERSION 36 #define VK_MVK_MOLTENVK_EXTENSION_NAME "VK_MVK_moltenvk" -/** MoltenVK configuration settings. */ +/** Identifies the level of logging MoltenVK should be limited to outputting. */ +typedef enum MVKConfigLogLevel { + MVK_CONFIG_LOG_LEVEL_NONE = 0, /**< No logging. */ + MVK_CONFIG_LOG_LEVEL_ERROR = 1, /**< Log errors only. */ + MVK_CONFIG_LOG_LEVEL_WARNING = 2, /**< Log errors and warning messages. */ + MVK_CONFIG_LOG_LEVEL_INFO = 3, /**< Log errors, warnings and informational messages. */ + MVK_CONFIG_LOG_LEVEL_DEBUG = 4, /**< Log errors, warnings, infos and debug messages. */ + MVK_CONFIG_LOG_LEVEL_MAX_ENUM = 0x7FFFFFFF +} MVKConfigLogLevel; + +/** Identifies the level of Vulkan call trace logging MoltenVK should perform. */ +typedef enum MVKConfigTraceVulkanCalls { + MVK_CONFIG_TRACE_VULKAN_CALLS_NONE = 0, /**< No Vulkan call logging. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER = 1, /**< Log the name of each Vulkan call when the call is entered. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT = 2, /**< Log the name of each Vulkan call when the call is entered and exited. This effectively brackets any other logging activity within the scope of the Vulkan call. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION = 3, /**< Same as MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT, plus logs the time spent inside the Vulkan function. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_MAX_ENUM = 0x7FFFFFFF +} MVKConfigTraceVulkanCalls; + +/** Identifies the scope for Metal to run an automatic GPU capture for diagnostic debugging purposes. */ +typedef enum MVKConfigAutoGPUCaptureScope { + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_NONE = 0, /**< No automatic GPU capture. */ + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_DEVICE = 1, /**< Automatically capture all GPU activity during the lifetime of a VkDevice. */ + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_FRAME = 2, /**< Automatically capture all GPU activity during the rendering and presentation of the first frame. */ + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_MAX_ENUM = 0x7FFFFFFF +} MVKConfigAutoGPUCaptureScope; + +/** Identifies extensions to advertise as part of MoltenVK configuration. */ +typedef enum MVKConfigAdvertiseExtensionBits { + MVK_CONFIG_ADVERTISE_EXTENSIONS_ALL = 0x00000001, /**< All supported extensions. */ + MVK_CONFIG_ADVERTISE_EXTENSIONS_MOLTENVK = 0x00000002, /**< This VK_MVK_moltenvk extension. */ + MVK_CONFIG_ADVERTISE_EXTENSIONS_WSI = 0x00000004, /**< WSI extensions supported on the platform. */ + MVK_CONFIG_ADVERTISE_EXTENSIONS_PORTABILITY = 0x00000008, /**< Vulkan Portability Subset extensions. */ + MVK_CONFIG_ADVERTISE_EXTENSIONS_MAX_ENUM = 0x7FFFFFFF +} MVKConfigAdvertiseExtensionBits; +typedef VkFlags MVKConfigAdvertiseExtensions; + +/** Identifies the use of Metal Argument Buffers. */ +typedef enum MVKUseMetalArgumentBuffers { + MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_NEVER = 0, /**< Don't use Metal Argument Buffers. */ + MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_ALWAYS = 1, /**< Use Metal Argument Buffers for all pipelines. */ + MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_DESCRIPTOR_INDEXING = 2, /**< Use Metal Argument Buffers only if VK_EXT_descriptor_indexing extension is enabled. */ + MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_MAX_ENUM = 0x7FFFFFFF +} MVKUseMetalArgumentBuffers; + +/** Identifies the Metal functionality used to support Vulkan semaphore functionality (VkSemaphore). */ +typedef enum MVKVkSemaphoreSupportStyle { + MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE = 0, /**< Limit Vulkan to a single queue, with no explicit semaphore synchronization, and use Metal's implicit guarantees that all operations submitted to a queue will give the same result as if they had been run in submission order. */ + MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE = 1, /**< Use Metal events (MTLEvent) when available on the platform, and where safe. This will revert to same as MVK_CONFIG_VK_SEMAPHORE_USE_SINGLE_QUEUE on some NVIDIA GPUs and Rosetta2, due to potential challenges with MTLEvents on those platforms, or in older environments where MTLEvents are not supported. */ + MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS = 2, /**< Always use Metal events (MTLEvent) when available on the platform. This will revert to same as MVK_CONFIG_VK_SEMAPHORE_USE_SINGLE_QUEUE in older environments where MTLEvents are not supported. */ + MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK = 3, /**< Use CPU callbacks upon GPU submission completion. This is the slowest technique, but allows multiple queues, compared to MVK_CONFIG_VK_SEMAPHORE_USE_SINGLE_QUEUE. */ + MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_MAX_ENUM = 0x7FFFFFFF +} MVKVkSemaphoreSupportStyle; + +/** Identifies the style of Metal command buffer pre-filling to be used. */ +typedef enum MVKPrefillMetalCommandBuffersStyle { + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL = 0, /**< During Vulkan command buffer filling, do not prefill a Metal command buffer for each Vulkan command buffer. A single Metal command buffer is created and encoded for all the Vulkan command buffers included when vkQueueSubmit() is called. MoltenVK automatically creates and drains a single Metal object autorelease pool when vkQueueSubmit() is called. This is the fastest option, but potentially has the largest memory footprint. */ + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_DEFERRED_ENCODING = 1, /**< During Vulkan command buffer filling, encode to the Metal command buffer when vkEndCommandBuffer() is called. MoltenVK automatically creates and drains a single Metal object autorelease pool when vkEndCommandBuffer() is called. This option has the fastest performance, and the largest memory footprint, of the prefilling options using autorelease pools. */ + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_IMMEDIATE_ENCODING = 2, /**< During Vulkan command buffer filling, immediately encode to the Metal command buffer, as each command is submitted to the Vulkan command buffer, and do not retain any command content in the Vulkan command buffer. MoltenVK automatically creates and drains a Metal object autorelease pool for each and every command added to the Vulkan command buffer. This option has the smallest memory footprint, and the slowest performance, of the prefilling options using autorelease pools. */ + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_IMMEDIATE_ENCODING_NO_AUTORELEASE = 3, /**< During Vulkan command buffer filling, immediately encode to the Metal command buffer, as each command is submitted to the Vulkan command buffer, do not retain any command content in the Vulkan command buffer, and assume the app will ensure that each thread that fills commands into a Vulkan command buffer has a Metal autorelease pool. MoltenVK will not create and drain any autorelease pools during encoding. This is the fastest prefilling option, and generally has a small memory footprint, depending on when the app-provided autorelease pool drains. */ + MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_MAX_ENUM = 0x7FFFFFFF +} MVKPrefillMetalCommandBuffersStyle; + +/** Identifies when Metal shaders will be compiled with the fast math option. */ +typedef enum MVKConfigFastMath { + MVK_CONFIG_FAST_MATH_NEVER = 0, /**< Metal shaders will never be compiled with the fast math option. */ + MVK_CONFIG_FAST_MATH_ALWAYS = 1, /**< Metal shaders will always be compiled with the fast math option. */ + MVK_CONFIG_FAST_MATH_ON_DEMAND = 2, /**< Metal shaders will be compiled with the fast math option, unless the shader includes execution modes that require it to be compiled without fast math. */ + MVK_CONFIG_FAST_MATH_MAX_ENUM = 0x7FFFFFFF +} MVKConfigFastMath; + +/** + * MoltenVK configuration settings. + * + * To be active, some configuration settings must be set before a VkDevice is created. + * See the description of the individual configuration structure members for more information. + * + * There are three mechanisms for setting the values of the MoltenVK configuration parameters: + * - Runtime API via the vkGetMoltenVKConfigurationMVK()/vkSetMoltenVKConfigurationMVK() functions. + * - Application runtime environment variables. + * - Build settings at MoltenVK build time. + * + * To change the MoltenVK configuration settings at runtime using a programmatic API, + * use the vkGetMoltenVKConfigurationMVK() and vkSetMoltenVKConfigurationMVK() functions + * to retrieve, modify, and set a copy of the MVKConfiguration structure. To be active, + * some configuration settings must be set before a VkInstance or VkDevice is created. + * See the description of each member for more information. + * + * The initial value of each of the configuration settings can established at runtime + * by a corresponding environment variable, or if the environment variable is not set, + * by a corresponding build setting at the time MoltenVK is compiled. The environment + * variable and build setting for each configuration parameter share the same name. + * + * For example, the initial value of the shaderConversionFlipVertexY configuration setting + * is set by the MVK_CONFIG_SHADER_CONVERSION_FLIP_VERTEX_Y at runtime, or by the + * MVK_CONFIG_SHADER_CONVERSION_FLIP_VERTEX_Y build setting when MoltenVK is compiled. + * + * This structure may be extended as new features are added to MoltenVK. If you are linking to + * an implementation of MoltenVK that was compiled from a different VK_MVK_MOLTENVK_SPEC_VERSION + * than your app was, the size of this structure in your app may be larger or smaller than the + * struct in MoltenVK. See the description of the vkGetMoltenVKConfigurationMVK() and + * vkSetMoltenVKConfigurationMVK() functions for information about how to handle this. + * + * TO SUPPORT DYNAMIC LINKING TO THIS STRUCTURE AS DESCRIBED ABOVE, THIS STRUCTURE SHOULD NOT + * BE CHANGED EXCEPT TO ADD ADDITIONAL MEMBERS ON THE END. EXISTING MEMBERS, AND THEIR ORDER, + * SHOULD NOT BE CHANGED. + */ typedef struct { - VkBool32 debugMode; /**< If enabled, several debugging capabilities will be enabled. Shader code will be logged during Runtime Shader Conversion. Improves support for Xcode GPU Frame Capture. Default is false. */ - VkBool32 shaderConversionFlipVertexY; /**< If enabled, MSL vertex shader code created during Runtime Shader Conversion will flip the Y-axis of each vertex, as Vulkan coordinate system is inverse of OpenGL. Default is true. */ - VkBool32 supportLargeQueryPools; /**< Metal allows only 8192 occlusion queries per MTLBuffer. If enabled, MoltenVK allocates a MTLBuffer for each query pool, allowing each query pool to support 8192 queries, which may slow performance or cause unexpected behaviour if the query pool is not established prior to a Metal renderpass, or if the query pool is changed within a Metal renderpass. If disabled, one MTLBuffer will be shared by all query pools, which improves performance, but limits the total device queries to 8192. Default is false. */ - VkBool32 performanceTracking; /**< If enabled, per-frame performance statistics are tracked, optionally logged, and can be retrieved via the vkGetSwapchainPerformanceMVK() function, and various shader compilation performance statistics are tracked, logged, and can be retrieved via the vkGetShaderCompilationPerformanceMVK() function. Default is false. */ - uint32_t performanceLoggingFrameCount; /**< If non-zero, performance statistics will be periodically logged to the console, on a repeating cycle of this many frames per swapchain. The performanceTracking capability must also be enabled. Default is zero, indicating no logging. */ -} MVKDeviceConfiguration; - -/** Features provided by the current implementation of Metal on the current device. */ + + /** + * If enabled, debugging capabilities will be enabled, including logging + * shader code during runtime shader conversion. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_DEBUG + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter is false if MoltenVK was + * built in Release mode, and true if MoltenVK was built in Debug mode. + */ + VkBool32 debugMode; + + /** + * If enabled, MSL vertex shader code created during runtime shader conversion will + * flip the Y-axis of each vertex, as the Vulkan Y-axis is the inverse of OpenGL. + * + * An alternate way to reverse the Y-axis is to employ a negative Y-axis value on + * the viewport, in which case this parameter can be disabled. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * Specifically, this parameter can be enabled when compiling some pipelines, + * and disabled when compiling others. Existing pipelines are not automatically + * re-compiled when this parameter is changed. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SHADER_CONVERSION_FLIP_VERTEX_Y + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true. + */ + VkBool32 shaderConversionFlipVertexY; + + /** + * If enabled, queue command submissions (vkQueueSubmit() & vkQueuePresentKHR()) will be + * processed on the thread that called the submission function. If disabled, processing + * will be dispatched to a GCD dispatch_queue whose priority is determined by + * VkDeviceQueueCreateInfo::pQueuePriorities during vkCreateDevice(). + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true for macOS 10.14 + * and above or iOS 12 and above, and false otherwise. The reason for this distinction + * is that this feature should be disabled when emulation is required to support VkEvents + * because native support for events (MTLEvent) is not available. + */ + VkBool32 synchronousQueueSubmits; + + /** + * If set to MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL, a single Metal + * command buffer will be created and filled when the Vulkan command buffers are submitted + * to the Vulkan queue. This allows a single Metal command buffer to be used for all of the + * Vulkan command buffers in a queue submission. The Metal command buffer is filled on the + * thread that processes the command queue submission. + * + * If set to any value other than MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL, + * where possible, a Metal command buffer will be created and filled when each Vulkan + * command buffer is filled. For applications that parallelize the filling of Vulkan + * commmand buffers across multiple threads, this allows the Metal command buffers to also + * be filled on the same parallel thread. Because each command buffer is filled separately, + * this requires that each Vulkan command buffer have a dedicated Metal command buffer. + * + * See the definition of the MVKPrefillMetalCommandBuffersStyle enumeration above for + * descriptions of the various values that can be used for this setting. The differences + * are primarily distinguished by how memory recovery is handled for autoreleased Metal + * objects that are created under the covers as the commands added to the Vulkan command + * buffer are encoded into the corresponding Metal command buffer. You can decide whether + * your app will recover all autoreleased Metal objects, or how agressively MoltenVK should + * recover autoreleased Metal objects, based on your approach to command buffer filling. + * + * Depending on the nature of your application, you may find performance is improved by filling + * the Metal command buffers on parallel threads, or you may find that performance is improved by + * consolidating all Vulkan command buffers onto a single Metal command buffer during queue submission. + * + * When enabling this feature, be aware that one Metal command buffer is required for each Vulkan + * command buffer. Depending on the number of command buffers that you use, you may also need to + * change the value of the maxActiveMetalCommandBuffersPerQueue setting. + * + * If this feature is enabled, be aware that if you have recorded commands to a Vulkan command buffer, + * and then choose to reset that command buffer instead of submitting it, the corresponding prefilled + * Metal command buffer will still be submitted. This is because Metal command buffers do not support + * the concept of being reset after being filled. Depending on when and how often you do this, + * it may cause unexpected visual artifacts and unnecessary GPU load. + * + * Prefilling of a Metal command buffer will not occur during the filling of secondary command + * buffers (VK_COMMAND_BUFFER_LEVEL_SECONDARY), or for primary command buffers that are intended + * to be submitted to multiple queues concurrently (VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT). + * + * This feature is incompatible with updating descriptors after binding. If any of the + * *UpdateAfterBind feature flags of VkPhysicalDeviceDescriptorIndexingFeatures or + * VkPhysicalDeviceInlineUniformBlockFeatures have been enabled, the value of this + * setting will be ignored and treated as if it is false. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * Specifically, this parameter can be enabled when filling some command buffers, + * and disabled when later filling others. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to + * MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL. + */ + MVKPrefillMetalCommandBuffersStyle prefillMetalCommandBuffers; + + /** + * The maximum number of Metal command buffers that can be concurrently active per Vulkan queue. + * The number of active Metal command buffers required depends on the prefillMetalCommandBuffers + * setting. If prefillMetalCommandBuffers is enabled, one Metal command buffer is required per + * Vulkan command buffer. If prefillMetalCommandBuffers is disabled, one Metal command buffer + * is required per command buffer queue submission, which may be significantly less than the + * number of Vulkan command buffers. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to 64. + */ + uint32_t maxActiveMetalCommandBuffersPerQueue; + + /** + * Metal allows only 8192 occlusion queries per MTLBuffer. If enabled, MoltenVK + * allocates a MTLBuffer for each query pool, allowing each query pool to support + * 8192 queries, which may slow performance or cause unexpected behaviour if the query + * pool is not established prior to a Metal renderpass, or if the query pool is changed + * within a renderpass. If disabled, one MTLBuffer will be shared by all query pools, + * which improves performance, but limits the total device queries to 8192. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * Specifically, this parameter can be enabled when creating some query pools, + * and disabled when creating others. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SUPPORT_LARGE_QUERY_POOLS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true. + */ + VkBool32 supportLargeQueryPools; + + /** Obsolete, ignored, and deprecated. All surface presentations are performed with a command buffer. */ + VkBool32 presentWithCommandBuffer; + + /** + * If enabled, swapchain images will use simple Nearest sampling when magnifying the + * swapchain image to fit a physical display surface. If disabled, swapchain images will + * use Linear sampling when magnifying the swapchain image to fit a physical display surface. + * Enabling this setting avoids smearing effects when swapchain images are simple interger + * multiples of display pixels (eg- macOS Retina, and typical of graphics apps and games), + * but may cause aliasing effects when using non-integer display scaling. + * + * The value of this parameter may be changed before creating a VkSwapchain, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SWAPCHAIN_MAG_FILTER_USE_NEAREST + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true. + */ + VkBool32 swapchainMagFilterUseNearest; + + /** + * The maximum amount of time, in nanoseconds, to wait for a Metal library, function, or + * pipeline state object to be compiled and created by the Metal compiler. An internal error + * within the Metal compiler can stall the thread for up to 30 seconds. Setting this value + * limits that delay to a specified amount of time, allowing shader compilations to fail fast. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_METAL_COMPILE_TIMEOUT + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to infinite. + */ + uint64_t metalCompileTimeout; + + /** + * If enabled, performance statistics, as defined by the MVKPerformanceStatistics structure, + * are collected, and can be retrieved via the vkGetPerformanceStatisticsMVK() function. + * + * You can also use the performanceLoggingFrameCount or logActivityPerformanceInline + * parameters to automatically log the performance statistics collected by this parameter. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_PERFORMANCE_TRACKING + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to false. + */ + VkBool32 performanceTracking; + + /** + * If non-zero, performance statistics, frame-based statistics will be logged, on a + * repeating cycle, once per this many frames. The performanceTracking parameter must + * also be enabled. If this parameter is zero, or the performanceTracking parameter + * is disabled, no frame-based performance statistics will be logged. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_PERFORMANCE_LOGGING_FRAME_COUNT + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to zero. + */ + uint32_t performanceLoggingFrameCount; + + /** + * If enabled, a MoltenVK logo watermark will be rendered on top of the scene. + * This can be enabled for publicity during demos. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_DISPLAY_WATERMARK + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to false. + */ + VkBool32 displayWatermark; + + /** + * Metal does not distinguish functionality between queues, which would normally mean only + * a single general-purpose queue family with multiple queues is needed. However, Vulkan + * associates command buffers with a queue family, whereas Metal associates command buffers + * with a specific Metal queue. In order to allow a Metal command buffer to be prefilled + * before is is formally submitted to a Vulkan queue, each Vulkan queue family can support + * only a single Metal queue. As a result, in order to provide parallel queue operations, + * MoltenVK provides multiple queue families, each with a single queue. + * + * If this parameter is disabled, all queue families will be advertised as having general-purpose + * graphics + compute + transfer functionality, which is how the actual Metal queues behave. + * + * If this parameter is enabled, one queue family will be advertised as having general-purpose + * graphics + compute + transfer functionality, and the remaining queue families will be advertised + * as having specialized graphics OR compute OR transfer functionality, to make it easier for some + * apps to select a queue family with the appropriate requirements. + * + * The value of this parameter must be changed before creating a VkDevice, and before + * querying a VkPhysicalDevice for queue family properties, for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SPECIALIZED_QUEUE_FAMILIES + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to false. + */ + VkBool32 specializedQueueFamilies; + + /** + * If enabled, when the app creates a VkDevice from a VkPhysicalDevice (GPU) that is neither + * headless nor low-power, and is different than the GPU used by the windowing system, the + * windowing system will be forced to switch to use the GPU selected by the Vulkan app. + * When the Vulkan app is ended, the windowing system will automatically switch back to + * using the previous GPU, depending on the usage requirements of other running apps. + * + * If disabled, the Vulkan app will render using its selected GPU, and if the windowing + * system uses a different GPU, the windowing system compositor will automatically copy + * framebuffer content from the app GPU to the windowing system GPU. + * + * The value of this parmeter has no effect on systems with a single GPU, or when the + * Vulkan app creates a VkDevice from a low-power or headless VkPhysicalDevice (GPU). + * + * Switching the windowing system GPU to match the Vulkan app GPU maximizes app performance, + * because it avoids the windowing system compositor from having to copy framebuffer content + * between GPUs on each rendered frame. However, doing so forces the entire system to + * potentially switch to using a GPU that may consume more power while the app is running. + * + * Some Vulkan apps may want to render using a high-power GPU, but leave it up to the + * system window compositor to determine how best to blend content with the windowing + * system, and as a result, may want to disable this parameter. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SWITCH_SYSTEM_GPU + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true. + */ + VkBool32 switchSystemGPU; + + /** + * Older versions of Metal do not natively support per-texture swizzling. When running on + * such a system, and this parameter is enabled, arbitrary VkImageView component swizzles + * are supported, as defined in VkImageViewCreateInfo::components when creating a VkImageView. + * + * If disabled, and native Metal per-texture swizzling is not available on the platform, + * a very limited set of VkImageView component swizzles are supported via format substitutions. + * + * If Metal supports native per-texture swizzling, this parameter is ignored. + * + * When running on an older version of Metal that does not support native per-texture + * swizzling, if this parameter is enabled, both when a VkImageView is created, and + * when any pipeline that uses that VkImageView is compiled, VkImageView swizzling is + * automatically performed in the converted Metal shader code during all texture sampling + * and reading operations, regardless of whether a swizzle is required for the VkImageView + * associated with the Metal texture. This may result in reduced performance. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * Specifically, this parameter can be enabled when creating VkImageViews that need it, + * and compiling pipelines that use those VkImageViews, and can be disabled when creating + * VkImageViews that don't need it, and compiling pipelines that use those VkImageViews. + * + * Existing pipelines are not automatically re-compiled when this parameter is changed. + * + * An error is logged and returned during VkImageView creation if that VkImageView + * requires full image view swizzling and this feature is not enabled. An error is + * also logged when a pipeline that was not compiled with full image view swizzling + * is presented with a VkImageView that is expecting it. + * + * An error is also retuned and logged when a VkPhysicalDeviceImageFormatInfo2KHR is passed + * in a call to vkGetPhysicalDeviceImageFormatProperties2KHR() to query for an VkImageView + * format that will require full swizzling to be enabled, and this feature is not enabled. + * + * If this parameter is disabled, and native Metal per-texture swizzling is not available + * on the platform, the following limited set of VkImageView swizzles are supported by + * MoltenVK, via automatic format substitution: + * + * Texture format Swizzle + * -------------- ------- + * VK_FORMAT_R8_UNORM ZERO, ANY, ANY, RED + * VK_FORMAT_A8_UNORM ALPHA, ANY, ANY, ZERO + * VK_FORMAT_R8G8B8A8_UNORM BLUE, GREEN, RED, ALPHA + * VK_FORMAT_R8G8B8A8_SRGB BLUE, GREEN, RED, ALPHA + * VK_FORMAT_B8G8R8A8_UNORM BLUE, GREEN, RED, ALPHA + * VK_FORMAT_B8G8R8A8_SRGB BLUE, GREEN, RED, ALPHA + * VK_FORMAT_D32_SFLOAT_S8_UINT RED, ANY, ANY, ANY (stencil only) + * VK_FORMAT_D24_UNORM_S8_UINT RED, ANY, ANY, ANY (stencil only) + * + * The initial value or this parameter is set by the + * MVK_CONFIG_FULL_IMAGE_VIEW_SWIZZLE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to false. + */ + VkBool32 fullImageViewSwizzle; + + /** + * The index of the queue family whose presentation submissions will + * be used as the default GPU Capture Scope during debugging in Xcode. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_DEFAULT_GPU_CAPTURE_SCOPE_QUEUE_FAMILY_INDEX + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to zero (the first queue family). + */ + uint32_t defaultGPUCaptureScopeQueueFamilyIndex; + + /** + * The index of the queue, within the queue family identified by the + * defaultGPUCaptureScopeQueueFamilyIndex parameter, whose presentation submissions + * will be used as the default GPU Capture Scope during debugging in Xcode. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_DEFAULT_GPU_CAPTURE_SCOPE_QUEUE_INDEX + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to zero (the first queue). + */ + uint32_t defaultGPUCaptureScopeQueueIndex; + + /** + * Identifies when Metal shaders will be compiled with the Metal fastMathEnabled property + * enabled. For shaders compiled with the Metal fastMathEnabled property enabled, shader + * floating point math is significantly faster, but it may cause the Metal Compiler to + * optimize floating point operations in ways that may violate the IEEE 754 standard. + * + * Enabling Metal fast math can dramatically improve shader performance, and has little + * practical effect on the numerical accuracy of most shaders. As such, disabling fast + * math should be done carefully and deliberately. For most applications, always enabling + * fast math, by setting the value of this property to MVK_CONFIG_FAST_MATH_ALWAYS, + * is the preferred choice. + * + * Apps that have specific accuracy and handling needs for particular shaders, may elect to + * set the value of this property to MVK_CONFIG_FAST_MATH_ON_DEMAND, so that fast math will + * be disabled when compiling shaders that request capabilities such as SignedZeroInfNanPreserve. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will be applied to future Metal shader compilations. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_FAST_MATH_ENABLED + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to MVK_CONFIG_FAST_MATH_ALWAYS. + */ + MVKConfigFastMath fastMathEnabled; + + /** + * Controls the level of logging performned by MoltenVK. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_LOG_LEVEL + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, errors and informational messages are logged. + */ + MVKConfigLogLevel logLevel; + + /** + * Causes MoltenVK to log the name of each Vulkan call made by the application, + * along with the Mach thread ID, global system thread ID, and thread name. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_TRACE_VULKAN_CALLS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, no Vulkan call logging will occur. + */ + MVKConfigTraceVulkanCalls traceVulkanCalls; + + /** + * Force MoltenVK to use a low-power GPU, if one is availble on the device. + * + * The value of this parameter must be changed before creating a VkInstance, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_FORCE_LOW_POWER_GPU + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is disabled by default, allowing both + * low-power and high-power GPU's to be used. + */ + VkBool32 forceLowPowerGPU; + + /** Deprecated. Vulkan sempphores using MTLFence are no longer supported. Use semaphoreSupportStyle instead. */ + VkBool32 semaphoreUseMTLFence; + + /** + * Determines the style used to implement Vulkan semaphore (VkSemaphore) functionality in Metal. + * See the documentation of the MVKVkSemaphoreSupportStyle for the options. + * + * In the special case of VK_SEMAPHORE_TYPE_TIMELINE semaphores, MoltenVK will always use + * MTLSharedEvent if it is available on the platform, regardless of the value of this parameter. + * + * The value of this parameter must be changed before creating a VkInstance, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is set to + * MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE by default, + * and MoltenVK will use MTLEvent, except on NVIDIA GPU and Rosetta2 environments, + * or where MTLEvents are not supported, where it will use a single queue with + * implicit synchronization (as if this parameter was set to + * MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE). + * + * This parameter interacts with the deprecated legacy parameters semaphoreUseMTLEvent + * and semaphoreUseMTLFence. If semaphoreUseMTLEvent is enabled, this parameter will be + * set to MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE. + * If semaphoreUseMTLEvent is disabled, this parameter will be set to + * MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE if semaphoreUseMTLFence is enabled, + * or MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_CALLBACK if semaphoreUseMTLFence is disabled. + * Structurally, this parameter replaces, and is aliased by, semaphoreUseMTLEvent. + */ + MVKVkSemaphoreSupportStyle semaphoreSupportStyle; +#define semaphoreUseMTLEvent semaphoreSupportStyle + + /** + * Controls whether Metal should run an automatic GPU capture without the user having to + * trigger it manually via the Xcode user interface, and controls the scope under which + * that GPU capture will occur. This is useful when trying to capture a one-shot GPU trace, + * such as when running a Vulkan CTS test case. For the automatic GPU capture to occur, the + * Xcode scheme under which the app is run must have the Metal GPU capture option enabled. + * This parameter should not be set to manually trigger a GPU capture via the Xcode user interface. + * + * When the value of this parameter is MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_FRAME, + * the queue for which the GPU activity is captured is identifed by the values of + * the defaultGPUCaptureScopeQueueFamilyIndex and defaultGPUCaptureScopeQueueIndex + * configuration parameters. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, no automatic GPU capture will occur. + */ + MVKConfigAutoGPUCaptureScope autoGPUCaptureScope; + + /** + * The path to a file where the automatic GPU capture should be saved, if autoGPUCaptureScope + * is enabled. In this case, the Xcode scheme need not have Metal GPU capture enabled, and in + * fact the app need not be run under Xcode's control at all. This is useful in case the app + * cannot be run under Xcode's control. A path starting with '~' can be used to place it in a + * user's home directory, as in the shell. This feature requires Metal 3.0 (macOS 10.15, iOS 13). + * + * If this parameter is NULL or an empty string, and autoGPUCaptureScope is enabled, automatic + * GPU capture will be handled by the Xcode user interface. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_AUTO_GPU_CAPTURE_OUTPUT_FILE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, automatic GPU capture will be handled by the Xcode user interface. + */ + const char* autoGPUCaptureOutputFilepath; + + /** + * Controls whether MoltenVK should use a Metal 2D texture with a height of 1 for a + * Vulkan 1D image, or use a native Metal 1D texture. Metal imposes significant restrictions + * on native 1D textures, including not being renderable, clearable, or permitting mipmaps. + * Using a Metal 2D texture allows Vulkan 1D textures to support this additional functionality. + * + * The value of this parameter should only be changed before creating the VkInstance. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_TEXTURE_1D_AS_2D + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is enabled by default, and MoltenVK will + * use a Metal 2D texture for each Vulkan 1D image. + */ + VkBool32 texture1DAs2D; + + /** + * Controls whether MoltenVK should preallocate memory in each VkDescriptorPool according + * to the values of the VkDescriptorPoolSize parameters. Doing so may improve descriptor set + * allocation performance and memory stability at a cost of preallocated application memory. + * If this setting is disabled, the descriptors required for a descriptor set will be individually + * dynamically allocated in application memory when the descriptor set itself is allocated. + * + * The value of this parameter may be changed at any time during application runtime, and the + * changed value will affect the behavior of VkDescriptorPools created after the value is changed. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_PREALLOCATE_DESCRIPTORS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is enabled by default, and MoltenVK will + * allocate a pool of descriptors when a VkDescriptorPool is created. + */ + VkBool32 preallocateDescriptors; + + /** + * Controls whether MoltenVK should use pools to manage memory used when adding commands + * to command buffers. If this setting is enabled, MoltenVK will use a pool to hold command + * resources for reuse during command execution. If this setting is disabled, command memory + * is allocated and destroyed each time a command is executed. This is a classic time-space + * trade off. When command pooling is active, the memory in the pool can be cleared via a + * call to the vkTrimCommandPoolKHR() command. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect behavior of VkCommandPools created + * after the setting is changed. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_USE_COMMAND_POOLING + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is enabled by default, and MoltenVK will pool command memory. + */ + VkBool32 useCommandPooling; + + /** + * Controls whether MoltenVK should use MTLHeaps for allocating textures and buffers + * from device memory. If this setting is enabled, and placement MTLHeaps are + * available on the platform, MoltenVK will allocate a placement MTLHeap for each VkDeviceMemory + * instance, and allocate textures and buffers from that placement heap. If this environment + * variable is disabled, MoltenVK will allocate textures and buffers from general device memory. + * + * Apple recommends that MTLHeaps should only be used for specific requirements such as aliasing + * or hazard tracking, and MoltenVK testing has shown that allocating multiple textures of + * different types or usages from one MTLHeap can occassionally cause corruption issues under + * certain circumstances. + * + * The value of this parameter must be changed before creating a VkInstance, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_USE_MTLHEAP + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is disabled by default, and MoltenVK + * will allocate texures and buffers from general device memory. + */ + VkBool32 useMTLHeap; + + /** + * Controls whether MoltenVK should log the performance of individual activities as they happen. + * If this setting is enabled, activity performance will be logged when each activity happens. + * If this setting is disabled, activity performance will be logged when frame peformance is + * logged as determined by the performanceLoggingFrameCount value. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_PERFORMANCE_LOGGING_INLINE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is disabled by default, and activity + * performance will be logged only when frame activity is logged. + */ + VkBool32 logActivityPerformanceInline; + + /** + * Controls the Vulkan API version that MoltenVK should advertise in vkEnumerateInstanceVersion(). + * When reading this value, it will be one of the VK_API_VERSION_1_* values, including the latest + * VK_HEADER_VERSION component. When setting this value, it should be set to one of: + * + * VK_API_VERSION_1_2 (equivalent decimal number 4202496) + * VK_API_VERSION_1_1 (equivalent decimal number 4198400) + * VK_API_VERSION_1_0 (equivalent decimal number 4194304) + * + * MoltenVK will automatically add the VK_HEADER_VERSION component. + * + * The value of this parameter must be changed before creating a VkInstance, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_API_VERSION_TO_ADVERTISE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to the highest API version + * currently supported by MoltenVK, including the latest VK_HEADER_VERSION component. + */ + uint32_t apiVersionToAdvertise; + + /** + * Controls which extensions MoltenVK should advertise it supports in + * vkEnumerateInstanceExtensionProperties() and vkEnumerateDeviceExtensionProperties(). + * The value of this parameter is a bitwise OR of values from the MVKConfigAdvertiseExtensionBits + * enumeration. Any prerequisite extensions are also advertised. + * If the flag MVK_CONFIG_ADVERTISE_EXTENSIONS_ALL is included, all supported extensions + * will be advertised. A value of zero means no extensions will be advertised. + * + * The value of this parameter must be changed before creating a VkInstance, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_ADVERTISE_EXTENSIONS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this setting defaults to + * MVK_CONFIG_ADVERTISE_EXTENSIONS_ALL, and all supported extensions will be advertised. + */ + MVKConfigAdvertiseExtensions advertiseExtensions; + + /** + * Controls whether MoltenVK should treat a lost VkDevice as resumable, unless the + * corresponding VkPhysicalDevice has also been lost. The VK_ERROR_DEVICE_LOST error has + * a broad definitional range, and can mean anything from a GPU hiccup on the current + * command buffer submission, to a physically removed GPU. In the case where this error does + * not impact the VkPhysicalDevice, Vulkan requires that the app destroy and re-create a new + * VkDevice. However, not all apps (including CTS) respect that requirement, leading to what + * might be a transient command submission failure causing an unexpected catastrophic app failure. + * + * If this setting is enabled, in the case of a VK_ERROR_DEVICE_LOST error that does NOT impact + * the VkPhysicalDevice, MoltenVK will log the error, but will not mark the VkDevice as lost, + * allowing the VkDevice to continue to be used. If this setting is disabled, MoltenVK will + * mark the VkDevice as lost, and subsequent use of that VkDevice will be reduced or prohibited. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will affect the error behavior of subsequent command submissions. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_RESUME_LOST_DEVICE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is disabled by default, and MoltenVK + * will mark the VkDevice as lost when a command submission failure occurs. + */ + VkBool32 resumeLostDevice; + + /** + * Controls whether MoltenVK should use Metal argument buffers for resources defined in + * descriptor sets, if Metal argument buffers are supported on the platform. Using Metal + * argument buffers dramatically increases the number of buffers, textures and samplers + * that can be bound to a pipeline shader, and in most cases improves performance. + * This setting is an enumeration that specifies the conditions under which MoltenVK + * will use Metal argument buffers. + * + * NOTE: Currently, Metal argument buffer support is in beta stage, and is only supported + * on macOS 11.0 (Big Sur) or later, or on older versions of macOS using an Intel GPU. + * Metal argument buffers support is not available on iOS. Development to support iOS + * and a wider combination of GPU's on older macOS versions is under way. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is set to + * MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS_NEVER by default, + * and MoltenVK will not use Metal argument buffers. + */ + MVKUseMetalArgumentBuffers useMetalArgumentBuffers; + +} MVKConfiguration; + +/** Identifies the type of rounding Metal uses for float to integer conversions in particular calculatons. */ +typedef enum MVKFloatRounding { + MVK_FLOAT_ROUNDING_NEAREST = 0, /**< Metal rounds to nearest. */ + MVK_FLOAT_ROUNDING_UP = 1, /**< Metal rounds towards positive infinity. */ + MVK_FLOAT_ROUNDING_DOWN = 2, /**< Metal rounds towards negative infinity. */ + MVK_FLOAT_ROUNDING_UP_MAX_ENUM = 0x7FFFFFFF +} MVKFloatRounding; + +/** Identifies the pipeline points where GPU counter sampling can occur. Maps to MTLCounterSamplingPoint. */ +typedef enum MVKCounterSamplingBits { + MVK_COUNTER_SAMPLING_AT_DRAW = 0x00000001, + MVK_COUNTER_SAMPLING_AT_DISPATCH = 0x00000002, + MVK_COUNTER_SAMPLING_AT_BLIT = 0x00000004, + MVK_COUNTER_SAMPLING_AT_PIPELINE_STAGE = 0x00000008, + MVK_COUNTER_SAMPLING_MAX_ENUM = 0X7FFFFFFF +} MVKCounterSamplingBits; +typedef VkFlags MVKCounterSamplingFlags; + +/** + * Features provided by the current implementation of Metal on the current device. You can + * retrieve a copy of this structure using the vkGetPhysicalDeviceMetalFeaturesMVK() function. + * + * This structure may be extended as new features are added to MoltenVK. If you are linking to + * an implementation of MoltenVK that was compiled from a different VK_MVK_MOLTENVK_SPEC_VERSION + * than your app was, the size of this structure in your app may be larger or smaller than the + * struct in MoltenVK. See the description of the vkGetPhysicalDeviceMetalFeaturesMVK() function + * for information about how to handle this. + * + * TO SUPPORT DYNAMIC LINKING TO THIS STRUCTURE AS DESCRIBED ABOVE, THIS STRUCTURE SHOULD NOT + * BE CHANGED EXCEPT TO ADD ADDITIONAL MEMBERS ON THE END. EXISTING MEMBERS, AND THEIR ORDER, + * SHOULD NOT BE CHANGED. + */ typedef struct { - float mslVersion; /**< The version of the Metal Shading Language available on this device. */ - VkBool32 indirectDrawing; /**< If true, draw calls support parameters held in a GPU buffer. */ - VkBool32 baseVertexInstanceDrawing; /**< If true, draw calls support specifiying the base vertex and instance. */ - VkBool32 dynamicMTLBuffers; /**< If true, dynamic MTLBuffers for setting vertex, fragment, and compute bytes are supported. */ - VkBool32 shaderSpecialization; /**< If true, shader specialization (aka Metal function constants) is supported. */ - VkBool32 ioSurfaces; /**< If true, VkImages can be underlaid by IOSurfaces via the vkUseIOSurfaceMVK() function, to support inter-process image transfers. */ - VkBool32 texelBuffers; /**< If true, texel buffers are supported, allowing the contents of a buffer to be interpreted as an image via a VkBufferView. */ - VkBool32 depthClipMode; /**< If true, the device supports both depth clipping and depth clamping per the depthClampEnable flag of VkPipelineRasterizationStateCreateInfo in VkGraphicsPipelineCreateInfo. */ - uint32_t maxPerStageBufferCount; /**< The total number of per-stage Metal buffers available for shader uniform content and attributes. */ - uint32_t maxPerStageTextureCount; /**< The total number of per-stage Metal textures available for shader uniform content. */ - uint32_t maxPerStageSamplerCount; /**< The total number of per-stage Metal samplers available for shader uniform content. */ - VkDeviceSize maxMTLBufferSize; /**< The max size of a MTLBuffer (in bytes). */ - VkDeviceSize mtlBufferAlignment; /**< The alignment used when allocating memory for MTLBuffers. Must be PoT. */ - VkDeviceSize maxQueryBufferSize; /**< The maximum size of an occlusion query buffer (in bytes). */ - VkSampleCountFlags supportedSampleCounts; /**< A bitmask identifying the sample counts supported by the device. */ + uint32_t mslVersion; /**< The version of the Metal Shading Language available on this device. The format of the integer is MMmmpp, with two decimal digts each for Major, minor, and patch version values (eg. MSL 1.2 would appear as 010200). */ + VkBool32 indirectDrawing; /**< If true, draw calls support parameters held in a GPU buffer. */ + VkBool32 baseVertexInstanceDrawing; /**< If true, draw calls support specifiying the base vertex and instance. */ + uint32_t dynamicMTLBufferSize; /**< If greater than zero, dynamic MTLBuffers for setting vertex, fragment, and compute bytes are supported, and their content must be below this value. */ + VkBool32 shaderSpecialization; /**< If true, shader specialization (aka Metal function constants) is supported. */ + VkBool32 ioSurfaces; /**< If true, VkImages can be underlaid by IOSurfaces via the vkUseIOSurfaceMVK() function, to support inter-process image transfers. */ + VkBool32 texelBuffers; /**< If true, texel buffers are supported, allowing the contents of a buffer to be interpreted as an image via a VkBufferView. */ + VkBool32 layeredRendering; /**< If true, layered rendering to multiple cube or texture array layers is supported. */ + VkBool32 presentModeImmediate; /**< If true, immediate surface present mode (VK_PRESENT_MODE_IMMEDIATE_KHR), allowing a swapchain image to be presented immediately, without waiting for the vertical sync period of the display, is supported. */ + VkBool32 stencilViews; /**< If true, stencil aspect views are supported through the MTLPixelFormatX24_Stencil8 and MTLPixelFormatX32_Stencil8 formats. */ + VkBool32 multisampleArrayTextures; /**< If true, MTLTextureType2DMultisampleArray is supported. */ + VkBool32 samplerClampToBorder; /**< If true, the border color set when creating a sampler will be respected. */ + uint32_t maxTextureDimension; /**< The maximum size of each texture dimension (width, height, or depth). */ + uint32_t maxPerStageBufferCount; /**< The total number of per-stage Metal buffers available for shader uniform content and attributes. */ + uint32_t maxPerStageTextureCount; /**< The total number of per-stage Metal textures available for shader uniform content. */ + uint32_t maxPerStageSamplerCount; /**< The total number of per-stage Metal samplers available for shader uniform content. */ + VkDeviceSize maxMTLBufferSize; /**< The max size of a MTLBuffer (in bytes). */ + VkDeviceSize mtlBufferAlignment; /**< The alignment used when allocating memory for MTLBuffers. Must be PoT. */ + VkDeviceSize maxQueryBufferSize; /**< The maximum size of an occlusion query buffer (in bytes). */ + VkDeviceSize mtlCopyBufferAlignment; /**< The alignment required during buffer copy operations (in bytes). */ + VkSampleCountFlags supportedSampleCounts; /**< A bitmask identifying the sample counts supported by the device. */ + uint32_t minSwapchainImageCount; /**< The minimum number of swapchain images that can be supported by a surface. */ + uint32_t maxSwapchainImageCount; /**< The maximum number of swapchain images that can be supported by a surface. */ + VkBool32 combinedStoreResolveAction; /**< If true, the device supports VK_ATTACHMENT_STORE_OP_STORE with a simultaneous resolve attachment. */ + VkBool32 arrayOfTextures; /**< If true, arrays of textures is supported. */ + VkBool32 arrayOfSamplers; /**< If true, arrays of texture samplers is supported. */ + MTLLanguageVersion mslVersionEnum; /**< The version of the Metal Shading Language available on this device, as a Metal enumeration. */ + VkBool32 depthSampleCompare; /**< If true, depth texture samplers support the comparison of the pixel value against a reference value. */ + VkBool32 events; /**< If true, Metal synchronization events (MTLEvent) are supported. */ + VkBool32 memoryBarriers; /**< If true, full memory barriers within Metal render passes are supported. */ + VkBool32 multisampleLayeredRendering; /**< If true, layered rendering to multiple multi-sampled cube or texture array layers is supported. */ + VkBool32 stencilFeedback; /**< If true, fragment shaders that write to [[stencil]] outputs are supported. */ + VkBool32 textureBuffers; /**< If true, textures of type MTLTextureTypeBuffer are supported. */ + VkBool32 postDepthCoverage; /**< If true, coverage masks in fragment shaders post-depth-test are supported. */ + VkBool32 fences; /**< If true, Metal synchronization fences (MTLFence) are supported. */ + VkBool32 rasterOrderGroups; /**< If true, Raster order groups in fragment shaders are supported. */ + VkBool32 native3DCompressedTextures; /**< If true, 3D compressed images are supported natively, without manual decompression. */ + VkBool32 nativeTextureSwizzle; /**< If true, component swizzle is supported natively, without manual swizzling in shaders. */ + VkBool32 placementHeaps; /**< If true, MTLHeap objects support placement of resources. */ + VkDeviceSize pushConstantSizeAlignment; /**< The alignment used internally when allocating memory for push constants. Must be PoT. */ + uint32_t maxTextureLayers; /**< The maximum number of layers in an array texture. */ + uint32_t maxSubgroupSize; /**< The maximum number of threads in a SIMD-group. */ + VkDeviceSize vertexStrideAlignment; /**< The alignment used for the stride of vertex attribute bindings. */ + VkBool32 indirectTessellationDrawing; /**< If true, tessellation draw calls support parameters held in a GPU buffer. */ + VkBool32 nonUniformThreadgroups; /**< If true, the device supports arbitrary-sized grids in compute workloads. */ + VkBool32 renderWithoutAttachments; /**< If true, we don't have to create a dummy attachment for a render pass if there isn't one. */ + VkBool32 deferredStoreActions; /**< If true, render pass store actions can be specified after the render encoder is created. */ + VkBool32 sharedLinearTextures; /**< If true, linear textures and texture buffers can be created from buffers in Shared storage. */ + VkBool32 depthResolve; /**< If true, resolving depth textures with filters other than Sample0 is supported. */ + VkBool32 stencilResolve; /**< If true, resolving stencil textures with filters other than Sample0 is supported. */ + uint32_t maxPerStageDynamicMTLBufferCount; /**< The maximum number of inline buffers that can be set on a command buffer. */ + uint32_t maxPerStageStorageTextureCount; /**< The total number of per-stage Metal textures with read-write access available for writing to from a shader. */ + VkBool32 astcHDRTextures; /**< If true, ASTC HDR pixel formats are supported. */ + VkBool32 renderLinearTextures; /**< If true, linear textures are renderable. */ + VkBool32 pullModelInterpolation; /**< If true, explicit interpolation functions are supported. */ + VkBool32 samplerMirrorClampToEdge; /**< If true, the mirrored clamp to edge address mode is supported in samplers. */ + VkBool32 quadPermute; /**< If true, quadgroup permutation functions (vote, ballot, shuffle) are supported in shaders. */ + VkBool32 simdPermute; /**< If true, SIMD-group permutation functions (vote, ballot, shuffle) are supported in shaders. */ + VkBool32 simdReduction; /**< If true, SIMD-group reduction functions (arithmetic) are supported in shaders. */ + uint32_t minSubgroupSize; /**< The minimum number of threads in a SIMD-group. */ + VkBool32 textureBarriers; /**< If true, texture barriers are supported within Metal render passes. */ + VkBool32 tileBasedDeferredRendering; /**< If true, this device uses tile-based deferred rendering. */ + VkBool32 argumentBuffers; /**< If true, Metal argument buffers are supported. */ + VkBool32 descriptorSetArgumentBuffers; /**< If true, a Metal argument buffer can be assigned to a descriptor set, and used on any pipeline and pipeline stage. If false, a different Metal argument buffer must be used for each pipeline-stage/descriptor-set combination. */ + MVKFloatRounding clearColorFloatRounding; /**< Identifies the type of rounding Metal uses for MTLClearColor float to integer conversions. */ + MVKCounterSamplingFlags counterSamplingPoints; /**< Identifies the points where pipeline GPU counter sampling may occur. */ + VkBool32 programmableSamplePositions; /**< If true, programmable MSAA sample positions are supported. */ + VkBool32 shaderBarycentricCoordinates; /**< If true, fragment shader barycentric coordinates are supported. */ + MTLArgumentBuffersTier argumentBuffersTier; /**< The argument buffer tier available on this device, as a Metal enumeration. */ + VkBool32 needsSampleDrefLodArrayWorkaround; /**< If true, sampling from arrayed depth images with explicit LoD is broken and needs a workaround. */ } MVKPhysicalDeviceMetalFeatures; -/** MoltenVK swapchain performance statistics. */ +/** MoltenVK performance of a particular type of activity. */ typedef struct { - double lastFrameInterval; /**< The time interval between this frame and the immediately previous frame, in seconds. */ - double averageFrameInterval; /**< The rolling average time interval between frames, in seconds. This value has less volatility than the lastFrameInterval value. The inverse of this value is the rolling average frames per second. */ - double averageFramesPerSecond; /**< The rolling average number of frames per second. This is simply the inverse of the averageFrameInterval value. */ -} MVKSwapchainPerformance; + uint32_t count; /**< The number of activities of this type. */ + double latestDuration; /**< The latest (most recent) duration of the activity, in milliseconds. */ + double averageDuration; /**< The average duration of the activity, in milliseconds. */ + double minimumDuration; /**< The minimum duration of the activity, in milliseconds. */ + double maximumDuration; /**< The maximum duration of the activity, in milliseconds. */ +} MVKPerformanceTracker; -/** MoltenVK performance of a particular type of shader compilation event. */ +/** MoltenVK performance of shader compilation activities. */ typedef struct { - uint32_t count; /**< The number of compilation events of this type. */ - double averageInterval; /**< The average time interval consumed by the compilation event, in seconds. */ - double minimumInterval; /**< The minimum time interval consumed by the compilation event, in seconds. */ - double maximumInterval; /**< The maximum time interval consumed by the compilation event, in seconds. */ -} MVKShaderCompilationEventPerformance; + MVKPerformanceTracker hashShaderCode; /** Create a hash from the incoming shader code. */ + MVKPerformanceTracker spirvToMSL; /** Convert SPIR-V to MSL source code. */ + MVKPerformanceTracker mslCompile; /** Compile MSL source code into a MTLLibrary. */ + MVKPerformanceTracker mslLoad; /** Load pre-compiled MSL code into a MTLLibrary. */ + MVKPerformanceTracker shaderLibraryFromCache; /** Retrieve a shader library from the cache, lazily creating it if needed. */ + MVKPerformanceTracker functionRetrieval; /** Retrieve a MTLFunction from a MTLLibrary. */ + MVKPerformanceTracker functionSpecialization; /** Specialize a retrieved MTLFunction. */ + MVKPerformanceTracker pipelineCompile; /** Compile MTLFunctions into a pipeline. */ + MVKPerformanceTracker glslToSPRIV; /** Convert GLSL to SPIR-V code. */ +} MVKShaderCompilationPerformance; -/** MoltenVK performance of shader compilation events for a VkDevice. */ +/** MoltenVK performance of pipeline cache activities. */ typedef struct { - MVKShaderCompilationEventPerformance spirvToMSL; /** Convert SPIR-V to MSL source code. */ - MVKShaderCompilationEventPerformance mslCompile; /** Compile MSL source code into a MTLLibrary. */ - MVKShaderCompilationEventPerformance mslLoad; /** Load pre-compiled MSL code into a MTLLibrary. */ - MVKShaderCompilationEventPerformance functionRetrieval; /** Retrieve a MTLFunction from a MTLLibrary. */ - MVKShaderCompilationEventPerformance functionSpecialization; /** Specialize a retrieved MTLFunction. */ - MVKShaderCompilationEventPerformance pipelineCompile; /** Compile MTLFunctions into a pipeline. */ -} MVKShaderCompilationPerformance; + MVKPerformanceTracker sizePipelineCache; /** Calculate the size of cache data required to write MSL to pipeline cache data stream. */ + MVKPerformanceTracker writePipelineCache; /** Write MSL to pipeline cache data stream. */ + MVKPerformanceTracker readPipelineCache; /** Read MSL from pipeline cache data stream. */ +} MVKPipelineCachePerformance; + +/** MoltenVK performance of queue activities. */ +typedef struct { + MVKPerformanceTracker mtlQueueAccess; /** Create an MTLCommandQueue or access an existing cached instance. */ + MVKPerformanceTracker mtlCommandBufferCompletion; /** Completion of a MTLCommandBuffer on the GPU, from commit to completion callback. */ + MVKPerformanceTracker nextCAMetalDrawable; /** Retrieve next CAMetalDrawable from CAMetalLayer during presentation. */ + MVKPerformanceTracker frameInterval; /** Frame presentation interval (1000/FPS). */ +} MVKQueuePerformance; + +/** + * MoltenVK performance. You can retrieve a copy of this structure using the vkGetPerformanceStatisticsMVK() function. + * + * This structure may be extended as new features are added to MoltenVK. If you are linking to + * an implementation of MoltenVK that was compiled from a different VK_MVK_MOLTENVK_SPEC_VERSION + * than your app was, the size of this structure in your app may be larger or smaller than the + * struct in MoltenVK. See the description of the vkGetPerformanceStatisticsMVK() function for + * information about how to handle this. + * + * TO SUPPORT DYNAMIC LINKING TO THIS STRUCTURE AS DESCRIBED ABOVE, THIS STRUCTURE SHOULD NOT + * BE CHANGED EXCEPT TO ADD ADDITIONAL MEMBERS ON THE END. EXISTING MEMBERS, AND THEIR ORDER, + * SHOULD NOT BE CHANGED. + */ +typedef struct { + MVKShaderCompilationPerformance shaderCompilation; /** Shader compilations activities. */ + MVKPipelineCachePerformance pipelineCache; /** Pipeline cache activities. */ + MVKQueuePerformance queue; /** Queue activities. */ +} MVKPerformanceStatistics; #pragma mark - #pragma mark Function types -typedef VkResult (VKAPI_PTR *PFN_vkActivateMoltenVKLicenseMVK)(const char* licenseID, const char* licenseKey, VkBool32 acceptLicenseTermsAndConditions); -typedef VkResult (VKAPI_PTR *PFN_vkActivateMoltenVKLicensesMVK)(); -typedef void (VKAPI_PTR *PFN_vkGetMoltenVKDeviceConfigurationMVK)(VkDevice device, MVKDeviceConfiguration* pConfiguration); -typedef VkResult (VKAPI_PTR *PFN_vkSetMoltenVKDeviceConfigurationMVK)(VkDevice device, MVKDeviceConfiguration* pConfiguration); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMetalFeaturesMVK)(VkPhysicalDevice physicalDevice, MVKPhysicalDeviceMetalFeatures* pMetalFeatures); -typedef void (VKAPI_PTR *PFN_vkGetSwapchainPerformanceMVK)(VkDevice device, VkSwapchainKHR swapchain, MVKSwapchainPerformance* pSwapchainPerf); -typedef void (VKAPI_PTR *PFN_vkGetShaderCompilationPerformanceMVK)(VkDevice device, MVKShaderCompilationPerformance* pShaderCompPerf); +typedef VkResult (VKAPI_PTR *PFN_vkGetMoltenVKConfigurationMVK)(VkInstance ignored, MVKConfiguration* pConfiguration, size_t* pConfigurationSize); +typedef VkResult (VKAPI_PTR *PFN_vkSetMoltenVKConfigurationMVK)(VkInstance ignored, const MVKConfiguration* pConfiguration, size_t* pConfigurationSize); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceMetalFeaturesMVK)(VkPhysicalDevice physicalDevice, MVKPhysicalDeviceMetalFeatures* pMetalFeatures, size_t* pMetalFeaturesSize); +typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceStatisticsMVK)(VkDevice device, MVKPerformanceStatistics* pPerf, size_t* pPerfSize); typedef void (VKAPI_PTR *PFN_vkGetVersionStringsMVK)(char* pMoltenVersionStringBuffer, uint32_t moltenVersionStringBufferLength, char* pVulkanVersionStringBuffer, uint32_t vulkanVersionStringBufferLength); +typedef void (VKAPI_PTR *PFN_vkSetWorkgroupSizeMVK)(VkShaderModule shaderModule, uint32_t x, uint32_t y, uint32_t z); +typedef VkResult (VKAPI_PTR *PFN_vkUseIOSurfaceMVK)(VkImage image, IOSurfaceRef ioSurface); +typedef void (VKAPI_PTR *PFN_vkGetIOSurfaceMVK)(VkImage image, IOSurfaceRef* pIOSurface); #ifdef __OBJC__ typedef void (VKAPI_PTR *PFN_vkGetMTLDeviceMVK)(VkPhysicalDevice physicalDevice, id* pMTLDevice); typedef VkResult (VKAPI_PTR *PFN_vkSetMTLTextureMVK)(VkImage image, id mtlTexture); typedef void (VKAPI_PTR *PFN_vkGetMTLTextureMVK)(VkImage image, id* pMTLTexture); -typedef VkResult (VKAPI_PTR *PFN_vkUseIOSurfaceMVK)(VkImage image, IOSurfaceRef ioSurface); -typedef void (VKAPI_PTR *PFN_vkGetIOSurfaceMVK)(VkImage image, IOSurfaceRef* pIOSurface); +typedef void (VKAPI_PTR *PFN_vkGetMTLBufferMVK)(VkBuffer buffer, id* pMTLBuffer); +typedef void (VKAPI_PTR *PFN_vkGetMTLCommandQueueMVK)(VkQueue queue, id* pMTLCommandQueue); #endif // __OBJC__ @@ -112,155 +1065,147 @@ typedef void (VKAPI_PTR *PFN_vkGetIOSurfaceMVK)(VkImage image, IOSurfaceRef* pIO #ifndef VK_NO_PROTOTYPES -/** - * Activates the specified license to enable MoltenVK features and functionality associated - * with that license. - * - * The license consists of a pair of null-terminated strings, one containing the ID under - * which the license was purchased, and the other containing the license key assigned to - * the purchased license. - * - * In addition to the license ID and key, for any license activation to take place, you - * must set the acceptLicenseTermsAndConditions parameter to true, to indicate that you - * accept the terms and conditions of the MoltenVK license agreement. - * - * MoltenVK supports several levels of license scope. Depending on the license scope purchased, - * a single MoltenVK license may be associated with one MoltenVK feature set, or it may be - * associated with multiple MoltenVK feature sets. This function may be called multiple times - * to accommodate licenses purchased for multiple individual feature sets. - * - * You can call this function at any time, but typically you will call this function during - * application startup. You can call this function multiple times to accommodate licenses - * purchased for multiple individual feature sets. Until a valid license is applied covering - * each feature set used by your application, MoltenVK will operate in evaluation mode, - * which may include displaying a MoltenVK watermark. - * - * Using this function is not the preferred method for activating licenses because, in a team - * environment, it is more difficult to enter valid licenses for each developer from your - * application code. Instead, consider using the vkActivateMoltenVKLicensesMVK() function, - * which allows you to specify the license information through compiler build settings. - * Using compiler build settings allows you to more easily specify the license information - * for each developer. - */ -VKAPI_ATTR VkResult VKAPI_CALL vkActivateMoltenVKLicenseMVK( - const char* licenseID, - const char* licenseKey, - VkBool32 acceptLicenseTermsAndConditions); - -/** - * This function allows you to enter up to four MoltenVK license ID and license key pairs - * as compiler build settings. To use this function, configure one or more licenses using - * the following pairs of build settings: - * - * - MLN_LICENSE_ID and MLN_LICENSE_KEY - * - MLN_LICENSE_ID_1 and MLN_LICENSE_KEY_1 - * - MLN_LICENSE_ID_2 and MLN_LICENSE_KEY_2 - * - MLN_LICENSE_ID_3 and MLN_LICENSE_KEY_3 - * - * Each element of each pair is a single string defined as a build setting, and should not - * include quote marks. For example, you might configure the following build settings: +/** + * Populates the pConfiguration structure with the current MoltenVK configuration settings. * - * MLN_LICENSE_ID=john.doe@example.com - * MLN_LICENSE_KEY=NOVOT3NGPDZ6OQSCXX4VYLXGI3QLI6Z6 + * To change a specific configuration value, call vkGetMoltenVKConfigurationMVK() to retrieve + * the current configuration, make changes, and call vkSetMoltenVKConfigurationMVK() to + * update all of the values. * - * and if you purchase an additional feature set on a separate license, you can add a - * second pair of build settings: + * The VkInstance object you provide here is ignored, and a VK_NULL_HANDLE value can be provided. + * This function can be called before the VkInstance has been created. It is safe to call this function + * with a VkInstance retrieved from a different layer in the Vulkan SDK Loader and Layers framework. * - * MLN_LICENSE_ID_1=john.doe@example.com - * MLN_LICENSE_KEY_1=MZ4T1Y2LDKBJHAL73JPTEJBHELZHEQJF + * To be active, some configuration settings must be set before a VkInstance or VkDevice + * is created. See the description of the MVKConfiguration members for more information. * - * In addition to the license ID and key, for any license activation to take place, you must - * also set the following build setting to indicate that you accept the terms and conditions - * of the MoltenVK license agreement: + * If you are linking to an implementation of MoltenVK that was compiled from a different + * VK_MVK_MOLTENVK_SPEC_VERSION than your app was, the size of the MVKConfiguration structure + * in your app may be larger or smaller than the same struct as expected by MoltenVK. * - * MLN_LICENSE_ACCEPT_TERMS_AND_CONDITIONS=1 + * When calling this function, set the value of *pConfigurationSize to sizeof(MVKConfiguration), + * to tell MoltenVK the limit of the size of your MVKConfiguration structure. Upon return from + * this function, the value of *pConfigurationSize will hold the actual number of bytes copied + * into your passed MVKConfiguration structure, which will be the smaller of what your app + * thinks is the size of MVKConfiguration, and what MoltenVK thinks it is. This represents the + * safe access area within the structure for both MoltenVK and your app. * - * You can call this function at any time, but typically you will call this function during - * application startup. + * If the size that MoltenVK expects for MVKConfiguration is different than the value passed in + * *pConfigurationSize, this function will return VK_INCOMPLETE, otherwise it will return VK_SUCCESS. * - * If you are unable to use compiler build settings to enter license information, you can use the - * more general vkActivateMoltenVKLicenseMVK() function to enter each license ID/key pair directly. + * Although it is not necessary, you can use this function to determine in advance the value + * that MoltenVK expects the size of MVKConfiguration to be by setting the value of pConfiguration + * to NULL. In that case, this function will set *pConfigurationSize to the size that MoltenVK + * expects MVKConfiguration to be. */ -static inline void vkActivateMoltenVKLicensesMVK() { - - // General macros for using a build setting as a string -# define MLN_QUOTE(name) #name -# define MLN_STR(macro) MLN_QUOTE(macro) - -# ifndef MLN_LICENSE_ACCEPT_TERMS_AND_CONDITIONS -# define MLN_LICENSE_ACCEPT_TERMS_AND_CONDITIONS 0 -# endif - -# if defined(MLN_LICENSE_ID) && defined(MLN_LICENSE_KEY) - vkActivateMoltenVKLicenseMVK(MLN_STR(MLN_LICENSE_ID), MLN_STR(MLN_LICENSE_KEY), MLN_LICENSE_ACCEPT_TERMS_AND_CONDITIONS); -# endif - -# if defined(MLN_LICENSE_ID_1) && defined(MLN_LICENSE_KEY_1) - vkActivateMoltenVKLicenseMVK(MLN_STR(MLN_LICENSE_ID_1), MLN_STR(MLN_LICENSE_KEY_1), MLN_LICENSE_ACCEPT_TERMS_AND_CONDITIONS); -# endif - -# if defined(MLN_LICENSE_ID_2) && defined(MLN_LICENSE_KEY_2) - vkActivateMoltenVKLicenseMVK(MLN_STR(MLN_LICENSE_ID_2), MLN_STR(MLN_LICENSE_KEY_2), MLN_LICENSE_ACCEPT_TERMS_AND_CONDITIONS); -# endif - -# if defined(MLN_LICENSE_ID_3) && defined(MLN_LICENSE_KEY_3) - vkActivateMoltenVKLicenseMVK(MLN_STR(MLN_LICENSE_ID_3), MLN_STR(MLN_LICENSE_KEY_3), MLN_LICENSE_ACCEPT_TERMS_AND_CONDITIONS); -# endif -} +VKAPI_ATTR VkResult VKAPI_CALL vkGetMoltenVKConfigurationMVK( + VkInstance ignored, + MVKConfiguration* pConfiguration, + size_t* pConfigurationSize); /** - * Populates the pConfiguration structure with the current MoltenVK configuration settings - * of the specified device. + * Sets the MoltenVK configuration settings to those found in the pConfiguration structure. * - * To change a specific configuration value, call vkGetMoltenVKDeviceConfigurationMVK() - * to retrieve the current configuration, make changes, and call - * vkSetMoltenVKDeviceConfigurationMVK() to update all of the values. - */ -VKAPI_ATTR void VKAPI_CALL vkGetMoltenVKDeviceConfigurationMVK( - VkDevice device, - MVKDeviceConfiguration* pConfiguration); - -/** - * Sets the MoltenVK configuration settings of the specified device to those found in the - * pConfiguration structure. - * - * To change a specific configuration value, call vkGetMoltenVKDeviceConfigurationMVK() + * To change a specific configuration value, call vkGetMoltenVKConfigurationMVK() * to retrieve the current configuration, make changes, and call - * vkSetMoltenVKDeviceConfigurationMVK() to update all of the values. + * vkSetMoltenVKConfigurationMVK() to update all of the values. + * + * The VkInstance object you provide here is ignored, and a VK_NULL_HANDLE value can be provided. + * This function can be called before the VkInstance has been created. It is safe to call this function + * with a VkInstance retrieved from a different layer in the Vulkan SDK Loader and Layers framework. + * + * To be active, some configuration settings must be set before a VkInstance or VkDevice + * is created. See the description of the MVKConfiguration members for more information. + * + * If you are linking to an implementation of MoltenVK that was compiled from a different + * VK_MVK_MOLTENVK_SPEC_VERSION than your app was, the size of the MVKConfiguration structure + * in your app may be larger or smaller than the same struct as expected by MoltenVK. + * + * When calling this function, set the value of *pConfigurationSize to sizeof(MVKConfiguration), + * to tell MoltenVK the limit of the size of your MVKConfiguration structure. Upon return from + * this function, the value of *pConfigurationSize will hold the actual number of bytes copied + * out of your passed MVKConfiguration structure, which will be the smaller of what your app + * thinks is the size of MVKConfiguration, and what MoltenVK thinks it is. This represents the + * safe access area within the structure for both MoltenVK and your app. + * + * If the size that MoltenVK expects for MVKConfiguration is different than the value passed in + * *pConfigurationSize, this function will return VK_INCOMPLETE, otherwise it will return VK_SUCCESS. + * + * Although it is not necessary, you can use this function to determine in advance the value + * that MoltenVK expects the size of MVKConfiguration to be by setting the value of pConfiguration + * to NULL. In that case, this function will set *pConfigurationSize to the size that MoltenVK + * expects MVKConfiguration to be. */ -VKAPI_ATTR VkResult VKAPI_CALL vkSetMoltenVKDeviceConfigurationMVK( - VkDevice device, - MVKDeviceConfiguration* pConfiguration); +VKAPI_ATTR VkResult VKAPI_CALL vkSetMoltenVKConfigurationMVK( + VkInstance ignored, + const MVKConfiguration* pConfiguration, + size_t* pConfigurationSize); /** * Populates the pMetalFeatures structure with the Metal-specific features * supported by the specified physical device. + * + * If you are linking to an implementation of MoltenVK that was compiled from a different + * VK_MVK_MOLTENVK_SPEC_VERSION than your app was, the size of the MVKPhysicalDeviceMetalFeatures + * structure in your app may be larger or smaller than the same struct as expected by MoltenVK. + * + * When calling this function, set the value of *pMetalFeaturesSize to sizeof(MVKPhysicalDeviceMetalFeatures), + * to tell MoltenVK the limit of the size of your MVKPhysicalDeviceMetalFeatures structure. Upon return from + * this function, the value of *pMetalFeaturesSize will hold the actual number of bytes copied into your + * passed MVKPhysicalDeviceMetalFeatures structure, which will be the smaller of what your app thinks is the + * size of MVKPhysicalDeviceMetalFeatures, and what MoltenVK thinks it is. This represents the safe access + * area within the structure for both MoltenVK and your app. + * + * If the size that MoltenVK expects for MVKPhysicalDeviceMetalFeatures is different than the value passed in + * *pMetalFeaturesSize, this function will return VK_INCOMPLETE, otherwise it will return VK_SUCCESS. + * + * Although it is not necessary, you can use this function to determine in advance the value that MoltenVK + * expects the size of MVKPhysicalDeviceMetalFeatures to be by setting the value of pMetalFeatures to NULL. + * In that case, this function will set *pMetalFeaturesSize to the size that MoltenVK expects + * MVKPhysicalDeviceMetalFeatures to be. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. */ -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMetalFeaturesMVK( - VkPhysicalDevice physicalDevice, - MVKPhysicalDeviceMetalFeatures* pMetalFeatures); - -/** - * Populates the specified MVKSwapchainPerformance structure with - * the current performance statistics for the specified swapchain. - */ -VKAPI_ATTR void VKAPI_CALL vkGetSwapchainPerformanceMVK( - VkDevice device, - VkSwapchainKHR swapchain, - MVKSwapchainPerformance* pSwapchainPerf); +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceMetalFeaturesMVK( + VkPhysicalDevice physicalDevice, + MVKPhysicalDeviceMetalFeatures* pMetalFeatures, + size_t* pMetalFeaturesSize); /** - * Populates the specified MVKShaderCompilationPerformance structure with the - * current shader compilation performance statistics for the specified device. + * Populates the pPerf structure with the current performance statistics for the device. + * + * If you are linking to an implementation of MoltenVK that was compiled from a different + * VK_MVK_MOLTENVK_SPEC_VERSION than your app was, the size of the MVKPerformanceStatistics + * structure in your app may be larger or smaller than the same struct as expected by MoltenVK. + * + * When calling this function, set the value of *pPerfSize to sizeof(MVKPerformanceStatistics), + * to tell MoltenVK the limit of the size of your MVKPerformanceStatistics structure. Upon return + * from this function, the value of *pPerfSize will hold the actual number of bytes copied into + * your passed MVKPerformanceStatistics structure, which will be the smaller of what your app + * thinks is the size of MVKPerformanceStatistics, and what MoltenVK thinks it is. This + * represents the safe access area within the structure for both MoltenVK and your app. + * + * If the size that MoltenVK expects for MVKPerformanceStatistics is different than the value passed + * in *pPerfSize, this function will return VK_INCOMPLETE, otherwise it will return VK_SUCCESS. + * + * Although it is not necessary, you can use this function to determine in advance the value + * that MoltenVK expects the size of MVKPerformanceStatistics to be by setting the value of + * pPerf to NULL. In that case, this function will set *pPerfSize to the size that MoltenVK + * expects MVKPerformanceStatistics to be. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. */ -VKAPI_ATTR void VKAPI_CALL vkGetShaderCompilationPerformanceMVK( - VkDevice device, - MVKShaderCompilationPerformance* pShaderCompPerf); +VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceStatisticsMVK( + VkDevice device, + MVKPerformanceStatistics* pPerf, + size_t* pPerfSize); /** * Returns a human readable version of the MoltenVK and Vulkan versions. * - * This function is provided as a convenience for reporting. Use the MLN_VERSION, + * This function is provided as a convenience for reporting. Use the MVK_VERSION, * VK_API_VERSION_1_0, and VK_HEADER_VERSION macros for programmatically accessing * the corresponding version numbers. */ @@ -270,10 +1215,30 @@ VKAPI_ATTR void VKAPI_CALL vkGetVersionStringsMVK( char* pVulkanVersionStringBuffer, uint32_t vulkanVersionStringBufferLength); +/** + * Sets the number of threads in a workgroup for a compute kernel. + * + * This needs to be called if you are creating compute shader modules from MSL + * source code or MSL compiled code. Workgroup size is determined automatically + * if you're using SPIR-V. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ +VKAPI_ATTR void VKAPI_CALL vkSetWorkgroupSizeMVK( + VkShaderModule shaderModule, + uint32_t x, + uint32_t y, + uint32_t z); #ifdef __OBJC__ -/** Returns, in the pMTLDevice pointer, the MTLDevice used by the VkPhysicalDevice. */ +/** + * Returns, in the pMTLDevice pointer, the MTLDevice used by the VkPhysicalDevice. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ VKAPI_ATTR void VKAPI_CALL vkGetMTLDeviceMVK( VkPhysicalDevice physicalDevice, id* pMTLDevice); @@ -287,16 +1252,46 @@ VKAPI_ATTR void VKAPI_CALL vkGetMTLDeviceMVK( * If a MTLTexture has already been created for this image, it will be destroyed. * * Returns VK_SUCCESS. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. */ VKAPI_ATTR VkResult VKAPI_CALL vkSetMTLTextureMVK( VkImage image, id mtlTexture); -/** Returns, in the pMTLTexture pointer, the MTLTexture currently underlaying the VkImage. */ +/** + * Returns, in the pMTLTexture pointer, the MTLTexture currently underlaying the VkImage. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ VKAPI_ATTR void VKAPI_CALL vkGetMTLTextureMVK( VkImage image, id* pMTLTexture); +/** +* Returns, in the pMTLBuffer pointer, the MTLBuffer currently underlaying the VkBuffer. +* + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. +*/ +VKAPI_ATTR void VKAPI_CALL vkGetMTLBufferMVK( + VkBuffer buffer, + id* pMTLBuffer); + +/** +* Returns, in the pMTLCommandQueue pointer, the MTLCommandQueue currently underlaying the VkQueue. +* + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. +*/ +VKAPI_ATTR void VKAPI_CALL vkGetMTLCommandQueueMVK( + VkQueue queue, + id* pMTLCommandQueue); + +#endif // __OBJC__ + /** * Indicates that a VkImage should use an IOSurface to underlay the Metal texture. * @@ -308,33 +1303,90 @@ VKAPI_ATTR void VKAPI_CALL vkGetMTLTextureMVK( * * If a MTLTexture has already been created for this image, it will be destroyed. * + * IOSurfaces are supported on the following platforms: + * - macOS 10.11 and above + * - iOS 11.0 and above + * + * To enable IOSurface support, ensure the Deployment Target build setting + * (MACOSX_DEPLOYMENT_TARGET or IPHONEOS_DEPLOYMENT_TARGET) is set to at least + * one of the values above when compiling MoltenVK, and any app that uses MoltenVK. + * * Returns: * - VK_SUCCESS. * - VK_ERROR_FEATURE_NOT_PRESENT if IOSurfaces are not supported on the platform. * - VK_ERROR_INITIALIZATION_FAILED if ioSurface is specified and is not compatible with this VkImage. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. */ VKAPI_ATTR VkResult VKAPI_CALL vkUseIOSurfaceMVK( VkImage image, IOSurfaceRef ioSurface); - /** * Returns, in the pIOSurface pointer, the IOSurface currently underlaying the VkImage, * as set by the useIOSurfaceMVK() function, or returns null if the VkImage is not using * an IOSurface, or if the platform does not support IOSurfaces. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. */ VKAPI_ATTR void VKAPI_CALL vkGetIOSurfaceMVK( VkImage image, IOSurfaceRef* pIOSurface); -#endif // __OBJC__ +#pragma mark - +#pragma mark Shaders + +/** + * NOTE: Shader code should be submitted as SPIR-V. Although some simple direct MSL shaders may work, + * direct loading of MSL source code or compiled MSL code is not officially supported at this time. + * Future versions of MoltenVK may support direct MSL submission again. + * + * Enumerates the magic number values to set in the MVKMSLSPIRVHeader when + * submitting a SPIR-V stream that contains either Metal Shading Language source + * code or Metal Shading Language compiled binary code in place of SPIR-V code. + */ +typedef enum { + kMVKMagicNumberSPIRVCode = 0x07230203, /**< SPIR-V stream contains standard SPIR-V code. */ + kMVKMagicNumberMSLSourceCode = 0x19960412, /**< SPIR-V stream contains Metal Shading Language source code. */ + kMVKMagicNumberMSLCompiledCode = 0x19981215, /**< SPIR-V stream contains Metal Shading Language compiled binary code. */ +} MVKMSLMagicNumber; + +/** + * NOTE: Shader code should be submitted as SPIR-V. Although some simple direct MSL shaders may work, + * direct loading of MSL source code or compiled MSL code is not officially supported at this time. + * Future versions of MoltenVK may support direct MSL submission again. + * + * Describes the header at the start of an SPIR-V stream, when it contains either + * Metal Shading Language source code or Metal Shading Language compiled binary code. + * + * To submit MSL source code to the vkCreateShaderModule() function in place of SPIR-V + * code, prepend a MVKMSLSPIRVHeader containing the kMVKMagicNumberMSLSourceCode magic + * number to the MSL source code. The MSL source code must be null-terminated. + * + * To submit MSL compiled binary code to the vkCreateShaderModule() function in place of + * SPIR-V code, prepend a MVKMSLSPIRVHeader containing the kMVKMagicNumberMSLCompiledCode + * magic number to the MSL compiled binary code. + * + * In both cases, the pCode element of VkShaderModuleCreateInfo should pointer to the + * location of the MVKMSLSPIRVHeader, and the MSL code should start at the byte immediately + * after the MVKMSLSPIRVHeader. + * + * The codeSize element of VkShaderModuleCreateInfo should be set to the entire size of + * the submitted code memory, including the additional sizeof(MVKMSLSPIRVHeader) bytes + * taken up by the MVKMSLSPIRVHeader, and, in the case of MSL source code, including + * the null-terminator byte. + */ +typedef uint32_t MVKMSLSPIRVHeader; + #endif // VK_NO_PROTOTYPES #ifdef __cplusplus } -#endif // __cplusplus +#endif // __cplusplus #endif diff --git a/moltenVK/vk_mvk_moltenvk_119.h b/moltenVK/vk_mvk_moltenvk_119.h new file mode 100644 index 0000000..d4163a9 --- /dev/null +++ b/moltenVK/vk_mvk_moltenvk_119.h @@ -0,0 +1,1342 @@ +/* + * vk_mvk_moltenvk.h + * + * Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/** Vulkan extension VK_MVK_moltenvk. */ + +#ifndef __vk_mvk_moltenvk_h_ +#define __vk_mvk_moltenvk_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +#include "mvk_vulkan.h" +#include + +#ifdef __OBJC__ +#import +#else +typedef unsigned long MTLLanguageVersion; +#endif + + +/** + * The version number of MoltenVK is a single integer value, derived from the Major, Minor, + * and Patch version values, where each of the Major, Minor, and Patch components is allocated + * two decimal digits, in the format MjMnPt. This creates a version number that is both human + * readable and allows efficient computational comparisons to a single integer number. + * + * The following examples illustrate how the MoltenVK version number is built from its components: + * - 002000 (version 0.20.0) + * - 010000 (version 1.0.0) + * - 030104 (version 3.1.4) + * - 401215 (version 4.12.15) + */ +#define MVK_VERSION_MAJOR 1 +#define MVK_VERSION_MINOR 1 +#define MVK_VERSION_PATCH 9 + +#define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) +#define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) + +#define VK_MVK_MOLTENVK_SPEC_VERSION 34 +#define VK_MVK_MOLTENVK_EXTENSION_NAME "VK_MVK_moltenvk" + +/** Identifies the level of logging MoltenVK should be limited to outputting. */ +typedef enum MVKConfigLogLevel { + MVK_CONFIG_LOG_LEVEL_NONE = 0, /**< No logging. */ + MVK_CONFIG_LOG_LEVEL_ERROR = 1, /**< Log errors only. */ + MVK_CONFIG_LOG_LEVEL_WARNING = 2, /**< Log errors and warning messages. */ + MVK_CONFIG_LOG_LEVEL_INFO = 3, /**< Log errors, warnings and informational messages. */ + MVK_CONFIG_LOG_LEVEL_DEBUG = 4, /**< Log errors, warnings, infos and debug messages. */ + MVK_CONFIG_LOG_LEVEL_MAX_ENUM = 0x7FFFFFFF +} MVKConfigLogLevel; + +/** Identifies the level of Vulkan call trace logging MoltenVK should perform. */ +typedef enum MVKConfigTraceVulkanCalls { + MVK_CONFIG_TRACE_VULKAN_CALLS_NONE = 0, /**< No Vulkan call logging. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER = 1, /**< Log the name of each Vulkan call when the call is entered. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT = 2, /**< Log the name of each Vulkan call when the call is entered and exited. This effectively brackets any other logging activity within the scope of the Vulkan call. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_DURATION = 3, /**< Same as MVK_CONFIG_TRACE_VULKAN_CALLS_ENTER_EXIT, plus logs the time spent inside the Vulkan function. */ + MVK_CONFIG_TRACE_VULKAN_CALLS_MAX_ENUM = 0x7FFFFFFF +} MVKConfigTraceVulkanCalls; + +/** Identifies the scope for Metal to run an automatic GPU capture for diagnostic debugging purposes. */ +typedef enum MVKConfigAutoGPUCaptureScope { + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_NONE = 0, /**< No automatic GPU capture. */ + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_DEVICE = 1, /**< Automatically capture all GPU activity during the lifetime of a VkDevice. */ + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_FRAME = 2, /**< Automatically capture all GPU activity during the rendering and presentation of the first frame. */ + MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_MAX_ENUM = 0x7FFFFFFF +} MVKConfigAutoGPUCaptureScope; + +/** Identifies extensions to advertise as part of MoltenVK configuration. */ +typedef enum MVKConfigAdvertiseExtensionBits { + MVK_CONFIG_ADVERTISE_EXTENSIONS_ALL = 0x00000001, /**< All supported extensions. */ + MVK_CONFIG_ADVERTISE_EXTENSIONS_MOLTENVK = 0x00000002, /**< This VK_MVK_moltenvk extension. */ + MVK_CONFIG_ADVERTISE_EXTENSIONS_WSI = 0x00000004, /**< WSI extensions supported on the platform. */ + MVK_CONFIG_ADVERTISE_EXTENSIONS_PORTABILITY = 0x00000008, /**< Vulkan Portability Subset extensions. */ + MVK_CONFIG_ADVERTISE_EXTENSIONS_MAX_ENUM = 0x7FFFFFFF +} MVKConfigAdvertiseExtensionBits; +typedef VkFlags MVKConfigAdvertiseExtensions; + +/** + * MoltenVK configuration settings. + * + * To be active, some configuration settings must be set before a VkDevice is created. + * See the description of the individual configuration structure members for more information. + * + * There are three mechanisms for setting the values of the MoltenVK configuration parameters: + * - Runtime API via the vkGetMoltenVKConfigurationMVK()/vkSetMoltenVKConfigurationMVK() functions. + * - Application runtime environment variables. + * - Build settings at MoltenVK build time. + * + * To change the MoltenVK configuration settings at runtime using a programmatic API, + * use the vkGetMoltenVKConfigurationMVK() and vkSetMoltenVKConfigurationMVK() functions + * to retrieve, modify, and set a copy of the MVKConfiguration structure. To be active, + * some configuration settings must be set before a VkInstance or VkDevice is created. + * See the description of each member for more information. + * + * The initial value of each of the configuration settings can established at runtime + * by a corresponding environment variable, or if the environment variable is not set, + * by a corresponding build setting at the time MoltenVK is compiled. The environment + * variable and build setting for each configuration parameter share the same name. + * + * For example, the initial value of the shaderConversionFlipVertexY configuration setting + * is set by the MVK_CONFIG_SHADER_CONVERSION_FLIP_VERTEX_Y at runtime, or by the + * MVK_CONFIG_SHADER_CONVERSION_FLIP_VERTEX_Y build setting when MoltenVK is compiled. + * + * This structure may be extended as new features are added to MoltenVK. If you are linking to + * an implementation of MoltenVK that was compiled from a different VK_MVK_MOLTENVK_SPEC_VERSION + * than your app was, the size of this structure in your app may be larger or smaller than the + * struct in MoltenVK. See the description of the vkGetMoltenVKConfigurationMVK() and + * vkSetMoltenVKConfigurationMVK() functions for information about how to handle this. + * + * TO SUPPORT DYNAMIC LINKING TO THIS STRUCTURE AS DESCRIBED ABOVE, THIS STRUCTURE SHOULD NOT + * BE CHANGED EXCEPT TO ADD ADDITIONAL MEMBERS ON THE END. EXISTING MEMBERS, AND THEIR ORDER, + * SHOULD NOT BE CHANGED. + */ +typedef struct { + + /** + * If enabled, debugging capabilities will be enabled, including logging + * shader code during runtime shader conversion. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_DEBUG + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter is false if MoltenVK was + * built in Release mode, and true if MoltenVK was built in Debug mode. + */ + VkBool32 debugMode; + + /** + * If enabled, MSL vertex shader code created during runtime shader conversion will + * flip the Y-axis of each vertex, as the Vulkan Y-axis is the inverse of OpenGL. + * + * An alternate way to reverse the Y-axis is to employ a negative Y-axis value on + * the viewport, in which case this parameter can be disabled. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * Specifically, this parameter can be enabled when compiling some pipelines, + * and disabled when compiling others. Existing pipelines are not automatically + * re-compiled when this parameter is changed. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SHADER_CONVERSION_FLIP_VERTEX_Y + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true. + */ + VkBool32 shaderConversionFlipVertexY; + + /** + * If enabled, queue command submissions (vkQueueSubmit() & vkQueuePresentKHR()) will be + * processed on the thread that called the submission function. If disabled, processing + * will be dispatched to a GCD dispatch_queue whose priority is determined by + * VkDeviceQueueCreateInfo::pQueuePriorities during vkCreateDevice(). + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true for macOS 10.14 + * and above or iOS 12 and above, and false otherwise. The reason for this distinction + * is that this feature should be disabled when emulation is required to support VkEvents + * because native support for events (MTLEvent) is not available. + */ + VkBool32 synchronousQueueSubmits; + + /** + * If enabled, where possible, a Metal command buffer will be created and filled when each + * Vulkan command buffer is filled. For applications that parallelize the filling of Vulkan + * commmand buffers across multiple threads, this allows the Metal command buffers to also + * be filled on the same parallel thread. Because each command buffer is filled separately, + * this requires that each Vulkan command buffer requires a dedicated Metal command buffer. + * + * If disabled, a single Metal command buffer will be created and filled when the Vulkan + * command buffers are submitted to the Vulkan queue. This allows a single Metal command + * buffer to be used for all of the Vulkan command buffers in a queue submission. The + * Metal command buffer is filled on the thread that processes the command queue submission. + * + * Depending on the nature of your application, you may find performance is improved by filling + * the Metal command buffers on parallel threads, or you may find that performance is improved by + * consolidating all Vulkan command buffers onto a single Metal command buffer during queue submission. + * + * Prefilling of a Metal command buffer will not occur during the filling of secondary command + * buffers (VK_COMMAND_BUFFER_LEVEL_SECONDARY), or for primary command buffers that are intended + * to be submitted to multiple queues concurrently (VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT). + * + * When enabling this feature, be aware that one Metal command buffer is required for each Vulkan + * command buffer. Depending on the number of command buffers that you use, you may also need to + * change the value of the maxActiveMetalCommandBuffersPerQueue setting. + * + * If this feature is enabled, be aware that if you have recorded commands to a Vulkan command buffer, + * and then choose to reset that command buffer instead of submitting it, the corresponding prefilled + * Metal command buffer will still be submitted. This is because Metal command buffers do not support + * the concept of being reset after being filled. Depending on when and how often you do this, + * it may cause unexpected visual artifacts and unnecessary GPU load. + * + * This feature is incompatible with updating descriptors after binding. If any of the + * *UpdateAfterBind feature flags of VkPhysicalDeviceDescriptorIndexingFeaturesEXT or + * VkPhysicalDeviceInlineUniformBlockFeaturesEXT have been enabled, the value of this + * setting will be ignored and treated as if it is false. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * Specifically, this parameter can be enabled when filling some command buffers, + * and disabled when filling others. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to false. + */ + VkBool32 prefillMetalCommandBuffers; + + /** + * The maximum number of Metal command buffers that can be concurrently active per Vulkan queue. + * The number of active Metal command buffers required depends on the prefillMetalCommandBuffers + * setting. If prefillMetalCommandBuffers is enabled, one Metal command buffer is required per + * Vulkan command buffer. If prefillMetalCommandBuffers is disabled, one Metal command buffer + * is required per command buffer queue submission, which may be significantly less than the + * number of Vulkan command buffers. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to 64. + */ + uint32_t maxActiveMetalCommandBuffersPerQueue; + + /** + * Metal allows only 8192 occlusion queries per MTLBuffer. If enabled, MoltenVK + * allocates a MTLBuffer for each query pool, allowing each query pool to support + * 8192 queries, which may slow performance or cause unexpected behaviour if the query + * pool is not established prior to a Metal renderpass, or if the query pool is changed + * within a renderpass. If disabled, one MTLBuffer will be shared by all query pools, + * which improves performance, but limits the total device queries to 8192. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * Specifically, this parameter can be enabled when creating some query pools, + * and disabled when creating others. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SUPPORT_LARGE_QUERY_POOLS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true. + */ + VkBool32 supportLargeQueryPools; + + /** Obsolete, ignored, and deprecated. All surface presentations are performed with a command buffer. */ + VkBool32 presentWithCommandBuffer; + + /** + * If enabled, swapchain images will use simple Nearest sampling when magnifying the + * swapchain image to fit a physical display surface. If disabled, swapchain images will + * use Linear sampling when magnifying the swapchain image to fit a physical display surface. + * Enabling this setting avoids smearing effects when swapchain images are simple interger + * multiples of display pixels (eg- macOS Retina, and typical of graphics apps and games), + * but may cause aliasing effects when using non-integer display scaling. + * + * The value of this parameter may be changed before creating a VkSwapchain, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SWAPCHAIN_MAG_FILTER_USE_NEAREST + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true. + */ + VkBool32 swapchainMagFilterUseNearest; + + /** + * The maximum amount of time, in nanoseconds, to wait for a Metal library, function, or + * pipeline state object to be compiled and created by the Metal compiler. An internal error + * within the Metal compiler can stall the thread for up to 30 seconds. Setting this value + * limits that delay to a specified amount of time, allowing shader compilations to fail fast. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_METAL_COMPILE_TIMEOUT + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to infinite. + */ + uint64_t metalCompileTimeout; + + /** + * If enabled, performance statistics, as defined by the MVKPerformanceStatistics structure, + * are collected, and can be retrieved via the vkGetPerformanceStatisticsMVK() function. + * + * You can also use the performanceLoggingFrameCount or logActivityPerformanceInline + * parameters to automatically log the performance statistics collected by this parameter. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_PERFORMANCE_TRACKING + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to false. + */ + VkBool32 performanceTracking; + + /** + * If non-zero, performance statistics, frame-based statistics will be logged, on a + * repeating cycle, once per this many frames. The performanceTracking parameter must + * also be enabled. If this parameter is zero, or the performanceTracking parameter + * is disabled, no frame-based performance statistics will be logged. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_PERFORMANCE_LOGGING_FRAME_COUNT + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to zero. + */ + uint32_t performanceLoggingFrameCount; + + /** + * If enabled, a MoltenVK logo watermark will be rendered on top of the scene. + * This can be enabled for publicity during demos. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_DISPLAY_WATERMARK + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to false. + */ + VkBool32 displayWatermark; + + /** + * Metal does not distinguish functionality between queues, which would normally mean only + * a single general-purpose queue family with multiple queues is needed. However, Vulkan + * associates command buffers with a queue family, whereas Metal associates command buffers + * with a specific Metal queue. In order to allow a Metal command buffer to be prefilled + * before is is formally submitted to a Vulkan queue, each Vulkan queue family can support + * only a single Metal queue. As a result, in order to provide parallel queue operations, + * MoltenVK provides multiple queue families, each with a single queue. + * + * If this parameter is disabled, all queue families will be advertised as having general-purpose + * graphics + compute + transfer functionality, which is how the actual Metal queues behave. + * + * If this parameter is enabled, one queue family will be advertised as having general-purpose + * graphics + compute + transfer functionality, and the remaining queue families will be advertised + * as having specialized graphics OR compute OR transfer functionality, to make it easier for some + * apps to select a queue family with the appropriate requirements. + * + * The value of this parameter must be changed before creating a VkDevice, and before + * querying a VkPhysicalDevice for queue family properties, for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SPECIALIZED_QUEUE_FAMILIES + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to false. + */ + VkBool32 specializedQueueFamilies; + + /** + * If enabled, when the app creates a VkDevice from a VkPhysicalDevice (GPU) that is neither + * headless nor low-power, and is different than the GPU used by the windowing system, the + * windowing system will be forced to switch to use the GPU selected by the Vulkan app. + * When the Vulkan app is ended, the windowing system will automatically switch back to + * using the previous GPU, depending on the usage requirements of other running apps. + * + * If disabled, the Vulkan app will render using its selected GPU, and if the windowing + * system uses a different GPU, the windowing system compositor will automatically copy + * framebuffer content from the app GPU to the windowing system GPU. + * + * The value of this parmeter has no effect on systems with a single GPU, or when the + * Vulkan app creates a VkDevice from a low-power or headless VkPhysicalDevice (GPU). + * + * Switching the windowing system GPU to match the Vulkan app GPU maximizes app performance, + * because it avoids the windowing system compositor from having to copy framebuffer content + * between GPUs on each rendered frame. However, doing so forces the entire system to + * potentially switch to using a GPU that may consume more power while the app is running. + * + * Some Vulkan apps may want to render using a high-power GPU, but leave it up to the + * system window compositor to determine how best to blend content with the windowing + * system, and as a result, may want to disable this parameter. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_SWITCH_SYSTEM_GPU + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true. + */ + VkBool32 switchSystemGPU; + + /** + * Older versions of Metal do not natively support per-texture swizzling. When running on + * such a system, and this parameter is enabled, arbitrary VkImageView component swizzles + * are supported, as defined in VkImageViewCreateInfo::components when creating a VkImageView. + * + * If disabled, and native Metal per-texture swizzling is not available on the platform, + * a very limited set of VkImageView component swizzles are supported via format substitutions. + * + * If Metal supports native per-texture swizzling, this parameter is ignored. + * + * When running on an older version of Metal that does not support native per-texture + * swizzling, if this parameter is enabled, both when a VkImageView is created, and + * when any pipeline that uses that VkImageView is compiled, VkImageView swizzling is + * automatically performed in the converted Metal shader code during all texture sampling + * and reading operations, regardless of whether a swizzle is required for the VkImageView + * associated with the Metal texture. This may result in reduced performance. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * Specifically, this parameter can be enabled when creating VkImageViews that need it, + * and compiling pipelines that use those VkImageViews, and can be disabled when creating + * VkImageViews that don't need it, and compiling pipelines that use those VkImageViews. + * + * Existing pipelines are not automatically re-compiled when this parameter is changed. + * + * An error is logged and returned during VkImageView creation if that VkImageView + * requires full image view swizzling and this feature is not enabled. An error is + * also logged when a pipeline that was not compiled with full image view swizzling + * is presented with a VkImageView that is expecting it. + * + * An error is also retuned and logged when a VkPhysicalDeviceImageFormatInfo2KHR is passed + * in a call to vkGetPhysicalDeviceImageFormatProperties2KHR() to query for an VkImageView + * format that will require full swizzling to be enabled, and this feature is not enabled. + * + * If this parameter is disabled, and native Metal per-texture swizzling is not available + * on the platform, the following limited set of VkImageView swizzles are supported by + * MoltenVK, via automatic format substitution: + * + * Texture format Swizzle + * -------------- ------- + * VK_FORMAT_R8_UNORM ZERO, ANY, ANY, RED + * VK_FORMAT_A8_UNORM ALPHA, ANY, ANY, ZERO + * VK_FORMAT_R8G8B8A8_UNORM BLUE, GREEN, RED, ALPHA + * VK_FORMAT_R8G8B8A8_SRGB BLUE, GREEN, RED, ALPHA + * VK_FORMAT_B8G8R8A8_UNORM BLUE, GREEN, RED, ALPHA + * VK_FORMAT_B8G8R8A8_SRGB BLUE, GREEN, RED, ALPHA + * VK_FORMAT_D32_SFLOAT_S8_UINT RED, ANY, ANY, ANY (stencil only) + * VK_FORMAT_D24_UNORM_S8_UINT RED, ANY, ANY, ANY (stencil only) + * + * The initial value or this parameter is set by the + * MVK_CONFIG_FULL_IMAGE_VIEW_SWIZZLE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to false. + */ + VkBool32 fullImageViewSwizzle; + + /** + * The index of the queue family whose presentation submissions will + * be used as the default GPU Capture Scope during debugging in Xcode. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_DEFAULT_GPU_CAPTURE_SCOPE_QUEUE_FAMILY_INDEX + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to zero (the first queue family). + */ + uint32_t defaultGPUCaptureScopeQueueFamilyIndex; + + /** + * The index of the queue, within the queue family identified by the + * defaultGPUCaptureScopeQueueFamilyIndex parameter, whose presentation submissions + * will be used as the default GPU Capture Scope during debugging in Xcode. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_DEFAULT_GPU_CAPTURE_SCOPE_QUEUE_INDEX + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to zero (the first queue). + */ + uint32_t defaultGPUCaptureScopeQueueIndex; + + /** + * Corresponds to the fastMathEnabled property of MTLCompileOptions. + * Setting it may cause the Metal Compiler to optimize floating point operations + * in ways that may violate the IEEE 754 standard. + * + * Must be changed before creating a VkDevice, for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_FAST_MATH_ENABLED + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to true. + */ + VkBool32 fastMathEnabled; + + /** + * Controls the level of logging performned by MoltenVK. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_LOG_LEVEL + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, errors and informational messages are logged. + */ + MVKConfigLogLevel logLevel; + + /** + * Causes MoltenVK to log the name of each Vulkan call made by the application, + * along with the Mach thread ID, global system thread ID, and thread name. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect subsequent MoltenVK behaviour. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_TRACE_VULKAN_CALLS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, no Vulkan call logging will occur. + */ + MVKConfigTraceVulkanCalls traceVulkanCalls; + + /** + * Force MoltenVK to use a low-power GPU, if one is availble on the device. + * + * The value of this parameter must be changed before creating a VkInstance, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_FORCE_LOW_POWER_GPU + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is disabled by default, allowing both + * low-power and high-power GPU's to be used. + */ + VkBool32 forceLowPowerGPU; + + /** + * Use MTLFence, if it is available on the device, for VkSemaphore synchronization behaviour. + * + * This parameter interacts with semaphoreUseMTLEvent. If both are enabled, on GPUs other than + * NVIDIA, semaphoreUseMTLEvent takes priority and MTLEvent will be used if it is available, + * otherwise MTLFence will be used if it is available. On NVIDIA GPUs, MTLEvent is disabled + * for VkSemaphores, so CPU-based synchronization will be used unless semaphoreUseMTLFence + * is enabled and MTLFence is available. + * + * In the special case of VK_SEMAPHORE_TYPE_TIMELINE semaphores, MoltenVK will always + * use MTLSharedEvent if it is available on the platform, regardless of the values of + * semaphoreUseMTLEvent or semaphoreUseMTLFence. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_ALLOW_METAL_FENCES + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is disabled by default, and VkSemaphore will not use MTLFence. + */ + VkBool32 semaphoreUseMTLFence; + + /** + * Use MTLEvent, if it is available on the device, for VkSemaphore synchronization behaviour. + * + * This parameter interacts with semaphoreUseMTLFence. If both are enabled, on GPUs other than + * NVIDIA, semaphoreUseMTLEvent takes priority and MTLEvent will be used if it is available, + * otherwise MTLFence will be used if it is available. On NVIDIA GPUs, MTLEvent is disabled + * for VkSemaphores, so CPU-based synchronization will be used unless semaphoreUseMTLFence + * is enabled and MTLFence is available. + * + * In the special case of VK_SEMAPHORE_TYPE_TIMELINE semaphores, MoltenVK will always + * use MTLSharedEvent if it is available on the platform, regardless of the values of + * semaphoreUseMTLEvent or semaphoreUseMTLFence. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_ALLOW_METAL_EVENTS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is enabled by default, and VkSemaphore will use MTLEvent, + * if it is available, except on NVIDIA GPUs. + */ + VkBool32 semaphoreUseMTLEvent; + + /** + * Controls whether Metal should run an automatic GPU capture without the user having to + * trigger it manually via the Xcode user interface, and controls the scope under which + * that GPU capture will occur. This is useful when trying to capture a one-shot GPU trace, + * such as when running a Vulkan CTS test case. For the automatic GPU capture to occur, the + * Xcode scheme under which the app is run must have the Metal GPU capture option enabled. + * This parameter should not be set to manually trigger a GPU capture via the Xcode user interface. + * + * When the value of this parameter is MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE_FRAME, + * the queue for which the GPU activity is captured is identifed by the values of + * the defaultGPUCaptureScopeQueueFamilyIndex and defaultGPUCaptureScopeQueueIndex + * configuration parameters. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_AUTO_GPU_CAPTURE_SCOPE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, no automatic GPU capture will occur. + */ + MVKConfigAutoGPUCaptureScope autoGPUCaptureScope; + + /** + * The path to a file where the automatic GPU capture should be saved, if autoGPUCaptureScope + * is enabled. In this case, the Xcode scheme need not have Metal GPU capture enabled, and in + * fact the app need not be run under Xcode's control at all. This is useful in case the app + * cannot be run under Xcode's control. A path starting with '~' can be used to place it in a + * user's home directory, as in the shell. This feature requires Metal 3.0 (macOS 10.15, iOS 13). + * + * If this parameter is NULL or an empty string, and autoGPUCaptureScope is enabled, automatic + * GPU capture will be handled by the Xcode user interface. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_AUTO_GPU_CAPTURE_OUTPUT_FILE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, automatic GPU capture will be handled by the Xcode user interface. + */ + const char* autoGPUCaptureOutputFilepath; + + /** + * Controls whether MoltenVK should use a Metal 2D texture with a height of 1 for a + * Vulkan 1D image, or use a native Metal 1D texture. Metal imposes significant restrictions + * on native 1D textures, including not being renderable, clearable, or permitting mipmaps. + * Using a Metal 2D texture allows Vulkan 1D textures to support this additional functionality. + * + * The value of this parameter should only be changed before creating the VkInstance. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_TEXTURE_1D_AS_2D + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is enabled by default, and MoltenVK will + * use a Metal 2D texture for each Vulkan 1D image. + */ + VkBool32 texture1DAs2D; + + /** + * Controls whether MoltenVK should preallocate memory in each VkDescriptorPool according + * to the values of the VkDescriptorPoolSize parameters. Doing so may improve descriptor set + * allocation performance and memory stability at a cost of preallocated application memory. + * If this setting is disabled, the descriptors required for a descriptor set will be individually + * dynamically allocated in application memory when the descriptor set itself is allocated. + * + * The value of this parameter may be changed at any time during application runtime, and the + * changed value will affect the behavior of VkDescriptorPools created after the value is changed. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_PREALLOCATE_DESCRIPTORS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is enabled by default, and MoltenVK will + * allocate a pool of descriptors when a VkDescriptorPool is created. + */ + VkBool32 preallocateDescriptors; + + /** + * Controls whether MoltenVK should use pools to manage memory used when adding commands + * to command buffers. If this setting is enabled, MoltenVK will use a pool to hold command + * resources for reuse during command execution. If this setting is disabled, command memory + * is allocated and destroyed each time a command is executed. This is a classic time-space + * trade off. When command pooling is active, the memory in the pool can be cleared via a + * call to the vkTrimCommandPoolKHR() command. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will immediately effect behavior of VkCommandPools created + * after the setting is changed. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_USE_COMMAND_POOLING + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is enabled by default, and MoltenVK will pool command memory. + */ + VkBool32 useCommandPooling; + + /** + * Controls whether MoltenVK should use MTLHeaps for allocating textures and buffers + * from device memory. If this setting is enabled, and placement MTLHeaps are + * available on the platform, MoltenVK will allocate a placement MTLHeap for each VkDeviceMemory + * instance, and allocate textures and buffers from that placement heap. If this environment + * variable is disabled, MoltenVK will allocate textures and buffers from general device memory. + * + * Apple recommends that MTLHeaps should only be used for specific requirements such as aliasing + * or hazard tracking, and MoltenVK testing has shown that allocating multiple textures of + * different types or usages from one MTLHeap can occassionally cause corruption issues under + * certain circumstances. + * + * The value of this parameter must be changed before creating a VkInstance, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_USE_MTLHEAP + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is disabled by default, and MoltenVK + * will allocate texures and buffers from general device memory. + */ + VkBool32 useMTLHeap; + + /** + * Controls whether MoltenVK should log the performance of individual activities as they happen. + * If this setting is enabled, activity performance will be logged when each activity happens. + * If this setting is disabled, activity performance will be logged when frame peformance is + * logged as determined by the performanceLoggingFrameCount value. + * + * The value of this parameter must be changed before creating a VkDevice, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_PERFORMANCE_LOGGING_INLINE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is disabled by default, and activity + * performance will be logged only when frame activity is logged. + */ + VkBool32 logActivityPerformanceInline; + + /** + * Controls the Vulkan API version that MoltenVK should advertise in vkEnumerateInstanceVersion(). + * When reading this value, it will be one of the VK_API_VERSION_1_* values, including the latest + * VK_HEADER_VERSION component. When setting this value, it should be set to one of: + * + * VK_API_VERSION_1_1 (equivalent decimal number 4198400) + * VK_API_VERSION_1_0 (equivalent decimal number 4194304) + * + * MoltenVK will automatically add the VK_HEADER_VERSION component. + * + * The value of this parameter must be changed before creating a VkInstance, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_API_VERSION_TO_ADVERTISE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this parameter defaults to the highest API version + * currently supported by MoltenVK, including the latest VK_HEADER_VERSION component. + */ + uint32_t apiVersionToAdvertise; + + /** + * Controls which extensions MoltenVK should advertise it supports in + * vkEnumerateInstanceExtensionProperties() and vkEnumerateDeviceExtensionProperties(). + * The value of this parameter is a bitwise OR of values from the MVKConfigAdvertiseExtensionBits + * enumeration. Any prerequisite extensions are also advertised. + * If the flag MVK_CONFIG_ADVERTISE_EXTENSIONS_ALL is included, all supported extensions + * will be advertised. A value of zero means no extensions will be advertised. + * + * The value of this parameter must be changed before creating a VkInstance, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_ADVERTISE_EXTENSIONS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, the value of this setting defaults to + * MVK_CONFIG_ADVERTISE_EXTENSIONS_ALL, and all supported extensions will be advertised. + */ + MVKConfigAdvertiseExtensions advertiseExtensions; + + /** + * Controls whether MoltenVK should treat a lost VkDevice as resumable, unless the + * corresponding VkPhysicalDevice has also been lost. The VK_ERROR_DEVICE_LOST error has + * a broad definitional range, and can mean anything from a GPU hiccup on the current + * command buffer submission, to a physically removed GPU. In the case where this error does + * not impact the VkPhysicalDevice, Vulkan requires that the app destroy and re-create a new + * VkDevice. However, not all apps (including CTS) respect that requirement, leading to what + * might be a transient command submission failure causing an unexpected catastrophic app failure. + * + * If this setting is enabled, in the case of a VK_ERROR_DEVICE_LOST error that does NOT impact + * the VkPhysicalDevice, MoltenVK will log the error, but will not mark the VkDevice as lost, + * allowing the VkDevice to continue to be used. If this setting is disabled, MoltenVK will + * mark the VkDevice as lost, and subsequent use of that VkDevice will be reduced or prohibited. + * + * The value of this parameter may be changed at any time during application runtime, + * and the changed value will affect the error behavior of subsequent command submissions. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_RESUME_LOST_DEVICE + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is disabled by default, and MoltenVK + * will mark the VkDevice as lost when a command submission failure occurs. + */ + VkBool32 resumeLostDevice; + + /** + * Controls whether MoltenVK should use Metal argument buffers for resources defined in + * descriptor sets, if Metal argument buffers are supported on the platform. Using Metal + * argument buffers dramatically increases the number of buffers, textures and samplers + * that can be bound to a pipeline shader, and in most cases improves performance. If this + * setting is enabled, MoltenVK will use Metal argument buffers to bind resources to the + * shaders. If this setting is disabled, MoltenVK will bind resources to shaders discretely. + * + * NOTE: Currently, Metal argument buffer support is in beta stage, and is only supported + * on macOS 11.0 (Big Sur) or later, or on older versions of macOS using an Intel GPU. + * Metal argument buffers support is not available on iOS. Development to support iOS + * and a wider combination of GPU's on older macOS versions is under way. + * + * The value of this parameter must be changed before creating a VkInstance, + * for the change to take effect. + * + * The initial value or this parameter is set by the + * MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS + * runtime environment variable or MoltenVK compile-time build setting. + * If neither is set, this setting is enabled by default, and MoltenVK will not + * use Metal argument buffers, and will bind resources to shaders discretely. + */ + VkBool32 useMetalArgumentBuffers; + +} MVKConfiguration; + +/** Identifies the type of rounding Metal uses for float to integer conversions in particular calculatons. */ +typedef enum MVKFloatRounding { + MVK_FLOAT_ROUNDING_NEAREST = 0, /**< Metal rounds to nearest. */ + MVK_FLOAT_ROUNDING_UP = 1, /**< Metal rounds towards positive infinity. */ + MVK_FLOAT_ROUNDING_DOWN = 2, /**< Metal rounds towards negative infinity. */ + MVK_FLOAT_ROUNDING_UP_MAX_ENUM = 0x7FFFFFFF +} MVKFloatRounding; + +/** Identifies the pipeline points where GPU counter sampling can occur. Maps to MTLCounterSamplingPoint. */ +typedef enum MVKCounterSamplingBits { + MVK_COUNTER_SAMPLING_AT_DRAW = 0x00000001, + MVK_COUNTER_SAMPLING_AT_DISPATCH = 0x00000002, + MVK_COUNTER_SAMPLING_AT_BLIT = 0x00000004, + MVK_COUNTER_SAMPLING_AT_PIPELINE_STAGE = 0x00000008, + MVK_COUNTER_SAMPLING_MAX_ENUM = 0X7FFFFFFF +} MVKCounterSamplingBits; +typedef VkFlags MVKCounterSamplingFlags; + +/** + * Features provided by the current implementation of Metal on the current device. You can + * retrieve a copy of this structure using the vkGetPhysicalDeviceMetalFeaturesMVK() function. + * + * This structure may be extended as new features are added to MoltenVK. If you are linking to + * an implementation of MoltenVK that was compiled from a different VK_MVK_MOLTENVK_SPEC_VERSION + * than your app was, the size of this structure in your app may be larger or smaller than the + * struct in MoltenVK. See the description of the vkGetPhysicalDeviceMetalFeaturesMVK() function + * for information about how to handle this. + * + * TO SUPPORT DYNAMIC LINKING TO THIS STRUCTURE AS DESCRIBED ABOVE, THIS STRUCTURE SHOULD NOT + * BE CHANGED EXCEPT TO ADD ADDITIONAL MEMBERS ON THE END. EXISTING MEMBERS, AND THEIR ORDER, + * SHOULD NOT BE CHANGED. + */ +typedef struct { + uint32_t mslVersion; /**< The version of the Metal Shading Language available on this device. The format of the integer is MMmmpp, with two decimal digts each for Major, minor, and patch version values (eg. MSL 1.2 would appear as 010200). */ + VkBool32 indirectDrawing; /**< If true, draw calls support parameters held in a GPU buffer. */ + VkBool32 baseVertexInstanceDrawing; /**< If true, draw calls support specifiying the base vertex and instance. */ + uint32_t dynamicMTLBufferSize; /**< If greater than zero, dynamic MTLBuffers for setting vertex, fragment, and compute bytes are supported, and their content must be below this value. */ + VkBool32 shaderSpecialization; /**< If true, shader specialization (aka Metal function constants) is supported. */ + VkBool32 ioSurfaces; /**< If true, VkImages can be underlaid by IOSurfaces via the vkUseIOSurfaceMVK() function, to support inter-process image transfers. */ + VkBool32 texelBuffers; /**< If true, texel buffers are supported, allowing the contents of a buffer to be interpreted as an image via a VkBufferView. */ + VkBool32 layeredRendering; /**< If true, layered rendering to multiple cube or texture array layers is supported. */ + VkBool32 presentModeImmediate; /**< If true, immediate surface present mode (VK_PRESENT_MODE_IMMEDIATE_KHR), allowing a swapchain image to be presented immediately, without waiting for the vertical sync period of the display, is supported. */ + VkBool32 stencilViews; /**< If true, stencil aspect views are supported through the MTLPixelFormatX24_Stencil8 and MTLPixelFormatX32_Stencil8 formats. */ + VkBool32 multisampleArrayTextures; /**< If true, MTLTextureType2DMultisampleArray is supported. */ + VkBool32 samplerClampToBorder; /**< If true, the border color set when creating a sampler will be respected. */ + uint32_t maxTextureDimension; /**< The maximum size of each texture dimension (width, height, or depth). */ + uint32_t maxPerStageBufferCount; /**< The total number of per-stage Metal buffers available for shader uniform content and attributes. */ + uint32_t maxPerStageTextureCount; /**< The total number of per-stage Metal textures available for shader uniform content. */ + uint32_t maxPerStageSamplerCount; /**< The total number of per-stage Metal samplers available for shader uniform content. */ + VkDeviceSize maxMTLBufferSize; /**< The max size of a MTLBuffer (in bytes). */ + VkDeviceSize mtlBufferAlignment; /**< The alignment used when allocating memory for MTLBuffers. Must be PoT. */ + VkDeviceSize maxQueryBufferSize; /**< The maximum size of an occlusion query buffer (in bytes). */ + VkDeviceSize mtlCopyBufferAlignment; /**< The alignment required during buffer copy operations (in bytes). */ + VkSampleCountFlags supportedSampleCounts; /**< A bitmask identifying the sample counts supported by the device. */ + uint32_t minSwapchainImageCount; /**< The minimum number of swapchain images that can be supported by a surface. */ + uint32_t maxSwapchainImageCount; /**< The maximum number of swapchain images that can be supported by a surface. */ + VkBool32 combinedStoreResolveAction; /**< If true, the device supports VK_ATTACHMENT_STORE_OP_STORE with a simultaneous resolve attachment. */ + VkBool32 arrayOfTextures; /**< If true, arrays of textures is supported. */ + VkBool32 arrayOfSamplers; /**< If true, arrays of texture samplers is supported. */ + MTLLanguageVersion mslVersionEnum; /**< The version of the Metal Shading Language available on this device, as a Metal enumeration. */ + VkBool32 depthSampleCompare; /**< If true, depth texture samplers support the comparison of the pixel value against a reference value. */ + VkBool32 events; /**< If true, Metal synchronization events (MTLEvent) are supported. */ + VkBool32 memoryBarriers; /**< If true, full memory barriers within Metal render passes are supported. */ + VkBool32 multisampleLayeredRendering; /**< If true, layered rendering to multiple multi-sampled cube or texture array layers is supported. */ + VkBool32 stencilFeedback; /**< If true, fragment shaders that write to [[stencil]] outputs are supported. */ + VkBool32 textureBuffers; /**< If true, textures of type MTLTextureTypeBuffer are supported. */ + VkBool32 postDepthCoverage; /**< If true, coverage masks in fragment shaders post-depth-test are supported. */ + VkBool32 fences; /**< If true, Metal synchronization fences (MTLFence) are supported. */ + VkBool32 rasterOrderGroups; /**< If true, Raster order groups in fragment shaders are supported. */ + VkBool32 native3DCompressedTextures; /**< If true, 3D compressed images are supported natively, without manual decompression. */ + VkBool32 nativeTextureSwizzle; /**< If true, component swizzle is supported natively, without manual swizzling in shaders. */ + VkBool32 placementHeaps; /**< If true, MTLHeap objects support placement of resources. */ + VkDeviceSize pushConstantSizeAlignment; /**< The alignment used internally when allocating memory for push constants. Must be PoT. */ + uint32_t maxTextureLayers; /**< The maximum number of layers in an array texture. */ + uint32_t maxSubgroupSize; /**< The maximum number of threads in a SIMD-group. */ + VkDeviceSize vertexStrideAlignment; /**< The alignment used for the stride of vertex attribute bindings. */ + VkBool32 indirectTessellationDrawing; /**< If true, tessellation draw calls support parameters held in a GPU buffer. */ + VkBool32 nonUniformThreadgroups; /**< If true, the device supports arbitrary-sized grids in compute workloads. */ + VkBool32 renderWithoutAttachments; /**< If true, we don't have to create a dummy attachment for a render pass if there isn't one. */ + VkBool32 deferredStoreActions; /**< If true, render pass store actions can be specified after the render encoder is created. */ + VkBool32 sharedLinearTextures; /**< If true, linear textures and texture buffers can be created from buffers in Shared storage. */ + VkBool32 depthResolve; /**< If true, resolving depth textures with filters other than Sample0 is supported. */ + VkBool32 stencilResolve; /**< If true, resolving stencil textures with filters other than Sample0 is supported. */ + uint32_t maxPerStageDynamicMTLBufferCount; /**< The maximum number of inline buffers that can be set on a command buffer. */ + uint32_t maxPerStageStorageTextureCount; /**< The total number of per-stage Metal textures with read-write access available for writing to from a shader. */ + VkBool32 astcHDRTextures; /**< If true, ASTC HDR pixel formats are supported. */ + VkBool32 renderLinearTextures; /**< If true, linear textures are renderable. */ + VkBool32 pullModelInterpolation; /**< If true, explicit interpolation functions are supported. */ + VkBool32 samplerMirrorClampToEdge; /**< If true, the mirrored clamp to edge address mode is supported in samplers. */ + VkBool32 quadPermute; /**< If true, quadgroup permutation functions (vote, ballot, shuffle) are supported in shaders. */ + VkBool32 simdPermute; /**< If true, SIMD-group permutation functions (vote, ballot, shuffle) are supported in shaders. */ + VkBool32 simdReduction; /**< If true, SIMD-group reduction functions (arithmetic) are supported in shaders. */ + uint32_t minSubgroupSize; /**< The minimum number of threads in a SIMD-group. */ + VkBool32 textureBarriers; /**< If true, texture barriers are supported within Metal render passes. */ + VkBool32 tileBasedDeferredRendering; /**< If true, this device uses tile-based deferred rendering. */ + VkBool32 argumentBuffers; /**< If true, Metal argument buffers are supported. */ + VkBool32 descriptorSetArgumentBuffers; /**< If true, a Metal argument buffer can be assigned to a descriptor set, and used on any pipeline and pipeline stage. If false, a different Metal argument buffer must be used for each pipeline-stage/descriptor-set combination. */ + MVKFloatRounding clearColorFloatRounding; /**< Identifies the type of rounding Metal uses for MTLClearColor float to integer conversions. */ + MVKCounterSamplingFlags counterSamplingPoints; /**< Identifies the points where pipeline GPU counter sampling may occur. */ + VkBool32 programmableSamplePositions; /**< If true, programmable MSAA sample positions are supported. */ +} MVKPhysicalDeviceMetalFeatures; + +/** MoltenVK performance of a particular type of activity. */ +typedef struct { + uint32_t count; /**< The number of activities of this type. */ + double latestDuration; /**< The latest (most recent) duration of the activity, in milliseconds. */ + double averageDuration; /**< The average duration of the activity, in milliseconds. */ + double minimumDuration; /**< The minimum duration of the activity, in milliseconds. */ + double maximumDuration; /**< The maximum duration of the activity, in milliseconds. */ +} MVKPerformanceTracker; + +/** MoltenVK performance of shader compilation activities. */ +typedef struct { + MVKPerformanceTracker hashShaderCode; /** Create a hash from the incoming shader code. */ + MVKPerformanceTracker spirvToMSL; /** Convert SPIR-V to MSL source code. */ + MVKPerformanceTracker mslCompile; /** Compile MSL source code into a MTLLibrary. */ + MVKPerformanceTracker mslLoad; /** Load pre-compiled MSL code into a MTLLibrary. */ + MVKPerformanceTracker shaderLibraryFromCache; /** Retrieve a shader library from the cache, lazily creating it if needed. */ + MVKPerformanceTracker functionRetrieval; /** Retrieve a MTLFunction from a MTLLibrary. */ + MVKPerformanceTracker functionSpecialization; /** Specialize a retrieved MTLFunction. */ + MVKPerformanceTracker pipelineCompile; /** Compile MTLFunctions into a pipeline. */ + MVKPerformanceTracker glslToSPRIV; /** Convert GLSL to SPIR-V code. */ +} MVKShaderCompilationPerformance; + +/** MoltenVK performance of pipeline cache activities. */ +typedef struct { + MVKPerformanceTracker sizePipelineCache; /** Calculate the size of cache data required to write MSL to pipeline cache data stream. */ + MVKPerformanceTracker writePipelineCache; /** Write MSL to pipeline cache data stream. */ + MVKPerformanceTracker readPipelineCache; /** Read MSL from pipeline cache data stream. */ +} MVKPipelineCachePerformance; + +/** MoltenVK performance of queue activities. */ +typedef struct { + MVKPerformanceTracker mtlQueueAccess; /** Create an MTLCommandQueue or access an existing cached instance. */ + MVKPerformanceTracker mtlCommandBufferCompletion; /** Completion of a MTLCommandBuffer on the GPU, from commit to completion callback. */ + MVKPerformanceTracker nextCAMetalDrawable; /** Retrieve next CAMetalDrawable from CAMetalLayer during presentation. */ + MVKPerformanceTracker frameInterval; /** Frame presentation interval (1000/FPS). */ +} MVKQueuePerformance; + +/** + * MoltenVK performance. You can retrieve a copy of this structure using the vkGetPerformanceStatisticsMVK() function. + * + * This structure may be extended as new features are added to MoltenVK. If you are linking to + * an implementation of MoltenVK that was compiled from a different VK_MVK_MOLTENVK_SPEC_VERSION + * than your app was, the size of this structure in your app may be larger or smaller than the + * struct in MoltenVK. See the description of the vkGetPerformanceStatisticsMVK() function for + * information about how to handle this. + * + * TO SUPPORT DYNAMIC LINKING TO THIS STRUCTURE AS DESCRIBED ABOVE, THIS STRUCTURE SHOULD NOT + * BE CHANGED EXCEPT TO ADD ADDITIONAL MEMBERS ON THE END. EXISTING MEMBERS, AND THEIR ORDER, + * SHOULD NOT BE CHANGED. + */ +typedef struct { + MVKShaderCompilationPerformance shaderCompilation; /** Shader compilations activities. */ + MVKPipelineCachePerformance pipelineCache; /** Pipeline cache activities. */ + MVKQueuePerformance queue; /** Queue activities. */ +} MVKPerformanceStatistics; + + +#pragma mark - +#pragma mark Function types + +typedef VkResult (VKAPI_PTR *PFN_vkGetMoltenVKConfigurationMVK)(VkInstance ignored, MVKConfiguration* pConfiguration, size_t* pConfigurationSize); +typedef VkResult (VKAPI_PTR *PFN_vkSetMoltenVKConfigurationMVK)(VkInstance ignored, MVKConfiguration* pConfiguration, size_t* pConfigurationSize); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceMetalFeaturesMVK)(VkPhysicalDevice physicalDevice, MVKPhysicalDeviceMetalFeatures* pMetalFeatures, size_t* pMetalFeaturesSize); +typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceStatisticsMVK)(VkDevice device, MVKPerformanceStatistics* pPerf, size_t* pPerfSize); +typedef void (VKAPI_PTR *PFN_vkGetVersionStringsMVK)(char* pMoltenVersionStringBuffer, uint32_t moltenVersionStringBufferLength, char* pVulkanVersionStringBuffer, uint32_t vulkanVersionStringBufferLength); +typedef void (VKAPI_PTR *PFN_vkSetWorkgroupSizeMVK)(VkShaderModule shaderModule, uint32_t x, uint32_t y, uint32_t z); +typedef VkResult (VKAPI_PTR *PFN_vkUseIOSurfaceMVK)(VkImage image, IOSurfaceRef ioSurface); +typedef void (VKAPI_PTR *PFN_vkGetIOSurfaceMVK)(VkImage image, IOSurfaceRef* pIOSurface); + +#ifdef __OBJC__ +typedef void (VKAPI_PTR *PFN_vkGetMTLDeviceMVK)(VkPhysicalDevice physicalDevice, id* pMTLDevice); +typedef VkResult (VKAPI_PTR *PFN_vkSetMTLTextureMVK)(VkImage image, id mtlTexture); +typedef void (VKAPI_PTR *PFN_vkGetMTLTextureMVK)(VkImage image, id* pMTLTexture); +typedef void (VKAPI_PTR *PFN_vkGetMTLBufferMVK)(VkBuffer buffer, id* pMTLBuffer); +typedef void (VKAPI_PTR *PFN_vkGetMTLCommandQueueMVK)(VkQueue queue, id* pMTLCommandQueue); +#endif // __OBJC__ + + +#pragma mark - +#pragma mark Function prototypes + +#ifndef VK_NO_PROTOTYPES + +/** + * Populates the pConfiguration structure with the current MoltenVK configuration settings. + * + * To change a specific configuration value, call vkGetMoltenVKConfigurationMVK() to retrieve + * the current configuration, make changes, and call vkSetMoltenVKConfigurationMVK() to + * update all of the values. + * + * The VkInstance object you provide here is ignored, and a VK_NULL_HANDLE value can be provided. + * This function can be called before the VkInstance has been created. It is safe to call this function + * with a VkInstance retrieved from a different layer in the Vulkan SDK Loader and Layers framework. + * + * To be active, some configuration settings must be set before a VkInstance or VkDevice + * is created. See the description of the MVKConfiguration members for more information. + * + * If you are linking to an implementation of MoltenVK that was compiled from a different + * VK_MVK_MOLTENVK_SPEC_VERSION than your app was, the size of the MVKConfiguration structure + * in your app may be larger or smaller than the same struct as expected by MoltenVK. + * + * When calling this function, set the value of *pConfigurationSize to sizeof(MVKConfiguration), + * to tell MoltenVK the limit of the size of your MVKConfiguration structure. Upon return from + * this function, the value of *pConfigurationSize will hold the actual number of bytes copied + * into your passed MVKConfiguration structure, which will be the smaller of what your app + * thinks is the size of MVKConfiguration, and what MoltenVK thinks it is. This represents the + * safe access area within the structure for both MoltenVK and your app. + * + * If the size that MoltenVK expects for MVKConfiguration is different than the value passed in + * *pConfigurationSize, this function will return VK_INCOMPLETE, otherwise it will return VK_SUCCESS. + * + * Although it is not necessary, you can use this function to determine in advance the value + * that MoltenVK expects the size of MVKConfiguration to be by setting the value of pConfiguration + * to NULL. In that case, this function will set *pConfigurationSize to the size that MoltenVK + * expects MVKConfiguration to be. + */ +VKAPI_ATTR VkResult VKAPI_CALL vkGetMoltenVKConfigurationMVK( + VkInstance ignored, + MVKConfiguration* pConfiguration, + size_t* pConfigurationSize); + +/** + * Sets the MoltenVK configuration settings to those found in the pConfiguration structure. + * + * To change a specific configuration value, call vkGetMoltenVKConfigurationMVK() + * to retrieve the current configuration, make changes, and call + * vkSetMoltenVKConfigurationMVK() to update all of the values. + * + * The VkInstance object you provide here is ignored, and a VK_NULL_HANDLE value can be provided. + * This function can be called before the VkInstance has been created. It is safe to call this function + * with a VkInstance retrieved from a different layer in the Vulkan SDK Loader and Layers framework. + * + * To be active, some configuration settings must be set before a VkInstance or VkDevice + * is created. See the description of the MVKConfiguration members for more information. + * + * If you are linking to an implementation of MoltenVK that was compiled from a different + * VK_MVK_MOLTENVK_SPEC_VERSION than your app was, the size of the MVKConfiguration structure + * in your app may be larger or smaller than the same struct as expected by MoltenVK. + * + * When calling this function, set the value of *pConfigurationSize to sizeof(MVKConfiguration), + * to tell MoltenVK the limit of the size of your MVKConfiguration structure. Upon return from + * this function, the value of *pConfigurationSize will hold the actual number of bytes copied + * out of your passed MVKConfiguration structure, which will be the smaller of what your app + * thinks is the size of MVKConfiguration, and what MoltenVK thinks it is. This represents the + * safe access area within the structure for both MoltenVK and your app. + * + * If the size that MoltenVK expects for MVKConfiguration is different than the value passed in + * *pConfigurationSize, this function will return VK_INCOMPLETE, otherwise it will return VK_SUCCESS. + * + * Although it is not necessary, you can use this function to determine in advance the value + * that MoltenVK expects the size of MVKConfiguration to be by setting the value of pConfiguration + * to NULL. In that case, this function will set *pConfigurationSize to the size that MoltenVK + * expects MVKConfiguration to be. + */ +VKAPI_ATTR VkResult VKAPI_CALL vkSetMoltenVKConfigurationMVK( + VkInstance ignored, + const MVKConfiguration* pConfiguration, + size_t* pConfigurationSize); + +/** + * Populates the pMetalFeatures structure with the Metal-specific features + * supported by the specified physical device. + * + * If you are linking to an implementation of MoltenVK that was compiled from a different + * VK_MVK_MOLTENVK_SPEC_VERSION than your app was, the size of the MVKPhysicalDeviceMetalFeatures + * structure in your app may be larger or smaller than the same struct as expected by MoltenVK. + * + * When calling this function, set the value of *pMetalFeaturesSize to sizeof(MVKPhysicalDeviceMetalFeatures), + * to tell MoltenVK the limit of the size of your MVKPhysicalDeviceMetalFeatures structure. Upon return from + * this function, the value of *pMetalFeaturesSize will hold the actual number of bytes copied into your + * passed MVKPhysicalDeviceMetalFeatures structure, which will be the smaller of what your app thinks is the + * size of MVKPhysicalDeviceMetalFeatures, and what MoltenVK thinks it is. This represents the safe access + * area within the structure for both MoltenVK and your app. + * + * If the size that MoltenVK expects for MVKPhysicalDeviceMetalFeatures is different than the value passed in + * *pMetalFeaturesSize, this function will return VK_INCOMPLETE, otherwise it will return VK_SUCCESS. + * + * Although it is not necessary, you can use this function to determine in advance the value that MoltenVK + * expects the size of MVKPhysicalDeviceMetalFeatures to be by setting the value of pMetalFeatures to NULL. + * In that case, this function will set *pMetalFeaturesSize to the size that MoltenVK expects + * MVKPhysicalDeviceMetalFeatures to be. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceMetalFeaturesMVK( + VkPhysicalDevice physicalDevice, + MVKPhysicalDeviceMetalFeatures* pMetalFeatures, + size_t* pMetalFeaturesSize); + +/** + * Populates the pPerf structure with the current performance statistics for the device. + * + * If you are linking to an implementation of MoltenVK that was compiled from a different + * VK_MVK_MOLTENVK_SPEC_VERSION than your app was, the size of the MVKPerformanceStatistics + * structure in your app may be larger or smaller than the same struct as expected by MoltenVK. + * + * When calling this function, set the value of *pPerfSize to sizeof(MVKPerformanceStatistics), + * to tell MoltenVK the limit of the size of your MVKPerformanceStatistics structure. Upon return + * from this function, the value of *pPerfSize will hold the actual number of bytes copied into + * your passed MVKPerformanceStatistics structure, which will be the smaller of what your app + * thinks is the size of MVKPerformanceStatistics, and what MoltenVK thinks it is. This + * represents the safe access area within the structure for both MoltenVK and your app. + * + * If the size that MoltenVK expects for MVKPerformanceStatistics is different than the value passed + * in *pPerfSize, this function will return VK_INCOMPLETE, otherwise it will return VK_SUCCESS. + * + * Although it is not necessary, you can use this function to determine in advance the value + * that MoltenVK expects the size of MVKPerformanceStatistics to be by setting the value of + * pPerf to NULL. In that case, this function will set *pPerfSize to the size that MoltenVK + * expects MVKPerformanceStatistics to be. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ +VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceStatisticsMVK( + VkDevice device, + MVKPerformanceStatistics* pPerf, + size_t* pPerfSize); + +/** + * Returns a human readable version of the MoltenVK and Vulkan versions. + * + * This function is provided as a convenience for reporting. Use the MVK_VERSION, + * VK_API_VERSION_1_0, and VK_HEADER_VERSION macros for programmatically accessing + * the corresponding version numbers. + */ +VKAPI_ATTR void VKAPI_CALL vkGetVersionStringsMVK( + char* pMoltenVersionStringBuffer, + uint32_t moltenVersionStringBufferLength, + char* pVulkanVersionStringBuffer, + uint32_t vulkanVersionStringBufferLength); + +/** + * Sets the number of threads in a workgroup for a compute kernel. + * + * This needs to be called if you are creating compute shader modules from MSL + * source code or MSL compiled code. Workgroup size is determined automatically + * if you're using SPIR-V. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ +VKAPI_ATTR void VKAPI_CALL vkSetWorkgroupSizeMVK( + VkShaderModule shaderModule, + uint32_t x, + uint32_t y, + uint32_t z); + +#ifdef __OBJC__ + +/** + * Returns, in the pMTLDevice pointer, the MTLDevice used by the VkPhysicalDevice. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ +VKAPI_ATTR void VKAPI_CALL vkGetMTLDeviceMVK( + VkPhysicalDevice physicalDevice, + id* pMTLDevice); + +/** + * Sets the VkImage to use the specified MTLTexture. + * + * Any differences in the properties of mtlTexture and this image will modify the + * properties of this image. + * + * If a MTLTexture has already been created for this image, it will be destroyed. + * + * Returns VK_SUCCESS. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ +VKAPI_ATTR VkResult VKAPI_CALL vkSetMTLTextureMVK( + VkImage image, + id mtlTexture); + +/** + * Returns, in the pMTLTexture pointer, the MTLTexture currently underlaying the VkImage. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ +VKAPI_ATTR void VKAPI_CALL vkGetMTLTextureMVK( + VkImage image, + id* pMTLTexture); + +/** +* Returns, in the pMTLBuffer pointer, the MTLBuffer currently underlaying the VkBuffer. +* + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. +*/ +VKAPI_ATTR void VKAPI_CALL vkGetMTLBufferMVK( + VkBuffer buffer, + id* pMTLBuffer); + +/** +* Returns, in the pMTLCommandQueue pointer, the MTLCommandQueue currently underlaying the VkQueue. +* + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. +*/ +VKAPI_ATTR void VKAPI_CALL vkGetMTLCommandQueueMVK( + VkQueue queue, + id* pMTLCommandQueue); + +#endif // __OBJC__ + +/** + * Indicates that a VkImage should use an IOSurface to underlay the Metal texture. + * + * If ioSurface is not null, it will be used as the IOSurface, and any differences + * in the properties of that IOSurface will modify the properties of this image. + * + * If ioSurface is null, this image will create and use an IOSurface + * whose properties are compatible with the properties of this image. + * + * If a MTLTexture has already been created for this image, it will be destroyed. + * + * IOSurfaces are supported on the following platforms: + * - macOS 10.11 and above + * - iOS 11.0 and above + * + * To enable IOSurface support, ensure the Deployment Target build setting + * (MACOSX_DEPLOYMENT_TARGET or IPHONEOS_DEPLOYMENT_TARGET) is set to at least + * one of the values above when compiling MoltenVK, and any app that uses MoltenVK. + * + * Returns: + * - VK_SUCCESS. + * - VK_ERROR_FEATURE_NOT_PRESENT if IOSurfaces are not supported on the platform. + * - VK_ERROR_INITIALIZATION_FAILED if ioSurface is specified and is not compatible with this VkImage. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ +VKAPI_ATTR VkResult VKAPI_CALL vkUseIOSurfaceMVK( + VkImage image, + IOSurfaceRef ioSurface); + +/** + * Returns, in the pIOSurface pointer, the IOSurface currently underlaying the VkImage, + * as set by the useIOSurfaceMVK() function, or returns null if the VkImage is not using + * an IOSurface, or if the platform does not support IOSurfaces. + * + * This function is not supported by the Vulkan SDK Loader and Layers framework + * and is unavailable when using the Vulkan SDK Loader and Layers framework. + */ +VKAPI_ATTR void VKAPI_CALL vkGetIOSurfaceMVK( + VkImage image, + IOSurfaceRef* pIOSurface); + + +#pragma mark - +#pragma mark Shaders + +/** + * NOTE: Shader code should be submitted as SPIR-V. Although some simple direct MSL shaders may work, + * direct loading of MSL source code or compiled MSL code is not officially supported at this time. + * Future versions of MoltenVK may support direct MSL submission again. + * + * Enumerates the magic number values to set in the MVKMSLSPIRVHeader when + * submitting a SPIR-V stream that contains either Metal Shading Language source + * code or Metal Shading Language compiled binary code in place of SPIR-V code. + */ +typedef enum { + kMVKMagicNumberSPIRVCode = 0x07230203, /**< SPIR-V stream contains standard SPIR-V code. */ + kMVKMagicNumberMSLSourceCode = 0x19960412, /**< SPIR-V stream contains Metal Shading Language source code. */ + kMVKMagicNumberMSLCompiledCode = 0x19981215, /**< SPIR-V stream contains Metal Shading Language compiled binary code. */ +} MVKMSLMagicNumber; + +/** + * NOTE: Shader code should be submitted as SPIR-V. Although some simple direct MSL shaders may work, + * direct loading of MSL source code or compiled MSL code is not officially supported at this time. + * Future versions of MoltenVK may support direct MSL submission again. + * + * Describes the header at the start of an SPIR-V stream, when it contains either + * Metal Shading Language source code or Metal Shading Language compiled binary code. + * + * To submit MSL source code to the vkCreateShaderModule() function in place of SPIR-V + * code, prepend a MVKMSLSPIRVHeader containing the kMVKMagicNumberMSLSourceCode magic + * number to the MSL source code. The MSL source code must be null-terminated. + * + * To submit MSL compiled binary code to the vkCreateShaderModule() function in place of + * SPIR-V code, prepend a MVKMSLSPIRVHeader containing the kMVKMagicNumberMSLCompiledCode + * magic number to the MSL compiled binary code. + * + * In both cases, the pCode element of VkShaderModuleCreateInfo should pointer to the + * location of the MVKMSLSPIRVHeader, and the MSL code should start at the byte immediately + * after the MVKMSLSPIRVHeader. + * + * The codeSize element of VkShaderModuleCreateInfo should be set to the entire size of + * the submitted code memory, including the additional sizeof(MVKMSLSPIRVHeader) bytes + * taken up by the MVKMSLSPIRVHeader, and, in the case of MSL source code, including + * the null-terminator byte. + */ +typedef uint32_t MVKMSLSPIRVHeader; + + +#endif // VK_NO_PROTOTYPES + + +#ifdef __cplusplus +} +#endif // __cplusplus + +#endif diff --git a/types.go b/types.go index 7c83fae..a86528b 100644 --- a/types.go +++ b/types.go @@ -1,6 +1,6 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Mon, 15 Oct 2018 01:04:16 +07. +// WARNING: This file has automatically been generated on Fri, 10 Feb 2023 11:56:02 PST. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -8,6 +8,7 @@ package vulkan /* #cgo CFLAGS: -I. -DVK_NO_PROTOTYPES #include "vulkan/vulkan.h" +#include "vulkan/vulkan_beta.h" #include "vk_wrapper.h" #include "vk_bridge.h" #include @@ -16,18 +17,27 @@ package vulkan import "C" import "unsafe" -// Flags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFlags.html -type Flags uint32 - // Bool32 type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBool32.html type Bool32 uint32 +// DeviceAddress type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceAddress.html +type DeviceAddress uint64 + // DeviceSize type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceSize.html type DeviceSize uint64 +// Flags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFlags.html +type Flags uint32 + // SampleMask type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSampleMask.html type SampleMask uint32 +// Buffer as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBuffer.html +type Buffer C.VkBuffer + +// Image as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImage.html +type Image C.VkImage + // Instance as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstance.html type Instance C.VkInstance @@ -52,12 +62,6 @@ type Fence C.VkFence // DeviceMemory as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceMemory.html type DeviceMemory C.VkDeviceMemory -// Buffer as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBuffer.html -type Buffer C.VkBuffer - -// Image as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImage.html -type Image C.VkImage - // Event as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkEvent.html type Event C.VkEvent @@ -79,54 +83,60 @@ type PipelineCache C.VkPipelineCache // PipelineLayout as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineLayout.html type PipelineLayout C.VkPipelineLayout -// RenderPass as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPass.html -type RenderPass C.VkRenderPass - // Pipeline as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipeline.html type Pipeline C.VkPipeline +// RenderPass as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPass.html +type RenderPass C.VkRenderPass + // DescriptorSetLayout as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayout.html type DescriptorSetLayout C.VkDescriptorSetLayout // Sampler as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSampler.html type Sampler C.VkSampler -// DescriptorPool as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPool.html -type DescriptorPool C.VkDescriptorPool - // DescriptorSet as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSet.html type DescriptorSet C.VkDescriptorSet +// DescriptorPool as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPool.html +type DescriptorPool C.VkDescriptorPool + // Framebuffer as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFramebuffer.html type Framebuffer C.VkFramebuffer // CommandPool as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandPool.html type CommandPool C.VkCommandPool -// InstanceCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateFlags.html -type InstanceCreateFlags uint32 +// AccessFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAccessFlags.html +type AccessFlags uint32 + +// ImageAspectFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageAspectFlags.html +type ImageAspectFlags uint32 // FormatFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFormatFeatureFlags.html type FormatFeatureFlags uint32 -// ImageUsageFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageUsageFlags.html -type ImageUsageFlags uint32 - // ImageCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCreateFlags.html type ImageCreateFlags uint32 // SampleCountFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSampleCountFlags.html type SampleCountFlags uint32 -// QueueFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFlags.html -type QueueFlags uint32 +// ImageUsageFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageUsageFlags.html +type ImageUsageFlags uint32 -// MemoryPropertyFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryPropertyFlags.html -type MemoryPropertyFlags uint32 +// InstanceCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateFlags.html +type InstanceCreateFlags uint32 // MemoryHeapFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryHeapFlags.html type MemoryHeapFlags uint32 +// MemoryPropertyFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryPropertyFlags.html +type MemoryPropertyFlags uint32 + +// QueueFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFlags.html +type QueueFlags uint32 + // DeviceCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceCreateFlags.html type DeviceCreateFlags uint32 @@ -139,15 +149,12 @@ type PipelineStageFlags uint32 // MemoryMapFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryMapFlags.html type MemoryMapFlags uint32 -// ImageAspectFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageAspectFlags.html -type ImageAspectFlags uint32 +// SparseMemoryBindFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseMemoryBindFlags.html +type SparseMemoryBindFlags uint32 // SparseImageFormatFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageFormatFlags.html type SparseImageFormatFlags uint32 -// SparseMemoryBindFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseMemoryBindFlags.html -type SparseMemoryBindFlags uint32 - // FenceCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceCreateFlags.html type FenceCreateFlags uint32 @@ -157,12 +164,12 @@ type SemaphoreCreateFlags uint32 // EventCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkEventCreateFlags.html type EventCreateFlags uint32 -// QueryPoolCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPoolCreateFlags.html -type QueryPoolCreateFlags uint32 - // QueryPipelineStatisticFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPipelineStatisticFlags.html type QueryPipelineStatisticFlags uint32 +// QueryPoolCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPoolCreateFlags.html +type QueryPoolCreateFlags uint32 + // QueryResultFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryResultFlags.html type QueryResultFlags uint32 @@ -184,12 +191,18 @@ type ShaderModuleCreateFlags uint32 // PipelineCacheCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheCreateFlags.html type PipelineCacheCreateFlags uint32 +// ColorComponentFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkColorComponentFlags.html +type ColorComponentFlags uint32 + // PipelineCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCreateFlags.html type PipelineCreateFlags uint32 // PipelineShaderStageCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineShaderStageCreateFlags.html type PipelineShaderStageCreateFlags uint32 +// CullModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCullModeFlags.html +type CullModeFlags uint32 + // PipelineVertexInputStateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineVertexInputStateCreateFlags.html type PipelineVertexInputStateCreateFlags uint32 @@ -205,9 +218,6 @@ type PipelineViewportStateCreateFlags uint32 // PipelineRasterizationStateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationStateCreateFlags.html type PipelineRasterizationStateCreateFlags uint32 -// CullModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCullModeFlags.html -type CullModeFlags uint32 - // PipelineMultisampleStateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineMultisampleStateCreateFlags.html type PipelineMultisampleStateCreateFlags uint32 @@ -217,9 +227,6 @@ type PipelineDepthStencilStateCreateFlags uint32 // PipelineColorBlendStateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorBlendStateCreateFlags.html type PipelineColorBlendStateCreateFlags uint32 -// ColorComponentFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkColorComponentFlags.html -type ColorComponentFlags uint32 - // PipelineDynamicStateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDynamicStateCreateFlags.html type PipelineDynamicStateCreateFlags uint32 @@ -232,33 +239,30 @@ type ShaderStageFlags uint32 // SamplerCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerCreateFlags.html type SamplerCreateFlags uint32 -// DescriptorSetLayoutCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutCreateFlags.html -type DescriptorSetLayoutCreateFlags uint32 - // DescriptorPoolCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolCreateFlags.html type DescriptorPoolCreateFlags uint32 // DescriptorPoolResetFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolResetFlags.html type DescriptorPoolResetFlags uint32 +// DescriptorSetLayoutCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutCreateFlags.html +type DescriptorSetLayoutCreateFlags uint32 + +// AttachmentDescriptionFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentDescriptionFlags.html +type AttachmentDescriptionFlags uint32 + +// DependencyFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDependencyFlags.html +type DependencyFlags uint32 + // FramebufferCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFramebufferCreateFlags.html type FramebufferCreateFlags uint32 // RenderPassCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassCreateFlags.html type RenderPassCreateFlags uint32 -// AttachmentDescriptionFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentDescriptionFlags.html -type AttachmentDescriptionFlags uint32 - // SubpassDescriptionFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDescriptionFlags.html type SubpassDescriptionFlags uint32 -// AccessFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAccessFlags.html -type AccessFlags uint32 - -// DependencyFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDependencyFlags.html -type DependencyFlags uint32 - // CommandPoolCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandPoolCreateFlags.html type CommandPoolCreateFlags uint32 @@ -277,104 +281,12 @@ type CommandBufferResetFlags uint32 // StencilFaceFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkStencilFaceFlags.html type StencilFaceFlags uint32 -// ApplicationInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkApplicationInfo.html -type ApplicationInfo struct { - SType StructureType - PNext unsafe.Pointer - PApplicationName string - ApplicationVersion uint32 - PEngineName string - EngineVersion uint32 - ApiVersion uint32 - refb0af7378 *C.VkApplicationInfo - allocsb0af7378 interface{} -} - -// InstanceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateInfo.html -type InstanceCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags InstanceCreateFlags - PApplicationInfo *ApplicationInfo - EnabledLayerCount uint32 - PpEnabledLayerNames []string - EnabledExtensionCount uint32 - PpEnabledExtensionNames []string - ref9b760798 *C.VkInstanceCreateInfo - allocs9b760798 interface{} -} - -// AllocationCallbacks as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAllocationCallbacks.html -type AllocationCallbacks C.VkAllocationCallbacks - -// PhysicalDeviceFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFeatures.html -type PhysicalDeviceFeatures struct { - RobustBufferAccess Bool32 - FullDrawIndexUint32 Bool32 - ImageCubeArray Bool32 - IndependentBlend Bool32 - GeometryShader Bool32 - TessellationShader Bool32 - SampleRateShading Bool32 - DualSrcBlend Bool32 - LogicOp Bool32 - MultiDrawIndirect Bool32 - DrawIndirectFirstInstance Bool32 - DepthClamp Bool32 - DepthBiasClamp Bool32 - FillModeNonSolid Bool32 - DepthBounds Bool32 - WideLines Bool32 - LargePoints Bool32 - AlphaToOne Bool32 - MultiViewport Bool32 - SamplerAnisotropy Bool32 - TextureCompressionETC2 Bool32 - TextureCompressionASTC_LDR Bool32 - TextureCompressionBC Bool32 - OcclusionQueryPrecise Bool32 - PipelineStatisticsQuery Bool32 - VertexPipelineStoresAndAtomics Bool32 - FragmentStoresAndAtomics Bool32 - ShaderTessellationAndGeometryPointSize Bool32 - ShaderImageGatherExtended Bool32 - ShaderStorageImageExtendedFormats Bool32 - ShaderStorageImageMultisample Bool32 - ShaderStorageImageReadWithoutFormat Bool32 - ShaderStorageImageWriteWithoutFormat Bool32 - ShaderUniformBufferArrayDynamicIndexing Bool32 - ShaderSampledImageArrayDynamicIndexing Bool32 - ShaderStorageBufferArrayDynamicIndexing Bool32 - ShaderStorageImageArrayDynamicIndexing Bool32 - ShaderClipDistance Bool32 - ShaderCullDistance Bool32 - ShaderFloat64 Bool32 - ShaderInt64 Bool32 - ShaderInt16 Bool32 - ShaderResourceResidency Bool32 - ShaderResourceMinLod Bool32 - SparseBinding Bool32 - SparseResidencyBuffer Bool32 - SparseResidencyImage2D Bool32 - SparseResidencyImage3D Bool32 - SparseResidency2Samples Bool32 - SparseResidency4Samples Bool32 - SparseResidency8Samples Bool32 - SparseResidency16Samples Bool32 - SparseResidencyAliased Bool32 - VariableMultisampleRate Bool32 - InheritedQueries Bool32 - reff97e405d *C.VkPhysicalDeviceFeatures - allocsf97e405d interface{} -} - -// FormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFormatProperties.html -type FormatProperties struct { - LinearTilingFeatures FormatFeatureFlags - OptimalTilingFeatures FormatFeatureFlags - BufferFeatures FormatFeatureFlags - refc4b9937b *C.VkFormatProperties - allocsc4b9937b interface{} +// Extent2D as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExtent2D.html +type Extent2D struct { + Width uint32 + Height uint32 + refe2edf56b *C.VkExtent2D + allocse2edf56b interface{} } // Extent3D as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExtent3D.html @@ -386,53 +298,303 @@ type Extent3D struct { allocsfbf6c42a interface{} } -// ImageFormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageFormatProperties.html -type ImageFormatProperties struct { - MaxExtent Extent3D - MaxMipLevels uint32 - MaxArrayLayers uint32 - SampleCounts SampleCountFlags - MaxResourceSize DeviceSize - ref4cfb2ea2 *C.VkImageFormatProperties - allocs4cfb2ea2 interface{} +// Offset2D as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkOffset2D.html +type Offset2D struct { + X int32 + Y int32 + ref32734883 *C.VkOffset2D + allocs32734883 interface{} } -// PhysicalDeviceLimits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceLimits.html -type PhysicalDeviceLimits struct { - MaxImageDimension1D uint32 - MaxImageDimension2D uint32 - MaxImageDimension3D uint32 - MaxImageDimensionCube uint32 - MaxImageArrayLayers uint32 - MaxTexelBufferElements uint32 - MaxUniformBufferRange uint32 - MaxStorageBufferRange uint32 - MaxPushConstantsSize uint32 - MaxMemoryAllocationCount uint32 - MaxSamplerAllocationCount uint32 - BufferImageGranularity DeviceSize - SparseAddressSpaceSize DeviceSize - MaxBoundDescriptorSets uint32 - MaxPerStageDescriptorSamplers uint32 - MaxPerStageDescriptorUniformBuffers uint32 - MaxPerStageDescriptorStorageBuffers uint32 - MaxPerStageDescriptorSampledImages uint32 - MaxPerStageDescriptorStorageImages uint32 - MaxPerStageDescriptorInputAttachments uint32 - MaxPerStageResources uint32 - MaxDescriptorSetSamplers uint32 - MaxDescriptorSetUniformBuffers uint32 - MaxDescriptorSetUniformBuffersDynamic uint32 - MaxDescriptorSetStorageBuffers uint32 - MaxDescriptorSetStorageBuffersDynamic uint32 - MaxDescriptorSetSampledImages uint32 - MaxDescriptorSetStorageImages uint32 - MaxDescriptorSetInputAttachments uint32 - MaxVertexInputAttributes uint32 - MaxVertexInputBindings uint32 - MaxVertexInputAttributeOffset uint32 - MaxVertexInputBindingStride uint32 - MaxVertexOutputComponents uint32 +// Offset3D as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkOffset3D.html +type Offset3D struct { + X int32 + Y int32 + Z int32 + ref2b6879c2 *C.VkOffset3D + allocs2b6879c2 interface{} +} + +// Rect2D as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRect2D.html +type Rect2D struct { + Offset Offset2D + Extent Extent2D + ref89e4256f *C.VkRect2D + allocs89e4256f interface{} +} + +// BaseInStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBaseInStructure.html +type BaseInStructure struct { + SType StructureType + PNext []BaseInStructure + refeae401a9 *C.VkBaseInStructure + allocseae401a9 interface{} +} + +// BaseOutStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBaseOutStructure.html +type BaseOutStructure struct { + SType StructureType + PNext []BaseOutStructure + refd536fcd0 *C.VkBaseOutStructure + allocsd536fcd0 interface{} +} + +// BufferMemoryBarrier as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferMemoryBarrier.html +type BufferMemoryBarrier struct { + SType StructureType + PNext unsafe.Pointer + SrcAccessMask AccessFlags + DstAccessMask AccessFlags + SrcQueueFamilyIndex uint32 + DstQueueFamilyIndex uint32 + Buffer Buffer + Offset DeviceSize + Size DeviceSize + refeaf4700b *C.VkBufferMemoryBarrier + allocseaf4700b interface{} +} + +// DispatchIndirectCommand as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDispatchIndirectCommand.html +type DispatchIndirectCommand struct { + X uint32 + Y uint32 + Z uint32 + refd298ba27 *C.VkDispatchIndirectCommand + allocsd298ba27 interface{} +} + +// DrawIndexedIndirectCommand as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrawIndexedIndirectCommand.html +type DrawIndexedIndirectCommand struct { + IndexCount uint32 + InstanceCount uint32 + FirstIndex uint32 + VertexOffset int32 + FirstInstance uint32 + ref4c78b5c3 *C.VkDrawIndexedIndirectCommand + allocs4c78b5c3 interface{} +} + +// DrawIndirectCommand as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrawIndirectCommand.html +type DrawIndirectCommand struct { + VertexCount uint32 + InstanceCount uint32 + FirstVertex uint32 + FirstInstance uint32 + ref2b5b67c4 *C.VkDrawIndirectCommand + allocs2b5b67c4 interface{} +} + +// ImageSubresourceRange as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageSubresourceRange.html +type ImageSubresourceRange struct { + AspectMask ImageAspectFlags + BaseMipLevel uint32 + LevelCount uint32 + BaseArrayLayer uint32 + LayerCount uint32 + ref5aa1126 *C.VkImageSubresourceRange + allocs5aa1126 interface{} +} + +// ImageMemoryBarrier as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageMemoryBarrier.html +type ImageMemoryBarrier struct { + SType StructureType + PNext unsafe.Pointer + SrcAccessMask AccessFlags + DstAccessMask AccessFlags + OldLayout ImageLayout + NewLayout ImageLayout + SrcQueueFamilyIndex uint32 + DstQueueFamilyIndex uint32 + Image Image + SubresourceRange ImageSubresourceRange + refd52734ec *C.VkImageMemoryBarrier + allocsd52734ec interface{} +} + +// MemoryBarrier as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryBarrier.html +type MemoryBarrier struct { + SType StructureType + PNext unsafe.Pointer + SrcAccessMask AccessFlags + DstAccessMask AccessFlags + ref977c944e *C.VkMemoryBarrier + allocs977c944e interface{} +} + +// PipelineCacheHeaderVersionOne as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheHeaderVersionOne.html +type PipelineCacheHeaderVersionOne struct { + HeaderSize uint32 + HeaderVersion PipelineCacheHeaderVersion + VendorID uint32 + DeviceID uint32 + PipelineCacheUUID [16]byte + refa2162ec9 *C.VkPipelineCacheHeaderVersionOne + allocsa2162ec9 interface{} +} + +// AllocationCallbacks as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAllocationCallbacks.html +type AllocationCallbacks C.VkAllocationCallbacks + +// ApplicationInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkApplicationInfo.html +type ApplicationInfo struct { + SType StructureType + PNext unsafe.Pointer + PApplicationName string + ApplicationVersion uint32 + PEngineName string + EngineVersion uint32 + ApiVersion uint32 + refb0af7378 *C.VkApplicationInfo + allocsb0af7378 interface{} +} + +// FormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFormatProperties.html +type FormatProperties struct { + LinearTilingFeatures FormatFeatureFlags + OptimalTilingFeatures FormatFeatureFlags + BufferFeatures FormatFeatureFlags + refc4b9937b *C.VkFormatProperties + allocsc4b9937b interface{} +} + +// ImageFormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageFormatProperties.html +type ImageFormatProperties struct { + MaxExtent Extent3D + MaxMipLevels uint32 + MaxArrayLayers uint32 + SampleCounts SampleCountFlags + MaxResourceSize DeviceSize + ref4cfb2ea2 *C.VkImageFormatProperties + allocs4cfb2ea2 interface{} +} + +// InstanceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateInfo.html +type InstanceCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags InstanceCreateFlags + PApplicationInfo *ApplicationInfo + EnabledLayerCount uint32 + PpEnabledLayerNames []string + EnabledExtensionCount uint32 + PpEnabledExtensionNames []string + ref9b760798 *C.VkInstanceCreateInfo + allocs9b760798 interface{} +} + +// MemoryHeap as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryHeap.html +type MemoryHeap struct { + Size DeviceSize + Flags MemoryHeapFlags + ref1eb195d5 *C.VkMemoryHeap + allocs1eb195d5 interface{} +} + +// MemoryType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryType.html +type MemoryType struct { + PropertyFlags MemoryPropertyFlags + HeapIndex uint32 + ref2f46e01d *C.VkMemoryType + allocs2f46e01d interface{} +} + +// PhysicalDeviceFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFeatures.html +type PhysicalDeviceFeatures struct { + RobustBufferAccess Bool32 + FullDrawIndexUint32 Bool32 + ImageCubeArray Bool32 + IndependentBlend Bool32 + GeometryShader Bool32 + TessellationShader Bool32 + SampleRateShading Bool32 + DualSrcBlend Bool32 + LogicOp Bool32 + MultiDrawIndirect Bool32 + DrawIndirectFirstInstance Bool32 + DepthClamp Bool32 + DepthBiasClamp Bool32 + FillModeNonSolid Bool32 + DepthBounds Bool32 + WideLines Bool32 + LargePoints Bool32 + AlphaToOne Bool32 + MultiViewport Bool32 + SamplerAnisotropy Bool32 + TextureCompressionETC2 Bool32 + TextureCompressionASTC_LDR Bool32 + TextureCompressionBC Bool32 + OcclusionQueryPrecise Bool32 + PipelineStatisticsQuery Bool32 + VertexPipelineStoresAndAtomics Bool32 + FragmentStoresAndAtomics Bool32 + ShaderTessellationAndGeometryPointSize Bool32 + ShaderImageGatherExtended Bool32 + ShaderStorageImageExtendedFormats Bool32 + ShaderStorageImageMultisample Bool32 + ShaderStorageImageReadWithoutFormat Bool32 + ShaderStorageImageWriteWithoutFormat Bool32 + ShaderUniformBufferArrayDynamicIndexing Bool32 + ShaderSampledImageArrayDynamicIndexing Bool32 + ShaderStorageBufferArrayDynamicIndexing Bool32 + ShaderStorageImageArrayDynamicIndexing Bool32 + ShaderClipDistance Bool32 + ShaderCullDistance Bool32 + ShaderFloat64 Bool32 + ShaderInt64 Bool32 + ShaderInt16 Bool32 + ShaderResourceResidency Bool32 + ShaderResourceMinLod Bool32 + SparseBinding Bool32 + SparseResidencyBuffer Bool32 + SparseResidencyImage2D Bool32 + SparseResidencyImage3D Bool32 + SparseResidency2Samples Bool32 + SparseResidency4Samples Bool32 + SparseResidency8Samples Bool32 + SparseResidency16Samples Bool32 + SparseResidencyAliased Bool32 + VariableMultisampleRate Bool32 + InheritedQueries Bool32 + reff97e405d *C.VkPhysicalDeviceFeatures + allocsf97e405d interface{} +} + +// PhysicalDeviceLimits as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceLimits.html +type PhysicalDeviceLimits struct { + MaxImageDimension1D uint32 + MaxImageDimension2D uint32 + MaxImageDimension3D uint32 + MaxImageDimensionCube uint32 + MaxImageArrayLayers uint32 + MaxTexelBufferElements uint32 + MaxUniformBufferRange uint32 + MaxStorageBufferRange uint32 + MaxPushConstantsSize uint32 + MaxMemoryAllocationCount uint32 + MaxSamplerAllocationCount uint32 + BufferImageGranularity DeviceSize + SparseAddressSpaceSize DeviceSize + MaxBoundDescriptorSets uint32 + MaxPerStageDescriptorSamplers uint32 + MaxPerStageDescriptorUniformBuffers uint32 + MaxPerStageDescriptorStorageBuffers uint32 + MaxPerStageDescriptorSampledImages uint32 + MaxPerStageDescriptorStorageImages uint32 + MaxPerStageDescriptorInputAttachments uint32 + MaxPerStageResources uint32 + MaxDescriptorSetSamplers uint32 + MaxDescriptorSetUniformBuffers uint32 + MaxDescriptorSetUniformBuffersDynamic uint32 + MaxDescriptorSetStorageBuffers uint32 + MaxDescriptorSetStorageBuffersDynamic uint32 + MaxDescriptorSetSampledImages uint32 + MaxDescriptorSetStorageImages uint32 + MaxDescriptorSetInputAttachments uint32 + MaxVertexInputAttributes uint32 + MaxVertexInputBindings uint32 + MaxVertexInputAttributeOffset uint32 + MaxVertexInputBindingStride uint32 + MaxVertexOutputComponents uint32 MaxTessellationGenerationLevel uint32 MaxTessellationPatchSize uint32 MaxTessellationControlPerVertexInputComponents uint32 @@ -465,7 +627,7 @@ type PhysicalDeviceLimits struct { MaxViewportDimensions [2]uint32 ViewportBoundsRange [2]float32 ViewportSubPixelBits uint32 - MinMemoryMapAlignment uint + MinMemoryMapAlignment uint64 MinTexelBufferOffsetAlignment DeviceSize MinUniformBufferOffsetAlignment DeviceSize MinStorageBufferOffsetAlignment DeviceSize @@ -509,4006 +671,6870 @@ type PhysicalDeviceLimits struct { allocs7926795a interface{} } -// PhysicalDeviceSparseProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSparseProperties.html -type PhysicalDeviceSparseProperties struct { - ResidencyStandard2DBlockShape Bool32 - ResidencyStandard2DMultisampleBlockShape Bool32 - ResidencyStandard3DBlockShape Bool32 - ResidencyAlignedMipSize Bool32 - ResidencyNonResidentStrict Bool32 - ref6d7c11e6 *C.VkPhysicalDeviceSparseProperties - allocs6d7c11e6 interface{} +// PhysicalDeviceMemoryProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMemoryProperties.html +type PhysicalDeviceMemoryProperties struct { + MemoryTypeCount uint32 + MemoryTypes [32]MemoryType + MemoryHeapCount uint32 + MemoryHeaps [16]MemoryHeap + ref3aabb5fd *C.VkPhysicalDeviceMemoryProperties + allocs3aabb5fd interface{} +} + +// PhysicalDeviceSparseProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSparseProperties.html +type PhysicalDeviceSparseProperties struct { + ResidencyStandard2DBlockShape Bool32 + ResidencyStandard2DMultisampleBlockShape Bool32 + ResidencyStandard3DBlockShape Bool32 + ResidencyAlignedMipSize Bool32 + ResidencyNonResidentStrict Bool32 + ref6d7c11e6 *C.VkPhysicalDeviceSparseProperties + allocs6d7c11e6 interface{} +} + +// PhysicalDeviceProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProperties.html +type PhysicalDeviceProperties struct { + ApiVersion uint32 + DriverVersion uint32 + VendorID uint32 + DeviceID uint32 + DeviceType PhysicalDeviceType + DeviceName [256]byte + PipelineCacheUUID [16]byte + Limits PhysicalDeviceLimits + SparseProperties PhysicalDeviceSparseProperties + ref1080ca9d *C.VkPhysicalDeviceProperties + allocs1080ca9d interface{} +} + +// QueueFamilyProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFamilyProperties.html +type QueueFamilyProperties struct { + QueueFlags QueueFlags + QueueCount uint32 + TimestampValidBits uint32 + MinImageTransferGranularity Extent3D + refd538c446 *C.VkQueueFamilyProperties + allocsd538c446 interface{} +} + +// DeviceQueueCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueCreateInfo.html +type DeviceQueueCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags DeviceQueueCreateFlags + QueueFamilyIndex uint32 + QueueCount uint32 + PQueuePriorities []float32 + ref6087b30d *C.VkDeviceQueueCreateInfo + allocs6087b30d interface{} +} + +// DeviceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceCreateInfo.html +type DeviceCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags DeviceCreateFlags + QueueCreateInfoCount uint32 + PQueueCreateInfos []DeviceQueueCreateInfo + EnabledLayerCount uint32 + PpEnabledLayerNames []string + EnabledExtensionCount uint32 + PpEnabledExtensionNames []string + PEnabledFeatures []PhysicalDeviceFeatures + refc0d8b997 *C.VkDeviceCreateInfo + allocsc0d8b997 interface{} +} + +// ExtensionProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExtensionProperties.html +type ExtensionProperties struct { + ExtensionName [256]byte + SpecVersion uint32 + ref2f001956 *C.VkExtensionProperties + allocs2f001956 interface{} +} + +// LayerProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkLayerProperties.html +type LayerProperties struct { + LayerName [256]byte + SpecVersion uint32 + ImplementationVersion uint32 + Description [256]byte + refd9407ce7 *C.VkLayerProperties + allocsd9407ce7 interface{} +} + +// SubmitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubmitInfo.html +type SubmitInfo struct { + SType StructureType + PNext unsafe.Pointer + WaitSemaphoreCount uint32 + PWaitSemaphores []Semaphore + PWaitDstStageMask []PipelineStageFlags + CommandBufferCount uint32 + PCommandBuffers []CommandBuffer + SignalSemaphoreCount uint32 + PSignalSemaphores []Semaphore + ref22884025 *C.VkSubmitInfo + allocs22884025 interface{} +} + +// MappedMemoryRange as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMappedMemoryRange.html +type MappedMemoryRange struct { + SType StructureType + PNext unsafe.Pointer + Memory DeviceMemory + Offset DeviceSize + Size DeviceSize + ref42a37320 *C.VkMappedMemoryRange + allocs42a37320 interface{} +} + +// MemoryAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryAllocateInfo.html +type MemoryAllocateInfo struct { + SType StructureType + PNext unsafe.Pointer + AllocationSize DeviceSize + MemoryTypeIndex uint32 + ref31032b *C.VkMemoryAllocateInfo + allocs31032b interface{} +} + +// MemoryRequirements as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryRequirements.html +type MemoryRequirements struct { + Size DeviceSize + Alignment DeviceSize + MemoryTypeBits uint32 + ref5259fc6b *C.VkMemoryRequirements + allocs5259fc6b interface{} +} + +// SparseMemoryBind as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseMemoryBind.html +type SparseMemoryBind struct { + ResourceOffset DeviceSize + Size DeviceSize + Memory DeviceMemory + MemoryOffset DeviceSize + Flags SparseMemoryBindFlags + ref5bf418e8 *C.VkSparseMemoryBind + allocs5bf418e8 interface{} +} + +// SparseBufferMemoryBindInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseBufferMemoryBindInfo.html +type SparseBufferMemoryBindInfo struct { + Buffer Buffer + BindCount uint32 + PBinds []SparseMemoryBind + refebcaf40c *C.VkSparseBufferMemoryBindInfo + allocsebcaf40c interface{} +} + +// SparseImageOpaqueMemoryBindInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageOpaqueMemoryBindInfo.html +type SparseImageOpaqueMemoryBindInfo struct { + Image Image + BindCount uint32 + PBinds []SparseMemoryBind + reffb1b3d56 *C.VkSparseImageOpaqueMemoryBindInfo + allocsfb1b3d56 interface{} +} + +// ImageSubresource as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageSubresource.html +type ImageSubresource struct { + AspectMask ImageAspectFlags + MipLevel uint32 + ArrayLayer uint32 + reffeaa0d8a *C.VkImageSubresource + allocsfeaa0d8a interface{} +} + +// SparseImageMemoryBind as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageMemoryBind.html +type SparseImageMemoryBind struct { + Subresource ImageSubresource + Offset Offset3D + Extent Extent3D + Memory DeviceMemory + MemoryOffset DeviceSize + Flags SparseMemoryBindFlags + ref41b516d7 *C.VkSparseImageMemoryBind + allocs41b516d7 interface{} +} + +// SparseImageMemoryBindInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageMemoryBindInfo.html +type SparseImageMemoryBindInfo struct { + Image Image + BindCount uint32 + PBinds []SparseImageMemoryBind + ref50faeb70 *C.VkSparseImageMemoryBindInfo + allocs50faeb70 interface{} +} + +// BindSparseInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindSparseInfo.html +type BindSparseInfo struct { + SType StructureType + PNext unsafe.Pointer + WaitSemaphoreCount uint32 + PWaitSemaphores []Semaphore + BufferBindCount uint32 + PBufferBinds []SparseBufferMemoryBindInfo + ImageOpaqueBindCount uint32 + PImageOpaqueBinds []SparseImageOpaqueMemoryBindInfo + ImageBindCount uint32 + PImageBinds []SparseImageMemoryBindInfo + SignalSemaphoreCount uint32 + PSignalSemaphores []Semaphore + refb0cbe910 *C.VkBindSparseInfo + allocsb0cbe910 interface{} +} + +// SparseImageFormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageFormatProperties.html +type SparseImageFormatProperties struct { + AspectMask ImageAspectFlags + ImageGranularity Extent3D + Flags SparseImageFormatFlags + ref2c12cf44 *C.VkSparseImageFormatProperties + allocs2c12cf44 interface{} +} + +// SparseImageMemoryRequirements as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageMemoryRequirements.html +type SparseImageMemoryRequirements struct { + FormatProperties SparseImageFormatProperties + ImageMipTailFirstLod uint32 + ImageMipTailSize DeviceSize + ImageMipTailOffset DeviceSize + ImageMipTailStride DeviceSize + ref685a2323 *C.VkSparseImageMemoryRequirements + allocs685a2323 interface{} +} + +// FenceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceCreateInfo.html +type FenceCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags FenceCreateFlags + refb8ff4840 *C.VkFenceCreateInfo + allocsb8ff4840 interface{} +} + +// SemaphoreCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreCreateInfo.html +type SemaphoreCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags SemaphoreCreateFlags + reff130cd2b *C.VkSemaphoreCreateInfo + allocsf130cd2b interface{} +} + +// EventCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkEventCreateInfo.html +type EventCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags EventCreateFlags + refa54f9ec8 *C.VkEventCreateInfo + allocsa54f9ec8 interface{} +} + +// QueryPoolCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPoolCreateInfo.html +type QueryPoolCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags QueryPoolCreateFlags + QueryType QueryType + QueryCount uint32 + PipelineStatistics QueryPipelineStatisticFlags + ref85dfcd4a *C.VkQueryPoolCreateInfo + allocs85dfcd4a interface{} +} + +// BufferCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferCreateInfo.html +type BufferCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags BufferCreateFlags + Size DeviceSize + Usage BufferUsageFlags + SharingMode SharingMode + QueueFamilyIndexCount uint32 + PQueueFamilyIndices []uint32 + reffe19d2cd *C.VkBufferCreateInfo + allocsfe19d2cd interface{} +} + +// BufferViewCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferViewCreateInfo.html +type BufferViewCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags BufferViewCreateFlags + Buffer Buffer + Format Format + Offset DeviceSize + Range DeviceSize + ref49b97027 *C.VkBufferViewCreateInfo + allocs49b97027 interface{} +} + +// ImageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCreateInfo.html +type ImageCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags ImageCreateFlags + ImageType ImageType + Format Format + Extent Extent3D + MipLevels uint32 + ArrayLayers uint32 + Samples SampleCountFlagBits + Tiling ImageTiling + Usage ImageUsageFlags + SharingMode SharingMode + QueueFamilyIndexCount uint32 + PQueueFamilyIndices []uint32 + InitialLayout ImageLayout + reffb587ba1 *C.VkImageCreateInfo + allocsfb587ba1 interface{} +} + +// SubresourceLayout as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubresourceLayout.html +type SubresourceLayout struct { + Offset DeviceSize + Size DeviceSize + RowPitch DeviceSize + ArrayPitch DeviceSize + DepthPitch DeviceSize + ref182612ad *C.VkSubresourceLayout + allocs182612ad interface{} +} + +// ComponentMapping as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkComponentMapping.html +type ComponentMapping struct { + R ComponentSwizzle + G ComponentSwizzle + B ComponentSwizzle + A ComponentSwizzle + ref63d3d563 *C.VkComponentMapping + allocs63d3d563 interface{} +} + +// ImageViewCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewCreateInfo.html +type ImageViewCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags ImageViewCreateFlags + Image Image + ViewType ImageViewType + Format Format + Components ComponentMapping + SubresourceRange ImageSubresourceRange + ref77e8d4b8 *C.VkImageViewCreateInfo + allocs77e8d4b8 interface{} +} + +// ShaderModuleCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShaderModuleCreateInfo.html +type ShaderModuleCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags ShaderModuleCreateFlags + CodeSize uint64 + PCode []uint32 + refc663d23e *C.VkShaderModuleCreateInfo + allocsc663d23e interface{} +} + +// PipelineCacheCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheCreateInfo.html +type PipelineCacheCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineCacheCreateFlags + InitialDataSize uint64 + PInitialData unsafe.Pointer + reff11e7dd1 *C.VkPipelineCacheCreateInfo + allocsf11e7dd1 interface{} +} + +// SpecializationMapEntry as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSpecializationMapEntry.html +type SpecializationMapEntry struct { + ConstantID uint32 + Offset uint32 + Size uint64 + ref2fd815d1 *C.VkSpecializationMapEntry + allocs2fd815d1 interface{} +} + +// SpecializationInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSpecializationInfo.html +type SpecializationInfo struct { + MapEntryCount uint32 + PMapEntries []SpecializationMapEntry + DataSize uint64 + PData unsafe.Pointer + ref6bc395a3 *C.VkSpecializationInfo + allocs6bc395a3 interface{} +} + +// PipelineShaderStageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineShaderStageCreateInfo.html +type PipelineShaderStageCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineShaderStageCreateFlags + Stage ShaderStageFlagBits + Module ShaderModule + PName string + PSpecializationInfo []SpecializationInfo + ref50ba8b60 *C.VkPipelineShaderStageCreateInfo + allocs50ba8b60 interface{} +} + +// ComputePipelineCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkComputePipelineCreateInfo.html +type ComputePipelineCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineCreateFlags + Stage PipelineShaderStageCreateInfo + Layout PipelineLayout + BasePipelineHandle Pipeline + BasePipelineIndex int32 + ref77823220 *C.VkComputePipelineCreateInfo + allocs77823220 interface{} +} + +// VertexInputBindingDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputBindingDescription.html +type VertexInputBindingDescription struct { + Binding uint32 + Stride uint32 + InputRate VertexInputRate + ref5c9d8c23 *C.VkVertexInputBindingDescription + allocs5c9d8c23 interface{} +} + +// VertexInputAttributeDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputAttributeDescription.html +type VertexInputAttributeDescription struct { + Location uint32 + Binding uint32 + Format Format + Offset uint32 + refdc4635ff *C.VkVertexInputAttributeDescription + allocsdc4635ff interface{} +} + +// PipelineVertexInputStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineVertexInputStateCreateInfo.html +type PipelineVertexInputStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineVertexInputStateCreateFlags + VertexBindingDescriptionCount uint32 + PVertexBindingDescriptions []VertexInputBindingDescription + VertexAttributeDescriptionCount uint32 + PVertexAttributeDescriptions []VertexInputAttributeDescription + ref5fe4aa50 *C.VkPipelineVertexInputStateCreateInfo + allocs5fe4aa50 interface{} +} + +// PipelineInputAssemblyStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineInputAssemblyStateCreateInfo.html +type PipelineInputAssemblyStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineInputAssemblyStateCreateFlags + Topology PrimitiveTopology + PrimitiveRestartEnable Bool32 + ref22e1691d *C.VkPipelineInputAssemblyStateCreateInfo + allocs22e1691d interface{} +} + +// PipelineTessellationStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineTessellationStateCreateInfo.html +type PipelineTessellationStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineTessellationStateCreateFlags + PatchControlPoints uint32 + ref4ef3997a *C.VkPipelineTessellationStateCreateInfo + allocs4ef3997a interface{} +} + +// Viewport as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkViewport.html +type Viewport struct { + X float32 + Y float32 + Width float32 + Height float32 + MinDepth float32 + MaxDepth float32 + ref75cf5291 *C.VkViewport + allocs75cf5291 interface{} +} + +// PipelineViewportStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportStateCreateInfo.html +type PipelineViewportStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineViewportStateCreateFlags + ViewportCount uint32 + PViewports []Viewport + ScissorCount uint32 + PScissors []Rect2D + refc4705791 *C.VkPipelineViewportStateCreateInfo + allocsc4705791 interface{} +} + +// PipelineRasterizationStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationStateCreateInfo.html +type PipelineRasterizationStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineRasterizationStateCreateFlags + DepthClampEnable Bool32 + RasterizerDiscardEnable Bool32 + PolygonMode PolygonMode + CullMode CullModeFlags + FrontFace FrontFace + DepthBiasEnable Bool32 + DepthBiasConstantFactor float32 + DepthBiasClamp float32 + DepthBiasSlopeFactor float32 + LineWidth float32 + ref48cb9fad *C.VkPipelineRasterizationStateCreateInfo + allocs48cb9fad interface{} +} + +// PipelineMultisampleStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineMultisampleStateCreateInfo.html +type PipelineMultisampleStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineMultisampleStateCreateFlags + RasterizationSamples SampleCountFlagBits + SampleShadingEnable Bool32 + MinSampleShading float32 + PSampleMask []SampleMask + AlphaToCoverageEnable Bool32 + AlphaToOneEnable Bool32 + refb6538bfb *C.VkPipelineMultisampleStateCreateInfo + allocsb6538bfb interface{} +} + +// StencilOpState as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkStencilOpState.html +type StencilOpState struct { + FailOp StencilOp + PassOp StencilOp + DepthFailOp StencilOp + CompareOp CompareOp + CompareMask uint32 + WriteMask uint32 + Reference uint32 + ref28886871 *C.VkStencilOpState + allocs28886871 interface{} +} + +// PipelineDepthStencilStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDepthStencilStateCreateInfo.html +type PipelineDepthStencilStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineDepthStencilStateCreateFlags + DepthTestEnable Bool32 + DepthWriteEnable Bool32 + DepthCompareOp CompareOp + DepthBoundsTestEnable Bool32 + StencilTestEnable Bool32 + Front StencilOpState + Back StencilOpState + MinDepthBounds float32 + MaxDepthBounds float32 + refeabfcf1 *C.VkPipelineDepthStencilStateCreateInfo + allocseabfcf1 interface{} +} + +// PipelineColorBlendAttachmentState as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorBlendAttachmentState.html +type PipelineColorBlendAttachmentState struct { + BlendEnable Bool32 + SrcColorBlendFactor BlendFactor + DstColorBlendFactor BlendFactor + ColorBlendOp BlendOp + SrcAlphaBlendFactor BlendFactor + DstAlphaBlendFactor BlendFactor + AlphaBlendOp BlendOp + ColorWriteMask ColorComponentFlags + ref9e889477 *C.VkPipelineColorBlendAttachmentState + allocs9e889477 interface{} +} + +// PipelineColorBlendStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorBlendStateCreateInfo.html +type PipelineColorBlendStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineColorBlendStateCreateFlags + LogicOpEnable Bool32 + LogicOp LogicOp + AttachmentCount uint32 + PAttachments []PipelineColorBlendAttachmentState + BlendConstants [4]float32 + ref2a9b490b *C.VkPipelineColorBlendStateCreateInfo + allocs2a9b490b interface{} +} + +// PipelineDynamicStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDynamicStateCreateInfo.html +type PipelineDynamicStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineDynamicStateCreateFlags + DynamicStateCount uint32 + PDynamicStates []DynamicState + ref246d7bc8 *C.VkPipelineDynamicStateCreateInfo + allocs246d7bc8 interface{} +} + +// GraphicsPipelineCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGraphicsPipelineCreateInfo.html +type GraphicsPipelineCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineCreateFlags + StageCount uint32 + PStages []PipelineShaderStageCreateInfo + PVertexInputState *PipelineVertexInputStateCreateInfo + PInputAssemblyState *PipelineInputAssemblyStateCreateInfo + PTessellationState *PipelineTessellationStateCreateInfo + PViewportState *PipelineViewportStateCreateInfo + PRasterizationState *PipelineRasterizationStateCreateInfo + PMultisampleState *PipelineMultisampleStateCreateInfo + PDepthStencilState *PipelineDepthStencilStateCreateInfo + PColorBlendState *PipelineColorBlendStateCreateInfo + PDynamicState *PipelineDynamicStateCreateInfo + Layout PipelineLayout + RenderPass RenderPass + Subpass uint32 + BasePipelineHandle Pipeline + BasePipelineIndex int32 + ref178f88b6 *C.VkGraphicsPipelineCreateInfo + allocs178f88b6 interface{} +} + +// PushConstantRange as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPushConstantRange.html +type PushConstantRange struct { + StageFlags ShaderStageFlags + Offset uint32 + Size uint32 + ref6f025856 *C.VkPushConstantRange + allocs6f025856 interface{} +} + +// PipelineLayoutCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineLayoutCreateInfo.html +type PipelineLayoutCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineLayoutCreateFlags + SetLayoutCount uint32 + PSetLayouts []DescriptorSetLayout + PushConstantRangeCount uint32 + PPushConstantRanges []PushConstantRange + ref64cc4eed *C.VkPipelineLayoutCreateInfo + allocs64cc4eed interface{} +} + +// SamplerCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerCreateInfo.html +type SamplerCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags SamplerCreateFlags + MagFilter Filter + MinFilter Filter + MipmapMode SamplerMipmapMode + AddressModeU SamplerAddressMode + AddressModeV SamplerAddressMode + AddressModeW SamplerAddressMode + MipLodBias float32 + AnisotropyEnable Bool32 + MaxAnisotropy float32 + CompareEnable Bool32 + CompareOp CompareOp + MinLod float32 + MaxLod float32 + BorderColor BorderColor + UnnormalizedCoordinates Bool32 + refce034abf *C.VkSamplerCreateInfo + allocsce034abf interface{} +} + +// CopyDescriptorSet as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCopyDescriptorSet.html +type CopyDescriptorSet struct { + SType StructureType + PNext unsafe.Pointer + SrcSet DescriptorSet + SrcBinding uint32 + SrcArrayElement uint32 + DstSet DescriptorSet + DstBinding uint32 + DstArrayElement uint32 + DescriptorCount uint32 + reffe237a3a *C.VkCopyDescriptorSet + allocsfe237a3a interface{} +} + +// DescriptorBufferInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBufferInfo.html +type DescriptorBufferInfo struct { + Buffer Buffer + Offset DeviceSize + Range DeviceSize + refe64bec0e *C.VkDescriptorBufferInfo + allocse64bec0e interface{} +} + +// DescriptorImageInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorImageInfo.html +type DescriptorImageInfo struct { + Sampler Sampler + ImageView ImageView + ImageLayout ImageLayout + refaf073b07 *C.VkDescriptorImageInfo + allocsaf073b07 interface{} +} + +// DescriptorPoolSize as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolSize.html +type DescriptorPoolSize struct { + Type DescriptorType + DescriptorCount uint32 + refe15137da *C.VkDescriptorPoolSize + allocse15137da interface{} +} + +// DescriptorPoolCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolCreateInfo.html +type DescriptorPoolCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags DescriptorPoolCreateFlags + MaxSets uint32 + PoolSizeCount uint32 + PPoolSizes []DescriptorPoolSize + ref19868463 *C.VkDescriptorPoolCreateInfo + allocs19868463 interface{} +} + +// DescriptorSetAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetAllocateInfo.html +type DescriptorSetAllocateInfo struct { + SType StructureType + PNext unsafe.Pointer + DescriptorPool DescriptorPool + DescriptorSetCount uint32 + PSetLayouts []DescriptorSetLayout + ref2dd6cc22 *C.VkDescriptorSetAllocateInfo + allocs2dd6cc22 interface{} +} + +// DescriptorSetLayoutBinding as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutBinding.html +type DescriptorSetLayoutBinding struct { + Binding uint32 + DescriptorType DescriptorType + DescriptorCount uint32 + StageFlags ShaderStageFlags + PImmutableSamplers []Sampler + ref8b50b4ec *C.VkDescriptorSetLayoutBinding + allocs8b50b4ec interface{} +} + +// DescriptorSetLayoutCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutCreateInfo.html +type DescriptorSetLayoutCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags DescriptorSetLayoutCreateFlags + BindingCount uint32 + PBindings []DescriptorSetLayoutBinding + ref5ee8e0ed *C.VkDescriptorSetLayoutCreateInfo + allocs5ee8e0ed interface{} +} + +// WriteDescriptorSet as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkWriteDescriptorSet.html +type WriteDescriptorSet struct { + SType StructureType + PNext unsafe.Pointer + DstSet DescriptorSet + DstBinding uint32 + DstArrayElement uint32 + DescriptorCount uint32 + DescriptorType DescriptorType + PImageInfo []DescriptorImageInfo + PBufferInfo []DescriptorBufferInfo + PTexelBufferView []BufferView + ref3cec3f3f *C.VkWriteDescriptorSet + allocs3cec3f3f interface{} +} + +// AttachmentDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentDescription.html +type AttachmentDescription struct { + Flags AttachmentDescriptionFlags + Format Format + Samples SampleCountFlagBits + LoadOp AttachmentLoadOp + StoreOp AttachmentStoreOp + StencilLoadOp AttachmentLoadOp + StencilStoreOp AttachmentStoreOp + InitialLayout ImageLayout + FinalLayout ImageLayout + refa5d685fc *C.VkAttachmentDescription + allocsa5d685fc interface{} +} + +// AttachmentReference as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentReference.html +type AttachmentReference struct { + Attachment uint32 + Layout ImageLayout + refef4776de *C.VkAttachmentReference + allocsef4776de interface{} +} + +// FramebufferCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFramebufferCreateInfo.html +type FramebufferCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags FramebufferCreateFlags + RenderPass RenderPass + AttachmentCount uint32 + PAttachments []ImageView + Width uint32 + Height uint32 + Layers uint32 + refa3ad85cc *C.VkFramebufferCreateInfo + allocsa3ad85cc interface{} +} + +// SubpassDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDescription.html +type SubpassDescription struct { + Flags SubpassDescriptionFlags + PipelineBindPoint PipelineBindPoint + InputAttachmentCount uint32 + PInputAttachments []AttachmentReference + ColorAttachmentCount uint32 + PColorAttachments []AttachmentReference + PResolveAttachments []AttachmentReference + PDepthStencilAttachment *AttachmentReference + PreserveAttachmentCount uint32 + PPreserveAttachments []uint32 + refc7bfeda *C.VkSubpassDescription + allocsc7bfeda interface{} +} + +// SubpassDependency as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDependency.html +type SubpassDependency struct { + SrcSubpass uint32 + DstSubpass uint32 + SrcStageMask PipelineStageFlags + DstStageMask PipelineStageFlags + SrcAccessMask AccessFlags + DstAccessMask AccessFlags + DependencyFlags DependencyFlags + refdb197adb *C.VkSubpassDependency + allocsdb197adb interface{} +} + +// RenderPassCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassCreateInfo.html +type RenderPassCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags RenderPassCreateFlags + AttachmentCount uint32 + PAttachments []AttachmentDescription + SubpassCount uint32 + PSubpasses []SubpassDescription + DependencyCount uint32 + PDependencies []SubpassDependency + ref886d7d86 *C.VkRenderPassCreateInfo + allocs886d7d86 interface{} +} + +// CommandPoolCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandPoolCreateInfo.html +type CommandPoolCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags CommandPoolCreateFlags + QueueFamilyIndex uint32 + ref73550de0 *C.VkCommandPoolCreateInfo + allocs73550de0 interface{} +} + +// CommandBufferAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferAllocateInfo.html +type CommandBufferAllocateInfo struct { + SType StructureType + PNext unsafe.Pointer + CommandPool CommandPool + Level CommandBufferLevel + CommandBufferCount uint32 + refd1a0a7c8 *C.VkCommandBufferAllocateInfo + allocsd1a0a7c8 interface{} +} + +// CommandBufferInheritanceInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferInheritanceInfo.html +type CommandBufferInheritanceInfo struct { + SType StructureType + PNext unsafe.Pointer + RenderPass RenderPass + Subpass uint32 + Framebuffer Framebuffer + OcclusionQueryEnable Bool32 + QueryFlags QueryControlFlags + PipelineStatistics QueryPipelineStatisticFlags + ref737f8019 *C.VkCommandBufferInheritanceInfo + allocs737f8019 interface{} +} + +// CommandBufferBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferBeginInfo.html +type CommandBufferBeginInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags CommandBufferUsageFlags + PInheritanceInfo []CommandBufferInheritanceInfo + ref266762df *C.VkCommandBufferBeginInfo + allocs266762df interface{} +} + +// BufferCopy as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferCopy.html +type BufferCopy struct { + SrcOffset DeviceSize + DstOffset DeviceSize + Size DeviceSize + ref12184ffd *C.VkBufferCopy + allocs12184ffd interface{} +} + +// ImageSubresourceLayers as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageSubresourceLayers.html +type ImageSubresourceLayers struct { + AspectMask ImageAspectFlags + MipLevel uint32 + BaseArrayLayer uint32 + LayerCount uint32 + ref3b13bcd2 *C.VkImageSubresourceLayers + allocs3b13bcd2 interface{} +} + +// BufferImageCopy as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferImageCopy.html +type BufferImageCopy struct { + BufferOffset DeviceSize + BufferRowLength uint32 + BufferImageHeight uint32 + ImageSubresource ImageSubresourceLayers + ImageOffset Offset3D + ImageExtent Extent3D + ref6d50e36e *C.VkBufferImageCopy + allocs6d50e36e interface{} +} + +// ClearColorValue as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearColorValue.html +const sizeofClearColorValue = unsafe.Sizeof(C.VkClearColorValue{}) + +type ClearColorValue [sizeofClearColorValue]byte + +// ClearDepthStencilValue as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearDepthStencilValue.html +type ClearDepthStencilValue struct { + Depth float32 + Stencil uint32 + refa7d07c03 *C.VkClearDepthStencilValue + allocsa7d07c03 interface{} +} + +// ClearValue as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearValue.html +const sizeofClearValue = unsafe.Sizeof(C.VkClearValue{}) + +type ClearValue [sizeofClearValue]byte + +// ClearAttachment as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearAttachment.html +type ClearAttachment struct { + AspectMask ImageAspectFlags + ColorAttachment uint32 + ClearValue ClearValue + refe9150303 *C.VkClearAttachment + allocse9150303 interface{} +} + +// ClearRect as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearRect.html +type ClearRect struct { + Rect Rect2D + BaseArrayLayer uint32 + LayerCount uint32 + ref1d449c8b *C.VkClearRect + allocs1d449c8b interface{} +} + +// ImageBlit as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageBlit.html +type ImageBlit struct { + SrcSubresource ImageSubresourceLayers + SrcOffsets [2]Offset3D + DstSubresource ImageSubresourceLayers + DstOffsets [2]Offset3D + ref11311e8d *C.VkImageBlit + allocs11311e8d interface{} +} + +// ImageCopy as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCopy.html +type ImageCopy struct { + SrcSubresource ImageSubresourceLayers + SrcOffset Offset3D + DstSubresource ImageSubresourceLayers + DstOffset Offset3D + Extent Extent3D + ref4e7a1214 *C.VkImageCopy + allocs4e7a1214 interface{} +} + +// ImageResolve as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageResolve.html +type ImageResolve struct { + SrcSubresource ImageSubresourceLayers + SrcOffset Offset3D + DstSubresource ImageSubresourceLayers + DstOffset Offset3D + Extent Extent3D + ref7bda856d *C.VkImageResolve + allocs7bda856d interface{} +} + +// RenderPassBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassBeginInfo.html +type RenderPassBeginInfo struct { + SType StructureType + PNext unsafe.Pointer + RenderPass RenderPass + Framebuffer Framebuffer + RenderArea Rect2D + ClearValueCount uint32 + PClearValues []ClearValue + ref3c3752c8 *C.VkRenderPassBeginInfo + allocs3c3752c8 interface{} +} + +// SamplerYcbcrConversion as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrConversion.html +type SamplerYcbcrConversion C.VkSamplerYcbcrConversion + +// DescriptorUpdateTemplate as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorUpdateTemplate.html +type DescriptorUpdateTemplate C.VkDescriptorUpdateTemplate + +// SubgroupFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubgroupFeatureFlags.html +type SubgroupFeatureFlags uint32 + +// PeerMemoryFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPeerMemoryFeatureFlags.html +type PeerMemoryFeatureFlags uint32 + +// MemoryAllocateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryAllocateFlags.html +type MemoryAllocateFlags uint32 + +// CommandPoolTrimFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandPoolTrimFlags.html +type CommandPoolTrimFlags uint32 + +// DescriptorUpdateTemplateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorUpdateTemplateCreateFlags.html +type DescriptorUpdateTemplateCreateFlags uint32 + +// ExternalMemoryHandleTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryHandleTypeFlags.html +type ExternalMemoryHandleTypeFlags uint32 + +// ExternalMemoryFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryFeatureFlags.html +type ExternalMemoryFeatureFlags uint32 + +// ExternalFenceHandleTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceHandleTypeFlags.html +type ExternalFenceHandleTypeFlags uint32 + +// ExternalFenceFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceFeatureFlags.html +type ExternalFenceFeatureFlags uint32 + +// FenceImportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceImportFlags.html +type FenceImportFlags uint32 + +// SemaphoreImportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreImportFlags.html +type SemaphoreImportFlags uint32 + +// ExternalSemaphoreHandleTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreHandleTypeFlags.html +type ExternalSemaphoreHandleTypeFlags uint32 + +// ExternalSemaphoreFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreFeatureFlags.html +type ExternalSemaphoreFeatureFlags uint32 + +// PhysicalDeviceSubgroupProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSubgroupProperties.html +type PhysicalDeviceSubgroupProperties struct { + SType StructureType + PNext unsafe.Pointer + SubgroupSize uint32 + SupportedStages ShaderStageFlags + SupportedOperations SubgroupFeatureFlags + QuadOperationsInAllStages Bool32 + refb019c29f *C.VkPhysicalDeviceSubgroupProperties + allocsb019c29f interface{} +} + +// BindBufferMemoryInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindBufferMemoryInfo.html +type BindBufferMemoryInfo struct { + SType StructureType + PNext unsafe.Pointer + Buffer Buffer + Memory DeviceMemory + MemoryOffset DeviceSize + refd392322d *C.VkBindBufferMemoryInfo + allocsd392322d interface{} +} + +// BindImageMemoryInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindImageMemoryInfo.html +type BindImageMemoryInfo struct { + SType StructureType + PNext unsafe.Pointer + Image Image + Memory DeviceMemory + MemoryOffset DeviceSize + ref767a2113 *C.VkBindImageMemoryInfo + allocs767a2113 interface{} +} + +// PhysicalDevice16BitStorageFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevice16BitStorageFeatures.html +type PhysicalDevice16BitStorageFeatures struct { + SType StructureType + PNext unsafe.Pointer + StorageBuffer16BitAccess Bool32 + UniformAndStorageBuffer16BitAccess Bool32 + StoragePushConstant16 Bool32 + StorageInputOutput16 Bool32 + refa90fed14 *C.VkPhysicalDevice16BitStorageFeatures + allocsa90fed14 interface{} +} + +// MemoryDedicatedRequirements as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryDedicatedRequirements.html +type MemoryDedicatedRequirements struct { + SType StructureType + PNext unsafe.Pointer + PrefersDedicatedAllocation Bool32 + RequiresDedicatedAllocation Bool32 + refaa924122 *C.VkMemoryDedicatedRequirements + allocsaa924122 interface{} +} + +// MemoryDedicatedAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryDedicatedAllocateInfo.html +type MemoryDedicatedAllocateInfo struct { + SType StructureType + PNext unsafe.Pointer + Image Image + Buffer Buffer + reff8fabe62 *C.VkMemoryDedicatedAllocateInfo + allocsf8fabe62 interface{} +} + +// MemoryAllocateFlagsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryAllocateFlagsInfo.html +type MemoryAllocateFlagsInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags MemoryAllocateFlags + DeviceMask uint32 + ref7ca6664 *C.VkMemoryAllocateFlagsInfo + allocs7ca6664 interface{} +} + +// DeviceGroupRenderPassBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupRenderPassBeginInfo.html +type DeviceGroupRenderPassBeginInfo struct { + SType StructureType + PNext unsafe.Pointer + DeviceMask uint32 + DeviceRenderAreaCount uint32 + PDeviceRenderAreas []Rect2D + ref139f3599 *C.VkDeviceGroupRenderPassBeginInfo + allocs139f3599 interface{} +} + +// DeviceGroupCommandBufferBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupCommandBufferBeginInfo.html +type DeviceGroupCommandBufferBeginInfo struct { + SType StructureType + PNext unsafe.Pointer + DeviceMask uint32 + refb9a8f0cd *C.VkDeviceGroupCommandBufferBeginInfo + allocsb9a8f0cd interface{} +} + +// DeviceGroupSubmitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupSubmitInfo.html +type DeviceGroupSubmitInfo struct { + SType StructureType + PNext unsafe.Pointer + WaitSemaphoreCount uint32 + PWaitSemaphoreDeviceIndices []uint32 + CommandBufferCount uint32 + PCommandBufferDeviceMasks []uint32 + SignalSemaphoreCount uint32 + PSignalSemaphoreDeviceIndices []uint32 + refea4e7ce4 *C.VkDeviceGroupSubmitInfo + allocsea4e7ce4 interface{} +} + +// DeviceGroupBindSparseInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupBindSparseInfo.html +type DeviceGroupBindSparseInfo struct { + SType StructureType + PNext unsafe.Pointer + ResourceDeviceIndex uint32 + MemoryDeviceIndex uint32 + ref5b5446cd *C.VkDeviceGroupBindSparseInfo + allocs5b5446cd interface{} +} + +// BindBufferMemoryDeviceGroupInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindBufferMemoryDeviceGroupInfo.html +type BindBufferMemoryDeviceGroupInfo struct { + SType StructureType + PNext unsafe.Pointer + DeviceIndexCount uint32 + PDeviceIndices []uint32 + reff136b64f *C.VkBindBufferMemoryDeviceGroupInfo + allocsf136b64f interface{} +} + +// BindImageMemoryDeviceGroupInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindImageMemoryDeviceGroupInfo.html +type BindImageMemoryDeviceGroupInfo struct { + SType StructureType + PNext unsafe.Pointer + DeviceIndexCount uint32 + PDeviceIndices []uint32 + SplitInstanceBindRegionCount uint32 + PSplitInstanceBindRegions []Rect2D + ref24f026a5 *C.VkBindImageMemoryDeviceGroupInfo + allocs24f026a5 interface{} +} + +// PhysicalDeviceGroupProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceGroupProperties.html +type PhysicalDeviceGroupProperties struct { + SType StructureType + PNext unsafe.Pointer + PhysicalDeviceCount uint32 + PhysicalDevices [32]PhysicalDevice + SubsetAllocation Bool32 + ref2aa9a663 *C.VkPhysicalDeviceGroupProperties + allocs2aa9a663 interface{} +} + +// DeviceGroupDeviceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupDeviceCreateInfo.html +type DeviceGroupDeviceCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + PhysicalDeviceCount uint32 + PPhysicalDevices []PhysicalDevice + refb2275723 *C.VkDeviceGroupDeviceCreateInfo + allocsb2275723 interface{} +} + +// BufferMemoryRequirementsInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferMemoryRequirementsInfo2.html +type BufferMemoryRequirementsInfo2 struct { + SType StructureType + PNext unsafe.Pointer + Buffer Buffer + reff54a2a42 *C.VkBufferMemoryRequirementsInfo2 + allocsf54a2a42 interface{} +} + +// ImageMemoryRequirementsInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageMemoryRequirementsInfo2.html +type ImageMemoryRequirementsInfo2 struct { + SType StructureType + PNext unsafe.Pointer + Image Image + ref75b3ca05 *C.VkImageMemoryRequirementsInfo2 + allocs75b3ca05 interface{} +} + +// ImageSparseMemoryRequirementsInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageSparseMemoryRequirementsInfo2.html +type ImageSparseMemoryRequirementsInfo2 struct { + SType StructureType + PNext unsafe.Pointer + Image Image + ref878956f7 *C.VkImageSparseMemoryRequirementsInfo2 + allocs878956f7 interface{} +} + +// MemoryRequirements2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryRequirements2.html +type MemoryRequirements2 struct { + SType StructureType + PNext unsafe.Pointer + MemoryRequirements MemoryRequirements + refc0e75f21 *C.VkMemoryRequirements2 + allocsc0e75f21 interface{} +} + +// SparseImageMemoryRequirements2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageMemoryRequirements2.html +type SparseImageMemoryRequirements2 struct { + SType StructureType + PNext unsafe.Pointer + MemoryRequirements SparseImageMemoryRequirements + refb8da955c *C.VkSparseImageMemoryRequirements2 + allocsb8da955c interface{} +} + +// PhysicalDeviceFeatures2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFeatures2.html +type PhysicalDeviceFeatures2 struct { + SType StructureType + PNext unsafe.Pointer + Features PhysicalDeviceFeatures + refff6ed04 *C.VkPhysicalDeviceFeatures2 + allocsff6ed04 interface{} +} + +// PhysicalDeviceProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProperties2.html +type PhysicalDeviceProperties2 struct { + SType StructureType + PNext unsafe.Pointer + Properties PhysicalDeviceProperties + ref947bd13e *C.VkPhysicalDeviceProperties2 + allocs947bd13e interface{} +} + +// FormatProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFormatProperties2.html +type FormatProperties2 struct { + SType StructureType + PNext unsafe.Pointer + FormatProperties FormatProperties + refddc6af2a *C.VkFormatProperties2 + allocsddc6af2a interface{} +} + +// ImageFormatProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageFormatProperties2.html +type ImageFormatProperties2 struct { + SType StructureType + PNext unsafe.Pointer + ImageFormatProperties ImageFormatProperties + ref224187e7 *C.VkImageFormatProperties2 + allocs224187e7 interface{} +} + +// PhysicalDeviceImageFormatInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImageFormatInfo2.html +type PhysicalDeviceImageFormatInfo2 struct { + SType StructureType + PNext unsafe.Pointer + Format Format + Type ImageType + Tiling ImageTiling + Usage ImageUsageFlags + Flags ImageCreateFlags + ref5934b445 *C.VkPhysicalDeviceImageFormatInfo2 + allocs5934b445 interface{} +} + +// QueueFamilyProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFamilyProperties2.html +type QueueFamilyProperties2 struct { + SType StructureType + PNext unsafe.Pointer + QueueFamilyProperties QueueFamilyProperties + ref85bf626c *C.VkQueueFamilyProperties2 + allocs85bf626c interface{} +} + +// PhysicalDeviceMemoryProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMemoryProperties2.html +type PhysicalDeviceMemoryProperties2 struct { + SType StructureType + PNext unsafe.Pointer + MemoryProperties PhysicalDeviceMemoryProperties + refd9e39b19 *C.VkPhysicalDeviceMemoryProperties2 + allocsd9e39b19 interface{} +} + +// SparseImageFormatProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageFormatProperties2.html +type SparseImageFormatProperties2 struct { + SType StructureType + PNext unsafe.Pointer + Properties SparseImageFormatProperties + ref6b48294b *C.VkSparseImageFormatProperties2 + allocs6b48294b interface{} +} + +// PhysicalDeviceSparseImageFormatInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSparseImageFormatInfo2.html +type PhysicalDeviceSparseImageFormatInfo2 struct { + SType StructureType + PNext unsafe.Pointer + Format Format + Type ImageType + Samples SampleCountFlagBits + Usage ImageUsageFlags + Tiling ImageTiling + ref566d5513 *C.VkPhysicalDeviceSparseImageFormatInfo2 + allocs566d5513 interface{} +} + +// PhysicalDevicePointClippingProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePointClippingProperties.html +type PhysicalDevicePointClippingProperties struct { + SType StructureType + PNext unsafe.Pointer + PointClippingBehavior PointClippingBehavior + ref5afbd22f *C.VkPhysicalDevicePointClippingProperties + allocs5afbd22f interface{} +} + +// InputAttachmentAspectReference as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInputAttachmentAspectReference.html +type InputAttachmentAspectReference struct { + Subpass uint32 + InputAttachmentIndex uint32 + AspectMask ImageAspectFlags + ref4f7194e6 *C.VkInputAttachmentAspectReference + allocs4f7194e6 interface{} +} + +// RenderPassInputAttachmentAspectCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassInputAttachmentAspectCreateInfo.html +type RenderPassInputAttachmentAspectCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + AspectReferenceCount uint32 + PAspectReferences []InputAttachmentAspectReference + ref34eaa5c7 *C.VkRenderPassInputAttachmentAspectCreateInfo + allocs34eaa5c7 interface{} +} + +// ImageViewUsageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewUsageCreateInfo.html +type ImageViewUsageCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Usage ImageUsageFlags + ref3791cec9 *C.VkImageViewUsageCreateInfo + allocs3791cec9 interface{} +} + +// PipelineTessellationDomainOriginStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineTessellationDomainOriginStateCreateInfo.html +type PipelineTessellationDomainOriginStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + DomainOrigin TessellationDomainOrigin + ref58ef29bf *C.VkPipelineTessellationDomainOriginStateCreateInfo + allocs58ef29bf interface{} +} + +// RenderPassMultiviewCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassMultiviewCreateInfo.html +type RenderPassMultiviewCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + SubpassCount uint32 + PViewMasks []uint32 + DependencyCount uint32 + PViewOffsets []int32 + CorrelationMaskCount uint32 + PCorrelationMasks []uint32 + refee413e05 *C.VkRenderPassMultiviewCreateInfo + allocsee413e05 interface{} +} + +// PhysicalDeviceMultiviewFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMultiviewFeatures.html +type PhysicalDeviceMultiviewFeatures struct { + SType StructureType + PNext unsafe.Pointer + Multiview Bool32 + MultiviewGeometryShader Bool32 + MultiviewTessellationShader Bool32 + refd7a7434b *C.VkPhysicalDeviceMultiviewFeatures + allocsd7a7434b interface{} +} + +// PhysicalDeviceMultiviewProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMultiviewProperties.html +type PhysicalDeviceMultiviewProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxMultiviewViewCount uint32 + MaxMultiviewInstanceIndex uint32 + ref95110029 *C.VkPhysicalDeviceMultiviewProperties + allocs95110029 interface{} +} + +// PhysicalDeviceVariablePointersFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVariablePointersFeatures.html +type PhysicalDeviceVariablePointersFeatures struct { + SType StructureType + PNext unsafe.Pointer + VariablePointersStorageBuffer Bool32 + VariablePointers Bool32 + refb49644a0 *C.VkPhysicalDeviceVariablePointersFeatures + allocsb49644a0 interface{} +} + +// PhysicalDeviceVariablePointerFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVariablePointerFeatures.html +type PhysicalDeviceVariablePointerFeatures struct { + SType StructureType + PNext unsafe.Pointer + VariablePointersStorageBuffer Bool32 + VariablePointers Bool32 + refb49644a0 *C.VkPhysicalDeviceVariablePointersFeatures + allocsb49644a0 interface{} +} + +// PhysicalDeviceProtectedMemoryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProtectedMemoryFeatures.html +type PhysicalDeviceProtectedMemoryFeatures struct { + SType StructureType + PNext unsafe.Pointer + ProtectedMemory Bool32 + refac441ed1 *C.VkPhysicalDeviceProtectedMemoryFeatures + allocsac441ed1 interface{} +} + +// PhysicalDeviceProtectedMemoryProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProtectedMemoryProperties.html +type PhysicalDeviceProtectedMemoryProperties struct { + SType StructureType + PNext unsafe.Pointer + ProtectedNoFault Bool32 + refb653413 *C.VkPhysicalDeviceProtectedMemoryProperties + allocsb653413 interface{} +} + +// DeviceQueueInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueInfo2.html +type DeviceQueueInfo2 struct { + SType StructureType + PNext unsafe.Pointer + Flags DeviceQueueCreateFlags + QueueFamilyIndex uint32 + QueueIndex uint32 + ref2f267e52 *C.VkDeviceQueueInfo2 + allocs2f267e52 interface{} +} + +// ProtectedSubmitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkProtectedSubmitInfo.html +type ProtectedSubmitInfo struct { + SType StructureType + PNext unsafe.Pointer + ProtectedSubmit Bool32 + ref6bd69669 *C.VkProtectedSubmitInfo + allocs6bd69669 interface{} +} + +// SamplerYcbcrConversionCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrConversionCreateInfo.html +type SamplerYcbcrConversionCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Format Format + YcbcrModel SamplerYcbcrModelConversion + YcbcrRange SamplerYcbcrRange + Components ComponentMapping + XChromaOffset ChromaLocation + YChromaOffset ChromaLocation + ChromaFilter Filter + ForceExplicitReconstruction Bool32 + ref9875bff7 *C.VkSamplerYcbcrConversionCreateInfo + allocs9875bff7 interface{} +} + +// SamplerYcbcrConversionInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrConversionInfo.html +type SamplerYcbcrConversionInfo struct { + SType StructureType + PNext unsafe.Pointer + Conversion SamplerYcbcrConversion + ref11ff5547 *C.VkSamplerYcbcrConversionInfo + allocs11ff5547 interface{} +} + +// BindImagePlaneMemoryInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindImagePlaneMemoryInfo.html +type BindImagePlaneMemoryInfo struct { + SType StructureType + PNext unsafe.Pointer + PlaneAspect ImageAspectFlagBits + ref56b81476 *C.VkBindImagePlaneMemoryInfo + allocs56b81476 interface{} +} + +// ImagePlaneMemoryRequirementsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImagePlaneMemoryRequirementsInfo.html +type ImagePlaneMemoryRequirementsInfo struct { + SType StructureType + PNext unsafe.Pointer + PlaneAspect ImageAspectFlagBits + refefec131f *C.VkImagePlaneMemoryRequirementsInfo + allocsefec131f interface{} +} + +// PhysicalDeviceSamplerYcbcrConversionFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSamplerYcbcrConversionFeatures.html +type PhysicalDeviceSamplerYcbcrConversionFeatures struct { + SType StructureType + PNext unsafe.Pointer + SamplerYcbcrConversion Bool32 + ref1d054d67 *C.VkPhysicalDeviceSamplerYcbcrConversionFeatures + allocs1d054d67 interface{} +} + +// SamplerYcbcrConversionImageFormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrConversionImageFormatProperties.html +type SamplerYcbcrConversionImageFormatProperties struct { + SType StructureType + PNext unsafe.Pointer + CombinedImageSamplerDescriptorCount uint32 + ref6bc79530 *C.VkSamplerYcbcrConversionImageFormatProperties + allocs6bc79530 interface{} +} + +// DescriptorUpdateTemplateEntry as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorUpdateTemplateEntry.html +type DescriptorUpdateTemplateEntry struct { + DstBinding uint32 + DstArrayElement uint32 + DescriptorCount uint32 + DescriptorType DescriptorType + Offset uint64 + Stride uint64 + refabf78fb7 *C.VkDescriptorUpdateTemplateEntry + allocsabf78fb7 interface{} +} + +// DescriptorUpdateTemplateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorUpdateTemplateCreateInfo.html +type DescriptorUpdateTemplateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags DescriptorUpdateTemplateCreateFlags + DescriptorUpdateEntryCount uint32 + PDescriptorUpdateEntries []DescriptorUpdateTemplateEntry + TemplateType DescriptorUpdateTemplateType + DescriptorSetLayout DescriptorSetLayout + PipelineBindPoint PipelineBindPoint + PipelineLayout PipelineLayout + Set uint32 + ref2af95951 *C.VkDescriptorUpdateTemplateCreateInfo + allocs2af95951 interface{} +} + +// ExternalMemoryProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryProperties.html +type ExternalMemoryProperties struct { + ExternalMemoryFeatures ExternalMemoryFeatureFlags + ExportFromImportedHandleTypes ExternalMemoryHandleTypeFlags + CompatibleHandleTypes ExternalMemoryHandleTypeFlags + ref4b738f01 *C.VkExternalMemoryProperties + allocs4b738f01 interface{} +} + +// PhysicalDeviceExternalImageFormatInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalImageFormatInfo.html +type PhysicalDeviceExternalImageFormatInfo struct { + SType StructureType + PNext unsafe.Pointer + HandleType ExternalMemoryHandleTypeFlagBits + refc839c724 *C.VkPhysicalDeviceExternalImageFormatInfo + allocsc839c724 interface{} +} + +// ExternalImageFormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalImageFormatProperties.html +type ExternalImageFormatProperties struct { + SType StructureType + PNext unsafe.Pointer + ExternalMemoryProperties ExternalMemoryProperties + refd404c4b5 *C.VkExternalImageFormatProperties + allocsd404c4b5 interface{} +} + +// PhysicalDeviceExternalBufferInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalBufferInfo.html +type PhysicalDeviceExternalBufferInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags BufferCreateFlags + Usage BufferUsageFlags + HandleType ExternalMemoryHandleTypeFlagBits + ref8d758947 *C.VkPhysicalDeviceExternalBufferInfo + allocs8d758947 interface{} +} + +// ExternalBufferProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalBufferProperties.html +type ExternalBufferProperties struct { + SType StructureType + PNext unsafe.Pointer + ExternalMemoryProperties ExternalMemoryProperties + ref12f7c546 *C.VkExternalBufferProperties + allocs12f7c546 interface{} +} + +// PhysicalDeviceIDProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceIDProperties.html +type PhysicalDeviceIDProperties struct { + SType StructureType + PNext unsafe.Pointer + DeviceUUID [16]byte + DriverUUID [16]byte + DeviceLUID [8]byte + DeviceNodeMask uint32 + DeviceLUIDValid Bool32 + refe990a9f3 *C.VkPhysicalDeviceIDProperties + allocse990a9f3 interface{} +} + +// ExternalMemoryImageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryImageCreateInfo.html +type ExternalMemoryImageCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + HandleTypes ExternalMemoryHandleTypeFlags + refdaf1185e *C.VkExternalMemoryImageCreateInfo + allocsdaf1185e interface{} +} + +// ExternalMemoryBufferCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryBufferCreateInfo.html +type ExternalMemoryBufferCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + HandleTypes ExternalMemoryHandleTypeFlags + refd33a9423 *C.VkExternalMemoryBufferCreateInfo + allocsd33a9423 interface{} +} + +// ExportMemoryAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExportMemoryAllocateInfo.html +type ExportMemoryAllocateInfo struct { + SType StructureType + PNext unsafe.Pointer + HandleTypes ExternalMemoryHandleTypeFlags + refeb76ec64 *C.VkExportMemoryAllocateInfo + allocseb76ec64 interface{} +} + +// PhysicalDeviceExternalFenceInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalFenceInfo.html +type PhysicalDeviceExternalFenceInfo struct { + SType StructureType + PNext unsafe.Pointer + HandleType ExternalFenceHandleTypeFlagBits + ref9bb660cc *C.VkPhysicalDeviceExternalFenceInfo + allocs9bb660cc interface{} +} + +// ExternalFenceProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceProperties.html +type ExternalFenceProperties struct { + SType StructureType + PNext unsafe.Pointer + ExportFromImportedHandleTypes ExternalFenceHandleTypeFlags + CompatibleHandleTypes ExternalFenceHandleTypeFlags + ExternalFenceFeatures ExternalFenceFeatureFlags + ref18806773 *C.VkExternalFenceProperties + allocs18806773 interface{} +} + +// ExportFenceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExportFenceCreateInfo.html +type ExportFenceCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + HandleTypes ExternalFenceHandleTypeFlags + ref5fef8c3a *C.VkExportFenceCreateInfo + allocs5fef8c3a interface{} +} + +// ExportSemaphoreCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExportSemaphoreCreateInfo.html +type ExportSemaphoreCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + HandleTypes ExternalSemaphoreHandleTypeFlags + ref17b8d6c5 *C.VkExportSemaphoreCreateInfo + allocs17b8d6c5 interface{} +} + +// PhysicalDeviceExternalSemaphoreInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalSemaphoreInfo.html +type PhysicalDeviceExternalSemaphoreInfo struct { + SType StructureType + PNext unsafe.Pointer + HandleType ExternalSemaphoreHandleTypeFlagBits + ref5981d29e *C.VkPhysicalDeviceExternalSemaphoreInfo + allocs5981d29e interface{} +} + +// ExternalSemaphoreProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreProperties.html +type ExternalSemaphoreProperties struct { + SType StructureType + PNext unsafe.Pointer + ExportFromImportedHandleTypes ExternalSemaphoreHandleTypeFlags + CompatibleHandleTypes ExternalSemaphoreHandleTypeFlags + ExternalSemaphoreFeatures ExternalSemaphoreFeatureFlags + ref87ec1054 *C.VkExternalSemaphoreProperties + allocs87ec1054 interface{} +} + +// PhysicalDeviceMaintenance3Properties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMaintenance3Properties.html +type PhysicalDeviceMaintenance3Properties struct { + SType StructureType + PNext unsafe.Pointer + MaxPerSetDescriptors uint32 + MaxMemoryAllocationSize DeviceSize + ref12c07777 *C.VkPhysicalDeviceMaintenance3Properties + allocs12c07777 interface{} +} + +// DescriptorSetLayoutSupport as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutSupport.html +type DescriptorSetLayoutSupport struct { + SType StructureType + PNext unsafe.Pointer + Supported Bool32 + ref5802686c *C.VkDescriptorSetLayoutSupport + allocs5802686c interface{} +} + +// PhysicalDeviceShaderDrawParametersFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderDrawParametersFeatures.html +type PhysicalDeviceShaderDrawParametersFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderDrawParameters Bool32 + ref35d5aa70 *C.VkPhysicalDeviceShaderDrawParametersFeatures + allocs35d5aa70 interface{} +} + +// PhysicalDeviceShaderDrawParameterFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderDrawParameterFeatures.html +type PhysicalDeviceShaderDrawParameterFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderDrawParameters Bool32 + ref35d5aa70 *C.VkPhysicalDeviceShaderDrawParametersFeatures + allocs35d5aa70 interface{} +} + +// ResolveModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkResolveModeFlags.html +type ResolveModeFlags uint32 + +// DescriptorBindingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBindingFlags.html +type DescriptorBindingFlags uint32 + +// SemaphoreWaitFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreWaitFlags.html +type SemaphoreWaitFlags uint32 + +// PhysicalDeviceVulkan11Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVulkan11Features.html +type PhysicalDeviceVulkan11Features struct { + SType StructureType + PNext unsafe.Pointer + StorageBuffer16BitAccess Bool32 + UniformAndStorageBuffer16BitAccess Bool32 + StoragePushConstant16 Bool32 + StorageInputOutput16 Bool32 + Multiview Bool32 + MultiviewGeometryShader Bool32 + MultiviewTessellationShader Bool32 + VariablePointersStorageBuffer Bool32 + VariablePointers Bool32 + ProtectedMemory Bool32 + SamplerYcbcrConversion Bool32 + ShaderDrawParameters Bool32 + refd5335cef *C.VkPhysicalDeviceVulkan11Features + allocsd5335cef interface{} +} + +// PhysicalDeviceVulkan11Properties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVulkan11Properties.html +type PhysicalDeviceVulkan11Properties struct { + SType StructureType + PNext unsafe.Pointer + DeviceUUID [16]byte + DriverUUID [16]byte + DeviceLUID [8]byte + DeviceNodeMask uint32 + DeviceLUIDValid Bool32 + SubgroupSize uint32 + SubgroupSupportedStages ShaderStageFlags + SubgroupSupportedOperations SubgroupFeatureFlags + SubgroupQuadOperationsInAllStages Bool32 + PointClippingBehavior PointClippingBehavior + MaxMultiviewViewCount uint32 + MaxMultiviewInstanceIndex uint32 + ProtectedNoFault Bool32 + MaxPerSetDescriptors uint32 + MaxMemoryAllocationSize DeviceSize + refd27276a5 *C.VkPhysicalDeviceVulkan11Properties + allocsd27276a5 interface{} +} + +// PhysicalDeviceVulkan12Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVulkan12Features.html +type PhysicalDeviceVulkan12Features struct { + SType StructureType + PNext unsafe.Pointer + SamplerMirrorClampToEdge Bool32 + DrawIndirectCount Bool32 + StorageBuffer8BitAccess Bool32 + UniformAndStorageBuffer8BitAccess Bool32 + StoragePushConstant8 Bool32 + ShaderBufferInt64Atomics Bool32 + ShaderSharedInt64Atomics Bool32 + ShaderFloat16 Bool32 + ShaderInt8 Bool32 + DescriptorIndexing Bool32 + ShaderInputAttachmentArrayDynamicIndexing Bool32 + ShaderUniformTexelBufferArrayDynamicIndexing Bool32 + ShaderStorageTexelBufferArrayDynamicIndexing Bool32 + ShaderUniformBufferArrayNonUniformIndexing Bool32 + ShaderSampledImageArrayNonUniformIndexing Bool32 + ShaderStorageBufferArrayNonUniformIndexing Bool32 + ShaderStorageImageArrayNonUniformIndexing Bool32 + ShaderInputAttachmentArrayNonUniformIndexing Bool32 + ShaderUniformTexelBufferArrayNonUniformIndexing Bool32 + ShaderStorageTexelBufferArrayNonUniformIndexing Bool32 + DescriptorBindingUniformBufferUpdateAfterBind Bool32 + DescriptorBindingSampledImageUpdateAfterBind Bool32 + DescriptorBindingStorageImageUpdateAfterBind Bool32 + DescriptorBindingStorageBufferUpdateAfterBind Bool32 + DescriptorBindingUniformTexelBufferUpdateAfterBind Bool32 + DescriptorBindingStorageTexelBufferUpdateAfterBind Bool32 + DescriptorBindingUpdateUnusedWhilePending Bool32 + DescriptorBindingPartiallyBound Bool32 + DescriptorBindingVariableDescriptorCount Bool32 + RuntimeDescriptorArray Bool32 + SamplerFilterMinmax Bool32 + ScalarBlockLayout Bool32 + ImagelessFramebuffer Bool32 + UniformBufferStandardLayout Bool32 + ShaderSubgroupExtendedTypes Bool32 + SeparateDepthStencilLayouts Bool32 + HostQueryReset Bool32 + TimelineSemaphore Bool32 + BufferDeviceAddress Bool32 + BufferDeviceAddressCaptureReplay Bool32 + BufferDeviceAddressMultiDevice Bool32 + VulkanMemoryModel Bool32 + VulkanMemoryModelDeviceScope Bool32 + VulkanMemoryModelAvailabilityVisibilityChains Bool32 + ShaderOutputViewportIndex Bool32 + ShaderOutputLayer Bool32 + SubgroupBroadcastDynamicId Bool32 + refecbe602a *C.VkPhysicalDeviceVulkan12Features + allocsecbe602a interface{} +} + +// ConformanceVersion as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConformanceVersion.html +type ConformanceVersion struct { + Major byte + Minor byte + Subminor byte + Patch byte + reffb98ebcd *C.VkConformanceVersion + allocsfb98ebcd interface{} +} + +// PhysicalDeviceVulkan12Properties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVulkan12Properties.html +type PhysicalDeviceVulkan12Properties struct { + SType StructureType + PNext unsafe.Pointer + DriverID DriverId + DriverName [256]byte + DriverInfo [256]byte + ConformanceVersion ConformanceVersion + DenormBehaviorIndependence ShaderFloatControlsIndependence + RoundingModeIndependence ShaderFloatControlsIndependence + ShaderSignedZeroInfNanPreserveFloat16 Bool32 + ShaderSignedZeroInfNanPreserveFloat32 Bool32 + ShaderSignedZeroInfNanPreserveFloat64 Bool32 + ShaderDenormPreserveFloat16 Bool32 + ShaderDenormPreserveFloat32 Bool32 + ShaderDenormPreserveFloat64 Bool32 + ShaderDenormFlushToZeroFloat16 Bool32 + ShaderDenormFlushToZeroFloat32 Bool32 + ShaderDenormFlushToZeroFloat64 Bool32 + ShaderRoundingModeRTEFloat16 Bool32 + ShaderRoundingModeRTEFloat32 Bool32 + ShaderRoundingModeRTEFloat64 Bool32 + ShaderRoundingModeRTZFloat16 Bool32 + ShaderRoundingModeRTZFloat32 Bool32 + ShaderRoundingModeRTZFloat64 Bool32 + MaxUpdateAfterBindDescriptorsInAllPools uint32 + ShaderUniformBufferArrayNonUniformIndexingNative Bool32 + ShaderSampledImageArrayNonUniformIndexingNative Bool32 + ShaderStorageBufferArrayNonUniformIndexingNative Bool32 + ShaderStorageImageArrayNonUniformIndexingNative Bool32 + ShaderInputAttachmentArrayNonUniformIndexingNative Bool32 + RobustBufferAccessUpdateAfterBind Bool32 + QuadDivergentImplicitLod Bool32 + MaxPerStageDescriptorUpdateAfterBindSamplers uint32 + MaxPerStageDescriptorUpdateAfterBindUniformBuffers uint32 + MaxPerStageDescriptorUpdateAfterBindStorageBuffers uint32 + MaxPerStageDescriptorUpdateAfterBindSampledImages uint32 + MaxPerStageDescriptorUpdateAfterBindStorageImages uint32 + MaxPerStageDescriptorUpdateAfterBindInputAttachments uint32 + MaxPerStageUpdateAfterBindResources uint32 + MaxDescriptorSetUpdateAfterBindSamplers uint32 + MaxDescriptorSetUpdateAfterBindUniformBuffers uint32 + MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic uint32 + MaxDescriptorSetUpdateAfterBindStorageBuffers uint32 + MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic uint32 + MaxDescriptorSetUpdateAfterBindSampledImages uint32 + MaxDescriptorSetUpdateAfterBindStorageImages uint32 + MaxDescriptorSetUpdateAfterBindInputAttachments uint32 + SupportedDepthResolveModes ResolveModeFlags + SupportedStencilResolveModes ResolveModeFlags + IndependentResolveNone Bool32 + IndependentResolve Bool32 + FilterMinmaxSingleComponentFormats Bool32 + FilterMinmaxImageComponentMapping Bool32 + MaxTimelineSemaphoreValueDifference uint64 + FramebufferIntegerColorSampleCounts SampleCountFlags + ref4b9010a4 *C.VkPhysicalDeviceVulkan12Properties + allocs4b9010a4 interface{} +} + +// ImageFormatListCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageFormatListCreateInfo.html +type ImageFormatListCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + ViewFormatCount uint32 + PViewFormats []Format + ref76fdc95e *C.VkImageFormatListCreateInfo + allocs76fdc95e interface{} +} + +// AttachmentDescription2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentDescription2.html +type AttachmentDescription2 struct { + SType StructureType + PNext unsafe.Pointer + Flags AttachmentDescriptionFlags + Format Format + Samples SampleCountFlagBits + LoadOp AttachmentLoadOp + StoreOp AttachmentStoreOp + StencilLoadOp AttachmentLoadOp + StencilStoreOp AttachmentStoreOp + InitialLayout ImageLayout + FinalLayout ImageLayout + refae7bd6bf *C.VkAttachmentDescription2 + allocsae7bd6bf interface{} +} + +// AttachmentReference2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentReference2.html +type AttachmentReference2 struct { + SType StructureType + PNext unsafe.Pointer + Attachment uint32 + Layout ImageLayout + AspectMask ImageAspectFlags + ref7b5106a8 *C.VkAttachmentReference2 + allocs7b5106a8 interface{} +} + +// SubpassDescription2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDescription2.html +type SubpassDescription2 struct { + SType StructureType + PNext unsafe.Pointer + Flags SubpassDescriptionFlags + PipelineBindPoint PipelineBindPoint + ViewMask uint32 + InputAttachmentCount uint32 + PInputAttachments []AttachmentReference2 + ColorAttachmentCount uint32 + PColorAttachments []AttachmentReference2 + PResolveAttachments []AttachmentReference2 + PDepthStencilAttachment []AttachmentReference2 + PreserveAttachmentCount uint32 + PPreserveAttachments []uint32 + ref7cdffe39 *C.VkSubpassDescription2 + allocs7cdffe39 interface{} +} + +// SubpassDependency2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDependency2.html +type SubpassDependency2 struct { + SType StructureType + PNext unsafe.Pointer + SrcSubpass uint32 + DstSubpass uint32 + SrcStageMask PipelineStageFlags + DstStageMask PipelineStageFlags + SrcAccessMask AccessFlags + DstAccessMask AccessFlags + DependencyFlags DependencyFlags + ViewOffset int32 + refb0fac2b *C.VkSubpassDependency2 + allocsb0fac2b interface{} +} + +// RenderPassCreateInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassCreateInfo2.html +type RenderPassCreateInfo2 struct { + SType StructureType + PNext unsafe.Pointer + Flags RenderPassCreateFlags + AttachmentCount uint32 + PAttachments []AttachmentDescription2 + SubpassCount uint32 + PSubpasses []SubpassDescription2 + DependencyCount uint32 + PDependencies []SubpassDependency2 + CorrelatedViewMaskCount uint32 + PCorrelatedViewMasks []uint32 + ref1e86f565 *C.VkRenderPassCreateInfo2 + allocs1e86f565 interface{} +} + +// SubpassBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassBeginInfo.html +type SubpassBeginInfo struct { + SType StructureType + PNext unsafe.Pointer + Contents SubpassContents + ref941a38e5 *C.VkSubpassBeginInfo + allocs941a38e5 interface{} +} + +// SubpassEndInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassEndInfo.html +type SubpassEndInfo struct { + SType StructureType + PNext unsafe.Pointer + reffa172a5c *C.VkSubpassEndInfo + allocsfa172a5c interface{} +} + +// PhysicalDevice8BitStorageFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevice8BitStorageFeatures.html +type PhysicalDevice8BitStorageFeatures struct { + SType StructureType + PNext unsafe.Pointer + StorageBuffer8BitAccess Bool32 + UniformAndStorageBuffer8BitAccess Bool32 + StoragePushConstant8 Bool32 + ref4c9f0386 *C.VkPhysicalDevice8BitStorageFeatures + allocs4c9f0386 interface{} +} + +// PhysicalDeviceDriverProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDriverProperties.html +type PhysicalDeviceDriverProperties struct { + SType StructureType + PNext unsafe.Pointer + DriverID DriverId + DriverName [256]byte + DriverInfo [256]byte + ConformanceVersion ConformanceVersion + ref492c8b68 *C.VkPhysicalDeviceDriverProperties + allocs492c8b68 interface{} +} + +// PhysicalDeviceShaderAtomicInt64Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderAtomicInt64Features.html +type PhysicalDeviceShaderAtomicInt64Features struct { + SType StructureType + PNext unsafe.Pointer + ShaderBufferInt64Atomics Bool32 + ShaderSharedInt64Atomics Bool32 + refa23b7e52 *C.VkPhysicalDeviceShaderAtomicInt64Features + allocsa23b7e52 interface{} +} + +// PhysicalDeviceShaderFloat16Int8Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderFloat16Int8Features.html +type PhysicalDeviceShaderFloat16Int8Features struct { + SType StructureType + PNext unsafe.Pointer + ShaderFloat16 Bool32 + ShaderInt8 Bool32 + refc9d315b6 *C.VkPhysicalDeviceShaderFloat16Int8Features + allocsc9d315b6 interface{} +} + +// PhysicalDeviceFloatControlsProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFloatControlsProperties.html +type PhysicalDeviceFloatControlsProperties struct { + SType StructureType + PNext unsafe.Pointer + DenormBehaviorIndependence ShaderFloatControlsIndependence + RoundingModeIndependence ShaderFloatControlsIndependence + ShaderSignedZeroInfNanPreserveFloat16 Bool32 + ShaderSignedZeroInfNanPreserveFloat32 Bool32 + ShaderSignedZeroInfNanPreserveFloat64 Bool32 + ShaderDenormPreserveFloat16 Bool32 + ShaderDenormPreserveFloat32 Bool32 + ShaderDenormPreserveFloat64 Bool32 + ShaderDenormFlushToZeroFloat16 Bool32 + ShaderDenormFlushToZeroFloat32 Bool32 + ShaderDenormFlushToZeroFloat64 Bool32 + ShaderRoundingModeRTEFloat16 Bool32 + ShaderRoundingModeRTEFloat32 Bool32 + ShaderRoundingModeRTEFloat64 Bool32 + ShaderRoundingModeRTZFloat16 Bool32 + ShaderRoundingModeRTZFloat32 Bool32 + ShaderRoundingModeRTZFloat64 Bool32 + ref92190a8a *C.VkPhysicalDeviceFloatControlsProperties + allocs92190a8a interface{} +} + +// DescriptorSetLayoutBindingFlagsCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutBindingFlagsCreateInfo.html +type DescriptorSetLayoutBindingFlagsCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + BindingCount uint32 + PBindingFlags []DescriptorBindingFlags + ref84838c4d *C.VkDescriptorSetLayoutBindingFlagsCreateInfo + allocs84838c4d interface{} +} + +// PhysicalDeviceDescriptorIndexingFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDescriptorIndexingFeatures.html +type PhysicalDeviceDescriptorIndexingFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderInputAttachmentArrayDynamicIndexing Bool32 + ShaderUniformTexelBufferArrayDynamicIndexing Bool32 + ShaderStorageTexelBufferArrayDynamicIndexing Bool32 + ShaderUniformBufferArrayNonUniformIndexing Bool32 + ShaderSampledImageArrayNonUniformIndexing Bool32 + ShaderStorageBufferArrayNonUniformIndexing Bool32 + ShaderStorageImageArrayNonUniformIndexing Bool32 + ShaderInputAttachmentArrayNonUniformIndexing Bool32 + ShaderUniformTexelBufferArrayNonUniformIndexing Bool32 + ShaderStorageTexelBufferArrayNonUniformIndexing Bool32 + DescriptorBindingUniformBufferUpdateAfterBind Bool32 + DescriptorBindingSampledImageUpdateAfterBind Bool32 + DescriptorBindingStorageImageUpdateAfterBind Bool32 + DescriptorBindingStorageBufferUpdateAfterBind Bool32 + DescriptorBindingUniformTexelBufferUpdateAfterBind Bool32 + DescriptorBindingStorageTexelBufferUpdateAfterBind Bool32 + DescriptorBindingUpdateUnusedWhilePending Bool32 + DescriptorBindingPartiallyBound Bool32 + DescriptorBindingVariableDescriptorCount Bool32 + RuntimeDescriptorArray Bool32 + reff599863 *C.VkPhysicalDeviceDescriptorIndexingFeatures + allocsf599863 interface{} +} + +// PhysicalDeviceDescriptorIndexingProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDescriptorIndexingProperties.html +type PhysicalDeviceDescriptorIndexingProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxUpdateAfterBindDescriptorsInAllPools uint32 + ShaderUniformBufferArrayNonUniformIndexingNative Bool32 + ShaderSampledImageArrayNonUniformIndexingNative Bool32 + ShaderStorageBufferArrayNonUniformIndexingNative Bool32 + ShaderStorageImageArrayNonUniformIndexingNative Bool32 + ShaderInputAttachmentArrayNonUniformIndexingNative Bool32 + RobustBufferAccessUpdateAfterBind Bool32 + QuadDivergentImplicitLod Bool32 + MaxPerStageDescriptorUpdateAfterBindSamplers uint32 + MaxPerStageDescriptorUpdateAfterBindUniformBuffers uint32 + MaxPerStageDescriptorUpdateAfterBindStorageBuffers uint32 + MaxPerStageDescriptorUpdateAfterBindSampledImages uint32 + MaxPerStageDescriptorUpdateAfterBindStorageImages uint32 + MaxPerStageDescriptorUpdateAfterBindInputAttachments uint32 + MaxPerStageUpdateAfterBindResources uint32 + MaxDescriptorSetUpdateAfterBindSamplers uint32 + MaxDescriptorSetUpdateAfterBindUniformBuffers uint32 + MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic uint32 + MaxDescriptorSetUpdateAfterBindStorageBuffers uint32 + MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic uint32 + MaxDescriptorSetUpdateAfterBindSampledImages uint32 + MaxDescriptorSetUpdateAfterBindStorageImages uint32 + MaxDescriptorSetUpdateAfterBindInputAttachments uint32 + refd94d7d21 *C.VkPhysicalDeviceDescriptorIndexingProperties + allocsd94d7d21 interface{} +} + +// DescriptorSetVariableDescriptorCountAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetVariableDescriptorCountAllocateInfo.html +type DescriptorSetVariableDescriptorCountAllocateInfo struct { + SType StructureType + PNext unsafe.Pointer + DescriptorSetCount uint32 + PDescriptorCounts []uint32 + ref7969c9a7 *C.VkDescriptorSetVariableDescriptorCountAllocateInfo + allocs7969c9a7 interface{} +} + +// DescriptorSetVariableDescriptorCountLayoutSupport as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetVariableDescriptorCountLayoutSupport.html +type DescriptorSetVariableDescriptorCountLayoutSupport struct { + SType StructureType + PNext unsafe.Pointer + MaxVariableDescriptorCount uint32 + refc584a0c6 *C.VkDescriptorSetVariableDescriptorCountLayoutSupport + allocsc584a0c6 interface{} +} + +// SubpassDescriptionDepthStencilResolve as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDescriptionDepthStencilResolve.html +type SubpassDescriptionDepthStencilResolve struct { + SType StructureType + PNext unsafe.Pointer + DepthResolveMode ResolveModeFlagBits + StencilResolveMode ResolveModeFlagBits + PDepthStencilResolveAttachment []AttachmentReference2 + refc46545a8 *C.VkSubpassDescriptionDepthStencilResolve + allocsc46545a8 interface{} +} + +// PhysicalDeviceDepthStencilResolveProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDepthStencilResolveProperties.html +type PhysicalDeviceDepthStencilResolveProperties struct { + SType StructureType + PNext unsafe.Pointer + SupportedDepthResolveModes ResolveModeFlags + SupportedStencilResolveModes ResolveModeFlags + IndependentResolveNone Bool32 + IndependentResolve Bool32 + refc9f61da9 *C.VkPhysicalDeviceDepthStencilResolveProperties + allocsc9f61da9 interface{} +} + +// PhysicalDeviceScalarBlockLayoutFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceScalarBlockLayoutFeatures.html +type PhysicalDeviceScalarBlockLayoutFeatures struct { + SType StructureType + PNext unsafe.Pointer + ScalarBlockLayout Bool32 + refbdf75616 *C.VkPhysicalDeviceScalarBlockLayoutFeatures + allocsbdf75616 interface{} +} + +// ImageStencilUsageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageStencilUsageCreateInfo.html +type ImageStencilUsageCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + StencilUsage ImageUsageFlags + ref32229fd9 *C.VkImageStencilUsageCreateInfo + allocs32229fd9 interface{} +} + +// SamplerReductionModeCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerReductionModeCreateInfo.html +type SamplerReductionModeCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + ReductionMode SamplerReductionMode + ref801424d0 *C.VkSamplerReductionModeCreateInfo + allocs801424d0 interface{} +} + +// PhysicalDeviceSamplerFilterMinmaxProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSamplerFilterMinmaxProperties.html +type PhysicalDeviceSamplerFilterMinmaxProperties struct { + SType StructureType + PNext unsafe.Pointer + FilterMinmaxSingleComponentFormats Bool32 + FilterMinmaxImageComponentMapping Bool32 + ref69bbe609 *C.VkPhysicalDeviceSamplerFilterMinmaxProperties + allocs69bbe609 interface{} } -// PhysicalDeviceProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProperties.html -type PhysicalDeviceProperties struct { - ApiVersion uint32 - DriverVersion uint32 - VendorID uint32 - DeviceID uint32 - DeviceType PhysicalDeviceType - DeviceName [256]byte - PipelineCacheUUID [16]byte - Limits PhysicalDeviceLimits - SparseProperties PhysicalDeviceSparseProperties - ref1080ca9d *C.VkPhysicalDeviceProperties - allocs1080ca9d interface{} +// PhysicalDeviceVulkanMemoryModelFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVulkanMemoryModelFeatures.html +type PhysicalDeviceVulkanMemoryModelFeatures struct { + SType StructureType + PNext unsafe.Pointer + VulkanMemoryModel Bool32 + VulkanMemoryModelDeviceScope Bool32 + VulkanMemoryModelAvailabilityVisibilityChains Bool32 + refedb93263 *C.VkPhysicalDeviceVulkanMemoryModelFeatures + allocsedb93263 interface{} } -// QueueFamilyProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFamilyProperties.html -type QueueFamilyProperties struct { - QueueFlags QueueFlags - QueueCount uint32 - TimestampValidBits uint32 - MinImageTransferGranularity Extent3D - refd538c446 *C.VkQueueFamilyProperties - allocsd538c446 interface{} +// PhysicalDeviceImagelessFramebufferFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImagelessFramebufferFeatures.html +type PhysicalDeviceImagelessFramebufferFeatures struct { + SType StructureType + PNext unsafe.Pointer + ImagelessFramebuffer Bool32 + refcd561baf *C.VkPhysicalDeviceImagelessFramebufferFeatures + allocscd561baf interface{} } -// MemoryType as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryType.html -type MemoryType struct { - PropertyFlags MemoryPropertyFlags - HeapIndex uint32 - ref2f46e01d *C.VkMemoryType - allocs2f46e01d interface{} +// FramebufferAttachmentImageInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFramebufferAttachmentImageInfo.html +type FramebufferAttachmentImageInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags ImageCreateFlags + Usage ImageUsageFlags + Width uint32 + Height uint32 + LayerCount uint32 + ViewFormatCount uint32 + PViewFormats []Format + refe569691c *C.VkFramebufferAttachmentImageInfo + allocse569691c interface{} } -// MemoryHeap as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryHeap.html -type MemoryHeap struct { - Size DeviceSize - Flags MemoryHeapFlags - ref1eb195d5 *C.VkMemoryHeap - allocs1eb195d5 interface{} +// FramebufferAttachmentsCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFramebufferAttachmentsCreateInfo.html +type FramebufferAttachmentsCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + AttachmentImageInfoCount uint32 + PAttachmentImageInfos []FramebufferAttachmentImageInfo + reff3bb4ec3 *C.VkFramebufferAttachmentsCreateInfo + allocsf3bb4ec3 interface{} } -// PhysicalDeviceMemoryProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMemoryProperties.html -type PhysicalDeviceMemoryProperties struct { - MemoryTypeCount uint32 - MemoryTypes [32]MemoryType - MemoryHeapCount uint32 - MemoryHeaps [16]MemoryHeap - ref3aabb5fd *C.VkPhysicalDeviceMemoryProperties - allocs3aabb5fd interface{} +// RenderPassAttachmentBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassAttachmentBeginInfo.html +type RenderPassAttachmentBeginInfo struct { + SType StructureType + PNext unsafe.Pointer + AttachmentCount uint32 + PAttachments []ImageView + ref5c976537 *C.VkRenderPassAttachmentBeginInfo + allocs5c976537 interface{} } -// DeviceQueueCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueCreateInfo.html -type DeviceQueueCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags DeviceQueueCreateFlags - QueueFamilyIndex uint32 - QueueCount uint32 - PQueuePriorities []float32 - ref6087b30d *C.VkDeviceQueueCreateInfo - allocs6087b30d interface{} +// PhysicalDeviceUniformBufferStandardLayoutFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.html +type PhysicalDeviceUniformBufferStandardLayoutFeatures struct { + SType StructureType + PNext unsafe.Pointer + UniformBufferStandardLayout Bool32 + refda381ec5 *C.VkPhysicalDeviceUniformBufferStandardLayoutFeatures + allocsda381ec5 interface{} } -// DeviceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceCreateInfo.html -type DeviceCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags DeviceCreateFlags - QueueCreateInfoCount uint32 - PQueueCreateInfos []DeviceQueueCreateInfo - EnabledLayerCount uint32 - PpEnabledLayerNames []string - EnabledExtensionCount uint32 - PpEnabledExtensionNames []string - PEnabledFeatures []PhysicalDeviceFeatures - refc0d8b997 *C.VkDeviceCreateInfo - allocsc0d8b997 interface{} +// PhysicalDeviceShaderSubgroupExtendedTypesFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.html +type PhysicalDeviceShaderSubgroupExtendedTypesFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderSubgroupExtendedTypes Bool32 + ref3bdcd2a2 *C.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures + allocs3bdcd2a2 interface{} } -// ExtensionProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExtensionProperties.html -type ExtensionProperties struct { - ExtensionName [256]byte - SpecVersion uint32 - ref2f001956 *C.VkExtensionProperties - allocs2f001956 interface{} +// PhysicalDeviceSeparateDepthStencilLayoutsFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.html +type PhysicalDeviceSeparateDepthStencilLayoutsFeatures struct { + SType StructureType + PNext unsafe.Pointer + SeparateDepthStencilLayouts Bool32 + ref7974377f *C.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures + allocs7974377f interface{} } -// LayerProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkLayerProperties.html -type LayerProperties struct { - LayerName [256]byte - SpecVersion uint32 - ImplementationVersion uint32 - Description [256]byte - refd9407ce7 *C.VkLayerProperties - allocsd9407ce7 interface{} +// AttachmentReferenceStencilLayout as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentReferenceStencilLayout.html +type AttachmentReferenceStencilLayout struct { + SType StructureType + PNext unsafe.Pointer + StencilLayout ImageLayout + refb936264a *C.VkAttachmentReferenceStencilLayout + allocsb936264a interface{} } -// SubmitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubmitInfo.html -type SubmitInfo struct { +// AttachmentDescriptionStencilLayout as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentDescriptionStencilLayout.html +type AttachmentDescriptionStencilLayout struct { SType StructureType PNext unsafe.Pointer - WaitSemaphoreCount uint32 - PWaitSemaphores []Semaphore - PWaitDstStageMask []PipelineStageFlags - CommandBufferCount uint32 - PCommandBuffers []CommandBuffer - SignalSemaphoreCount uint32 - PSignalSemaphores []Semaphore - ref22884025 *C.VkSubmitInfo - allocs22884025 interface{} + StencilInitialLayout ImageLayout + StencilFinalLayout ImageLayout + refc8065ded *C.VkAttachmentDescriptionStencilLayout + allocsc8065ded interface{} } -// MemoryAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryAllocateInfo.html -type MemoryAllocateInfo struct { - SType StructureType - PNext unsafe.Pointer - AllocationSize DeviceSize - MemoryTypeIndex uint32 - ref31032b *C.VkMemoryAllocateInfo - allocs31032b interface{} +// PhysicalDeviceHostQueryResetFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceHostQueryResetFeatures.html +type PhysicalDeviceHostQueryResetFeatures struct { + SType StructureType + PNext unsafe.Pointer + HostQueryReset Bool32 + ref6ff2e40a *C.VkPhysicalDeviceHostQueryResetFeatures + allocs6ff2e40a interface{} } -// MappedMemoryRange as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMappedMemoryRange.html -type MappedMemoryRange struct { +// PhysicalDeviceTimelineSemaphoreFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceTimelineSemaphoreFeatures.html +type PhysicalDeviceTimelineSemaphoreFeatures struct { + SType StructureType + PNext unsafe.Pointer + TimelineSemaphore Bool32 + ref9260df2e *C.VkPhysicalDeviceTimelineSemaphoreFeatures + allocs9260df2e interface{} +} + +// PhysicalDeviceTimelineSemaphoreProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceTimelineSemaphoreProperties.html +type PhysicalDeviceTimelineSemaphoreProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxTimelineSemaphoreValueDifference uint64 + ref74220563 *C.VkPhysicalDeviceTimelineSemaphoreProperties + allocs74220563 interface{} +} + +// SemaphoreTypeCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreTypeCreateInfo.html +type SemaphoreTypeCreateInfo struct { SType StructureType PNext unsafe.Pointer - Memory DeviceMemory - Offset DeviceSize - Size DeviceSize - ref42a37320 *C.VkMappedMemoryRange - allocs42a37320 interface{} + SemaphoreType SemaphoreType + InitialValue uint64 + ref4e668d65 *C.VkSemaphoreTypeCreateInfo + allocs4e668d65 interface{} } -// MemoryRequirements as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryRequirements.html -type MemoryRequirements struct { - Size DeviceSize - Alignment DeviceSize - MemoryTypeBits uint32 - ref5259fc6b *C.VkMemoryRequirements - allocs5259fc6b interface{} +// TimelineSemaphoreSubmitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkTimelineSemaphoreSubmitInfo.html +type TimelineSemaphoreSubmitInfo struct { + SType StructureType + PNext unsafe.Pointer + WaitSemaphoreValueCount uint32 + PWaitSemaphoreValues []uint64 + SignalSemaphoreValueCount uint32 + PSignalSemaphoreValues []uint64 + refc447a049 *C.VkTimelineSemaphoreSubmitInfo + allocsc447a049 interface{} } -// SparseImageFormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageFormatProperties.html -type SparseImageFormatProperties struct { - AspectMask ImageAspectFlags - ImageGranularity Extent3D - Flags SparseImageFormatFlags - ref2c12cf44 *C.VkSparseImageFormatProperties - allocs2c12cf44 interface{} +// SemaphoreWaitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreWaitInfo.html +type SemaphoreWaitInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags SemaphoreWaitFlags + SemaphoreCount uint32 + PSemaphores []Semaphore + PValues []uint64 + ref5e4f71e8 *C.VkSemaphoreWaitInfo + allocs5e4f71e8 interface{} } -// SparseImageMemoryRequirements as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageMemoryRequirements.html -type SparseImageMemoryRequirements struct { - FormatProperties SparseImageFormatProperties - ImageMipTailFirstLod uint32 - ImageMipTailSize DeviceSize - ImageMipTailOffset DeviceSize - ImageMipTailStride DeviceSize - ref685a2323 *C.VkSparseImageMemoryRequirements - allocs685a2323 interface{} +// SemaphoreSignalInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreSignalInfo.html +type SemaphoreSignalInfo struct { + SType StructureType + PNext unsafe.Pointer + Semaphore Semaphore + Value uint64 + ref126d16a2 *C.VkSemaphoreSignalInfo + allocs126d16a2 interface{} } -// SparseMemoryBind as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseMemoryBind.html -type SparseMemoryBind struct { - ResourceOffset DeviceSize - Size DeviceSize - Memory DeviceMemory - MemoryOffset DeviceSize - Flags SparseMemoryBindFlags - ref5bf418e8 *C.VkSparseMemoryBind - allocs5bf418e8 interface{} +// PhysicalDeviceBufferDeviceAddressFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceBufferDeviceAddressFeatures.html +type PhysicalDeviceBufferDeviceAddressFeatures struct { + SType StructureType + PNext unsafe.Pointer + BufferDeviceAddress Bool32 + BufferDeviceAddressCaptureReplay Bool32 + BufferDeviceAddressMultiDevice Bool32 + ref13b242c3 *C.VkPhysicalDeviceBufferDeviceAddressFeatures + allocs13b242c3 interface{} } -// SparseBufferMemoryBindInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseBufferMemoryBindInfo.html -type SparseBufferMemoryBindInfo struct { +// BufferDeviceAddressInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferDeviceAddressInfo.html +type BufferDeviceAddressInfo struct { + SType StructureType + PNext unsafe.Pointer Buffer Buffer - BindCount uint32 - PBinds []SparseMemoryBind - refebcaf40c *C.VkSparseBufferMemoryBindInfo - allocsebcaf40c interface{} + ref347b43e3 *C.VkBufferDeviceAddressInfo + allocs347b43e3 interface{} } -// SparseImageOpaqueMemoryBindInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageOpaqueMemoryBindInfo.html -type SparseImageOpaqueMemoryBindInfo struct { - Image Image - BindCount uint32 - PBinds []SparseMemoryBind - reffb1b3d56 *C.VkSparseImageOpaqueMemoryBindInfo - allocsfb1b3d56 interface{} +// BufferOpaqueCaptureAddressCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferOpaqueCaptureAddressCreateInfo.html +type BufferOpaqueCaptureAddressCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + OpaqueCaptureAddress uint64 + refb0364ded *C.VkBufferOpaqueCaptureAddressCreateInfo + allocsb0364ded interface{} } -// ImageSubresource as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageSubresource.html -type ImageSubresource struct { - AspectMask ImageAspectFlags - MipLevel uint32 - ArrayLayer uint32 - reffeaa0d8a *C.VkImageSubresource - allocsfeaa0d8a interface{} +// MemoryOpaqueCaptureAddressAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryOpaqueCaptureAddressAllocateInfo.html +type MemoryOpaqueCaptureAddressAllocateInfo struct { + SType StructureType + PNext unsafe.Pointer + OpaqueCaptureAddress uint64 + refe361764c *C.VkMemoryOpaqueCaptureAddressAllocateInfo + allocse361764c interface{} } -// Offset3D as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkOffset3D.html -type Offset3D struct { - X int32 - Y int32 - Z int32 - ref2b6879c2 *C.VkOffset3D - allocs2b6879c2 interface{} +// DeviceMemoryOpaqueCaptureAddressInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceMemoryOpaqueCaptureAddressInfo.html +type DeviceMemoryOpaqueCaptureAddressInfo struct { + SType StructureType + PNext unsafe.Pointer + Memory DeviceMemory + refbbe30c6e *C.VkDeviceMemoryOpaqueCaptureAddressInfo + allocsbbe30c6e interface{} } -// SparseImageMemoryBind as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageMemoryBind.html -type SparseImageMemoryBind struct { - Subresource ImageSubresource - Offset Offset3D - Extent Extent3D - Memory DeviceMemory - MemoryOffset DeviceSize - Flags SparseMemoryBindFlags - ref41b516d7 *C.VkSparseImageMemoryBind - allocs41b516d7 interface{} +// Flags64 type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFlags64.html +type Flags64 uint64 + +// PrivateDataSlot as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPrivateDataSlot.html +type PrivateDataSlot C.VkPrivateDataSlot + +// PipelineCreationFeedbackFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCreationFeedbackFlags.html +type PipelineCreationFeedbackFlags uint32 + +// ToolPurposeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkToolPurposeFlags.html +type ToolPurposeFlags uint32 + +// PrivateDataSlotCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPrivateDataSlotCreateFlags.html +type PrivateDataSlotCreateFlags uint32 + +// PipelineStageFlags2 type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineStageFlags2.html +type PipelineStageFlags2 uint64 + +// PipelineStageFlagBits2 type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineStageFlagBits2.html +type PipelineStageFlagBits2 uint64 + +// AccessFlags2 type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAccessFlags2.html +type AccessFlags2 uint64 + +// AccessFlagBits2 type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAccessFlagBits2.html +type AccessFlagBits2 uint64 + +// SubmitFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubmitFlags.html +type SubmitFlags uint32 + +// RenderingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderingFlags.html +type RenderingFlags uint32 + +// FormatFeatureFlags2 type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFormatFeatureFlags2.html +type FormatFeatureFlags2 uint64 + +// FormatFeatureFlagBits2 type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFormatFeatureFlagBits2.html +type FormatFeatureFlagBits2 uint64 + +// PhysicalDeviceVulkan13Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVulkan13Features.html +type PhysicalDeviceVulkan13Features struct { + SType StructureType + PNext unsafe.Pointer + RobustImageAccess Bool32 + InlineUniformBlock Bool32 + DescriptorBindingInlineUniformBlockUpdateAfterBind Bool32 + PipelineCreationCacheControl Bool32 + PrivateData Bool32 + ShaderDemoteToHelperInvocation Bool32 + ShaderTerminateInvocation Bool32 + SubgroupSizeControl Bool32 + ComputeFullSubgroups Bool32 + Synchronization2 Bool32 + TextureCompressionASTC_HDR Bool32 + ShaderZeroInitializeWorkgroupMemory Bool32 + DynamicRendering Bool32 + ShaderIntegerDotProduct Bool32 + Maintenance4 Bool32 + reffbc57469 *C.VkPhysicalDeviceVulkan13Features + allocsfbc57469 interface{} +} + +// PhysicalDeviceVulkan13Properties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVulkan13Properties.html +type PhysicalDeviceVulkan13Properties struct { + SType StructureType + PNext unsafe.Pointer + MinSubgroupSize uint32 + MaxSubgroupSize uint32 + MaxComputeWorkgroupSubgroups uint32 + RequiredSubgroupSizeStages ShaderStageFlags + MaxInlineUniformBlockSize uint32 + MaxPerStageDescriptorInlineUniformBlocks uint32 + MaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks uint32 + MaxDescriptorSetInlineUniformBlocks uint32 + MaxDescriptorSetUpdateAfterBindInlineUniformBlocks uint32 + MaxInlineUniformTotalSize uint32 + IntegerDotProduct8BitUnsignedAccelerated Bool32 + IntegerDotProduct8BitSignedAccelerated Bool32 + IntegerDotProduct8BitMixedSignednessAccelerated Bool32 + IntegerDotProduct4x8BitPackedUnsignedAccelerated Bool32 + IntegerDotProduct4x8BitPackedSignedAccelerated Bool32 + IntegerDotProduct4x8BitPackedMixedSignednessAccelerated Bool32 + IntegerDotProduct16BitUnsignedAccelerated Bool32 + IntegerDotProduct16BitSignedAccelerated Bool32 + IntegerDotProduct16BitMixedSignednessAccelerated Bool32 + IntegerDotProduct32BitUnsignedAccelerated Bool32 + IntegerDotProduct32BitSignedAccelerated Bool32 + IntegerDotProduct32BitMixedSignednessAccelerated Bool32 + IntegerDotProduct64BitUnsignedAccelerated Bool32 + IntegerDotProduct64BitSignedAccelerated Bool32 + IntegerDotProduct64BitMixedSignednessAccelerated Bool32 + IntegerDotProductAccumulatingSaturating8BitUnsignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating8BitSignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated Bool32 + IntegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated Bool32 + IntegerDotProductAccumulatingSaturating16BitUnsignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating16BitSignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated Bool32 + IntegerDotProductAccumulatingSaturating32BitUnsignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating32BitSignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated Bool32 + IntegerDotProductAccumulatingSaturating64BitUnsignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating64BitSignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated Bool32 + StorageTexelBufferOffsetAlignmentBytes DeviceSize + StorageTexelBufferOffsetSingleTexelAlignment Bool32 + UniformTexelBufferOffsetAlignmentBytes DeviceSize + UniformTexelBufferOffsetSingleTexelAlignment Bool32 + MaxBufferSize DeviceSize + ref8a1ecf64 *C.VkPhysicalDeviceVulkan13Properties + allocs8a1ecf64 interface{} +} + +// PipelineCreationFeedback as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCreationFeedback.html +type PipelineCreationFeedback struct { + Flags PipelineCreationFeedbackFlags + Duration uint64 + ref98e30cfe *C.VkPipelineCreationFeedback + allocs98e30cfe interface{} +} + +// PipelineCreationFeedbackCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCreationFeedbackCreateInfo.html +type PipelineCreationFeedbackCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + PPipelineCreationFeedback []PipelineCreationFeedback + PipelineStageCreationFeedbackCount uint32 + PPipelineStageCreationFeedbacks []PipelineCreationFeedback + ref4fcf7570 *C.VkPipelineCreationFeedbackCreateInfo + allocs4fcf7570 interface{} } -// SparseImageMemoryBindInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageMemoryBindInfo.html -type SparseImageMemoryBindInfo struct { - Image Image - BindCount uint32 - PBinds []SparseImageMemoryBind - ref50faeb70 *C.VkSparseImageMemoryBindInfo - allocs50faeb70 interface{} +// PhysicalDeviceShaderTerminateInvocationFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderTerminateInvocationFeatures.html +type PhysicalDeviceShaderTerminateInvocationFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderTerminateInvocation Bool32 + ref49451fcb *C.VkPhysicalDeviceShaderTerminateInvocationFeatures + allocs49451fcb interface{} } -// BindSparseInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindSparseInfo.html -type BindSparseInfo struct { - SType StructureType - PNext unsafe.Pointer - WaitSemaphoreCount uint32 - PWaitSemaphores []Semaphore - BufferBindCount uint32 - PBufferBinds []SparseBufferMemoryBindInfo - ImageOpaqueBindCount uint32 - PImageOpaqueBinds []SparseImageOpaqueMemoryBindInfo - ImageBindCount uint32 - PImageBinds []SparseImageMemoryBindInfo - SignalSemaphoreCount uint32 - PSignalSemaphores []Semaphore - refb0cbe910 *C.VkBindSparseInfo - allocsb0cbe910 interface{} +// PhysicalDeviceToolProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceToolProperties.html +type PhysicalDeviceToolProperties struct { + SType StructureType + PNext unsafe.Pointer + Name [256]byte + Version [256]byte + Purposes ToolPurposeFlags + Description [256]byte + Layer [256]byte + ref88f98ec3 *C.VkPhysicalDeviceToolProperties + allocs88f98ec3 interface{} } -// FenceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceCreateInfo.html -type FenceCreateInfo struct { +// PhysicalDeviceShaderDemoteToHelperInvocationFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures.html +type PhysicalDeviceShaderDemoteToHelperInvocationFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderDemoteToHelperInvocation Bool32 + ref5eeeae89 *C.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures + allocs5eeeae89 interface{} +} + +// PhysicalDevicePrivateDataFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePrivateDataFeatures.html +type PhysicalDevicePrivateDataFeatures struct { SType StructureType PNext unsafe.Pointer - Flags FenceCreateFlags - refb8ff4840 *C.VkFenceCreateInfo - allocsb8ff4840 interface{} + PrivateData Bool32 + refeee8cb11 *C.VkPhysicalDevicePrivateDataFeatures + allocseee8cb11 interface{} } -// SemaphoreCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreCreateInfo.html -type SemaphoreCreateInfo struct { +// DevicePrivateDataCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDevicePrivateDataCreateInfo.html +type DevicePrivateDataCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + PrivateDataSlotRequestCount uint32 + ref5e7326be *C.VkDevicePrivateDataCreateInfo + allocs5e7326be interface{} +} + +// PrivateDataSlotCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPrivateDataSlotCreateInfo.html +type PrivateDataSlotCreateInfo struct { SType StructureType PNext unsafe.Pointer - Flags SemaphoreCreateFlags - reff130cd2b *C.VkSemaphoreCreateInfo - allocsf130cd2b interface{} + Flags PrivateDataSlotCreateFlags + reffd6b0ff3 *C.VkPrivateDataSlotCreateInfo + allocsfd6b0ff3 interface{} } -// EventCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkEventCreateInfo.html -type EventCreateInfo struct { +// PhysicalDevicePipelineCreationCacheControlFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePipelineCreationCacheControlFeatures.html +type PhysicalDevicePipelineCreationCacheControlFeatures struct { + SType StructureType + PNext unsafe.Pointer + PipelineCreationCacheControl Bool32 + ref5e373d52 *C.VkPhysicalDevicePipelineCreationCacheControlFeatures + allocs5e373d52 interface{} +} + +// MemoryBarrier2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryBarrier2.html +type MemoryBarrier2 struct { SType StructureType PNext unsafe.Pointer - Flags EventCreateFlags - refa54f9ec8 *C.VkEventCreateInfo - allocsa54f9ec8 interface{} + SrcStageMask PipelineStageFlags2 + SrcAccessMask AccessFlags2 + DstStageMask PipelineStageFlags2 + DstAccessMask AccessFlags2 + ref8b26ae0e *C.VkMemoryBarrier2 + allocs8b26ae0e interface{} } -// QueryPoolCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPoolCreateInfo.html -type QueryPoolCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags QueryPoolCreateFlags - QueryType QueryType - QueryCount uint32 - PipelineStatistics QueryPipelineStatisticFlags - ref85dfcd4a *C.VkQueryPoolCreateInfo - allocs85dfcd4a interface{} +// BufferMemoryBarrier2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferMemoryBarrier2.html +type BufferMemoryBarrier2 struct { + SType StructureType + PNext unsafe.Pointer + SrcStageMask PipelineStageFlags2 + SrcAccessMask AccessFlags2 + DstStageMask PipelineStageFlags2 + DstAccessMask AccessFlags2 + SrcQueueFamilyIndex uint32 + DstQueueFamilyIndex uint32 + Buffer Buffer + Offset DeviceSize + Size DeviceSize + ref8ded93f5 *C.VkBufferMemoryBarrier2 + allocs8ded93f5 interface{} } -// BufferCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferCreateInfo.html -type BufferCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags BufferCreateFlags - Size DeviceSize - Usage BufferUsageFlags - SharingMode SharingMode - QueueFamilyIndexCount uint32 - PQueueFamilyIndices []uint32 - reffe19d2cd *C.VkBufferCreateInfo - allocsfe19d2cd interface{} +// ImageMemoryBarrier2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageMemoryBarrier2.html +type ImageMemoryBarrier2 struct { + SType StructureType + PNext unsafe.Pointer + SrcStageMask PipelineStageFlags2 + SrcAccessMask AccessFlags2 + DstStageMask PipelineStageFlags2 + DstAccessMask AccessFlags2 + OldLayout ImageLayout + NewLayout ImageLayout + SrcQueueFamilyIndex uint32 + DstQueueFamilyIndex uint32 + Image Image + SubresourceRange ImageSubresourceRange + refb3bc376a *C.VkImageMemoryBarrier2 + allocsb3bc376a interface{} } -// BufferViewCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferViewCreateInfo.html -type BufferViewCreateInfo struct { +// DependencyInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDependencyInfo.html +type DependencyInfo struct { + SType StructureType + PNext unsafe.Pointer + DependencyFlags DependencyFlags + MemoryBarrierCount uint32 + PMemoryBarriers []MemoryBarrier2 + BufferMemoryBarrierCount uint32 + PBufferMemoryBarriers []BufferMemoryBarrier2 + ImageMemoryBarrierCount uint32 + PImageMemoryBarriers []ImageMemoryBarrier2 + ref18c760d2 *C.VkDependencyInfo + allocs18c760d2 interface{} +} + +// SemaphoreSubmitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreSubmitInfo.html +type SemaphoreSubmitInfo struct { SType StructureType PNext unsafe.Pointer - Flags BufferViewCreateFlags - Buffer Buffer - Format Format - Offset DeviceSize - Range DeviceSize - ref49b97027 *C.VkBufferViewCreateInfo - allocs49b97027 interface{} + Semaphore Semaphore + Value uint64 + StageMask PipelineStageFlags2 + DeviceIndex uint32 + ref9d52ed10 *C.VkSemaphoreSubmitInfo + allocs9d52ed10 interface{} } -// ImageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCreateInfo.html -type ImageCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags ImageCreateFlags - ImageType ImageType - Format Format - Extent Extent3D - MipLevels uint32 - ArrayLayers uint32 - Samples SampleCountFlagBits - Tiling ImageTiling - Usage ImageUsageFlags - SharingMode SharingMode - QueueFamilyIndexCount uint32 - PQueueFamilyIndices []uint32 - InitialLayout ImageLayout - reffb587ba1 *C.VkImageCreateInfo - allocsfb587ba1 interface{} +// CommandBufferSubmitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferSubmitInfo.html +type CommandBufferSubmitInfo struct { + SType StructureType + PNext unsafe.Pointer + CommandBuffer CommandBuffer + DeviceMask uint32 + ref67c6884a *C.VkCommandBufferSubmitInfo + allocs67c6884a interface{} } -// SubresourceLayout as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubresourceLayout.html -type SubresourceLayout struct { - Offset DeviceSize - Size DeviceSize - RowPitch DeviceSize - ArrayPitch DeviceSize - DepthPitch DeviceSize - ref182612ad *C.VkSubresourceLayout - allocs182612ad interface{} +// SubmitInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubmitInfo2.html +type SubmitInfo2 struct { + SType StructureType + PNext unsafe.Pointer + Flags SubmitFlags + WaitSemaphoreInfoCount uint32 + PWaitSemaphoreInfos []SemaphoreSubmitInfo + CommandBufferInfoCount uint32 + PCommandBufferInfos []CommandBufferSubmitInfo + SignalSemaphoreInfoCount uint32 + PSignalSemaphoreInfos []SemaphoreSubmitInfo + ref51f3e20a *C.VkSubmitInfo2 + allocs51f3e20a interface{} +} + +// PhysicalDeviceSynchronization2Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSynchronization2Features.html +type PhysicalDeviceSynchronization2Features struct { + SType StructureType + PNext unsafe.Pointer + Synchronization2 Bool32 + ref64be4f9 *C.VkPhysicalDeviceSynchronization2Features + allocs64be4f9 interface{} } -// ComponentMapping as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkComponentMapping.html -type ComponentMapping struct { - R ComponentSwizzle - G ComponentSwizzle - B ComponentSwizzle - A ComponentSwizzle - ref63d3d563 *C.VkComponentMapping - allocs63d3d563 interface{} +// PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures.html +type PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderZeroInitializeWorkgroupMemory Bool32 + ref971f8a0a *C.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures + allocs971f8a0a interface{} } -// ImageSubresourceRange as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageSubresourceRange.html -type ImageSubresourceRange struct { - AspectMask ImageAspectFlags - BaseMipLevel uint32 - LevelCount uint32 - BaseArrayLayer uint32 - LayerCount uint32 - ref5aa1126 *C.VkImageSubresourceRange - allocs5aa1126 interface{} +// PhysicalDeviceImageRobustnessFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImageRobustnessFeatures.html +type PhysicalDeviceImageRobustnessFeatures struct { + SType StructureType + PNext unsafe.Pointer + RobustImageAccess Bool32 + ref73ceff2 *C.VkPhysicalDeviceImageRobustnessFeatures + allocs73ceff2 interface{} } -// ImageViewCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewCreateInfo.html -type ImageViewCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags ImageViewCreateFlags - Image Image - ViewType ImageViewType - Format Format - Components ComponentMapping - SubresourceRange ImageSubresourceRange - ref77e8d4b8 *C.VkImageViewCreateInfo - allocs77e8d4b8 interface{} +// BufferCopy2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferCopy2.html +type BufferCopy2 struct { + SType StructureType + PNext unsafe.Pointer + SrcOffset DeviceSize + DstOffset DeviceSize + Size DeviceSize + refd9cb28e3 *C.VkBufferCopy2 + allocsd9cb28e3 interface{} } -// ShaderModuleCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShaderModuleCreateInfo.html -type ShaderModuleCreateInfo struct { +// CopyBufferInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCopyBufferInfo2.html +type CopyBufferInfo2 struct { SType StructureType PNext unsafe.Pointer - Flags ShaderModuleCreateFlags - CodeSize uint - PCode []uint32 - refc663d23e *C.VkShaderModuleCreateInfo - allocsc663d23e interface{} + SrcBuffer Buffer + DstBuffer Buffer + RegionCount uint32 + PRegions []BufferCopy2 + ref95a1aa26 *C.VkCopyBufferInfo2 + allocs95a1aa26 interface{} } -// PipelineCacheCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCacheCreateInfo.html -type PipelineCacheCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineCacheCreateFlags - InitialDataSize uint - PInitialData unsafe.Pointer - reff11e7dd1 *C.VkPipelineCacheCreateInfo - allocsf11e7dd1 interface{} +// ImageCopy2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCopy2.html +type ImageCopy2 struct { + SType StructureType + PNext unsafe.Pointer + SrcSubresource ImageSubresourceLayers + SrcOffset Offset3D + DstSubresource ImageSubresourceLayers + DstOffset Offset3D + Extent Extent3D + ref411062 *C.VkImageCopy2 + allocs411062 interface{} } -// SpecializationMapEntry as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSpecializationMapEntry.html -type SpecializationMapEntry struct { - ConstantID uint32 - Offset uint32 - Size uint - ref2fd815d1 *C.VkSpecializationMapEntry - allocs2fd815d1 interface{} +// CopyImageInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCopyImageInfo2.html +type CopyImageInfo2 struct { + SType StructureType + PNext unsafe.Pointer + SrcImage Image + SrcImageLayout ImageLayout + DstImage Image + DstImageLayout ImageLayout + RegionCount uint32 + PRegions []ImageCopy2 + ref73df1447 *C.VkCopyImageInfo2 + allocs73df1447 interface{} +} + +// BufferImageCopy2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferImageCopy2.html +type BufferImageCopy2 struct { + SType StructureType + PNext unsafe.Pointer + BufferOffset DeviceSize + BufferRowLength uint32 + BufferImageHeight uint32 + ImageSubresource ImageSubresourceLayers + ImageOffset Offset3D + ImageExtent Extent3D + refb0b2a2b1 *C.VkBufferImageCopy2 + allocsb0b2a2b1 interface{} } -// SpecializationInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSpecializationInfo.html -type SpecializationInfo struct { - MapEntryCount uint32 - PMapEntries []SpecializationMapEntry - DataSize uint - PData unsafe.Pointer - ref6bc395a3 *C.VkSpecializationInfo - allocs6bc395a3 interface{} +// CopyBufferToImageInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCopyBufferToImageInfo2.html +type CopyBufferToImageInfo2 struct { + SType StructureType + PNext unsafe.Pointer + SrcBuffer Buffer + DstImage Image + DstImageLayout ImageLayout + RegionCount uint32 + PRegions []BufferImageCopy2 + refa8b5363c *C.VkCopyBufferToImageInfo2 + allocsa8b5363c interface{} } -// PipelineShaderStageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineShaderStageCreateInfo.html -type PipelineShaderStageCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineShaderStageCreateFlags - Stage ShaderStageFlagBits - Module ShaderModule - PName string - PSpecializationInfo []SpecializationInfo - ref50ba8b60 *C.VkPipelineShaderStageCreateInfo - allocs50ba8b60 interface{} +// CopyImageToBufferInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCopyImageToBufferInfo2.html +type CopyImageToBufferInfo2 struct { + SType StructureType + PNext unsafe.Pointer + SrcImage Image + SrcImageLayout ImageLayout + DstBuffer Buffer + RegionCount uint32 + PRegions []BufferImageCopy2 + refa81aa2a6 *C.VkCopyImageToBufferInfo2 + allocsa81aa2a6 interface{} } -// VertexInputBindingDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputBindingDescription.html -type VertexInputBindingDescription struct { - Binding uint32 - Stride uint32 - InputRate VertexInputRate - ref5c9d8c23 *C.VkVertexInputBindingDescription - allocs5c9d8c23 interface{} +// ImageBlit2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageBlit2.html +type ImageBlit2 struct { + SType StructureType + PNext unsafe.Pointer + SrcSubresource ImageSubresourceLayers + SrcOffsets [2]Offset3D + DstSubresource ImageSubresourceLayers + DstOffsets [2]Offset3D + ref89cd708e *C.VkImageBlit2 + allocs89cd708e interface{} +} + +// BlitImageInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBlitImageInfo2.html +type BlitImageInfo2 struct { + SType StructureType + PNext unsafe.Pointer + SrcImage Image + SrcImageLayout ImageLayout + DstImage Image + DstImageLayout ImageLayout + RegionCount uint32 + PRegions []ImageBlit2 + Filter Filter + ref93f0395 *C.VkBlitImageInfo2 + allocs93f0395 interface{} +} + +// ImageResolve2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageResolve2.html +type ImageResolve2 struct { + SType StructureType + PNext unsafe.Pointer + SrcSubresource ImageSubresourceLayers + SrcOffset Offset3D + DstSubresource ImageSubresourceLayers + DstOffset Offset3D + Extent Extent3D + ref29ad796d *C.VkImageResolve2 + allocs29ad796d interface{} +} + +// ResolveImageInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkResolveImageInfo2.html +type ResolveImageInfo2 struct { + SType StructureType + PNext unsafe.Pointer + SrcImage Image + SrcImageLayout ImageLayout + DstImage Image + DstImageLayout ImageLayout + RegionCount uint32 + PRegions []ImageResolve2 + ref407c4932 *C.VkResolveImageInfo2 + allocs407c4932 interface{} +} + +// PhysicalDeviceSubgroupSizeControlFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSubgroupSizeControlFeatures.html +type PhysicalDeviceSubgroupSizeControlFeatures struct { + SType StructureType + PNext unsafe.Pointer + SubgroupSizeControl Bool32 + ComputeFullSubgroups Bool32 + ref688d05c2 *C.VkPhysicalDeviceSubgroupSizeControlFeatures + allocs688d05c2 interface{} } -// VertexInputAttributeDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputAttributeDescription.html -type VertexInputAttributeDescription struct { - Location uint32 - Binding uint32 - Format Format - Offset uint32 - refdc4635ff *C.VkVertexInputAttributeDescription - allocsdc4635ff interface{} +// PhysicalDeviceSubgroupSizeControlProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSubgroupSizeControlProperties.html +type PhysicalDeviceSubgroupSizeControlProperties struct { + SType StructureType + PNext unsafe.Pointer + MinSubgroupSize uint32 + MaxSubgroupSize uint32 + MaxComputeWorkgroupSubgroups uint32 + RequiredSubgroupSizeStages ShaderStageFlags + refe0ef78a4 *C.VkPhysicalDeviceSubgroupSizeControlProperties + allocse0ef78a4 interface{} } -// PipelineVertexInputStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineVertexInputStateCreateInfo.html -type PipelineVertexInputStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineVertexInputStateCreateFlags - VertexBindingDescriptionCount uint32 - PVertexBindingDescriptions []VertexInputBindingDescription - VertexAttributeDescriptionCount uint32 - PVertexAttributeDescriptions []VertexInputAttributeDescription - ref5fe4aa50 *C.VkPipelineVertexInputStateCreateInfo - allocs5fe4aa50 interface{} +// PipelineShaderStageRequiredSubgroupSizeCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineShaderStageRequiredSubgroupSizeCreateInfo.html +type PipelineShaderStageRequiredSubgroupSizeCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + RequiredSubgroupSize uint32 + refd57e5454 *C.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo + allocsd57e5454 interface{} } -// PipelineInputAssemblyStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineInputAssemblyStateCreateInfo.html -type PipelineInputAssemblyStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineInputAssemblyStateCreateFlags - Topology PrimitiveTopology - PrimitiveRestartEnable Bool32 - ref22e1691d *C.VkPipelineInputAssemblyStateCreateInfo - allocs22e1691d interface{} +// PhysicalDeviceInlineUniformBlockFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceInlineUniformBlockFeatures.html +type PhysicalDeviceInlineUniformBlockFeatures struct { + SType StructureType + PNext unsafe.Pointer + InlineUniformBlock Bool32 + DescriptorBindingInlineUniformBlockUpdateAfterBind Bool32 + ref6057e623 *C.VkPhysicalDeviceInlineUniformBlockFeatures + allocs6057e623 interface{} } -// PipelineTessellationStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineTessellationStateCreateInfo.html -type PipelineTessellationStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineTessellationStateCreateFlags - PatchControlPoints uint32 - ref4ef3997a *C.VkPipelineTessellationStateCreateInfo - allocs4ef3997a interface{} +// PhysicalDeviceInlineUniformBlockProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceInlineUniformBlockProperties.html +type PhysicalDeviceInlineUniformBlockProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxInlineUniformBlockSize uint32 + MaxPerStageDescriptorInlineUniformBlocks uint32 + MaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks uint32 + MaxDescriptorSetInlineUniformBlocks uint32 + MaxDescriptorSetUpdateAfterBindInlineUniformBlocks uint32 + ref9e890111 *C.VkPhysicalDeviceInlineUniformBlockProperties + allocs9e890111 interface{} } -// Viewport as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkViewport.html -type Viewport struct { - X float32 - Y float32 - Width float32 - Height float32 - MinDepth float32 - MaxDepth float32 - ref75cf5291 *C.VkViewport - allocs75cf5291 interface{} +// WriteDescriptorSetInlineUniformBlock as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkWriteDescriptorSetInlineUniformBlock.html +type WriteDescriptorSetInlineUniformBlock struct { + SType StructureType + PNext unsafe.Pointer + DataSize uint32 + PData unsafe.Pointer + ref3e98b3ff *C.VkWriteDescriptorSetInlineUniformBlock + allocs3e98b3ff interface{} } -// Offset2D as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkOffset2D.html -type Offset2D struct { - X int32 - Y int32 - ref32734883 *C.VkOffset2D - allocs32734883 interface{} +// DescriptorPoolInlineUniformBlockCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolInlineUniformBlockCreateInfo.html +type DescriptorPoolInlineUniformBlockCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + MaxInlineUniformBlockBindings uint32 + refac227a39 *C.VkDescriptorPoolInlineUniformBlockCreateInfo + allocsac227a39 interface{} } -// Extent2D as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExtent2D.html -type Extent2D struct { - Width uint32 - Height uint32 - refe2edf56b *C.VkExtent2D - allocse2edf56b interface{} +// PhysicalDeviceTextureCompressionASTCHDRFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceTextureCompressionASTCHDRFeatures.html +type PhysicalDeviceTextureCompressionASTCHDRFeatures struct { + SType StructureType + PNext unsafe.Pointer + TextureCompressionASTC_HDR Bool32 + refb5195968 *C.VkPhysicalDeviceTextureCompressionASTCHDRFeatures + allocsb5195968 interface{} } -// Rect2D as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRect2D.html -type Rect2D struct { - Offset Offset2D - Extent Extent2D - ref89e4256f *C.VkRect2D - allocs89e4256f interface{} +// RenderingAttachmentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderingAttachmentInfo.html +type RenderingAttachmentInfo struct { + SType StructureType + PNext unsafe.Pointer + ImageView ImageView + ImageLayout ImageLayout + ResolveMode ResolveModeFlagBits + ResolveImageView ImageView + ResolveImageLayout ImageLayout + LoadOp AttachmentLoadOp + StoreOp AttachmentStoreOp + ClearValue ClearValue + ref62eee071 *C.VkRenderingAttachmentInfo + allocs62eee071 interface{} +} + +// RenderingInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderingInfo.html +type RenderingInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags RenderingFlags + RenderArea Rect2D + LayerCount uint32 + ViewMask uint32 + ColorAttachmentCount uint32 + PColorAttachments []RenderingAttachmentInfo + PDepthAttachment []RenderingAttachmentInfo + PStencilAttachment []RenderingAttachmentInfo + refe60d8c7 *C.VkRenderingInfo + allocse60d8c7 interface{} +} + +// PipelineRenderingCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRenderingCreateInfo.html +type PipelineRenderingCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + ViewMask uint32 + ColorAttachmentCount uint32 + PColorAttachmentFormats []Format + DepthAttachmentFormat Format + StencilAttachmentFormat Format + ref2f948283 *C.VkPipelineRenderingCreateInfo + allocs2f948283 interface{} } -// PipelineViewportStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportStateCreateInfo.html -type PipelineViewportStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineViewportStateCreateFlags - ViewportCount uint32 - PViewports []Viewport - ScissorCount uint32 - PScissors []Rect2D - refc4705791 *C.VkPipelineViewportStateCreateInfo - allocsc4705791 interface{} +// PhysicalDeviceDynamicRenderingFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDynamicRenderingFeatures.html +type PhysicalDeviceDynamicRenderingFeatures struct { + SType StructureType + PNext unsafe.Pointer + DynamicRendering Bool32 + refa724d875 *C.VkPhysicalDeviceDynamicRenderingFeatures + allocsa724d875 interface{} } -// PipelineRasterizationStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationStateCreateInfo.html -type PipelineRasterizationStateCreateInfo struct { +// CommandBufferInheritanceRenderingInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferInheritanceRenderingInfo.html +type CommandBufferInheritanceRenderingInfo struct { SType StructureType PNext unsafe.Pointer - Flags PipelineRasterizationStateCreateFlags - DepthClampEnable Bool32 - RasterizerDiscardEnable Bool32 - PolygonMode PolygonMode - CullMode CullModeFlags - FrontFace FrontFace - DepthBiasEnable Bool32 - DepthBiasConstantFactor float32 - DepthBiasClamp float32 - DepthBiasSlopeFactor float32 - LineWidth float32 - ref48cb9fad *C.VkPipelineRasterizationStateCreateInfo - allocs48cb9fad interface{} + Flags RenderingFlags + ViewMask uint32 + ColorAttachmentCount uint32 + PColorAttachmentFormats []Format + DepthAttachmentFormat Format + StencilAttachmentFormat Format + RasterizationSamples SampleCountFlagBits + reff704c204 *C.VkCommandBufferInheritanceRenderingInfo + allocsf704c204 interface{} } -// PipelineMultisampleStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineMultisampleStateCreateInfo.html -type PipelineMultisampleStateCreateInfo struct { +// PhysicalDeviceShaderIntegerDotProductFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderIntegerDotProductFeatures.html +type PhysicalDeviceShaderIntegerDotProductFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderIntegerDotProduct Bool32 + ref776faa9c *C.VkPhysicalDeviceShaderIntegerDotProductFeatures + allocs776faa9c interface{} +} + +// PhysicalDeviceShaderIntegerDotProductProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderIntegerDotProductProperties.html +type PhysicalDeviceShaderIntegerDotProductProperties struct { + SType StructureType + PNext unsafe.Pointer + IntegerDotProduct8BitUnsignedAccelerated Bool32 + IntegerDotProduct8BitSignedAccelerated Bool32 + IntegerDotProduct8BitMixedSignednessAccelerated Bool32 + IntegerDotProduct4x8BitPackedUnsignedAccelerated Bool32 + IntegerDotProduct4x8BitPackedSignedAccelerated Bool32 + IntegerDotProduct4x8BitPackedMixedSignednessAccelerated Bool32 + IntegerDotProduct16BitUnsignedAccelerated Bool32 + IntegerDotProduct16BitSignedAccelerated Bool32 + IntegerDotProduct16BitMixedSignednessAccelerated Bool32 + IntegerDotProduct32BitUnsignedAccelerated Bool32 + IntegerDotProduct32BitSignedAccelerated Bool32 + IntegerDotProduct32BitMixedSignednessAccelerated Bool32 + IntegerDotProduct64BitUnsignedAccelerated Bool32 + IntegerDotProduct64BitSignedAccelerated Bool32 + IntegerDotProduct64BitMixedSignednessAccelerated Bool32 + IntegerDotProductAccumulatingSaturating8BitUnsignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating8BitSignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated Bool32 + IntegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated Bool32 + IntegerDotProductAccumulatingSaturating16BitUnsignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating16BitSignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated Bool32 + IntegerDotProductAccumulatingSaturating32BitUnsignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating32BitSignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated Bool32 + IntegerDotProductAccumulatingSaturating64BitUnsignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating64BitSignedAccelerated Bool32 + IntegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated Bool32 + ref82bea9e5 *C.VkPhysicalDeviceShaderIntegerDotProductProperties + allocs82bea9e5 interface{} +} + +// PhysicalDeviceTexelBufferAlignmentProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceTexelBufferAlignmentProperties.html +type PhysicalDeviceTexelBufferAlignmentProperties struct { + SType StructureType + PNext unsafe.Pointer + StorageTexelBufferOffsetAlignmentBytes DeviceSize + StorageTexelBufferOffsetSingleTexelAlignment Bool32 + UniformTexelBufferOffsetAlignmentBytes DeviceSize + UniformTexelBufferOffsetSingleTexelAlignment Bool32 + ref52cb68df *C.VkPhysicalDeviceTexelBufferAlignmentProperties + allocs52cb68df interface{} +} + +// FormatProperties3 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFormatProperties3.html +type FormatProperties3 struct { SType StructureType PNext unsafe.Pointer - Flags PipelineMultisampleStateCreateFlags - RasterizationSamples SampleCountFlagBits - SampleShadingEnable Bool32 - MinSampleShading float32 - PSampleMask []SampleMask - AlphaToCoverageEnable Bool32 - AlphaToOneEnable Bool32 - refb6538bfb *C.VkPipelineMultisampleStateCreateInfo - allocsb6538bfb interface{} + LinearTilingFeatures FormatFeatureFlags2 + OptimalTilingFeatures FormatFeatureFlags2 + BufferFeatures FormatFeatureFlags2 + refaac19fbc *C.VkFormatProperties3 + allocsaac19fbc interface{} } -// StencilOpState as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkStencilOpState.html -type StencilOpState struct { - FailOp StencilOp - PassOp StencilOp - DepthFailOp StencilOp - CompareOp CompareOp - CompareMask uint32 - WriteMask uint32 - Reference uint32 - ref28886871 *C.VkStencilOpState - allocs28886871 interface{} +// PhysicalDeviceMaintenance4Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMaintenance4Features.html +type PhysicalDeviceMaintenance4Features struct { + SType StructureType + PNext unsafe.Pointer + Maintenance4 Bool32 + refb110636b *C.VkPhysicalDeviceMaintenance4Features + allocsb110636b interface{} } -// PipelineDepthStencilStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDepthStencilStateCreateInfo.html -type PipelineDepthStencilStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineDepthStencilStateCreateFlags - DepthTestEnable Bool32 - DepthWriteEnable Bool32 - DepthCompareOp CompareOp - DepthBoundsTestEnable Bool32 - StencilTestEnable Bool32 - Front StencilOpState - Back StencilOpState - MinDepthBounds float32 - MaxDepthBounds float32 - refeabfcf1 *C.VkPipelineDepthStencilStateCreateInfo - allocseabfcf1 interface{} +// PhysicalDeviceMaintenance4Properties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMaintenance4Properties.html +type PhysicalDeviceMaintenance4Properties struct { + SType StructureType + PNext unsafe.Pointer + MaxBufferSize DeviceSize + ref3bfb62f4 *C.VkPhysicalDeviceMaintenance4Properties + allocs3bfb62f4 interface{} } -// PipelineColorBlendAttachmentState as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorBlendAttachmentState.html -type PipelineColorBlendAttachmentState struct { - BlendEnable Bool32 - SrcColorBlendFactor BlendFactor - DstColorBlendFactor BlendFactor - ColorBlendOp BlendOp - SrcAlphaBlendFactor BlendFactor - DstAlphaBlendFactor BlendFactor - AlphaBlendOp BlendOp - ColorWriteMask ColorComponentFlags - ref9e889477 *C.VkPipelineColorBlendAttachmentState - allocs9e889477 interface{} +// DeviceBufferMemoryRequirements as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceBufferMemoryRequirements.html +type DeviceBufferMemoryRequirements struct { + SType StructureType + PNext unsafe.Pointer + PCreateInfo []BufferCreateInfo + ref30350e90 *C.VkDeviceBufferMemoryRequirements + allocs30350e90 interface{} } -// PipelineColorBlendStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorBlendStateCreateInfo.html -type PipelineColorBlendStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineColorBlendStateCreateFlags - LogicOpEnable Bool32 - LogicOp LogicOp - AttachmentCount uint32 - PAttachments []PipelineColorBlendAttachmentState - BlendConstants [4]float32 - ref2a9b490b *C.VkPipelineColorBlendStateCreateInfo - allocs2a9b490b interface{} +// DeviceImageMemoryRequirements as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceImageMemoryRequirements.html +type DeviceImageMemoryRequirements struct { + SType StructureType + PNext unsafe.Pointer + PCreateInfo []ImageCreateInfo + PlaneAspect ImageAspectFlagBits + refd9532ea3 *C.VkDeviceImageMemoryRequirements + allocsd9532ea3 interface{} } -// PipelineDynamicStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDynamicStateCreateInfo.html -type PipelineDynamicStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineDynamicStateCreateFlags - DynamicStateCount uint32 - PDynamicStates []DynamicState - ref246d7bc8 *C.VkPipelineDynamicStateCreateInfo - allocs246d7bc8 interface{} -} +// Surface as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceKHR +type Surface C.VkSurfaceKHR -// GraphicsPipelineCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGraphicsPipelineCreateInfo.html -type GraphicsPipelineCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineCreateFlags - StageCount uint32 - PStages []PipelineShaderStageCreateInfo - PVertexInputState *PipelineVertexInputStateCreateInfo - PInputAssemblyState *PipelineInputAssemblyStateCreateInfo - PTessellationState *PipelineTessellationStateCreateInfo - PViewportState *PipelineViewportStateCreateInfo - PRasterizationState *PipelineRasterizationStateCreateInfo - PMultisampleState *PipelineMultisampleStateCreateInfo - PDepthStencilState *PipelineDepthStencilStateCreateInfo - PColorBlendState *PipelineColorBlendStateCreateInfo - PDynamicState *PipelineDynamicStateCreateInfo - Layout PipelineLayout - RenderPass RenderPass - Subpass uint32 - BasePipelineHandle Pipeline - BasePipelineIndex int32 - ref178f88b6 *C.VkGraphicsPipelineCreateInfo - allocs178f88b6 interface{} +// CompositeAlphaFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkCompositeAlphaFlagsKHR +type CompositeAlphaFlags uint32 + +// SurfaceTransformFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceTransformFlagsKHR +type SurfaceTransformFlags uint32 + +// SurfaceCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceCapabilitiesKHR +type SurfaceCapabilities struct { + MinImageCount uint32 + MaxImageCount uint32 + CurrentExtent Extent2D + MinImageExtent Extent2D + MaxImageExtent Extent2D + MaxImageArrayLayers uint32 + SupportedTransforms SurfaceTransformFlags + CurrentTransform SurfaceTransformFlagBits + SupportedCompositeAlpha CompositeAlphaFlags + SupportedUsageFlags ImageUsageFlags + ref11d5f596 *C.VkSurfaceCapabilitiesKHR + allocs11d5f596 interface{} } -// ComputePipelineCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkComputePipelineCreateInfo.html -type ComputePipelineCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineCreateFlags - Stage PipelineShaderStageCreateInfo - Layout PipelineLayout - BasePipelineHandle Pipeline - BasePipelineIndex int32 - ref77823220 *C.VkComputePipelineCreateInfo - allocs77823220 interface{} +// SurfaceFormat as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceFormatKHR +type SurfaceFormat struct { + Format Format + ColorSpace ColorSpace + refedaf82ca *C.VkSurfaceFormatKHR + allocsedaf82ca interface{} } -// PushConstantRange as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPushConstantRange.html -type PushConstantRange struct { - StageFlags ShaderStageFlags - Offset uint32 - Size uint32 - ref6f025856 *C.VkPushConstantRange - allocs6f025856 interface{} -} +// Swapchain as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSwapchainKHR +type Swapchain C.VkSwapchainKHR -// PipelineLayoutCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineLayoutCreateInfo.html -type PipelineLayoutCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineLayoutCreateFlags - SetLayoutCount uint32 - PSetLayouts []DescriptorSetLayout - PushConstantRangeCount uint32 - PPushConstantRanges []PushConstantRange - ref64cc4eed *C.VkPipelineLayoutCreateInfo - allocs64cc4eed interface{} -} +// SwapchainCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSwapchainCreateFlagsKHR +type SwapchainCreateFlags uint32 -// SamplerCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerCreateInfo.html -type SamplerCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags SamplerCreateFlags - MagFilter Filter - MinFilter Filter - MipmapMode SamplerMipmapMode - AddressModeU SamplerAddressMode - AddressModeV SamplerAddressMode - AddressModeW SamplerAddressMode - MipLodBias float32 - AnisotropyEnable Bool32 - MaxAnisotropy float32 - CompareEnable Bool32 - CompareOp CompareOp - MinLod float32 - MaxLod float32 - BorderColor BorderColor - UnnormalizedCoordinates Bool32 - refce034abf *C.VkSamplerCreateInfo - allocsce034abf interface{} +// DeviceGroupPresentModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeviceGroupPresentModeFlagsKHR +type DeviceGroupPresentModeFlags uint32 + +// SwapchainCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSwapchainCreateInfoKHR +type SwapchainCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags SwapchainCreateFlags + Surface Surface + MinImageCount uint32 + ImageFormat Format + ImageColorSpace ColorSpace + ImageExtent Extent2D + ImageArrayLayers uint32 + ImageUsage ImageUsageFlags + ImageSharingMode SharingMode + QueueFamilyIndexCount uint32 + PQueueFamilyIndices []uint32 + PreTransform SurfaceTransformFlagBits + CompositeAlpha CompositeAlphaFlagBits + PresentMode PresentMode + Clipped Bool32 + OldSwapchain Swapchain + refdb619e1c *C.VkSwapchainCreateInfoKHR + allocsdb619e1c interface{} } -// DescriptorSetLayoutBinding as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutBinding.html -type DescriptorSetLayoutBinding struct { - Binding uint32 - DescriptorType DescriptorType - DescriptorCount uint32 - StageFlags ShaderStageFlags - PImmutableSamplers []Sampler - ref8b50b4ec *C.VkDescriptorSetLayoutBinding - allocs8b50b4ec interface{} +// PresentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentInfoKHR +type PresentInfo struct { + SType StructureType + PNext unsafe.Pointer + WaitSemaphoreCount uint32 + PWaitSemaphores []Semaphore + SwapchainCount uint32 + PSwapchains []Swapchain + PImageIndices []uint32 + PResults []Result + ref1d0e82d4 *C.VkPresentInfoKHR + allocs1d0e82d4 interface{} } -// DescriptorSetLayoutCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutCreateInfo.html -type DescriptorSetLayoutCreateInfo struct { +// ImageSwapchainCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkImageSwapchainCreateInfoKHR +type ImageSwapchainCreateInfo struct { SType StructureType PNext unsafe.Pointer - Flags DescriptorSetLayoutCreateFlags - BindingCount uint32 - PBindings []DescriptorSetLayoutBinding - ref5ee8e0ed *C.VkDescriptorSetLayoutCreateInfo - allocs5ee8e0ed interface{} + Swapchain Swapchain + refd83cc5d0 *C.VkImageSwapchainCreateInfoKHR + allocsd83cc5d0 interface{} } -// DescriptorPoolSize as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolSize.html -type DescriptorPoolSize struct { - Type DescriptorType - DescriptorCount uint32 - refe15137da *C.VkDescriptorPoolSize - allocse15137da interface{} +// BindImageMemorySwapchainInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkBindImageMemorySwapchainInfoKHR +type BindImageMemorySwapchainInfo struct { + SType StructureType + PNext unsafe.Pointer + Swapchain Swapchain + ImageIndex uint32 + ref1aa25cb6 *C.VkBindImageMemorySwapchainInfoKHR + allocs1aa25cb6 interface{} } -// DescriptorPoolCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolCreateInfo.html -type DescriptorPoolCreateInfo struct { +// AcquireNextImageInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAcquireNextImageInfoKHR +type AcquireNextImageInfo struct { SType StructureType PNext unsafe.Pointer - Flags DescriptorPoolCreateFlags - MaxSets uint32 - PoolSizeCount uint32 - PPoolSizes []DescriptorPoolSize - ref19868463 *C.VkDescriptorPoolCreateInfo - allocs19868463 interface{} + Swapchain Swapchain + Timeout uint64 + Semaphore Semaphore + Fence Fence + DeviceMask uint32 + ref588806a5 *C.VkAcquireNextImageInfoKHR + allocs588806a5 interface{} } -// DescriptorSetAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetAllocateInfo.html -type DescriptorSetAllocateInfo struct { - SType StructureType - PNext unsafe.Pointer - DescriptorPool DescriptorPool - DescriptorSetCount uint32 - PSetLayouts []DescriptorSetLayout - ref2dd6cc22 *C.VkDescriptorSetAllocateInfo - allocs2dd6cc22 interface{} +// DeviceGroupPresentCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeviceGroupPresentCapabilitiesKHR +type DeviceGroupPresentCapabilities struct { + SType StructureType + PNext unsafe.Pointer + PresentMask [32]uint32 + Modes DeviceGroupPresentModeFlags + refa3962c81 *C.VkDeviceGroupPresentCapabilitiesKHR + allocsa3962c81 interface{} } -// DescriptorImageInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorImageInfo.html -type DescriptorImageInfo struct { - Sampler Sampler - ImageView ImageView - ImageLayout ImageLayout - refaf073b07 *C.VkDescriptorImageInfo - allocsaf073b07 interface{} +// DeviceGroupPresentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeviceGroupPresentInfoKHR +type DeviceGroupPresentInfo struct { + SType StructureType + PNext unsafe.Pointer + SwapchainCount uint32 + PDeviceMasks []uint32 + Mode DeviceGroupPresentModeFlagBits + reff6912d09 *C.VkDeviceGroupPresentInfoKHR + allocsf6912d09 interface{} } -// DescriptorBufferInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBufferInfo.html -type DescriptorBufferInfo struct { - Buffer Buffer - Offset DeviceSize - Range DeviceSize - refe64bec0e *C.VkDescriptorBufferInfo - allocse64bec0e interface{} +// DeviceGroupSwapchainCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeviceGroupSwapchainCreateInfoKHR +type DeviceGroupSwapchainCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Modes DeviceGroupPresentModeFlags + ref44ae0c0e *C.VkDeviceGroupSwapchainCreateInfoKHR + allocs44ae0c0e interface{} } -// WriteDescriptorSet as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkWriteDescriptorSet.html -type WriteDescriptorSet struct { - SType StructureType - PNext unsafe.Pointer - DstSet DescriptorSet - DstBinding uint32 - DstArrayElement uint32 - DescriptorCount uint32 - DescriptorType DescriptorType - PImageInfo []DescriptorImageInfo - PBufferInfo []DescriptorBufferInfo - PTexelBufferView []BufferView - ref3cec3f3f *C.VkWriteDescriptorSet - allocs3cec3f3f interface{} -} +// Display as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayKHR +type Display C.VkDisplayKHR -// CopyDescriptorSet as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCopyDescriptorSet.html -type CopyDescriptorSet struct { - SType StructureType - PNext unsafe.Pointer - SrcSet DescriptorSet - SrcBinding uint32 - SrcArrayElement uint32 - DstSet DescriptorSet - DstBinding uint32 - DstArrayElement uint32 - DescriptorCount uint32 - reffe237a3a *C.VkCopyDescriptorSet - allocsfe237a3a interface{} -} +// DisplayMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeKHR +type DisplayMode C.VkDisplayModeKHR -// FramebufferCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFramebufferCreateInfo.html -type FramebufferCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags FramebufferCreateFlags - RenderPass RenderPass - AttachmentCount uint32 - PAttachments []ImageView - Width uint32 - Height uint32 - Layers uint32 - refa3ad85cc *C.VkFramebufferCreateInfo - allocsa3ad85cc interface{} +// DisplayModeCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeCreateFlagsKHR +type DisplayModeCreateFlags uint32 + +// DisplayPlaneAlphaFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneAlphaFlagsKHR +type DisplayPlaneAlphaFlags uint32 + +// DisplaySurfaceCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplaySurfaceCreateFlagsKHR +type DisplaySurfaceCreateFlags uint32 + +// DisplayModeParameters as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeParametersKHR +type DisplayModeParameters struct { + VisibleRegion Extent2D + RefreshRate uint32 + refe016f77f *C.VkDisplayModeParametersKHR + allocse016f77f interface{} } -// AttachmentDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentDescription.html -type AttachmentDescription struct { - Flags AttachmentDescriptionFlags - Format Format - Samples SampleCountFlagBits - LoadOp AttachmentLoadOp - StoreOp AttachmentStoreOp - StencilLoadOp AttachmentLoadOp - StencilStoreOp AttachmentStoreOp - InitialLayout ImageLayout - FinalLayout ImageLayout - refa5d685fc *C.VkAttachmentDescription - allocsa5d685fc interface{} +// DisplayModeCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeCreateInfoKHR +type DisplayModeCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags DisplayModeCreateFlags + Parameters DisplayModeParameters + ref392fca31 *C.VkDisplayModeCreateInfoKHR + allocs392fca31 interface{} } -// AttachmentReference as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentReference.html -type AttachmentReference struct { - Attachment uint32 - Layout ImageLayout - refef4776de *C.VkAttachmentReference - allocsef4776de interface{} +// DisplayModeProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModePropertiesKHR +type DisplayModeProperties struct { + DisplayMode DisplayMode + Parameters DisplayModeParameters + ref5e3abaaa *C.VkDisplayModePropertiesKHR + allocs5e3abaaa interface{} } -// SubpassDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDescription.html -type SubpassDescription struct { - Flags SubpassDescriptionFlags - PipelineBindPoint PipelineBindPoint - InputAttachmentCount uint32 - PInputAttachments []AttachmentReference - ColorAttachmentCount uint32 - PColorAttachments []AttachmentReference - PResolveAttachments []AttachmentReference - PDepthStencilAttachment *AttachmentReference - PreserveAttachmentCount uint32 - PPreserveAttachments []uint32 - refc7bfeda *C.VkSubpassDescription - allocsc7bfeda interface{} +// DisplayPlaneCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneCapabilitiesKHR +type DisplayPlaneCapabilities struct { + SupportedAlpha DisplayPlaneAlphaFlags + MinSrcPosition Offset2D + MaxSrcPosition Offset2D + MinSrcExtent Extent2D + MaxSrcExtent Extent2D + MinDstPosition Offset2D + MaxDstPosition Offset2D + MinDstExtent Extent2D + MaxDstExtent Extent2D + ref6f31fcaf *C.VkDisplayPlaneCapabilitiesKHR + allocs6f31fcaf interface{} } -// SubpassDependency as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassDependency.html -type SubpassDependency struct { - SrcSubpass uint32 - DstSubpass uint32 - SrcStageMask PipelineStageFlags - DstStageMask PipelineStageFlags - SrcAccessMask AccessFlags - DstAccessMask AccessFlags - DependencyFlags DependencyFlags - refdb197adb *C.VkSubpassDependency - allocsdb197adb interface{} +// DisplayPlaneProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlanePropertiesKHR +type DisplayPlaneProperties struct { + CurrentDisplay Display + CurrentStackIndex uint32 + refce3db3f6 *C.VkDisplayPlanePropertiesKHR + allocsce3db3f6 interface{} } -// RenderPassCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassCreateInfo.html -type RenderPassCreateInfo struct { +// DisplayProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPropertiesKHR +type DisplayProperties struct { + Display Display + DisplayName string + PhysicalDimensions Extent2D + PhysicalResolution Extent2D + SupportedTransforms SurfaceTransformFlags + PlaneReorderPossible Bool32 + PersistentContent Bool32 + reffe2a7187 *C.VkDisplayPropertiesKHR + allocsfe2a7187 interface{} +} + +// DisplaySurfaceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplaySurfaceCreateInfoKHR +type DisplaySurfaceCreateInfo struct { SType StructureType PNext unsafe.Pointer - Flags RenderPassCreateFlags - AttachmentCount uint32 - PAttachments []AttachmentDescription - SubpassCount uint32 - PSubpasses []SubpassDescription - DependencyCount uint32 - PDependencies []SubpassDependency - ref886d7d86 *C.VkRenderPassCreateInfo - allocs886d7d86 interface{} + Flags DisplaySurfaceCreateFlags + DisplayMode DisplayMode + PlaneIndex uint32 + PlaneStackIndex uint32 + Transform SurfaceTransformFlagBits + GlobalAlpha float32 + AlphaMode DisplayPlaneAlphaFlagBits + ImageExtent Extent2D + ref58445c35 *C.VkDisplaySurfaceCreateInfoKHR + allocs58445c35 interface{} } -// CommandPoolCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandPoolCreateInfo.html -type CommandPoolCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags CommandPoolCreateFlags - QueueFamilyIndex uint32 - ref73550de0 *C.VkCommandPoolCreateInfo - allocs73550de0 interface{} +// DisplayPresentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPresentInfoKHR +type DisplayPresentInfo struct { + SType StructureType + PNext unsafe.Pointer + SrcRect Rect2D + DstRect Rect2D + Persistent Bool32 + ref8d2571e4 *C.VkDisplayPresentInfoKHR + allocs8d2571e4 interface{} } -// CommandBufferAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferAllocateInfo.html -type CommandBufferAllocateInfo struct { - SType StructureType - PNext unsafe.Pointer - CommandPool CommandPool - Level CommandBufferLevel - CommandBufferCount uint32 - refd1a0a7c8 *C.VkCommandBufferAllocateInfo - allocsd1a0a7c8 interface{} +// VideoSession as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoSessionKHR +type VideoSession C.VkVideoSessionKHR + +// VideoSessionParameters as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoSessionParametersKHR +type VideoSessionParameters C.VkVideoSessionParametersKHR + +// VideoCodecOperationFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCodecOperationFlagsKHR +type VideoCodecOperationFlags uint32 + +// VideoChromaSubsamplingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoChromaSubsamplingFlagsKHR +type VideoChromaSubsamplingFlags uint32 + +// VideoComponentBitDepthFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoComponentBitDepthFlagsKHR +type VideoComponentBitDepthFlags uint32 + +// VideoCapabilityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCapabilityFlagsKHR +type VideoCapabilityFlags uint32 + +// VideoSessionCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoSessionCreateFlagsKHR +type VideoSessionCreateFlags uint32 + +// VideoSessionParametersCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoSessionParametersCreateFlagsKHR +type VideoSessionParametersCreateFlags uint32 + +// VideoBeginCodingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoBeginCodingFlagsKHR +type VideoBeginCodingFlags uint32 + +// VideoEndCodingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEndCodingFlagsKHR +type VideoEndCodingFlags uint32 + +// VideoCodingControlFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCodingControlFlagsKHR +type VideoCodingControlFlags uint32 + +// QueueFamilyQueryResultStatusProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR +type QueueFamilyQueryResultStatusProperties struct { + SType StructureType + PNext unsafe.Pointer + QueryResultStatusSupport Bool32 + ref1453d181 *C.VkQueueFamilyQueryResultStatusPropertiesKHR + allocs1453d181 interface{} } -// CommandBufferInheritanceInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferInheritanceInfo.html -type CommandBufferInheritanceInfo struct { +// QueueFamilyVideoProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkQueueFamilyVideoPropertiesKHR +type QueueFamilyVideoProperties struct { SType StructureType PNext unsafe.Pointer - RenderPass RenderPass - Subpass uint32 - Framebuffer Framebuffer - OcclusionQueryEnable Bool32 - QueryFlags QueryControlFlags - PipelineStatistics QueryPipelineStatisticFlags - ref737f8019 *C.VkCommandBufferInheritanceInfo - allocs737f8019 interface{} + VideoCodecOperations VideoCodecOperationFlags + refb21c87c4 *C.VkQueueFamilyVideoPropertiesKHR + allocsb21c87c4 interface{} } -// CommandBufferBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferBeginInfo.html -type CommandBufferBeginInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags CommandBufferUsageFlags - PInheritanceInfo []CommandBufferInheritanceInfo - ref266762df *C.VkCommandBufferBeginInfo - allocs266762df interface{} +// VideoProfileInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoProfileInfoKHR +type VideoProfileInfo struct { + SType StructureType + PNext unsafe.Pointer + VideoCodecOperation VideoCodecOperationFlagBits + ChromaSubsampling VideoChromaSubsamplingFlags + LumaBitDepth VideoComponentBitDepthFlags + ChromaBitDepth VideoComponentBitDepthFlags + refdbadacde *C.VkVideoProfileInfoKHR + allocsdbadacde interface{} } -// BufferCopy as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferCopy.html -type BufferCopy struct { - SrcOffset DeviceSize - DstOffset DeviceSize - Size DeviceSize - ref12184ffd *C.VkBufferCopy - allocs12184ffd interface{} +// VideoProfileListInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoProfileListInfoKHR +type VideoProfileListInfo struct { + SType StructureType + PNext unsafe.Pointer + ProfileCount uint32 + PProfiles []VideoProfileInfo + refd98c78d7 *C.VkVideoProfileListInfoKHR + allocsd98c78d7 interface{} } -// ImageSubresourceLayers as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageSubresourceLayers.html -type ImageSubresourceLayers struct { - AspectMask ImageAspectFlags - MipLevel uint32 - BaseArrayLayer uint32 - LayerCount uint32 - ref3b13bcd2 *C.VkImageSubresourceLayers - allocs3b13bcd2 interface{} +// VideoCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCapabilitiesKHR +type VideoCapabilities struct { + SType StructureType + PNext unsafe.Pointer + Flags VideoCapabilityFlags + MinBitstreamBufferOffsetAlignment DeviceSize + MinBitstreamBufferSizeAlignment DeviceSize + PictureAccessGranularity Extent2D + MinCodedExtent Extent2D + MaxCodedExtent Extent2D + MaxDpbSlots uint32 + MaxActiveReferencePictures uint32 + StdHeaderVersion ExtensionProperties + reff1959efe *C.VkVideoCapabilitiesKHR + allocsf1959efe interface{} +} + +// PhysicalDeviceVideoFormatInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR +type PhysicalDeviceVideoFormatInfo struct { + SType StructureType + PNext unsafe.Pointer + ImageUsage ImageUsageFlags + ref4d0248b7 *C.VkPhysicalDeviceVideoFormatInfoKHR + allocs4d0248b7 interface{} } -// ImageCopy as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCopy.html -type ImageCopy struct { - SrcSubresource ImageSubresourceLayers - SrcOffset Offset3D - DstSubresource ImageSubresourceLayers - DstOffset Offset3D - Extent Extent3D - ref4e7a1214 *C.VkImageCopy - allocs4e7a1214 interface{} +// VideoFormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoFormatPropertiesKHR +type VideoFormatProperties struct { + SType StructureType + PNext unsafe.Pointer + Format Format + ComponentMapping ComponentMapping + ImageCreateFlags ImageCreateFlags + ImageType ImageType + ImageTiling ImageTiling + ImageUsageFlags ImageUsageFlags + refa1a566f8 *C.VkVideoFormatPropertiesKHR + allocsa1a566f8 interface{} } -// ImageBlit as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageBlit.html -type ImageBlit struct { - SrcSubresource ImageSubresourceLayers - SrcOffsets [2]Offset3D - DstSubresource ImageSubresourceLayers - DstOffsets [2]Offset3D - ref11311e8d *C.VkImageBlit - allocs11311e8d interface{} +// VideoPictureResourceInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoPictureResourceInfoKHR +type VideoPictureResourceInfo struct { + SType StructureType + PNext unsafe.Pointer + CodedOffset Offset2D + CodedExtent Extent2D + BaseArrayLayer uint32 + ImageViewBinding ImageView + refe7a42049 *C.VkVideoPictureResourceInfoKHR + allocse7a42049 interface{} } -// BufferImageCopy as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferImageCopy.html -type BufferImageCopy struct { - BufferOffset DeviceSize - BufferRowLength uint32 - BufferImageHeight uint32 - ImageSubresource ImageSubresourceLayers - ImageOffset Offset3D - ImageExtent Extent3D - ref6d50e36e *C.VkBufferImageCopy - allocs6d50e36e interface{} +// VideoReferenceSlotInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoReferenceSlotInfoKHR +type VideoReferenceSlotInfo struct { + SType StructureType + PNext unsafe.Pointer + SlotIndex int32 + PPictureResource []VideoPictureResourceInfo + refbbd1d28 *C.VkVideoReferenceSlotInfoKHR + allocsbbd1d28 interface{} } -// ClearColorValue as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearColorValue.html -const sizeofClearColorValue = unsafe.Sizeof(C.VkClearColorValue{}) - -type ClearColorValue [sizeofClearColorValue]byte +// VideoSessionMemoryRequirements as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoSessionMemoryRequirementsKHR +type VideoSessionMemoryRequirements struct { + SType StructureType + PNext unsafe.Pointer + MemoryBindIndex uint32 + MemoryRequirements MemoryRequirements + refd39e523e *C.VkVideoSessionMemoryRequirementsKHR + allocsd39e523e interface{} +} -// ClearDepthStencilValue as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearDepthStencilValue.html -type ClearDepthStencilValue struct { - Depth float32 - Stencil uint32 - refa7d07c03 *C.VkClearDepthStencilValue - allocsa7d07c03 interface{} +// BindVideoSessionMemoryInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkBindVideoSessionMemoryInfoKHR +type BindVideoSessionMemoryInfo struct { + SType StructureType + PNext unsafe.Pointer + MemoryBindIndex uint32 + Memory DeviceMemory + MemoryOffset DeviceSize + MemorySize DeviceSize + refaa36fd7c *C.VkBindVideoSessionMemoryInfoKHR + allocsaa36fd7c interface{} } -// ClearValue as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearValue.html -const sizeofClearValue = unsafe.Sizeof(C.VkClearValue{}) +// VideoSessionCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoSessionCreateInfoKHR +type VideoSessionCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + QueueFamilyIndex uint32 + Flags VideoSessionCreateFlags + PVideoProfile []VideoProfileInfo + PictureFormat Format + MaxCodedExtent Extent2D + ReferencePictureFormat Format + MaxDpbSlots uint32 + MaxActiveReferencePictures uint32 + PStdHeaderVersion []ExtensionProperties + refaf4ef5a1 *C.VkVideoSessionCreateInfoKHR + allocsaf4ef5a1 interface{} +} + +// VideoSessionParametersCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoSessionParametersCreateInfoKHR +type VideoSessionParametersCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags VideoSessionParametersCreateFlags + VideoSessionParametersTemplate VideoSessionParameters + VideoSession VideoSession + reff62c4e51 *C.VkVideoSessionParametersCreateInfoKHR + allocsf62c4e51 interface{} +} -type ClearValue [sizeofClearValue]byte +// VideoSessionParametersUpdateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoSessionParametersUpdateInfoKHR +type VideoSessionParametersUpdateInfo struct { + SType StructureType + PNext unsafe.Pointer + UpdateSequenceCount uint32 + refcf7b7609 *C.VkVideoSessionParametersUpdateInfoKHR + allocscf7b7609 interface{} +} -// ClearAttachment as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearAttachment.html -type ClearAttachment struct { - AspectMask ImageAspectFlags - ColorAttachment uint32 - ClearValue ClearValue - refe9150303 *C.VkClearAttachment - allocse9150303 interface{} +// VideoBeginCodingInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoBeginCodingInfoKHR +type VideoBeginCodingInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags VideoBeginCodingFlags + VideoSession VideoSession + VideoSessionParameters VideoSessionParameters + ReferenceSlotCount uint32 + PReferenceSlots []VideoReferenceSlotInfo + ref6ab3d7b5 *C.VkVideoBeginCodingInfoKHR + allocs6ab3d7b5 interface{} } -// ClearRect as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkClearRect.html -type ClearRect struct { - Rect Rect2D - BaseArrayLayer uint32 - LayerCount uint32 - ref1d449c8b *C.VkClearRect - allocs1d449c8b interface{} +// VideoEndCodingInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoEndCodingInfoKHR +type VideoEndCodingInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags VideoEndCodingFlags + ref13b0038a *C.VkVideoEndCodingInfoKHR + allocs13b0038a interface{} } -// ImageResolve as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageResolve.html -type ImageResolve struct { - SrcSubresource ImageSubresourceLayers - SrcOffset Offset3D - DstSubresource ImageSubresourceLayers - DstOffset Offset3D - Extent Extent3D - ref7bda856d *C.VkImageResolve - allocs7bda856d interface{} +// VideoCodingControlInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoCodingControlInfoKHR +type VideoCodingControlInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags VideoCodingControlFlags + ref226eddcd *C.VkVideoCodingControlInfoKHR + allocs226eddcd interface{} } -// MemoryBarrier as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryBarrier.html -type MemoryBarrier struct { +// VideoDecodeCapabilityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeCapabilityFlagsKHR +type VideoDecodeCapabilityFlags uint32 + +// VideoDecodeUsageFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeUsageFlagsKHR +type VideoDecodeUsageFlags uint32 + +// VideoDecodeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeFlagsKHR +type VideoDecodeFlags uint32 + +// VideoDecodeCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeCapabilitiesKHR +type VideoDecodeCapabilities struct { SType StructureType PNext unsafe.Pointer - SrcAccessMask AccessFlags - DstAccessMask AccessFlags - ref977c944e *C.VkMemoryBarrier - allocs977c944e interface{} + Flags VideoDecodeCapabilityFlags + refc94faaf3 *C.VkVideoDecodeCapabilitiesKHR + allocsc94faaf3 interface{} } -// BufferMemoryBarrier as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferMemoryBarrier.html -type BufferMemoryBarrier struct { - SType StructureType - PNext unsafe.Pointer - SrcAccessMask AccessFlags - DstAccessMask AccessFlags - SrcQueueFamilyIndex uint32 - DstQueueFamilyIndex uint32 - Buffer Buffer - Offset DeviceSize - Size DeviceSize - refeaf4700b *C.VkBufferMemoryBarrier - allocseaf4700b interface{} +// VideoDecodeUsageInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeUsageInfoKHR +type VideoDecodeUsageInfo struct { + SType StructureType + PNext unsafe.Pointer + VideoUsageHints VideoDecodeUsageFlags + refd72a4309 *C.VkVideoDecodeUsageInfoKHR + allocsd72a4309 interface{} } -// ImageMemoryBarrier as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageMemoryBarrier.html -type ImageMemoryBarrier struct { +// VideoDecodeInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkVideoDecodeInfoKHR +type VideoDecodeInfo struct { SType StructureType PNext unsafe.Pointer - SrcAccessMask AccessFlags - DstAccessMask AccessFlags - OldLayout ImageLayout - NewLayout ImageLayout - SrcQueueFamilyIndex uint32 - DstQueueFamilyIndex uint32 - Image Image - SubresourceRange ImageSubresourceRange - refd52734ec *C.VkImageMemoryBarrier - allocsd52734ec interface{} + Flags VideoDecodeFlags + SrcBuffer Buffer + SrcBufferOffset DeviceSize + SrcBufferRange DeviceSize + DstPictureResource VideoPictureResourceInfo + PSetupReferenceSlot []VideoReferenceSlotInfo + ReferenceSlotCount uint32 + PReferenceSlots []VideoReferenceSlotInfo + refbbf9d3b8 *C.VkVideoDecodeInfoKHR + allocsbbf9d3b8 interface{} +} + +// RenderingFragmentShadingRateAttachmentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkRenderingFragmentShadingRateAttachmentInfoKHR +type RenderingFragmentShadingRateAttachmentInfo struct { + SType StructureType + PNext unsafe.Pointer + ImageView ImageView + ImageLayout ImageLayout + ShadingRateAttachmentTexelSize Extent2D + ref4d98d68f *C.VkRenderingFragmentShadingRateAttachmentInfoKHR + allocs4d98d68f interface{} } -// RenderPassBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassBeginInfo.html -type RenderPassBeginInfo struct { - SType StructureType - PNext unsafe.Pointer - RenderPass RenderPass - Framebuffer Framebuffer - RenderArea Rect2D - ClearValueCount uint32 - PClearValues []ClearValue - ref3c3752c8 *C.VkRenderPassBeginInfo - allocs3c3752c8 interface{} +// RenderingFragmentDensityMapAttachmentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderingFragmentDensityMapAttachmentInfoEXT.html +type RenderingFragmentDensityMapAttachmentInfo struct { + SType StructureType + PNext unsafe.Pointer + ImageView ImageView + ImageLayout ImageLayout + ref5a007d48 *C.VkRenderingFragmentDensityMapAttachmentInfoEXT + allocs5a007d48 interface{} } -// DispatchIndirectCommand as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDispatchIndirectCommand.html -type DispatchIndirectCommand struct { - X uint32 - Y uint32 - Z uint32 - refd298ba27 *C.VkDispatchIndirectCommand - allocsd298ba27 interface{} +// AttachmentSampleCountInfoAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAttachmentSampleCountInfoAMD +type AttachmentSampleCountInfoAMD struct { + SType StructureType + PNext unsafe.Pointer + ColorAttachmentCount uint32 + PColorAttachmentSamples []SampleCountFlagBits + DepthStencilAttachmentSamples SampleCountFlagBits + refeef56262 *C.VkAttachmentSampleCountInfoAMD + allocseef56262 interface{} } -// DrawIndexedIndirectCommand as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrawIndexedIndirectCommand.html -type DrawIndexedIndirectCommand struct { - IndexCount uint32 - InstanceCount uint32 - FirstIndex uint32 - VertexOffset int32 - FirstInstance uint32 - ref4c78b5c3 *C.VkDrawIndexedIndirectCommand - allocs4c78b5c3 interface{} +// AttachmentSampleCountInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentSampleCountInfoNV.html +type AttachmentSampleCountInfoNV struct { + SType StructureType + PNext unsafe.Pointer + ColorAttachmentCount uint32 + PColorAttachmentSamples []SampleCountFlagBits + DepthStencilAttachmentSamples SampleCountFlagBits + refeef56262 *C.VkAttachmentSampleCountInfoAMD + allocseef56262 interface{} } -// DrawIndirectCommand as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrawIndirectCommand.html -type DrawIndirectCommand struct { - VertexCount uint32 - InstanceCount uint32 - FirstVertex uint32 - FirstInstance uint32 - ref2b5b67c4 *C.VkDrawIndirectCommand - allocs2b5b67c4 interface{} +// MultiviewPerViewAttributesInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkMultiviewPerViewAttributesInfoNVX +type MultiviewPerViewAttributesInfoNVX struct { + SType StructureType + PNext unsafe.Pointer + PerViewAttributes Bool32 + PerViewAttributesPositionXOnly Bool32 + refc7d79ea0 *C.VkMultiviewPerViewAttributesInfoNVX + allocsc7d79ea0 interface{} } -// BaseOutStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBaseOutStructure.html -type BaseOutStructure struct { +// ImportMemoryFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkImportMemoryFdInfoKHR +type ImportMemoryFdInfo struct { SType StructureType - PNext []BaseOutStructure - refd536fcd0 *C.VkBaseOutStructure - allocsd536fcd0 interface{} + PNext unsafe.Pointer + HandleType ExternalMemoryHandleTypeFlagBits + Fd int32 + ref73f83287 *C.VkImportMemoryFdInfoKHR + allocs73f83287 interface{} } -// BaseInStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBaseInStructure.html -type BaseInStructure struct { +// MemoryFdProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkMemoryFdPropertiesKHR +type MemoryFdProperties struct { SType StructureType - PNext []BaseInStructure - refeae401a9 *C.VkBaseInStructure - allocseae401a9 interface{} + PNext unsafe.Pointer + MemoryTypeBits uint32 + ref51e16d38 *C.VkMemoryFdPropertiesKHR + allocs51e16d38 interface{} } -// SamplerYcbcrConversion as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrConversion.html -type SamplerYcbcrConversion C.VkSamplerYcbcrConversion - -// DescriptorUpdateTemplate as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorUpdateTemplate.html -type DescriptorUpdateTemplate C.VkDescriptorUpdateTemplate - -// SubgroupFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubgroupFeatureFlags.html -type SubgroupFeatureFlags uint32 - -// PeerMemoryFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPeerMemoryFeatureFlags.html -type PeerMemoryFeatureFlags uint32 - -// MemoryAllocateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryAllocateFlags.html -type MemoryAllocateFlags uint32 - -// CommandPoolTrimFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandPoolTrimFlags.html -type CommandPoolTrimFlags uint32 - -// DescriptorUpdateTemplateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorUpdateTemplateCreateFlags.html -type DescriptorUpdateTemplateCreateFlags uint32 - -// ExternalMemoryHandleTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryHandleTypeFlags.html -type ExternalMemoryHandleTypeFlags uint32 +// MemoryGetFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkMemoryGetFdInfoKHR +type MemoryGetFdInfo struct { + SType StructureType + PNext unsafe.Pointer + Memory DeviceMemory + HandleType ExternalMemoryHandleTypeFlagBits + ref75a079b1 *C.VkMemoryGetFdInfoKHR + allocs75a079b1 interface{} +} -// ExternalMemoryFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryFeatureFlags.html -type ExternalMemoryFeatureFlags uint32 +// ImportSemaphoreFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkImportSemaphoreFdInfoKHR +type ImportSemaphoreFdInfo struct { + SType StructureType + PNext unsafe.Pointer + Semaphore Semaphore + Flags SemaphoreImportFlags + HandleType ExternalSemaphoreHandleTypeFlagBits + Fd int32 + refbc2f829a *C.VkImportSemaphoreFdInfoKHR + allocsbc2f829a interface{} +} -// ExternalFenceHandleTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceHandleTypeFlags.html -type ExternalFenceHandleTypeFlags uint32 +// SemaphoreGetFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSemaphoreGetFdInfoKHR +type SemaphoreGetFdInfo struct { + SType StructureType + PNext unsafe.Pointer + Semaphore Semaphore + HandleType ExternalSemaphoreHandleTypeFlagBits + refd9bd07cf *C.VkSemaphoreGetFdInfoKHR + allocsd9bd07cf interface{} +} -// ExternalFenceFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceFeatureFlags.html -type ExternalFenceFeatureFlags uint32 +// PhysicalDevicePushDescriptorProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDevicePushDescriptorPropertiesKHR +type PhysicalDevicePushDescriptorProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxPushDescriptors uint32 + ref8c58a1a5 *C.VkPhysicalDevicePushDescriptorPropertiesKHR + allocs8c58a1a5 interface{} +} -// FenceImportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFenceImportFlags.html -type FenceImportFlags uint32 +// PhysicalDeviceFloat16Int8Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceFloat16Int8FeaturesKHR +type PhysicalDeviceFloat16Int8Features struct { + SType StructureType + PNext unsafe.Pointer + ShaderFloat16 Bool32 + ShaderInt8 Bool32 + refc9d315b6 *C.VkPhysicalDeviceShaderFloat16Int8Features + allocsc9d315b6 interface{} +} -// SemaphoreImportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSemaphoreImportFlags.html -type SemaphoreImportFlags uint32 +// RectLayer as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkRectLayerKHR +type RectLayer struct { + Offset Offset2D + Extent Extent2D + Layer uint32 + refaf248476 *C.VkRectLayerKHR + allocsaf248476 interface{} +} -// ExternalSemaphoreHandleTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreHandleTypeFlags.html -type ExternalSemaphoreHandleTypeFlags uint32 +// PresentRegion as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentRegionKHR +type PresentRegion struct { + RectangleCount uint32 + PRectangles []RectLayer + refbbc0d1b9 *C.VkPresentRegionKHR + allocsbbc0d1b9 interface{} +} -// ExternalSemaphoreFeatureFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreFeatureFlags.html -type ExternalSemaphoreFeatureFlags uint32 +// PresentRegions as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentRegionsKHR +type PresentRegions struct { + SType StructureType + PNext unsafe.Pointer + SwapchainCount uint32 + PRegions []PresentRegion + ref62958060 *C.VkPresentRegionsKHR + allocs62958060 interface{} +} -// PhysicalDeviceSubgroupProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSubgroupProperties.html -type PhysicalDeviceSubgroupProperties struct { - SType StructureType - PNext unsafe.Pointer - SubgroupSize uint32 - SupportedStages ShaderStageFlags - SupportedOperations SubgroupFeatureFlags - QuadOperationsInAllStages Bool32 - refb019c29f *C.VkPhysicalDeviceSubgroupProperties - allocsb019c29f interface{} +// SharedPresentSurfaceCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSharedPresentSurfaceCapabilitiesKHR +type SharedPresentSurfaceCapabilities struct { + SType StructureType + PNext unsafe.Pointer + SharedPresentSupportedUsageFlags ImageUsageFlags + ref3f98a814 *C.VkSharedPresentSurfaceCapabilitiesKHR + allocs3f98a814 interface{} } -// BindBufferMemoryInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindBufferMemoryInfo.html -type BindBufferMemoryInfo struct { +// ImportFenceFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkImportFenceFdInfoKHR +type ImportFenceFdInfo struct { SType StructureType PNext unsafe.Pointer - Buffer Buffer - Memory DeviceMemory - MemoryOffset DeviceSize - refd392322d *C.VkBindBufferMemoryInfo - allocsd392322d interface{} + Fence Fence + Flags FenceImportFlags + HandleType ExternalFenceHandleTypeFlagBits + Fd int32 + ref86ebd28c *C.VkImportFenceFdInfoKHR + allocs86ebd28c interface{} } -// BindImageMemoryInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindImageMemoryInfo.html -type BindImageMemoryInfo struct { +// FenceGetFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkFenceGetFdInfoKHR +type FenceGetFdInfo struct { SType StructureType PNext unsafe.Pointer - Image Image - Memory DeviceMemory - MemoryOffset DeviceSize - ref767a2113 *C.VkBindImageMemoryInfo - allocs767a2113 interface{} + Fence Fence + HandleType ExternalFenceHandleTypeFlagBits + refc2668bc3 *C.VkFenceGetFdInfoKHR + allocsc2668bc3 interface{} } -// PhysicalDevice16BitStorageFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevice16BitStorageFeatures.html -type PhysicalDevice16BitStorageFeatures struct { - SType StructureType - PNext unsafe.Pointer - StorageBuffer16BitAccess Bool32 - UniformAndStorageBuffer16BitAccess Bool32 - StoragePushConstant16 Bool32 - StorageInputOutput16 Bool32 - refa90fed14 *C.VkPhysicalDevice16BitStorageFeatures - allocsa90fed14 interface{} +// PerformanceCounterDescriptionFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterDescriptionFlagsKHR +type PerformanceCounterDescriptionFlags uint32 + +// AcquireProfilingLockFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAcquireProfilingLockFlagsKHR +type AcquireProfilingLockFlags uint32 + +// PhysicalDevicePerformanceQueryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDevicePerformanceQueryFeaturesKHR +type PhysicalDevicePerformanceQueryFeatures struct { + SType StructureType + PNext unsafe.Pointer + PerformanceCounterQueryPools Bool32 + PerformanceCounterMultipleQueryPools Bool32 + ref8e4527cb *C.VkPhysicalDevicePerformanceQueryFeaturesKHR + allocs8e4527cb interface{} } -// MemoryDedicatedRequirements as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryDedicatedRequirements.html -type MemoryDedicatedRequirements struct { - SType StructureType - PNext unsafe.Pointer - PrefersDedicatedAllocation Bool32 - RequiresDedicatedAllocation Bool32 - refaa924122 *C.VkMemoryDedicatedRequirements - allocsaa924122 interface{} +// PhysicalDevicePerformanceQueryProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDevicePerformanceQueryPropertiesKHR +type PhysicalDevicePerformanceQueryProperties struct { + SType StructureType + PNext unsafe.Pointer + AllowCommandBufferQueryCopies Bool32 + refc3efa645 *C.VkPhysicalDevicePerformanceQueryPropertiesKHR + allocsc3efa645 interface{} } -// MemoryDedicatedAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryDedicatedAllocateInfo.html -type MemoryDedicatedAllocateInfo struct { +// PerformanceCounter as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterKHR +type PerformanceCounter struct { SType StructureType PNext unsafe.Pointer - Image Image - Buffer Buffer - reff8fabe62 *C.VkMemoryDedicatedAllocateInfo - allocsf8fabe62 interface{} + Unit PerformanceCounterUnit + Scope PerformanceCounterScope + Storage PerformanceCounterStorage + Uuid [16]byte + refc754b4e5 *C.VkPerformanceCounterKHR + allocsc754b4e5 interface{} } -// MemoryAllocateFlagsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryAllocateFlagsInfo.html -type MemoryAllocateFlagsInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags MemoryAllocateFlags - DeviceMask uint32 - ref7ca6664 *C.VkMemoryAllocateFlagsInfo - allocs7ca6664 interface{} +// PerformanceCounterDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterDescriptionKHR +type PerformanceCounterDescription struct { + SType StructureType + PNext unsafe.Pointer + Flags PerformanceCounterDescriptionFlags + Name [256]byte + Category [256]byte + Description [256]byte + ref95209df5 *C.VkPerformanceCounterDescriptionKHR + allocs95209df5 interface{} } -// DeviceGroupRenderPassBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupRenderPassBeginInfo.html -type DeviceGroupRenderPassBeginInfo struct { - SType StructureType - PNext unsafe.Pointer - DeviceMask uint32 - DeviceRenderAreaCount uint32 - PDeviceRenderAreas []Rect2D - ref139f3599 *C.VkDeviceGroupRenderPassBeginInfo - allocs139f3599 interface{} +// QueryPoolPerformanceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkQueryPoolPerformanceCreateInfoKHR +type QueryPoolPerformanceCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + QueueFamilyIndex uint32 + CounterIndexCount uint32 + PCounterIndices []uint32 + ref55afa561 *C.VkQueryPoolPerformanceCreateInfoKHR + allocs55afa561 interface{} } -// DeviceGroupCommandBufferBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupCommandBufferBeginInfo.html -type DeviceGroupCommandBufferBeginInfo struct { +// PerformanceCounterResult as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceCounterResultKHR +const sizeofPerformanceCounterResult = unsafe.Sizeof(C.VkPerformanceCounterResultKHR{}) + +type PerformanceCounterResult [sizeofPerformanceCounterResult]byte + +// AcquireProfilingLockInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAcquireProfilingLockInfoKHR +type AcquireProfilingLockInfo struct { SType StructureType PNext unsafe.Pointer - DeviceMask uint32 - refb9a8f0cd *C.VkDeviceGroupCommandBufferBeginInfo - allocsb9a8f0cd interface{} + Flags AcquireProfilingLockFlags + Timeout uint64 + ref73cbb121 *C.VkAcquireProfilingLockInfoKHR + allocs73cbb121 interface{} } -// DeviceGroupSubmitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupSubmitInfo.html -type DeviceGroupSubmitInfo struct { - SType StructureType - PNext unsafe.Pointer - WaitSemaphoreCount uint32 - PWaitSemaphoreDeviceIndices []uint32 - CommandBufferCount uint32 - PCommandBufferDeviceMasks []uint32 - SignalSemaphoreCount uint32 - PSignalSemaphoreDeviceIndices []uint32 - refea4e7ce4 *C.VkDeviceGroupSubmitInfo - allocsea4e7ce4 interface{} +// PerformanceQuerySubmitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPerformanceQuerySubmitInfoKHR +type PerformanceQuerySubmitInfo struct { + SType StructureType + PNext unsafe.Pointer + CounterPassIndex uint32 + refbccd2736 *C.VkPerformanceQuerySubmitInfoKHR + allocsbccd2736 interface{} } -// DeviceGroupBindSparseInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupBindSparseInfo.html -type DeviceGroupBindSparseInfo struct { +// PhysicalDeviceSurfaceInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceSurfaceInfo2KHR +type PhysicalDeviceSurfaceInfo2 struct { + SType StructureType + PNext unsafe.Pointer + Surface Surface + refd22370ae *C.VkPhysicalDeviceSurfaceInfo2KHR + allocsd22370ae interface{} +} + +// SurfaceCapabilities2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceCapabilities2KHR +type SurfaceCapabilities2 struct { SType StructureType PNext unsafe.Pointer - ResourceDeviceIndex uint32 - MemoryDeviceIndex uint32 - ref5b5446cd *C.VkDeviceGroupBindSparseInfo - allocs5b5446cd interface{} + SurfaceCapabilities SurfaceCapabilities + refea469745 *C.VkSurfaceCapabilities2KHR + allocsea469745 interface{} } -// BindBufferMemoryDeviceGroupInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindBufferMemoryDeviceGroupInfo.html -type BindBufferMemoryDeviceGroupInfo struct { - SType StructureType - PNext unsafe.Pointer - DeviceIndexCount uint32 - PDeviceIndices []uint32 - reff136b64f *C.VkBindBufferMemoryDeviceGroupInfo - allocsf136b64f interface{} +// SurfaceFormat2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceFormat2KHR +type SurfaceFormat2 struct { + SType StructureType + PNext unsafe.Pointer + SurfaceFormat SurfaceFormat + ref8867f0ed *C.VkSurfaceFormat2KHR + allocs8867f0ed interface{} } -// BindImageMemoryDeviceGroupInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindImageMemoryDeviceGroupInfo.html -type BindImageMemoryDeviceGroupInfo struct { - SType StructureType - PNext unsafe.Pointer - DeviceIndexCount uint32 - PDeviceIndices []uint32 - SplitInstanceBindRegionCount uint32 - PSplitInstanceBindRegions []Rect2D - ref24f026a5 *C.VkBindImageMemoryDeviceGroupInfo - allocs24f026a5 interface{} +// DisplayProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayProperties2KHR +type DisplayProperties2 struct { + SType StructureType + PNext unsafe.Pointer + DisplayProperties DisplayProperties + ref80194833 *C.VkDisplayProperties2KHR + allocs80194833 interface{} } -// PhysicalDeviceGroupProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceGroupProperties.html -type PhysicalDeviceGroupProperties struct { - SType StructureType - PNext unsafe.Pointer - PhysicalDeviceCount uint32 - PhysicalDevices [32]PhysicalDevice - SubsetAllocation Bool32 - ref2aa9a663 *C.VkPhysicalDeviceGroupProperties - allocs2aa9a663 interface{} +// DisplayPlaneProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneProperties2KHR +type DisplayPlaneProperties2 struct { + SType StructureType + PNext unsafe.Pointer + DisplayPlaneProperties DisplayPlaneProperties + refa72b1e5b *C.VkDisplayPlaneProperties2KHR + allocsa72b1e5b interface{} } -// DeviceGroupDeviceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceGroupDeviceCreateInfo.html -type DeviceGroupDeviceCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - PhysicalDeviceCount uint32 - PPhysicalDevices []PhysicalDevice - refb2275723 *C.VkDeviceGroupDeviceCreateInfo - allocsb2275723 interface{} +// DisplayModeProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeProperties2KHR +type DisplayModeProperties2 struct { + SType StructureType + PNext unsafe.Pointer + DisplayModeProperties DisplayModeProperties + refc566048d *C.VkDisplayModeProperties2KHR + allocsc566048d interface{} } -// BufferMemoryRequirementsInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferMemoryRequirementsInfo2.html -type BufferMemoryRequirementsInfo2 struct { +// DisplayPlaneInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneInfo2KHR +type DisplayPlaneInfo2 struct { SType StructureType PNext unsafe.Pointer - Buffer Buffer - reff54a2a42 *C.VkBufferMemoryRequirementsInfo2 - allocsf54a2a42 interface{} + Mode DisplayMode + PlaneIndex uint32 + reff355ccbf *C.VkDisplayPlaneInfo2KHR + allocsf355ccbf interface{} } -// ImageMemoryRequirementsInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageMemoryRequirementsInfo2.html -type ImageMemoryRequirementsInfo2 struct { +// DisplayPlaneCapabilities2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneCapabilities2KHR +type DisplayPlaneCapabilities2 struct { SType StructureType PNext unsafe.Pointer - Image Image - ref75b3ca05 *C.VkImageMemoryRequirementsInfo2 - allocs75b3ca05 interface{} + Capabilities DisplayPlaneCapabilities + refb53dfb44 *C.VkDisplayPlaneCapabilities2KHR + allocsb53dfb44 interface{} } -// ImageSparseMemoryRequirementsInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageSparseMemoryRequirementsInfo2.html -type ImageSparseMemoryRequirementsInfo2 struct { +// PhysicalDeviceShaderClockFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceShaderClockFeaturesKHR +type PhysicalDeviceShaderClockFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderSubgroupClock Bool32 + ShaderDeviceClock Bool32 + refab512283 *C.VkPhysicalDeviceShaderClockFeaturesKHR + allocsab512283 interface{} +} + +// DeviceQueueGlobalPriorityCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeviceQueueGlobalPriorityCreateInfoKHR +type DeviceQueueGlobalPriorityCreateInfo struct { SType StructureType PNext unsafe.Pointer - Image Image - ref878956f7 *C.VkImageSparseMemoryRequirementsInfo2 - allocs878956f7 interface{} + GlobalPriority QueueGlobalPriority + refdf0afc28 *C.VkDeviceQueueGlobalPriorityCreateInfoKHR + allocsdf0afc28 interface{} } -// MemoryRequirements2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryRequirements2.html -type MemoryRequirements2 struct { - SType StructureType - PNext unsafe.Pointer - MemoryRequirements MemoryRequirements - refc0e75f21 *C.VkMemoryRequirements2 - allocsc0e75f21 interface{} +// PhysicalDeviceGlobalPriorityQueryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR +type PhysicalDeviceGlobalPriorityQueryFeatures struct { + SType StructureType + PNext unsafe.Pointer + GlobalPriorityQuery Bool32 + refa6f56699 *C.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR + allocsa6f56699 interface{} } -// SparseImageMemoryRequirements2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageMemoryRequirements2.html -type SparseImageMemoryRequirements2 struct { - SType StructureType - PNext unsafe.Pointer - MemoryRequirements SparseImageMemoryRequirements - refb8da955c *C.VkSparseImageMemoryRequirements2 - allocsb8da955c interface{} +// QueueFamilyGlobalPriorityProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkQueueFamilyGlobalPriorityPropertiesKHR +type QueueFamilyGlobalPriorityProperties struct { + SType StructureType + PNext unsafe.Pointer + PriorityCount uint32 + Priorities [16]QueueGlobalPriority + reff5bb6c4d *C.VkQueueFamilyGlobalPriorityPropertiesKHR + allocsf5bb6c4d interface{} } -// PhysicalDeviceFeatures2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFeatures2.html -type PhysicalDeviceFeatures2 struct { - SType StructureType - PNext unsafe.Pointer - Features PhysicalDeviceFeatures - refff6ed04 *C.VkPhysicalDeviceFeatures2 - allocsff6ed04 interface{} +// FragmentShadingRateAttachmentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkFragmentShadingRateAttachmentInfoKHR +type FragmentShadingRateAttachmentInfo struct { + SType StructureType + PNext unsafe.Pointer + PFragmentShadingRateAttachment []AttachmentReference2 + ShadingRateAttachmentTexelSize Extent2D + refd9f9d390 *C.VkFragmentShadingRateAttachmentInfoKHR + allocsd9f9d390 interface{} } -// PhysicalDeviceProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProperties2.html -type PhysicalDeviceProperties2 struct { +// PipelineFragmentShadingRateStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPipelineFragmentShadingRateStateCreateInfoKHR +type PipelineFragmentShadingRateStateCreateInfo struct { SType StructureType PNext unsafe.Pointer - Properties PhysicalDeviceProperties - ref947bd13e *C.VkPhysicalDeviceProperties2 - allocs947bd13e interface{} -} - -// FormatProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFormatProperties2.html -type FormatProperties2 struct { - SType StructureType - PNext unsafe.Pointer - FormatProperties FormatProperties - refddc6af2a *C.VkFormatProperties2 - allocsddc6af2a interface{} + FragmentSize Extent2D + CombinerOps [2]FragmentShadingRateCombinerOp + ref47a79f27 *C.VkPipelineFragmentShadingRateStateCreateInfoKHR + allocs47a79f27 interface{} } -// ImageFormatProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageFormatProperties2.html -type ImageFormatProperties2 struct { - SType StructureType - PNext unsafe.Pointer - ImageFormatProperties ImageFormatProperties - ref224187e7 *C.VkImageFormatProperties2 - allocs224187e7 interface{} +// PhysicalDeviceFragmentShadingRateFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceFragmentShadingRateFeaturesKHR +type PhysicalDeviceFragmentShadingRateFeatures struct { + SType StructureType + PNext unsafe.Pointer + PipelineFragmentShadingRate Bool32 + PrimitiveFragmentShadingRate Bool32 + AttachmentFragmentShadingRate Bool32 + ref9041f272 *C.VkPhysicalDeviceFragmentShadingRateFeaturesKHR + allocs9041f272 interface{} } -// PhysicalDeviceImageFormatInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImageFormatInfo2.html -type PhysicalDeviceImageFormatInfo2 struct { +// PhysicalDeviceFragmentShadingRateProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceFragmentShadingRatePropertiesKHR +type PhysicalDeviceFragmentShadingRateProperties struct { + SType StructureType + PNext unsafe.Pointer + MinFragmentShadingRateAttachmentTexelSize Extent2D + MaxFragmentShadingRateAttachmentTexelSize Extent2D + MaxFragmentShadingRateAttachmentTexelSizeAspectRatio uint32 + PrimitiveFragmentShadingRateWithMultipleViewports Bool32 + LayeredShadingRateAttachments Bool32 + FragmentShadingRateNonTrivialCombinerOps Bool32 + MaxFragmentSize Extent2D + MaxFragmentSizeAspectRatio uint32 + MaxFragmentShadingRateCoverageSamples uint32 + MaxFragmentShadingRateRasterizationSamples SampleCountFlagBits + FragmentShadingRateWithShaderDepthStencilWrites Bool32 + FragmentShadingRateWithSampleMask Bool32 + FragmentShadingRateWithShaderSampleMask Bool32 + FragmentShadingRateWithConservativeRasterization Bool32 + FragmentShadingRateWithFragmentShaderInterlock Bool32 + FragmentShadingRateWithCustomSampleLocations Bool32 + FragmentShadingRateStrictMultiplyCombiner Bool32 + ref518beb *C.VkPhysicalDeviceFragmentShadingRatePropertiesKHR + allocs518beb interface{} +} + +// PhysicalDeviceFragmentShadingRate as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceFragmentShadingRateKHR +type PhysicalDeviceFragmentShadingRate struct { SType StructureType PNext unsafe.Pointer - Format Format - Type ImageType - Tiling ImageTiling - Usage ImageUsageFlags - Flags ImageCreateFlags - ref5934b445 *C.VkPhysicalDeviceImageFormatInfo2 - allocs5934b445 interface{} + SampleCounts SampleCountFlags + FragmentSize Extent2D + ref17914e16 *C.VkPhysicalDeviceFragmentShadingRateKHR + allocs17914e16 interface{} } -// QueueFamilyProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFamilyProperties2.html -type QueueFamilyProperties2 struct { - SType StructureType - PNext unsafe.Pointer - QueueFamilyProperties QueueFamilyProperties - ref85bf626c *C.VkQueueFamilyProperties2 - allocs85bf626c interface{} +// SurfaceProtectedCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceProtectedCapabilitiesKHR +type SurfaceProtectedCapabilities struct { + SType StructureType + PNext unsafe.Pointer + SupportsProtected Bool32 + refa5f4111 *C.VkSurfaceProtectedCapabilitiesKHR + allocsa5f4111 interface{} } -// PhysicalDeviceMemoryProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMemoryProperties2.html -type PhysicalDeviceMemoryProperties2 struct { - SType StructureType - PNext unsafe.Pointer - MemoryProperties PhysicalDeviceMemoryProperties - refd9e39b19 *C.VkPhysicalDeviceMemoryProperties2 - allocsd9e39b19 interface{} +// PhysicalDevicePresentWaitFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDevicePresentWaitFeaturesKHR +type PhysicalDevicePresentWaitFeatures struct { + SType StructureType + PNext unsafe.Pointer + PresentWait Bool32 + ref1cd9c482 *C.VkPhysicalDevicePresentWaitFeaturesKHR + allocs1cd9c482 interface{} } -// SparseImageFormatProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSparseImageFormatProperties2.html -type SparseImageFormatProperties2 struct { +// DeferredOperation as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeferredOperationKHR +type DeferredOperation C.VkDeferredOperationKHR + +// PhysicalDevicePipelineExecutablePropertiesFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR +type PhysicalDevicePipelineExecutablePropertiesFeatures struct { + SType StructureType + PNext unsafe.Pointer + PipelineExecutableInfo Bool32 + ref84acf0e1 *C.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR + allocs84acf0e1 interface{} +} + +// PipelineInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPipelineInfoKHR +type PipelineInfo struct { SType StructureType PNext unsafe.Pointer - Properties SparseImageFormatProperties - ref6b48294b *C.VkSparseImageFormatProperties2 - allocs6b48294b interface{} + Pipeline Pipeline + refcd879ca1 *C.VkPipelineInfoKHR + allocscd879ca1 interface{} } -// PhysicalDeviceSparseImageFormatInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSparseImageFormatInfo2.html -type PhysicalDeviceSparseImageFormatInfo2 struct { +// PipelineExecutableProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPipelineExecutablePropertiesKHR +type PipelineExecutableProperties struct { SType StructureType PNext unsafe.Pointer - Format Format - Type ImageType - Samples SampleCountFlagBits - Usage ImageUsageFlags - Tiling ImageTiling - ref566d5513 *C.VkPhysicalDeviceSparseImageFormatInfo2 - allocs566d5513 interface{} + Stages ShaderStageFlags + Name [256]byte + Description [256]byte + SubgroupSize uint32 + ref4eb592a4 *C.VkPipelineExecutablePropertiesKHR + allocs4eb592a4 interface{} } -// PhysicalDevicePointClippingProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePointClippingProperties.html -type PhysicalDevicePointClippingProperties struct { - SType StructureType - PNext unsafe.Pointer - PointClippingBehavior PointClippingBehavior - ref5afbd22f *C.VkPhysicalDevicePointClippingProperties - allocs5afbd22f interface{} +// PipelineExecutableInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPipelineExecutableInfoKHR +type PipelineExecutableInfo struct { + SType StructureType + PNext unsafe.Pointer + Pipeline Pipeline + ExecutableIndex uint32 + ref9b891dad *C.VkPipelineExecutableInfoKHR + allocs9b891dad interface{} } -// InputAttachmentAspectReference as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInputAttachmentAspectReference.html -type InputAttachmentAspectReference struct { - Subpass uint32 - InputAttachmentIndex uint32 - AspectMask ImageAspectFlags - ref4f7194e6 *C.VkInputAttachmentAspectReference - allocs4f7194e6 interface{} +// PipelineExecutableStatisticValue as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPipelineExecutableStatisticValueKHR +const sizeofPipelineExecutableStatisticValue = unsafe.Sizeof(C.VkPipelineExecutableStatisticValueKHR{}) + +type PipelineExecutableStatisticValue [sizeofPipelineExecutableStatisticValue]byte + +// PipelineExecutableStatistic as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPipelineExecutableStatisticKHR +type PipelineExecutableStatistic struct { + SType StructureType + PNext unsafe.Pointer + Name [256]byte + Description [256]byte + Format PipelineExecutableStatisticFormat + Value PipelineExecutableStatisticValue + ref4af1a62c *C.VkPipelineExecutableStatisticKHR + allocs4af1a62c interface{} } -// RenderPassInputAttachmentAspectCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassInputAttachmentAspectCreateInfo.html -type RenderPassInputAttachmentAspectCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - AspectReferenceCount uint32 - PAspectReferences []InputAttachmentAspectReference - ref34eaa5c7 *C.VkRenderPassInputAttachmentAspectCreateInfo - allocs34eaa5c7 interface{} +// PipelineExecutableInternalRepresentation as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPipelineExecutableInternalRepresentationKHR +type PipelineExecutableInternalRepresentation struct { + SType StructureType + PNext unsafe.Pointer + Name [256]byte + Description [256]byte + IsText Bool32 + DataSize uint64 + PData unsafe.Pointer + ref20e334f7 *C.VkPipelineExecutableInternalRepresentationKHR + allocs20e334f7 interface{} } -// ImageViewUsageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewUsageCreateInfo.html -type ImageViewUsageCreateInfo struct { +// PipelineLibraryCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPipelineLibraryCreateInfoKHR +type PipelineLibraryCreateInfo struct { SType StructureType PNext unsafe.Pointer - Usage ImageUsageFlags - ref3791cec9 *C.VkImageViewUsageCreateInfo - allocs3791cec9 interface{} + LibraryCount uint32 + PLibraries []Pipeline + ref6bb7541b *C.VkPipelineLibraryCreateInfoKHR + allocs6bb7541b interface{} } -// PipelineTessellationDomainOriginStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineTessellationDomainOriginStateCreateInfo.html -type PipelineTessellationDomainOriginStateCreateInfo struct { +// PresentId as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentIdKHR +type PresentId struct { SType StructureType PNext unsafe.Pointer - DomainOrigin TessellationDomainOrigin - ref58ef29bf *C.VkPipelineTessellationDomainOriginStateCreateInfo - allocs58ef29bf interface{} + SwapchainCount uint32 + PPresentIds []uint64 + ref70010623 *C.VkPresentIdKHR + allocs70010623 interface{} } -// RenderPassMultiviewCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassMultiviewCreateInfo.html -type RenderPassMultiviewCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - SubpassCount uint32 - PViewMasks []uint32 - DependencyCount uint32 - PViewOffsets []int32 - CorrelationMaskCount uint32 - PCorrelationMasks []uint32 - refee413e05 *C.VkRenderPassMultiviewCreateInfo - allocsee413e05 interface{} +// PhysicalDevicePresentIdFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDevicePresentIdFeaturesKHR +type PhysicalDevicePresentIdFeatures struct { + SType StructureType + PNext unsafe.Pointer + PresentId Bool32 + refba9945cd *C.VkPhysicalDevicePresentIdFeaturesKHR + allocsba9945cd interface{} } -// PhysicalDeviceMultiviewFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMultiviewFeatures.html -type PhysicalDeviceMultiviewFeatures struct { - SType StructureType - PNext unsafe.Pointer - Multiview Bool32 - MultiviewGeometryShader Bool32 - MultiviewTessellationShader Bool32 - refd7a7434b *C.VkPhysicalDeviceMultiviewFeatures - allocsd7a7434b interface{} +// QueueFamilyCheckpointProperties2NV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFamilyCheckpointProperties2NV.html +type QueueFamilyCheckpointProperties2NV struct { + SType StructureType + PNext unsafe.Pointer + CheckpointExecutionStageMask PipelineStageFlags2 + reffdc86afc *C.VkQueueFamilyCheckpointProperties2NV + allocsfdc86afc interface{} } -// PhysicalDeviceMultiviewProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMultiviewProperties.html -type PhysicalDeviceMultiviewProperties struct { +// CheckpointData2NV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCheckpointData2NV.html +type CheckpointData2NV struct { + SType StructureType + PNext unsafe.Pointer + Stage PipelineStageFlags2 + PCheckpointMarker unsafe.Pointer + ref6e25431b *C.VkCheckpointData2NV + allocs6e25431b interface{} +} + +// PhysicalDeviceFragmentShaderBarycentricFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR +type PhysicalDeviceFragmentShaderBarycentricFeatures struct { SType StructureType PNext unsafe.Pointer - MaxMultiviewViewCount uint32 - MaxMultiviewInstanceIndex uint32 - ref95110029 *C.VkPhysicalDeviceMultiviewProperties - allocs95110029 interface{} + FragmentShaderBarycentric Bool32 + reff7f35e73 *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + allocsf7f35e73 interface{} } -// PhysicalDeviceVariablePointerFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVariablePointerFeatures.html -type PhysicalDeviceVariablePointerFeatures struct { - SType StructureType - PNext unsafe.Pointer - VariablePointersStorageBuffer Bool32 - VariablePointers Bool32 - refdedd8372 *C.VkPhysicalDeviceVariablePointerFeatures - allocsdedd8372 interface{} +// PhysicalDeviceFragmentShaderBarycentricProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR +type PhysicalDeviceFragmentShaderBarycentricProperties struct { + SType StructureType + PNext unsafe.Pointer + TriStripVertexOrderIndependentOfProvokingVertex Bool32 + refc62a32db *C.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR + allocsc62a32db interface{} } -// PhysicalDeviceProtectedMemoryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProtectedMemoryFeatures.html -type PhysicalDeviceProtectedMemoryFeatures struct { - SType StructureType - PNext unsafe.Pointer - ProtectedMemory Bool32 - refac441ed1 *C.VkPhysicalDeviceProtectedMemoryFeatures - allocsac441ed1 interface{} +// PhysicalDeviceShaderSubgroupUniformControlFlowFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +type PhysicalDeviceShaderSubgroupUniformControlFlowFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderSubgroupUniformControlFlow Bool32 + refadc1f19 *C.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR + allocsadc1f19 interface{} +} + +// PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +type PhysicalDeviceWorkgroupMemoryExplicitLayoutFeatures struct { + SType StructureType + PNext unsafe.Pointer + WorkgroupMemoryExplicitLayout Bool32 + WorkgroupMemoryExplicitLayoutScalarBlockLayout Bool32 + WorkgroupMemoryExplicitLayout8BitAccess Bool32 + WorkgroupMemoryExplicitLayout16BitAccess Bool32 + ref288a691 *C.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + allocs288a691 interface{} +} + +// PhysicalDeviceRayTracingMaintenance1Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR +type PhysicalDeviceRayTracingMaintenance1Features struct { + SType StructureType + PNext unsafe.Pointer + RayTracingMaintenance1 Bool32 + RayTracingPipelineTraceRaysIndirect2 Bool32 + ref799fe16 *C.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR + allocs799fe16 interface{} +} + +// TraceRaysIndirectCommand2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkTraceRaysIndirectCommand2KHR +type TraceRaysIndirectCommand2 struct { + RaygenShaderRecordAddress DeviceAddress + RaygenShaderRecordSize DeviceSize + MissShaderBindingTableAddress DeviceAddress + MissShaderBindingTableSize DeviceSize + MissShaderBindingTableStride DeviceSize + HitShaderBindingTableAddress DeviceAddress + HitShaderBindingTableSize DeviceSize + HitShaderBindingTableStride DeviceSize + CallableShaderBindingTableAddress DeviceAddress + CallableShaderBindingTableSize DeviceSize + CallableShaderBindingTableStride DeviceSize + Width uint32 + Height uint32 + Depth uint32 + ref9139d02e *C.VkTraceRaysIndirectCommand2KHR + allocs9139d02e interface{} } -// PhysicalDeviceProtectedMemoryProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProtectedMemoryProperties.html -type PhysicalDeviceProtectedMemoryProperties struct { - SType StructureType - PNext unsafe.Pointer - ProtectedNoFault Bool32 - refb653413 *C.VkPhysicalDeviceProtectedMemoryProperties - allocsb653413 interface{} -} +// DebugReportCallback as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugReportCallbackEXT.html +type DebugReportCallback C.VkDebugReportCallbackEXT -// DeviceQueueInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueInfo2.html -type DeviceQueueInfo2 struct { - SType StructureType - PNext unsafe.Pointer - Flags DeviceQueueCreateFlags - QueueFamilyIndex uint32 - QueueIndex uint32 - ref2f267e52 *C.VkDeviceQueueInfo2 - allocs2f267e52 interface{} +// DebugReportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugReportFlagsEXT.html +type DebugReportFlags uint32 + +// DebugReportCallbackFunc type as declared in vulkan/vulkan_core.h:10234 +type DebugReportCallbackFunc func(flags DebugReportFlags, objectType DebugReportObjectType, object uint64, location uint64, messageCode int32, pLayerPrefix string, pMessage string, pUserData unsafe.Pointer) Bool32 + +// DebugReportCallbackCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugReportCallbackCreateInfoEXT.html +type DebugReportCallbackCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags DebugReportFlags + PfnCallback DebugReportCallbackFunc + PUserData unsafe.Pointer + refc8238563 *C.VkDebugReportCallbackCreateInfoEXT + allocsc8238563 interface{} } -// ProtectedSubmitInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkProtectedSubmitInfo.html -type ProtectedSubmitInfo struct { - SType StructureType - PNext unsafe.Pointer - ProtectedSubmit Bool32 - ref6bd69669 *C.VkProtectedSubmitInfo - allocs6bd69669 interface{} +// PipelineRasterizationStateRasterizationOrderAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineRasterizationStateRasterizationOrderAMD +type PipelineRasterizationStateRasterizationOrderAMD struct { + SType StructureType + PNext unsafe.Pointer + RasterizationOrder RasterizationOrderAMD + ref5098cf82 *C.VkPipelineRasterizationStateRasterizationOrderAMD + allocs5098cf82 interface{} } -// SamplerYcbcrConversionCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrConversionCreateInfo.html -type SamplerYcbcrConversionCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Format Format - YcbcrModel SamplerYcbcrModelConversion - YcbcrRange SamplerYcbcrRange - Components ComponentMapping - XChromaOffset ChromaLocation - YChromaOffset ChromaLocation - ChromaFilter Filter - ForceExplicitReconstruction Bool32 - ref9875bff7 *C.VkSamplerYcbcrConversionCreateInfo - allocs9875bff7 interface{} +// DebugMarkerObjectNameInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugMarkerObjectNameInfoEXT.html +type DebugMarkerObjectNameInfo struct { + SType StructureType + PNext unsafe.Pointer + ObjectType DebugReportObjectType + Object uint64 + PObjectName string + refe4983fab *C.VkDebugMarkerObjectNameInfoEXT + allocse4983fab interface{} } -// SamplerYcbcrConversionInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrConversionInfo.html -type SamplerYcbcrConversionInfo struct { +// DebugMarkerObjectTagInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugMarkerObjectTagInfoEXT.html +type DebugMarkerObjectTagInfo struct { SType StructureType PNext unsafe.Pointer - Conversion SamplerYcbcrConversion - ref11ff5547 *C.VkSamplerYcbcrConversionInfo - allocs11ff5547 interface{} + ObjectType DebugReportObjectType + Object uint64 + TagName uint64 + TagSize uint64 + PTag unsafe.Pointer + refa41a5c3b *C.VkDebugMarkerObjectTagInfoEXT + allocsa41a5c3b interface{} } -// BindImagePlaneMemoryInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindImagePlaneMemoryInfo.html -type BindImagePlaneMemoryInfo struct { +// DebugMarkerMarkerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugMarkerMarkerInfoEXT.html +type DebugMarkerMarkerInfo struct { SType StructureType PNext unsafe.Pointer - PlaneAspect ImageAspectFlagBits - ref56b81476 *C.VkBindImagePlaneMemoryInfo - allocs56b81476 interface{} + PMarkerName string + Color [4]float32 + ref234b91fd *C.VkDebugMarkerMarkerInfoEXT + allocs234b91fd interface{} +} + +// DedicatedAllocationImageCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDedicatedAllocationImageCreateInfoNV.html +type DedicatedAllocationImageCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + DedicatedAllocation Bool32 + ref685d878b *C.VkDedicatedAllocationImageCreateInfoNV + allocs685d878b interface{} +} + +// DedicatedAllocationBufferCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDedicatedAllocationBufferCreateInfoNV.html +type DedicatedAllocationBufferCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + DedicatedAllocation Bool32 + refbc745a8 *C.VkDedicatedAllocationBufferCreateInfoNV + allocsbc745a8 interface{} } -// ImagePlaneMemoryRequirementsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImagePlaneMemoryRequirementsInfo.html -type ImagePlaneMemoryRequirementsInfo struct { +// DedicatedAllocationMemoryAllocateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDedicatedAllocationMemoryAllocateInfoNV.html +type DedicatedAllocationMemoryAllocateInfoNV struct { SType StructureType PNext unsafe.Pointer - PlaneAspect ImageAspectFlagBits - refefec131f *C.VkImagePlaneMemoryRequirementsInfo - allocsefec131f interface{} + Image Image + Buffer Buffer + ref9a72b107 *C.VkDedicatedAllocationMemoryAllocateInfoNV + allocs9a72b107 interface{} } -// PhysicalDeviceSamplerYcbcrConversionFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSamplerYcbcrConversionFeatures.html -type PhysicalDeviceSamplerYcbcrConversionFeatures struct { - SType StructureType - PNext unsafe.Pointer - SamplerYcbcrConversion Bool32 - ref1d054d67 *C.VkPhysicalDeviceSamplerYcbcrConversionFeatures - allocs1d054d67 interface{} -} +// PipelineRasterizationStateStreamCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationStateStreamCreateFlagsEXT.html +type PipelineRasterizationStateStreamCreateFlags uint32 -// SamplerYcbcrConversionImageFormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerYcbcrConversionImageFormatProperties.html -type SamplerYcbcrConversionImageFormatProperties struct { - SType StructureType - PNext unsafe.Pointer - CombinedImageSamplerDescriptorCount uint32 - ref6bc79530 *C.VkSamplerYcbcrConversionImageFormatProperties - allocs6bc79530 interface{} +// PhysicalDeviceTransformFeedbackFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceTransformFeedbackFeaturesEXT.html +type PhysicalDeviceTransformFeedbackFeatures struct { + SType StructureType + PNext unsafe.Pointer + TransformFeedback Bool32 + GeometryStreams Bool32 + ref64b2a913 *C.VkPhysicalDeviceTransformFeedbackFeaturesEXT + allocs64b2a913 interface{} } -// DescriptorUpdateTemplateEntry as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorUpdateTemplateEntry.html -type DescriptorUpdateTemplateEntry struct { - DstBinding uint32 - DstArrayElement uint32 - DescriptorCount uint32 - DescriptorType DescriptorType - Offset uint - Stride uint - refabf78fb7 *C.VkDescriptorUpdateTemplateEntry - allocsabf78fb7 interface{} +// PhysicalDeviceTransformFeedbackProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceTransformFeedbackPropertiesEXT.html +type PhysicalDeviceTransformFeedbackProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxTransformFeedbackStreams uint32 + MaxTransformFeedbackBuffers uint32 + MaxTransformFeedbackBufferSize DeviceSize + MaxTransformFeedbackStreamDataSize uint32 + MaxTransformFeedbackBufferDataSize uint32 + MaxTransformFeedbackBufferDataStride uint32 + TransformFeedbackQueries Bool32 + TransformFeedbackStreamsLinesTriangles Bool32 + TransformFeedbackRasterizationStreamSelect Bool32 + TransformFeedbackDraw Bool32 + refc295a2a0 *C.VkPhysicalDeviceTransformFeedbackPropertiesEXT + allocsc295a2a0 interface{} } -// DescriptorUpdateTemplateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorUpdateTemplateCreateInfo.html -type DescriptorUpdateTemplateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags DescriptorUpdateTemplateCreateFlags - DescriptorUpdateEntryCount uint32 - PDescriptorUpdateEntries []DescriptorUpdateTemplateEntry - TemplateType DescriptorUpdateTemplateType - DescriptorSetLayout DescriptorSetLayout - PipelineBindPoint PipelineBindPoint - PipelineLayout PipelineLayout - Set uint32 - ref2af95951 *C.VkDescriptorUpdateTemplateCreateInfo - allocs2af95951 interface{} +// PipelineRasterizationStateStreamCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationStateStreamCreateInfoEXT.html +type PipelineRasterizationStateStreamCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineRasterizationStateStreamCreateFlags + RasterizationStream uint32 + refed6e1fb9 *C.VkPipelineRasterizationStateStreamCreateInfoEXT + allocsed6e1fb9 interface{} } -// ExternalMemoryProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryProperties.html -type ExternalMemoryProperties struct { - ExternalMemoryFeatures ExternalMemoryFeatureFlags - ExportFromImportedHandleTypes ExternalMemoryHandleTypeFlags - CompatibleHandleTypes ExternalMemoryHandleTypeFlags - ref4b738f01 *C.VkExternalMemoryProperties - allocs4b738f01 interface{} +// ImageViewHandleInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkImageViewHandleInfoNVX +type ImageViewHandleInfoNVX struct { + SType StructureType + PNext unsafe.Pointer + ImageView ImageView + DescriptorType DescriptorType + Sampler Sampler + refc283b384 *C.VkImageViewHandleInfoNVX + allocsc283b384 interface{} } -// PhysicalDeviceExternalImageFormatInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalImageFormatInfo.html -type PhysicalDeviceExternalImageFormatInfo struct { +// ImageViewAddressPropertiesNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkImageViewAddressPropertiesNVX +type ImageViewAddressPropertiesNVX struct { SType StructureType PNext unsafe.Pointer - HandleType ExternalMemoryHandleTypeFlagBits - refc839c724 *C.VkPhysicalDeviceExternalImageFormatInfo - allocsc839c724 interface{} + DeviceAddress DeviceAddress + Size DeviceSize + refe6dd1556 *C.VkImageViewAddressPropertiesNVX + allocse6dd1556 interface{} } -// ExternalImageFormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalImageFormatProperties.html -type ExternalImageFormatProperties struct { - SType StructureType - PNext unsafe.Pointer - ExternalMemoryProperties ExternalMemoryProperties - refd404c4b5 *C.VkExternalImageFormatProperties - allocsd404c4b5 interface{} +// TextureLODGatherFormatPropertiesAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkTextureLODGatherFormatPropertiesAMD +type TextureLODGatherFormatPropertiesAMD struct { + SType StructureType + PNext unsafe.Pointer + SupportsTextureGatherLODBiasAMD Bool32 + ref519ba3a9 *C.VkTextureLODGatherFormatPropertiesAMD + allocs519ba3a9 interface{} } -// PhysicalDeviceExternalBufferInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalBufferInfo.html -type PhysicalDeviceExternalBufferInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags BufferCreateFlags - Usage BufferUsageFlags - HandleType ExternalMemoryHandleTypeFlagBits - ref8d758947 *C.VkPhysicalDeviceExternalBufferInfo - allocs8d758947 interface{} +// ShaderResourceUsageAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderResourceUsageAMD +type ShaderResourceUsageAMD struct { + NumUsedVgprs uint32 + NumUsedSgprs uint32 + LdsSizePerLocalWorkGroup uint32 + LdsUsageSizeInBytes uint64 + ScratchMemUsageInBytes uint64 + ref8a688131 *C.VkShaderResourceUsageAMD + allocs8a688131 interface{} } -// ExternalBufferProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalBufferProperties.html -type ExternalBufferProperties struct { - SType StructureType - PNext unsafe.Pointer - ExternalMemoryProperties ExternalMemoryProperties - ref12f7c546 *C.VkExternalBufferProperties - allocs12f7c546 interface{} +// ShaderStatisticsInfoAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderStatisticsInfoAMD +type ShaderStatisticsInfoAMD struct { + ShaderStageMask ShaderStageFlags + ResourceUsage ShaderResourceUsageAMD + NumPhysicalVgprs uint32 + NumPhysicalSgprs uint32 + NumAvailableVgprs uint32 + NumAvailableSgprs uint32 + ComputeWorkGroupSize [3]uint32 + ref896a52bf *C.VkShaderStatisticsInfoAMD + allocs896a52bf interface{} } -// PhysicalDeviceIDProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceIDProperties.html -type PhysicalDeviceIDProperties struct { - SType StructureType - PNext unsafe.Pointer - DeviceUUID [16]byte - DriverUUID [16]byte - DeviceLUID [8]byte - DeviceNodeMask uint32 - DeviceLUIDValid Bool32 - refe990a9f3 *C.VkPhysicalDeviceIDProperties - allocse990a9f3 interface{} +// PhysicalDeviceCornerSampledImageFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceCornerSampledImageFeaturesNV.html +type PhysicalDeviceCornerSampledImageFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + CornerSampledImage Bool32 + refdf4a62d1 *C.VkPhysicalDeviceCornerSampledImageFeaturesNV + allocsdf4a62d1 interface{} } -// ExternalMemoryImageCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryImageCreateInfo.html -type ExternalMemoryImageCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - HandleTypes ExternalMemoryHandleTypeFlags - refdaf1185e *C.VkExternalMemoryImageCreateInfo - allocsdaf1185e interface{} +// ExternalMemoryHandleTypeFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryHandleTypeFlagsNV.html +type ExternalMemoryHandleTypeFlagsNV uint32 + +// ExternalMemoryFeatureFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryFeatureFlagsNV.html +type ExternalMemoryFeatureFlagsNV uint32 + +// ExternalImageFormatPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalImageFormatPropertiesNV.html +type ExternalImageFormatPropertiesNV struct { + ImageFormatProperties ImageFormatProperties + ExternalMemoryFeatures ExternalMemoryFeatureFlagsNV + ExportFromImportedHandleTypes ExternalMemoryHandleTypeFlagsNV + CompatibleHandleTypes ExternalMemoryHandleTypeFlagsNV + refa8900ce5 *C.VkExternalImageFormatPropertiesNV + allocsa8900ce5 interface{} } -// ExternalMemoryBufferCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryBufferCreateInfo.html -type ExternalMemoryBufferCreateInfo struct { +// ExternalMemoryImageCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryImageCreateInfoNV.html +type ExternalMemoryImageCreateInfoNV struct { SType StructureType PNext unsafe.Pointer - HandleTypes ExternalMemoryHandleTypeFlags - refd33a9423 *C.VkExternalMemoryBufferCreateInfo - allocsd33a9423 interface{} + HandleTypes ExternalMemoryHandleTypeFlagsNV + ref9a7fb6c8 *C.VkExternalMemoryImageCreateInfoNV + allocs9a7fb6c8 interface{} } -// ExportMemoryAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExportMemoryAllocateInfo.html -type ExportMemoryAllocateInfo struct { - SType StructureType - PNext unsafe.Pointer - HandleTypes ExternalMemoryHandleTypeFlags - refeb76ec64 *C.VkExportMemoryAllocateInfo - allocseb76ec64 interface{} +// ExportMemoryAllocateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExportMemoryAllocateInfoNV.html +type ExportMemoryAllocateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + HandleTypes ExternalMemoryHandleTypeFlagsNV + ref5066f33 *C.VkExportMemoryAllocateInfoNV + allocs5066f33 interface{} } -// PhysicalDeviceExternalFenceInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalFenceInfo.html -type PhysicalDeviceExternalFenceInfo struct { +// ValidationFlags as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationFlagsEXT.html +type ValidationFlags struct { + SType StructureType + PNext unsafe.Pointer + DisabledValidationCheckCount uint32 + PDisabledValidationChecks []ValidationCheck + refffe080ad *C.VkValidationFlagsEXT + allocsffe080ad interface{} +} + +// ImageViewASTCDecodeMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewASTCDecodeModeEXT.html +type ImageViewASTCDecodeMode struct { SType StructureType PNext unsafe.Pointer - HandleType ExternalFenceHandleTypeFlagBits - ref9bb660cc *C.VkPhysicalDeviceExternalFenceInfo - allocs9bb660cc interface{} + DecodeMode Format + ref3a973fc0 *C.VkImageViewASTCDecodeModeEXT + allocs3a973fc0 interface{} } -// ExternalFenceProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalFenceProperties.html -type ExternalFenceProperties struct { - SType StructureType - PNext unsafe.Pointer - ExportFromImportedHandleTypes ExternalFenceHandleTypeFlags - CompatibleHandleTypes ExternalFenceHandleTypeFlags - ExternalFenceFeatures ExternalFenceFeatureFlags - ref18806773 *C.VkExternalFenceProperties - allocs18806773 interface{} +// PhysicalDeviceASTCDecodeFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceASTCDecodeFeaturesEXT.html +type PhysicalDeviceASTCDecodeFeatures struct { + SType StructureType + PNext unsafe.Pointer + DecodeModeSharedExponent Bool32 + refd8af7d5a *C.VkPhysicalDeviceASTCDecodeFeaturesEXT + allocsd8af7d5a interface{} +} + +// PhysicalDevicePipelineRobustnessFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePipelineRobustnessFeaturesEXT.html +type PhysicalDevicePipelineRobustnessFeatures struct { + SType StructureType + PNext unsafe.Pointer + PipelineRobustness Bool32 + refdffe5c47 *C.VkPhysicalDevicePipelineRobustnessFeaturesEXT + allocsdffe5c47 interface{} } -// ExportFenceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExportFenceCreateInfo.html -type ExportFenceCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - HandleTypes ExternalFenceHandleTypeFlags - ref5fef8c3a *C.VkExportFenceCreateInfo - allocs5fef8c3a interface{} +// PhysicalDevicePipelineRobustnessProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePipelineRobustnessPropertiesEXT.html +type PhysicalDevicePipelineRobustnessProperties struct { + SType StructureType + PNext unsafe.Pointer + DefaultRobustnessStorageBuffers PipelineRobustnessBufferBehavior + DefaultRobustnessUniformBuffers PipelineRobustnessBufferBehavior + DefaultRobustnessVertexInputs PipelineRobustnessBufferBehavior + DefaultRobustnessImages PipelineRobustnessImageBehavior + refd195872f *C.VkPhysicalDevicePipelineRobustnessPropertiesEXT + allocsd195872f interface{} } -// ExportSemaphoreCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExportSemaphoreCreateInfo.html -type ExportSemaphoreCreateInfo struct { +// PipelineRobustnessCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRobustnessCreateInfoEXT.html +type PipelineRobustnessCreateInfo struct { SType StructureType PNext unsafe.Pointer - HandleTypes ExternalSemaphoreHandleTypeFlags - ref17b8d6c5 *C.VkExportSemaphoreCreateInfo - allocs17b8d6c5 interface{} + StorageBuffers PipelineRobustnessBufferBehavior + UniformBuffers PipelineRobustnessBufferBehavior + VertexInputs PipelineRobustnessBufferBehavior + Images PipelineRobustnessImageBehavior + ref1e4549a1 *C.VkPipelineRobustnessCreateInfoEXT + allocs1e4549a1 interface{} } -// PhysicalDeviceExternalSemaphoreInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalSemaphoreInfo.html -type PhysicalDeviceExternalSemaphoreInfo struct { +// ConditionalRenderingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagsEXT.html +type ConditionalRenderingFlags uint32 + +// ConditionalRenderingBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingBeginInfoEXT.html +type ConditionalRenderingBeginInfo struct { SType StructureType PNext unsafe.Pointer - HandleType ExternalSemaphoreHandleTypeFlagBits - ref5981d29e *C.VkPhysicalDeviceExternalSemaphoreInfo - allocs5981d29e interface{} + Buffer Buffer + Offset DeviceSize + Flags ConditionalRenderingFlags + ref82da87c9 *C.VkConditionalRenderingBeginInfoEXT + allocs82da87c9 interface{} } -// ExternalSemaphoreProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalSemaphoreProperties.html -type ExternalSemaphoreProperties struct { +// PhysicalDeviceConditionalRenderingFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceConditionalRenderingFeaturesEXT.html +type PhysicalDeviceConditionalRenderingFeatures struct { SType StructureType PNext unsafe.Pointer - ExportFromImportedHandleTypes ExternalSemaphoreHandleTypeFlags - CompatibleHandleTypes ExternalSemaphoreHandleTypeFlags - ExternalSemaphoreFeatures ExternalSemaphoreFeatureFlags - ref87ec1054 *C.VkExternalSemaphoreProperties - allocs87ec1054 interface{} -} - -// PhysicalDeviceMaintenance3Properties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMaintenance3Properties.html -type PhysicalDeviceMaintenance3Properties struct { - SType StructureType - PNext unsafe.Pointer - MaxPerSetDescriptors uint32 - MaxMemoryAllocationSize DeviceSize - ref12c07777 *C.VkPhysicalDeviceMaintenance3Properties - allocs12c07777 interface{} -} - -// DescriptorSetLayoutSupport as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutSupport.html -type DescriptorSetLayoutSupport struct { - SType StructureType - PNext unsafe.Pointer - Supported Bool32 - ref5802686c *C.VkDescriptorSetLayoutSupport - allocs5802686c interface{} -} - -// PhysicalDeviceShaderDrawParameterFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderDrawParameterFeatures.html -type PhysicalDeviceShaderDrawParameterFeatures struct { - SType StructureType - PNext unsafe.Pointer - ShaderDrawParameters Bool32 - ref23259ea6 *C.VkPhysicalDeviceShaderDrawParameterFeatures - allocs23259ea6 interface{} + ConditionalRendering Bool32 + InheritedConditionalRendering Bool32 + ref89d2a224 *C.VkPhysicalDeviceConditionalRenderingFeaturesEXT + allocs89d2a224 interface{} } -// Surface as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceKHR -type Surface C.VkSurfaceKHR - -// SurfaceTransformFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceTransformFlagsKHR -type SurfaceTransformFlags uint32 - -// CompositeAlphaFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkCompositeAlphaFlagsKHR -type CompositeAlphaFlags uint32 - -// SurfaceCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceCapabilitiesKHR -type SurfaceCapabilities struct { - MinImageCount uint32 - MaxImageCount uint32 - CurrentExtent Extent2D - MinImageExtent Extent2D - MaxImageExtent Extent2D - MaxImageArrayLayers uint32 - SupportedTransforms SurfaceTransformFlags - CurrentTransform SurfaceTransformFlagBits - SupportedCompositeAlpha CompositeAlphaFlags - SupportedUsageFlags ImageUsageFlags - ref11d5f596 *C.VkSurfaceCapabilitiesKHR - allocs11d5f596 interface{} +// CommandBufferInheritanceConditionalRenderingInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferInheritanceConditionalRenderingInfoEXT.html +type CommandBufferInheritanceConditionalRenderingInfo struct { + SType StructureType + PNext unsafe.Pointer + ConditionalRenderingEnable Bool32 + ref7155f49c *C.VkCommandBufferInheritanceConditionalRenderingInfoEXT + allocs7155f49c interface{} } -// SurfaceFormat as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceFormatKHR -type SurfaceFormat struct { - Format Format - ColorSpace ColorSpace - refedaf82ca *C.VkSurfaceFormatKHR - allocsedaf82ca interface{} +// ViewportWScalingNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkViewportWScalingNV.html +type ViewportWScalingNV struct { + Xcoeff float32 + Ycoeff float32 + ref7ea4590f *C.VkViewportWScalingNV + allocs7ea4590f interface{} } -// Swapchain as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSwapchainKHR -type Swapchain C.VkSwapchainKHR - -// SwapchainCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSwapchainCreateFlagsKHR -type SwapchainCreateFlags uint32 - -// DeviceGroupPresentModeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeviceGroupPresentModeFlagsKHR -type DeviceGroupPresentModeFlags uint32 - -// SwapchainCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSwapchainCreateInfoKHR -type SwapchainCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags SwapchainCreateFlags - Surface Surface - MinImageCount uint32 - ImageFormat Format - ImageColorSpace ColorSpace - ImageExtent Extent2D - ImageArrayLayers uint32 - ImageUsage ImageUsageFlags - ImageSharingMode SharingMode - QueueFamilyIndexCount uint32 - PQueueFamilyIndices []uint32 - PreTransform SurfaceTransformFlagBits - CompositeAlpha CompositeAlphaFlagBits - PresentMode PresentMode - Clipped Bool32 - OldSwapchain Swapchain - refdb619e1c *C.VkSwapchainCreateInfoKHR - allocsdb619e1c interface{} +// PipelineViewportWScalingStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportWScalingStateCreateInfoNV.html +type PipelineViewportWScalingStateCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + ViewportWScalingEnable Bool32 + ViewportCount uint32 + PViewportWScalings []ViewportWScalingNV + ref3e532c0b *C.VkPipelineViewportWScalingStateCreateInfoNV + allocs3e532c0b interface{} } -// PresentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentInfoKHR -type PresentInfo struct { - SType StructureType - PNext unsafe.Pointer - WaitSemaphoreCount uint32 - PWaitSemaphores []Semaphore - SwapchainCount uint32 - PSwapchains []Swapchain - PImageIndices []uint32 - PResults []Result - ref1d0e82d4 *C.VkPresentInfoKHR - allocs1d0e82d4 interface{} -} +// SurfaceCounterFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSurfaceCounterFlagsEXT.html +type SurfaceCounterFlags uint32 -// ImageSwapchainCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkImageSwapchainCreateInfoKHR -type ImageSwapchainCreateInfo struct { +// DisplayPowerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDisplayPowerInfoEXT.html +type DisplayPowerInfo struct { SType StructureType PNext unsafe.Pointer - Swapchain Swapchain - refd83cc5d0 *C.VkImageSwapchainCreateInfoKHR - allocsd83cc5d0 interface{} + PowerState DisplayPowerState + ref80fed52f *C.VkDisplayPowerInfoEXT + allocs80fed52f interface{} } -// BindImageMemorySwapchainInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkBindImageMemorySwapchainInfoKHR -type BindImageMemorySwapchainInfo struct { +// DeviceEventInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceEventInfoEXT.html +type DeviceEventInfo struct { SType StructureType PNext unsafe.Pointer - Swapchain Swapchain - ImageIndex uint32 - ref1aa25cb6 *C.VkBindImageMemorySwapchainInfoKHR - allocs1aa25cb6 interface{} + DeviceEvent DeviceEventType + ref394b3fcb *C.VkDeviceEventInfoEXT + allocs394b3fcb interface{} } -// AcquireNextImageInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAcquireNextImageInfoKHR -type AcquireNextImageInfo struct { +// DisplayEventInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDisplayEventInfoEXT.html +type DisplayEventInfo struct { SType StructureType PNext unsafe.Pointer - Swapchain Swapchain - Timeout uint64 - Semaphore Semaphore - Fence Fence - DeviceMask uint32 - ref588806a5 *C.VkAcquireNextImageInfoKHR - allocs588806a5 interface{} + DisplayEvent DisplayEventType + refa69f7302 *C.VkDisplayEventInfoEXT + allocsa69f7302 interface{} } -// DeviceGroupPresentCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeviceGroupPresentCapabilitiesKHR -type DeviceGroupPresentCapabilities struct { - SType StructureType - PNext unsafe.Pointer - PresentMask [32]uint32 - Modes DeviceGroupPresentModeFlags - refa3962c81 *C.VkDeviceGroupPresentCapabilitiesKHR - allocsa3962c81 interface{} +// SwapchainCounterCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSwapchainCounterCreateInfoEXT.html +type SwapchainCounterCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + SurfaceCounters SurfaceCounterFlags + ref9f21eca6 *C.VkSwapchainCounterCreateInfoEXT + allocs9f21eca6 interface{} } -// DeviceGroupPresentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeviceGroupPresentInfoKHR -type DeviceGroupPresentInfo struct { - SType StructureType - PNext unsafe.Pointer - SwapchainCount uint32 - PDeviceMasks []uint32 - Mode DeviceGroupPresentModeFlagBits - reff6912d09 *C.VkDeviceGroupPresentInfoKHR - allocsf6912d09 interface{} +// RefreshCycleDurationGOOGLE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRefreshCycleDurationGOOGLE.html +type RefreshCycleDurationGOOGLE struct { + RefreshDuration uint64 + ref969cb55b *C.VkRefreshCycleDurationGOOGLE + allocs969cb55b interface{} } -// DeviceGroupSwapchainCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDeviceGroupSwapchainCreateInfoKHR -type DeviceGroupSwapchainCreateInfo struct { +// PastPresentationTimingGOOGLE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPastPresentationTimingGOOGLE.html +type PastPresentationTimingGOOGLE struct { + PresentID uint32 + DesiredPresentTime uint64 + ActualPresentTime uint64 + EarliestPresentTime uint64 + PresentMargin uint64 + refac8cf1d8 *C.VkPastPresentationTimingGOOGLE + allocsac8cf1d8 interface{} +} + +// PresentTimeGOOGLE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentTimeGOOGLE.html +type PresentTimeGOOGLE struct { + PresentID uint32 + DesiredPresentTime uint64 + ref9cd90ade *C.VkPresentTimeGOOGLE + allocs9cd90ade interface{} +} + +// PresentTimesInfoGOOGLE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentTimesInfoGOOGLE.html +type PresentTimesInfoGOOGLE struct { SType StructureType PNext unsafe.Pointer - Modes DeviceGroupPresentModeFlags - ref44ae0c0e *C.VkDeviceGroupSwapchainCreateInfoKHR - allocs44ae0c0e interface{} + SwapchainCount uint32 + PTimes []PresentTimeGOOGLE + ref70eb8ab3 *C.VkPresentTimesInfoGOOGLE + allocs70eb8ab3 interface{} } -// Display as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayKHR -type Display C.VkDisplayKHR +// PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX +type PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX struct { + SType StructureType + PNext unsafe.Pointer + PerViewPositionAllComponents Bool32 + refbaf399ad *C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + allocsbaf399ad interface{} +} -// DisplayMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeKHR -type DisplayMode C.VkDisplayModeKHR +// PipelineViewportSwizzleStateCreateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportSwizzleStateCreateFlagsNV.html +type PipelineViewportSwizzleStateCreateFlagsNV uint32 -// DisplayPlaneAlphaFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneAlphaFlagsKHR -type DisplayPlaneAlphaFlags uint32 +// ViewportSwizzleNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkViewportSwizzleNV.html +type ViewportSwizzleNV struct { + X ViewportCoordinateSwizzleNV + Y ViewportCoordinateSwizzleNV + Z ViewportCoordinateSwizzleNV + W ViewportCoordinateSwizzleNV + ref74ff2887 *C.VkViewportSwizzleNV + allocs74ff2887 interface{} +} -// DisplayModeCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeCreateFlagsKHR -type DisplayModeCreateFlags uint32 +// PipelineViewportSwizzleStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportSwizzleStateCreateInfoNV.html +type PipelineViewportSwizzleStateCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineViewportSwizzleStateCreateFlagsNV + ViewportCount uint32 + PViewportSwizzles []ViewportSwizzleNV + ref5e90f24 *C.VkPipelineViewportSwizzleStateCreateInfoNV + allocs5e90f24 interface{} +} -// DisplaySurfaceCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplaySurfaceCreateFlagsKHR -type DisplaySurfaceCreateFlags uint32 +// PipelineDiscardRectangleStateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDiscardRectangleStateCreateFlagsEXT.html +type PipelineDiscardRectangleStateCreateFlags uint32 -// DisplayProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPropertiesKHR -type DisplayProperties struct { - Display Display - DisplayName string - PhysicalDimensions Extent2D - PhysicalResolution Extent2D - SupportedTransforms SurfaceTransformFlags - PlaneReorderPossible Bool32 - PersistentContent Bool32 - reffe2a7187 *C.VkDisplayPropertiesKHR - allocsfe2a7187 interface{} +// PhysicalDeviceDiscardRectangleProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDiscardRectanglePropertiesEXT.html +type PhysicalDeviceDiscardRectangleProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxDiscardRectangles uint32 + reffe8591da *C.VkPhysicalDeviceDiscardRectanglePropertiesEXT + allocsfe8591da interface{} } -// DisplayModeParameters as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeParametersKHR -type DisplayModeParameters struct { - VisibleRegion Extent2D - RefreshRate uint32 - refe016f77f *C.VkDisplayModeParametersKHR - allocse016f77f interface{} +// PipelineDiscardRectangleStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDiscardRectangleStateCreateInfoEXT.html +type PipelineDiscardRectangleStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineDiscardRectangleStateCreateFlags + DiscardRectangleMode DiscardRectangleMode + DiscardRectangleCount uint32 + PDiscardRectangles []Rect2D + refcdbb125e *C.VkPipelineDiscardRectangleStateCreateInfoEXT + allocscdbb125e interface{} } -// DisplayModeProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModePropertiesKHR -type DisplayModeProperties struct { - DisplayMode DisplayMode - Parameters DisplayModeParameters - ref5e3abaaa *C.VkDisplayModePropertiesKHR - allocs5e3abaaa interface{} -} +// PipelineRasterizationConservativeStateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationConservativeStateCreateFlagsEXT.html +type PipelineRasterizationConservativeStateCreateFlags uint32 -// DisplayModeCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeCreateInfoKHR -type DisplayModeCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags DisplayModeCreateFlags - Parameters DisplayModeParameters - ref392fca31 *C.VkDisplayModeCreateInfoKHR - allocs392fca31 interface{} +// PhysicalDeviceConservativeRasterizationProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.html +type PhysicalDeviceConservativeRasterizationProperties struct { + SType StructureType + PNext unsafe.Pointer + PrimitiveOverestimationSize float32 + MaxExtraPrimitiveOverestimationSize float32 + ExtraPrimitiveOverestimationSizeGranularity float32 + PrimitiveUnderestimation Bool32 + ConservativePointAndLineRasterization Bool32 + DegenerateTrianglesRasterized Bool32 + DegenerateLinesRasterized Bool32 + FullyCoveredFragmentShaderInputVariable Bool32 + ConservativeRasterizationPostDepthCoverage Bool32 + ref878f819c *C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT + allocs878f819c interface{} } -// DisplayPlaneCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneCapabilitiesKHR -type DisplayPlaneCapabilities struct { - SupportedAlpha DisplayPlaneAlphaFlags - MinSrcPosition Offset2D - MaxSrcPosition Offset2D - MinSrcExtent Extent2D - MaxSrcExtent Extent2D - MinDstPosition Offset2D - MaxDstPosition Offset2D - MinDstExtent Extent2D - MaxDstExtent Extent2D - ref6f31fcaf *C.VkDisplayPlaneCapabilitiesKHR - allocs6f31fcaf interface{} +// PipelineRasterizationConservativeStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationConservativeStateCreateInfoEXT.html +type PipelineRasterizationConservativeStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineRasterizationConservativeStateCreateFlags + ConservativeRasterizationMode ConservativeRasterizationMode + ExtraPrimitiveOverestimationSize float32 + refe3cd0046 *C.VkPipelineRasterizationConservativeStateCreateInfoEXT + allocse3cd0046 interface{} } -// DisplayPlaneProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlanePropertiesKHR -type DisplayPlaneProperties struct { - CurrentDisplay Display - CurrentStackIndex uint32 - refce3db3f6 *C.VkDisplayPlanePropertiesKHR - allocsce3db3f6 interface{} +// PipelineRasterizationDepthClipStateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationDepthClipStateCreateFlagsEXT.html +type PipelineRasterizationDepthClipStateCreateFlags uint32 + +// PhysicalDeviceDepthClipEnableFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDepthClipEnableFeaturesEXT.html +type PhysicalDeviceDepthClipEnableFeatures struct { + SType StructureType + PNext unsafe.Pointer + DepthClipEnable Bool32 + refe0daf69c *C.VkPhysicalDeviceDepthClipEnableFeaturesEXT + allocse0daf69c interface{} } -// DisplaySurfaceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplaySurfaceCreateInfoKHR -type DisplaySurfaceCreateInfo struct { +// PipelineRasterizationDepthClipStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationDepthClipStateCreateInfoEXT.html +type PipelineRasterizationDepthClipStateCreateInfo struct { SType StructureType PNext unsafe.Pointer - Flags DisplaySurfaceCreateFlags - DisplayMode DisplayMode - PlaneIndex uint32 - PlaneStackIndex uint32 - Transform SurfaceTransformFlagBits - GlobalAlpha float32 - AlphaMode DisplayPlaneAlphaFlagBits - ImageExtent Extent2D - ref58445c35 *C.VkDisplaySurfaceCreateInfoKHR - allocs58445c35 interface{} + Flags PipelineRasterizationDepthClipStateCreateFlags + DepthClipEnable Bool32 + ref38a864b5 *C.VkPipelineRasterizationDepthClipStateCreateInfoEXT + allocs38a864b5 interface{} } -// DisplayPresentInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPresentInfoKHR -type DisplayPresentInfo struct { - SType StructureType - PNext unsafe.Pointer - SrcRect Rect2D - DstRect Rect2D - Persistent Bool32 - ref8d2571e4 *C.VkDisplayPresentInfoKHR - allocs8d2571e4 interface{} +// XYColor as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkXYColorEXT.html +type XYColor struct { + X float32 + Y float32 + refb8efaa5c *C.VkXYColorEXT + allocsb8efaa5c interface{} } -// ImportMemoryFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkImportMemoryFdInfoKHR -type ImportMemoryFdInfo struct { - SType StructureType - PNext unsafe.Pointer - HandleType ExternalMemoryHandleTypeFlagBits - Fd int32 - ref73f83287 *C.VkImportMemoryFdInfoKHR - allocs73f83287 interface{} +// HdrMetadata as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkHdrMetadataEXT.html +type HdrMetadata struct { + SType StructureType + PNext unsafe.Pointer + DisplayPrimaryRed XYColor + DisplayPrimaryGreen XYColor + DisplayPrimaryBlue XYColor + WhitePoint XYColor + MaxLuminance float32 + MinLuminance float32 + MaxContentLightLevel float32 + MaxFrameAverageLightLevel float32 + ref5fd28976 *C.VkHdrMetadataEXT + allocs5fd28976 interface{} } -// MemoryFdProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkMemoryFdPropertiesKHR -type MemoryFdProperties struct { +// DebugUtilsMessageTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsMessageTypeFlagsEXT.html +type DebugUtilsMessageTypeFlags uint32 + +// DebugUtilsMessageSeverityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsMessageSeverityFlagsEXT.html +type DebugUtilsMessageSeverityFlags uint32 + +// DebugUtilsLabel as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsLabelEXT.html +type DebugUtilsLabel struct { SType StructureType PNext unsafe.Pointer - MemoryTypeBits uint32 - ref51e16d38 *C.VkMemoryFdPropertiesKHR - allocs51e16d38 interface{} + PLabelName string + Color [4]float32 + ref8faaf7b1 *C.VkDebugUtilsLabelEXT + allocs8faaf7b1 interface{} } -// MemoryGetFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkMemoryGetFdInfoKHR -type MemoryGetFdInfo struct { +// DebugUtilsObjectNameInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsObjectNameInfoEXT.html +type DebugUtilsObjectNameInfo struct { SType StructureType PNext unsafe.Pointer - Memory DeviceMemory - HandleType ExternalMemoryHandleTypeFlagBits - ref75a079b1 *C.VkMemoryGetFdInfoKHR - allocs75a079b1 interface{} + ObjectType ObjectType + ObjectHandle uint64 + PObjectName string + ref5e73c2db *C.VkDebugUtilsObjectNameInfoEXT + allocs5e73c2db interface{} } -// ImportSemaphoreFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkImportSemaphoreFdInfoKHR -type ImportSemaphoreFdInfo struct { +// DebugUtilsObjectTagInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsObjectTagInfoEXT.html +type DebugUtilsObjectTagInfo struct { SType StructureType PNext unsafe.Pointer - Semaphore Semaphore - Flags SemaphoreImportFlags - HandleType ExternalSemaphoreHandleTypeFlagBits - Fd int32 - refbc2f829a *C.VkImportSemaphoreFdInfoKHR - allocsbc2f829a interface{} + ObjectType ObjectType + ObjectHandle uint64 + TagName uint64 + TagSize uint64 + PTag unsafe.Pointer + ref9fd129cf *C.VkDebugUtilsObjectTagInfoEXT + allocs9fd129cf interface{} +} + +// SampleLocation as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSampleLocationEXT.html +type SampleLocation struct { + X float32 + Y float32 + refe7a2e761 *C.VkSampleLocationEXT + allocse7a2e761 interface{} +} + +// SampleLocationsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSampleLocationsInfoEXT.html +type SampleLocationsInfo struct { + SType StructureType + PNext unsafe.Pointer + SampleLocationsPerPixel SampleCountFlagBits + SampleLocationGridSize Extent2D + SampleLocationsCount uint32 + PSampleLocations []SampleLocation + refd8f3bd2d *C.VkSampleLocationsInfoEXT + allocsd8f3bd2d interface{} } -// SemaphoreGetFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSemaphoreGetFdInfoKHR -type SemaphoreGetFdInfo struct { - SType StructureType - PNext unsafe.Pointer - Semaphore Semaphore - HandleType ExternalSemaphoreHandleTypeFlagBits - refd9bd07cf *C.VkSemaphoreGetFdInfoKHR - allocsd9bd07cf interface{} +// AttachmentSampleLocations as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentSampleLocationsEXT.html +type AttachmentSampleLocations struct { + AttachmentIndex uint32 + SampleLocationsInfo SampleLocationsInfo + ref6a3dd41e *C.VkAttachmentSampleLocationsEXT + allocs6a3dd41e interface{} } -// PhysicalDevicePushDescriptorProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDevicePushDescriptorPropertiesKHR -type PhysicalDevicePushDescriptorProperties struct { - SType StructureType - PNext unsafe.Pointer - MaxPushDescriptors uint32 - ref8c58a1a5 *C.VkPhysicalDevicePushDescriptorPropertiesKHR - allocs8c58a1a5 interface{} +// SubpassSampleLocations as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassSampleLocationsEXT.html +type SubpassSampleLocations struct { + SubpassIndex uint32 + SampleLocationsInfo SampleLocationsInfo + ref1f612812 *C.VkSubpassSampleLocationsEXT + allocs1f612812 interface{} } -// RectLayer as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkRectLayerKHR -type RectLayer struct { - Offset Offset2D - Extent Extent2D - Layer uint32 - refaf248476 *C.VkRectLayerKHR - allocsaf248476 interface{} +// RenderPassSampleLocationsBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassSampleLocationsBeginInfoEXT.html +type RenderPassSampleLocationsBeginInfo struct { + SType StructureType + PNext unsafe.Pointer + AttachmentInitialSampleLocationsCount uint32 + PAttachmentInitialSampleLocations []AttachmentSampleLocations + PostSubpassSampleLocationsCount uint32 + PPostSubpassSampleLocations []SubpassSampleLocations + refb61b51d4 *C.VkRenderPassSampleLocationsBeginInfoEXT + allocsb61b51d4 interface{} } -// PresentRegion as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentRegionKHR -type PresentRegion struct { - RectangleCount uint32 - PRectangles []RectLayer - refbbc0d1b9 *C.VkPresentRegionKHR - allocsbbc0d1b9 interface{} +// PipelineSampleLocationsStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineSampleLocationsStateCreateInfoEXT.html +type PipelineSampleLocationsStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + SampleLocationsEnable Bool32 + SampleLocationsInfo SampleLocationsInfo + ref93a2968f *C.VkPipelineSampleLocationsStateCreateInfoEXT + allocs93a2968f interface{} } -// PresentRegions as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPresentRegionsKHR -type PresentRegions struct { - SType StructureType - PNext unsafe.Pointer - SwapchainCount uint32 - PRegions []PresentRegion - ref62958060 *C.VkPresentRegionsKHR - allocs62958060 interface{} +// PhysicalDeviceSampleLocationsProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSampleLocationsPropertiesEXT.html +type PhysicalDeviceSampleLocationsProperties struct { + SType StructureType + PNext unsafe.Pointer + SampleLocationSampleCounts SampleCountFlags + MaxSampleLocationGridSize Extent2D + SampleLocationCoordinateRange [2]float32 + SampleLocationSubPixelBits uint32 + VariableSampleLocations Bool32 + refaf801323 *C.VkPhysicalDeviceSampleLocationsPropertiesEXT + allocsaf801323 interface{} } -// AttachmentDescription2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAttachmentDescription2KHR -type AttachmentDescription2 struct { - SType StructureType - PNext unsafe.Pointer - Flags AttachmentDescriptionFlags - Format Format - Samples SampleCountFlagBits - LoadOp AttachmentLoadOp - StoreOp AttachmentStoreOp - StencilLoadOp AttachmentLoadOp - StencilStoreOp AttachmentStoreOp - InitialLayout ImageLayout - FinalLayout ImageLayout - refe0fc3d48 *C.VkAttachmentDescription2KHR - allocse0fc3d48 interface{} +// MultisampleProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMultisamplePropertiesEXT.html +type MultisampleProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxSampleLocationGridSize Extent2D + ref3e47f337 *C.VkMultisamplePropertiesEXT + allocs3e47f337 interface{} } -// AttachmentReference2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAttachmentReference2KHR -type AttachmentReference2 struct { - SType StructureType - PNext unsafe.Pointer - Attachment uint32 - Layout ImageLayout - AspectMask ImageAspectFlags - refa31684a1 *C.VkAttachmentReference2KHR - allocsa31684a1 interface{} +// PhysicalDeviceBlendOperationAdvancedFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.html +type PhysicalDeviceBlendOperationAdvancedFeatures struct { + SType StructureType + PNext unsafe.Pointer + AdvancedBlendCoherentOperations Bool32 + ref8514bc93 *C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT + allocs8514bc93 interface{} } -// SubpassDescription2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSubpassDescription2KHR -type SubpassDescription2 struct { - SType StructureType - PNext unsafe.Pointer - Flags SubpassDescriptionFlags - PipelineBindPoint PipelineBindPoint - ViewMask uint32 - InputAttachmentCount uint32 - PInputAttachments []AttachmentReference2 - ColorAttachmentCount uint32 - PColorAttachments []AttachmentReference2 - PResolveAttachments []AttachmentReference2 - PDepthStencilAttachment []AttachmentReference2 - PreserveAttachmentCount uint32 - PPreserveAttachments []uint32 - ref89a293f3 *C.VkSubpassDescription2KHR - allocs89a293f3 interface{} +// PhysicalDeviceBlendOperationAdvancedProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.html +type PhysicalDeviceBlendOperationAdvancedProperties struct { + SType StructureType + PNext unsafe.Pointer + AdvancedBlendMaxColorAttachments uint32 + AdvancedBlendIndependentBlend Bool32 + AdvancedBlendNonPremultipliedSrcColor Bool32 + AdvancedBlendNonPremultipliedDstColor Bool32 + AdvancedBlendCorrelatedOverlap Bool32 + AdvancedBlendAllOperations Bool32 + ref94cb3fa6 *C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT + allocs94cb3fa6 interface{} } -// SubpassDependency2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSubpassDependency2KHR -type SubpassDependency2 struct { - SType StructureType - PNext unsafe.Pointer - SrcSubpass uint32 - DstSubpass uint32 - SrcStageMask PipelineStageFlags - DstStageMask PipelineStageFlags - SrcAccessMask AccessFlags - DstAccessMask AccessFlags - DependencyFlags DependencyFlags - ViewOffset int32 - ref985e0998 *C.VkSubpassDependency2KHR - allocs985e0998 interface{} +// PipelineColorBlendAdvancedStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorBlendAdvancedStateCreateInfoEXT.html +type PipelineColorBlendAdvancedStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + SrcPremultiplied Bool32 + DstPremultiplied Bool32 + BlendOverlap BlendOverlap + refcd374989 *C.VkPipelineColorBlendAdvancedStateCreateInfoEXT + allocscd374989 interface{} } -// RenderPassCreateInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkRenderPassCreateInfo2KHR -type RenderPassCreateInfo2 struct { +// PipelineCoverageToColorStateCreateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageToColorStateCreateFlagsNV.html +type PipelineCoverageToColorStateCreateFlagsNV uint32 + +// PipelineCoverageToColorStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageToColorStateCreateInfoNV.html +type PipelineCoverageToColorStateCreateInfoNV struct { SType StructureType PNext unsafe.Pointer - Flags RenderPassCreateFlags - AttachmentCount uint32 - PAttachments []AttachmentDescription2 - SubpassCount uint32 - PSubpasses []SubpassDescription2 - DependencyCount uint32 - PDependencies []SubpassDependency2 - CorrelatedViewMaskCount uint32 - PCorrelatedViewMasks []uint32 - ref1d4774de *C.VkRenderPassCreateInfo2KHR - allocs1d4774de interface{} + Flags PipelineCoverageToColorStateCreateFlagsNV + CoverageToColorEnable Bool32 + CoverageToColorLocation uint32 + refcc6b7b68 *C.VkPipelineCoverageToColorStateCreateInfoNV + allocscc6b7b68 interface{} } -// SubpassBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSubpassBeginInfoKHR -type SubpassBeginInfo struct { - SType StructureType - PNext unsafe.Pointer - Contents SubpassContents - ref7b9f19b8 *C.VkSubpassBeginInfoKHR - allocs7b9f19b8 interface{} +// PipelineCoverageModulationStateCreateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageModulationStateCreateFlagsNV.html +type PipelineCoverageModulationStateCreateFlagsNV uint32 + +// PipelineCoverageModulationStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageModulationStateCreateInfoNV.html +type PipelineCoverageModulationStateCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineCoverageModulationStateCreateFlagsNV + CoverageModulationMode CoverageModulationModeNV + CoverageModulationTableEnable Bool32 + CoverageModulationTableCount uint32 + PCoverageModulationTable []float32 + refa081b0ea *C.VkPipelineCoverageModulationStateCreateInfoNV + allocsa081b0ea interface{} } -// SubpassEndInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSubpassEndInfoKHR -type SubpassEndInfo struct { - SType StructureType - PNext unsafe.Pointer - refb755d027 *C.VkSubpassEndInfoKHR - allocsb755d027 interface{} +// PhysicalDeviceShaderSMBuiltinsPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderSMBuiltinsPropertiesNV.html +type PhysicalDeviceShaderSMBuiltinsPropertiesNV struct { + SType StructureType + PNext unsafe.Pointer + ShaderSMCount uint32 + ShaderWarpsPerSM uint32 + refc083cf09 *C.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV + allocsc083cf09 interface{} } -// SharedPresentSurfaceCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSharedPresentSurfaceCapabilitiesKHR -type SharedPresentSurfaceCapabilities struct { - SType StructureType - PNext unsafe.Pointer - SharedPresentSupportedUsageFlags ImageUsageFlags - ref3f98a814 *C.VkSharedPresentSurfaceCapabilitiesKHR - allocs3f98a814 interface{} +// PhysicalDeviceShaderSMBuiltinsFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.html +type PhysicalDeviceShaderSMBuiltinsFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + ShaderSMBuiltins Bool32 + ref1965c1d *C.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV + allocs1965c1d interface{} } -// ImportFenceFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkImportFenceFdInfoKHR -type ImportFenceFdInfo struct { - SType StructureType - PNext unsafe.Pointer - Fence Fence - Flags FenceImportFlags - HandleType ExternalFenceHandleTypeFlagBits - Fd int32 - ref86ebd28c *C.VkImportFenceFdInfoKHR - allocs86ebd28c interface{} +// DrmFormatModifierProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrmFormatModifierPropertiesEXT.html +type DrmFormatModifierProperties struct { + DrmFormatModifier uint64 + DrmFormatModifierPlaneCount uint32 + DrmFormatModifierTilingFeatures FormatFeatureFlags + ref7dcb7f85 *C.VkDrmFormatModifierPropertiesEXT + allocs7dcb7f85 interface{} } -// FenceGetFdInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkFenceGetFdInfoKHR -type FenceGetFdInfo struct { - SType StructureType - PNext unsafe.Pointer - Fence Fence - HandleType ExternalFenceHandleTypeFlagBits - refc2668bc3 *C.VkFenceGetFdInfoKHR - allocsc2668bc3 interface{} +// DrmFormatModifierPropertiesList as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrmFormatModifierPropertiesListEXT.html +type DrmFormatModifierPropertiesList struct { + SType StructureType + PNext unsafe.Pointer + DrmFormatModifierCount uint32 + PDrmFormatModifierProperties []DrmFormatModifierProperties + ref7e3ede2 *C.VkDrmFormatModifierPropertiesListEXT + allocs7e3ede2 interface{} } -// PhysicalDeviceSurfaceInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceSurfaceInfo2KHR -type PhysicalDeviceSurfaceInfo2 struct { - SType StructureType - PNext unsafe.Pointer - Surface Surface - refd22370ae *C.VkPhysicalDeviceSurfaceInfo2KHR - allocsd22370ae interface{} +// PhysicalDeviceImageDrmFormatModifierInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImageDrmFormatModifierInfoEXT.html +type PhysicalDeviceImageDrmFormatModifierInfo struct { + SType StructureType + PNext unsafe.Pointer + DrmFormatModifier uint64 + SharingMode SharingMode + QueueFamilyIndexCount uint32 + PQueueFamilyIndices []uint32 + refd7abef44 *C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT + allocsd7abef44 interface{} } -// SurfaceCapabilities2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceCapabilities2KHR -type SurfaceCapabilities2 struct { - SType StructureType - PNext unsafe.Pointer - SurfaceCapabilities SurfaceCapabilities - refea469745 *C.VkSurfaceCapabilities2KHR - allocsea469745 interface{} +// ImageDrmFormatModifierListCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageDrmFormatModifierListCreateInfoEXT.html +type ImageDrmFormatModifierListCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + DrmFormatModifierCount uint32 + PDrmFormatModifiers []uint64 + ref544538ab *C.VkImageDrmFormatModifierListCreateInfoEXT + allocs544538ab interface{} } -// SurfaceFormat2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceFormat2KHR -type SurfaceFormat2 struct { - SType StructureType - PNext unsafe.Pointer - SurfaceFormat SurfaceFormat - ref8867f0ed *C.VkSurfaceFormat2KHR - allocs8867f0ed interface{} +// ImageDrmFormatModifierExplicitCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageDrmFormatModifierExplicitCreateInfoEXT.html +type ImageDrmFormatModifierExplicitCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + DrmFormatModifier uint64 + DrmFormatModifierPlaneCount uint32 + PPlaneLayouts []SubresourceLayout + ref8fb45ca9 *C.VkImageDrmFormatModifierExplicitCreateInfoEXT + allocs8fb45ca9 interface{} } -// DisplayProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayProperties2KHR -type DisplayProperties2 struct { +// ImageDrmFormatModifierProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageDrmFormatModifierPropertiesEXT.html +type ImageDrmFormatModifierProperties struct { SType StructureType PNext unsafe.Pointer - DisplayProperties DisplayProperties - ref80194833 *C.VkDisplayProperties2KHR - allocs80194833 interface{} + DrmFormatModifier uint64 + ref86a0f149 *C.VkImageDrmFormatModifierPropertiesEXT + allocs86a0f149 interface{} } -// DisplayPlaneProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneProperties2KHR -type DisplayPlaneProperties2 struct { - SType StructureType - PNext unsafe.Pointer - DisplayPlaneProperties DisplayPlaneProperties - refa72b1e5b *C.VkDisplayPlaneProperties2KHR - allocsa72b1e5b interface{} +// DrmFormatModifierProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrmFormatModifierProperties2EXT.html +type DrmFormatModifierProperties2 struct { + DrmFormatModifier uint64 + DrmFormatModifierPlaneCount uint32 + DrmFormatModifierTilingFeatures FormatFeatureFlags2 + ref6d0821ba *C.VkDrmFormatModifierProperties2EXT + allocs6d0821ba interface{} } -// DisplayModeProperties2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayModeProperties2KHR -type DisplayModeProperties2 struct { - SType StructureType - PNext unsafe.Pointer - DisplayModeProperties DisplayModeProperties - refc566048d *C.VkDisplayModeProperties2KHR - allocsc566048d interface{} +// DrmFormatModifierPropertiesList2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrmFormatModifierPropertiesList2EXT.html +type DrmFormatModifierPropertiesList2 struct { + SType StructureType + PNext unsafe.Pointer + DrmFormatModifierCount uint32 + PDrmFormatModifierProperties []DrmFormatModifierProperties2 + refbea4fdd3 *C.VkDrmFormatModifierPropertiesList2EXT + allocsbea4fdd3 interface{} } -// DisplayPlaneInfo2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneInfo2KHR -type DisplayPlaneInfo2 struct { - SType StructureType - PNext unsafe.Pointer - Mode DisplayMode - PlaneIndex uint32 - reff355ccbf *C.VkDisplayPlaneInfo2KHR - allocsf355ccbf interface{} -} +// ValidationCache as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCacheEXT.html +type ValidationCache C.VkValidationCacheEXT -// DisplayPlaneCapabilities2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkDisplayPlaneCapabilities2KHR -type DisplayPlaneCapabilities2 struct { - SType StructureType - PNext unsafe.Pointer - Capabilities DisplayPlaneCapabilities - refb53dfb44 *C.VkDisplayPlaneCapabilities2KHR - allocsb53dfb44 interface{} -} +// ValidationCacheCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCacheCreateFlagsEXT.html +type ValidationCacheCreateFlags uint32 -// ImageFormatListCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkImageFormatListCreateInfoKHR -type ImageFormatListCreateInfo struct { +// ValidationCacheCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCacheCreateInfoEXT.html +type ValidationCacheCreateInfo struct { SType StructureType PNext unsafe.Pointer - ViewFormatCount uint32 - PViewFormats []Format - ref815daf8c *C.VkImageFormatListCreateInfoKHR - allocs815daf8c interface{} -} - -// PhysicalDevice8BitStorageFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDevice8BitStorageFeaturesKHR -type PhysicalDevice8BitStorageFeatures struct { - SType StructureType - PNext unsafe.Pointer - StorageBuffer8BitAccess Bool32 - UniformAndStorageBuffer8BitAccess Bool32 - StoragePushConstant8 Bool32 - ref906ef48e *C.VkPhysicalDevice8BitStorageFeaturesKHR - allocs906ef48e interface{} + Flags ValidationCacheCreateFlags + InitialDataSize uint64 + PInitialData unsafe.Pointer + ref3d8ac8aa *C.VkValidationCacheCreateInfoEXT + allocs3d8ac8aa interface{} } -// PhysicalDeviceShaderAtomicInt64Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceShaderAtomicInt64FeaturesKHR -type PhysicalDeviceShaderAtomicInt64Features struct { - SType StructureType - PNext unsafe.Pointer - ShaderBufferInt64Atomics Bool32 - ShaderSharedInt64Atomics Bool32 - ref51c409c6 *C.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR - allocs51c409c6 interface{} +// ShaderModuleValidationCacheCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShaderModuleValidationCacheCreateInfoEXT.html +type ShaderModuleValidationCacheCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + ValidationCache ValidationCache + ref37065f24 *C.VkShaderModuleValidationCacheCreateInfoEXT + allocs37065f24 interface{} } -// ConformanceVersion as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkConformanceVersionKHR -type ConformanceVersion struct { - Major byte - Minor byte - Subminor byte - Patch byte - refe4627a5f *C.VkConformanceVersionKHR - allocse4627a5f interface{} +// ShadingRatePaletteNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShadingRatePaletteNV.html +type ShadingRatePaletteNV struct { + ShadingRatePaletteEntryCount uint32 + PShadingRatePaletteEntries []ShadingRatePaletteEntryNV + refa5c4ae3a *C.VkShadingRatePaletteNV + allocsa5c4ae3a interface{} } -// PhysicalDeviceDriverProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceDriverPropertiesKHR -type PhysicalDeviceDriverProperties struct { - SType StructureType - PNext unsafe.Pointer - DriverID DriverId - DriverName [256]byte - DriverInfo [256]byte - ConformanceVersion ConformanceVersion - ref9220f954 *C.VkPhysicalDeviceDriverPropertiesKHR - allocs9220f954 interface{} +// PipelineViewportShadingRateImageStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportShadingRateImageStateCreateInfoNV.html +type PipelineViewportShadingRateImageStateCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + ShadingRateImageEnable Bool32 + ViewportCount uint32 + PShadingRatePalettes []ShadingRatePaletteNV + ref6f2ec732 *C.VkPipelineViewportShadingRateImageStateCreateInfoNV + allocs6f2ec732 interface{} } -// PhysicalDeviceVulkanMemoryModelFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDeviceVulkanMemoryModelFeaturesKHR -type PhysicalDeviceVulkanMemoryModelFeatures struct { +// PhysicalDeviceShadingRateImageFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShadingRateImageFeaturesNV.html +type PhysicalDeviceShadingRateImageFeaturesNV struct { SType StructureType PNext unsafe.Pointer - VulkanMemoryModel Bool32 - VulkanMemoryModelDeviceScope Bool32 - ref2b17642b *C.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR - allocs2b17642b interface{} -} - -// DebugReportCallback as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugReportCallbackEXT.html -type DebugReportCallback C.VkDebugReportCallbackEXT - -// DebugReportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugReportFlagsEXT.html -type DebugReportFlags uint32 - -// DebugReportCallbackFunc type as declared in vulkan/vulkan_core.h:6207 -type DebugReportCallbackFunc func(flags DebugReportFlags, objectType DebugReportObjectType, object uint64, location uint, messageCode int32, pLayerPrefix string, pMessage string, pUserData unsafe.Pointer) Bool32 - -// DebugReportCallbackCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugReportCallbackCreateInfoEXT.html -type DebugReportCallbackCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags DebugReportFlags - PfnCallback DebugReportCallbackFunc - PUserData unsafe.Pointer - refc8238563 *C.VkDebugReportCallbackCreateInfoEXT - allocsc8238563 interface{} + ShadingRateImage Bool32 + ShadingRateCoarseSampleOrder Bool32 + ref199a921b *C.VkPhysicalDeviceShadingRateImageFeaturesNV + allocs199a921b interface{} } -// PipelineRasterizationStateRasterizationOrderAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineRasterizationStateRasterizationOrderAMD -type PipelineRasterizationStateRasterizationOrderAMD struct { - SType StructureType - PNext unsafe.Pointer - RasterizationOrder RasterizationOrderAMD - ref5098cf82 *C.VkPipelineRasterizationStateRasterizationOrderAMD - allocs5098cf82 interface{} +// PhysicalDeviceShadingRateImagePropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShadingRateImagePropertiesNV.html +type PhysicalDeviceShadingRateImagePropertiesNV struct { + SType StructureType + PNext unsafe.Pointer + ShadingRateTexelSize Extent2D + ShadingRatePaletteSize uint32 + ShadingRateMaxCoarseSamples uint32 + refea059f34 *C.VkPhysicalDeviceShadingRateImagePropertiesNV + allocsea059f34 interface{} } -// DebugMarkerObjectNameInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugMarkerObjectNameInfoEXT.html -type DebugMarkerObjectNameInfo struct { - SType StructureType - PNext unsafe.Pointer - ObjectType DebugReportObjectType - Object uint64 - PObjectName string - refe4983fab *C.VkDebugMarkerObjectNameInfoEXT - allocse4983fab interface{} +// CoarseSampleLocationNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCoarseSampleLocationNV.html +type CoarseSampleLocationNV struct { + PixelX uint32 + PixelY uint32 + Sample uint32 + ref2f447beb *C.VkCoarseSampleLocationNV + allocs2f447beb interface{} } -// DebugMarkerObjectTagInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugMarkerObjectTagInfoEXT.html -type DebugMarkerObjectTagInfo struct { - SType StructureType - PNext unsafe.Pointer - ObjectType DebugReportObjectType - Object uint64 - TagName uint64 - TagSize uint - PTag unsafe.Pointer - refa41a5c3b *C.VkDebugMarkerObjectTagInfoEXT - allocsa41a5c3b interface{} +// CoarseSampleOrderCustomNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCoarseSampleOrderCustomNV.html +type CoarseSampleOrderCustomNV struct { + ShadingRate ShadingRatePaletteEntryNV + SampleCount uint32 + SampleLocationCount uint32 + PSampleLocations []CoarseSampleLocationNV + ref4524fa09 *C.VkCoarseSampleOrderCustomNV + allocs4524fa09 interface{} } -// DebugMarkerMarkerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugMarkerMarkerInfoEXT.html -type DebugMarkerMarkerInfo struct { - SType StructureType - PNext unsafe.Pointer - PMarkerName string - Color [4]float32 - ref234b91fd *C.VkDebugMarkerMarkerInfoEXT - allocs234b91fd interface{} +// PipelineViewportCoarseSampleOrderStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportCoarseSampleOrderStateCreateInfoNV.html +type PipelineViewportCoarseSampleOrderStateCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + SampleOrderType CoarseSampleOrderTypeNV + CustomSampleOrderCount uint32 + PCustomSampleOrders []CoarseSampleOrderCustomNV + ref54de8ca6 *C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV + allocs54de8ca6 interface{} } -// DedicatedAllocationImageCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDedicatedAllocationImageCreateInfoNV.html -type DedicatedAllocationImageCreateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - DedicatedAllocation Bool32 - ref685d878b *C.VkDedicatedAllocationImageCreateInfoNV - allocs685d878b interface{} +// PhysicalDeviceRepresentativeFragmentTestFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.html +type PhysicalDeviceRepresentativeFragmentTestFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + RepresentativeFragmentTest Bool32 + reff1f69e03 *C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV + allocsf1f69e03 interface{} } -// DedicatedAllocationBufferCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDedicatedAllocationBufferCreateInfoNV.html -type DedicatedAllocationBufferCreateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - DedicatedAllocation Bool32 - refbc745a8 *C.VkDedicatedAllocationBufferCreateInfoNV - allocsbc745a8 interface{} +// PipelineRepresentativeFragmentTestStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRepresentativeFragmentTestStateCreateInfoNV.html +type PipelineRepresentativeFragmentTestStateCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + RepresentativeFragmentTestEnable Bool32 + ref9c224e21 *C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV + allocs9c224e21 interface{} } -// DedicatedAllocationMemoryAllocateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDedicatedAllocationMemoryAllocateInfoNV.html -type DedicatedAllocationMemoryAllocateInfoNV struct { +// PhysicalDeviceImageViewImageFormatInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImageViewImageFormatInfoEXT.html +type PhysicalDeviceImageViewImageFormatInfo struct { SType StructureType PNext unsafe.Pointer - Image Image - Buffer Buffer - ref9a72b107 *C.VkDedicatedAllocationMemoryAllocateInfoNV - allocs9a72b107 interface{} + ImageViewType ImageViewType + ref99e4ab46 *C.VkPhysicalDeviceImageViewImageFormatInfoEXT + allocs99e4ab46 interface{} } -// PipelineRasterizationStateStreamCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationStateStreamCreateFlagsEXT.html -type PipelineRasterizationStateStreamCreateFlags uint32 - -// PhysicalDeviceTransformFeedbackFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceTransformFeedbackFeaturesEXT.html -type PhysicalDeviceTransformFeedbackFeatures struct { +// FilterCubicImageViewImageFormatProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFilterCubicImageViewImageFormatPropertiesEXT.html +type FilterCubicImageViewImageFormatProperties struct { SType StructureType PNext unsafe.Pointer - TransformFeedback Bool32 - GeometryStreams Bool32 - ref64b2a913 *C.VkPhysicalDeviceTransformFeedbackFeaturesEXT - allocs64b2a913 interface{} + FilterCubic Bool32 + FilterCubicMinmax Bool32 + refcf60927c *C.VkFilterCubicImageViewImageFormatPropertiesEXT + allocscf60927c interface{} } -// PhysicalDeviceTransformFeedbackProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceTransformFeedbackPropertiesEXT.html -type PhysicalDeviceTransformFeedbackProperties struct { - SType StructureType - PNext unsafe.Pointer - MaxTransformFeedbackStreams uint32 - MaxTransformFeedbackBuffers uint32 - MaxTransformFeedbackBufferSize DeviceSize - MaxTransformFeedbackStreamDataSize uint32 - MaxTransformFeedbackBufferDataSize uint32 - MaxTransformFeedbackBufferDataStride uint32 - TransformFeedbackQueries Bool32 - TransformFeedbackStreamsLinesTriangles Bool32 - TransformFeedbackRasterizationStreamSelect Bool32 - TransformFeedbackDraw Bool32 - refc295a2a0 *C.VkPhysicalDeviceTransformFeedbackPropertiesEXT - allocsc295a2a0 interface{} +// ImportMemoryHostPointerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImportMemoryHostPointerInfoEXT.html +type ImportMemoryHostPointerInfo struct { + SType StructureType + PNext unsafe.Pointer + HandleType ExternalMemoryHandleTypeFlagBits + PHostPointer unsafe.Pointer + reffe09253e *C.VkImportMemoryHostPointerInfoEXT + allocsfe09253e interface{} } -// PipelineRasterizationStateStreamCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationStateStreamCreateInfoEXT.html -type PipelineRasterizationStateStreamCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineRasterizationStateStreamCreateFlags - RasterizationStream uint32 - refed6e1fb9 *C.VkPipelineRasterizationStateStreamCreateInfoEXT - allocsed6e1fb9 interface{} +// MemoryHostPointerProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryHostPointerPropertiesEXT.html +type MemoryHostPointerProperties struct { + SType StructureType + PNext unsafe.Pointer + MemoryTypeBits uint32 + refebf46a84 *C.VkMemoryHostPointerPropertiesEXT + allocsebf46a84 interface{} } -// TextureLODGatherFormatPropertiesAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkTextureLODGatherFormatPropertiesAMD -type TextureLODGatherFormatPropertiesAMD struct { +// PhysicalDeviceExternalMemoryHostProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.html +type PhysicalDeviceExternalMemoryHostProperties struct { SType StructureType PNext unsafe.Pointer - SupportsTextureGatherLODBiasAMD Bool32 - ref519ba3a9 *C.VkTextureLODGatherFormatPropertiesAMD - allocs519ba3a9 interface{} + MinImportedHostPointerAlignment DeviceSize + ref7f697d15 *C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT + allocs7f697d15 interface{} } -// ShaderResourceUsageAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderResourceUsageAMD -type ShaderResourceUsageAMD struct { - NumUsedVgprs uint32 - NumUsedSgprs uint32 - LdsSizePerLocalWorkGroup uint32 - LdsUsageSizeInBytes uint - ScratchMemUsageInBytes uint - ref8a688131 *C.VkShaderResourceUsageAMD - allocs8a688131 interface{} -} +// PipelineCompilerControlFlagsAMD type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineCompilerControlFlagsAMD +type PipelineCompilerControlFlagsAMD uint32 -// ShaderStatisticsInfoAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderStatisticsInfoAMD -type ShaderStatisticsInfoAMD struct { - ShaderStageMask ShaderStageFlags - ResourceUsage ShaderResourceUsageAMD - NumPhysicalVgprs uint32 - NumPhysicalSgprs uint32 - NumAvailableVgprs uint32 - NumAvailableSgprs uint32 - ComputeWorkGroupSize [3]uint32 - ref896a52bf *C.VkShaderStatisticsInfoAMD - allocs896a52bf interface{} +// PipelineCompilerControlCreateInfoAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPipelineCompilerControlCreateInfoAMD +type PipelineCompilerControlCreateInfoAMD struct { + SType StructureType + PNext unsafe.Pointer + CompilerControlFlags PipelineCompilerControlFlagsAMD + ref46a09e46 *C.VkPipelineCompilerControlCreateInfoAMD + allocs46a09e46 interface{} } -// PhysicalDeviceCornerSampledImageFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceCornerSampledImageFeaturesNV.html -type PhysicalDeviceCornerSampledImageFeaturesNV struct { - SType StructureType - PNext unsafe.Pointer - CornerSampledImage Bool32 - refdf4a62d1 *C.VkPhysicalDeviceCornerSampledImageFeaturesNV - allocsdf4a62d1 interface{} +// CalibratedTimestampInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCalibratedTimestampInfoEXT.html +type CalibratedTimestampInfo struct { + SType StructureType + PNext unsafe.Pointer + TimeDomain TimeDomain + ref5f061d2a *C.VkCalibratedTimestampInfoEXT + allocs5f061d2a interface{} } -// ExternalMemoryHandleTypeFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryHandleTypeFlagsNV.html -type ExternalMemoryHandleTypeFlagsNV uint32 - -// ExternalMemoryFeatureFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryFeatureFlagsNV.html -type ExternalMemoryFeatureFlagsNV uint32 - -// ExternalImageFormatPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalImageFormatPropertiesNV.html -type ExternalImageFormatPropertiesNV struct { - ImageFormatProperties ImageFormatProperties - ExternalMemoryFeatures ExternalMemoryFeatureFlagsNV - ExportFromImportedHandleTypes ExternalMemoryHandleTypeFlagsNV - CompatibleHandleTypes ExternalMemoryHandleTypeFlagsNV - refa8900ce5 *C.VkExternalImageFormatPropertiesNV - allocsa8900ce5 interface{} +// PhysicalDeviceShaderCorePropertiesAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPhysicalDeviceShaderCorePropertiesAMD +type PhysicalDeviceShaderCorePropertiesAMD struct { + SType StructureType + PNext unsafe.Pointer + 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 + refde4b3b09 *C.VkPhysicalDeviceShaderCorePropertiesAMD + allocsde4b3b09 interface{} } -// ExternalMemoryImageCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExternalMemoryImageCreateInfoNV.html -type ExternalMemoryImageCreateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - HandleTypes ExternalMemoryHandleTypeFlagsNV - ref9a7fb6c8 *C.VkExternalMemoryImageCreateInfoNV - allocs9a7fb6c8 interface{} +// DeviceMemoryOverallocationCreateInfoAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDeviceMemoryOverallocationCreateInfoAMD +type DeviceMemoryOverallocationCreateInfoAMD struct { + SType StructureType + PNext unsafe.Pointer + OverallocationBehavior MemoryOverallocationBehaviorAMD + ref5ccee475 *C.VkDeviceMemoryOverallocationCreateInfoAMD + allocs5ccee475 interface{} } -// ExportMemoryAllocateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkExportMemoryAllocateInfoNV.html -type ExportMemoryAllocateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - HandleTypes ExternalMemoryHandleTypeFlagsNV - ref5066f33 *C.VkExportMemoryAllocateInfoNV - allocs5066f33 interface{} +// PhysicalDeviceVertexAttributeDivisorProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.html +type PhysicalDeviceVertexAttributeDivisorProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxVertexAttribDivisor uint32 + refbd6b5075 *C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT + allocsbd6b5075 interface{} } -// ValidationFlags as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationFlagsEXT.html -type ValidationFlags struct { - SType StructureType - PNext unsafe.Pointer - DisabledValidationCheckCount uint32 - PDisabledValidationChecks []ValidationCheck - refffe080ad *C.VkValidationFlagsEXT - allocsffe080ad interface{} +// VertexInputBindingDivisorDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputBindingDivisorDescriptionEXT.html +type VertexInputBindingDivisorDescription struct { + Binding uint32 + Divisor uint32 + refd64d4396 *C.VkVertexInputBindingDivisorDescriptionEXT + allocsd64d4396 interface{} } -// ImageViewASTCDecodeMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewASTCDecodeModeEXT.html -type ImageViewASTCDecodeMode struct { - SType StructureType - PNext unsafe.Pointer - DecodeMode Format - ref3a973fc0 *C.VkImageViewASTCDecodeModeEXT - allocs3a973fc0 interface{} +// PipelineVertexInputDivisorStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineVertexInputDivisorStateCreateInfoEXT.html +type PipelineVertexInputDivisorStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + VertexBindingDivisorCount uint32 + PVertexBindingDivisors []VertexInputBindingDivisorDescription + ref86096bfd *C.VkPipelineVertexInputDivisorStateCreateInfoEXT + allocs86096bfd interface{} } -// PhysicalDeviceASTCDecodeFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceASTCDecodeFeaturesEXT.html -type PhysicalDeviceASTCDecodeFeatures struct { - SType StructureType - PNext unsafe.Pointer - DecodeModeSharedExponent Bool32 - refd8af7d5a *C.VkPhysicalDeviceASTCDecodeFeaturesEXT - allocsd8af7d5a interface{} +// PhysicalDeviceVertexAttributeDivisorFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.html +type PhysicalDeviceVertexAttributeDivisorFeatures struct { + SType StructureType + PNext unsafe.Pointer + VertexAttributeInstanceRateDivisor Bool32 + VertexAttributeInstanceRateZeroDivisor Bool32 + refffe7619a *C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + allocsffe7619a interface{} } -// ConditionalRenderingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingFlagsEXT.html -type ConditionalRenderingFlags uint32 +// PhysicalDeviceComputeShaderDerivativesFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.html +type PhysicalDeviceComputeShaderDerivativesFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + ComputeDerivativeGroupQuads Bool32 + ComputeDerivativeGroupLinear Bool32 + reff31d599c *C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV + allocsf31d599c interface{} +} -// ConditionalRenderingBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkConditionalRenderingBeginInfoEXT.html -type ConditionalRenderingBeginInfo struct { - SType StructureType - PNext unsafe.Pointer - Buffer Buffer - Offset DeviceSize - Flags ConditionalRenderingFlags - ref82da87c9 *C.VkConditionalRenderingBeginInfoEXT - allocs82da87c9 interface{} +// PhysicalDeviceMeshShaderFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMeshShaderFeaturesNV.html +type PhysicalDeviceMeshShaderFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + TaskShader Bool32 + MeshShader Bool32 + ref802b98a *C.VkPhysicalDeviceMeshShaderFeaturesNV + allocs802b98a interface{} } -// PhysicalDeviceConditionalRenderingFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceConditionalRenderingFeaturesEXT.html -type PhysicalDeviceConditionalRenderingFeatures struct { - SType StructureType - PNext unsafe.Pointer - ConditionalRendering Bool32 - InheritedConditionalRendering Bool32 - ref89d2a224 *C.VkPhysicalDeviceConditionalRenderingFeaturesEXT - allocs89d2a224 interface{} +// PhysicalDeviceMeshShaderPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMeshShaderPropertiesNV.html +type PhysicalDeviceMeshShaderPropertiesNV struct { + SType StructureType + PNext unsafe.Pointer + MaxDrawMeshTasksCount uint32 + MaxTaskWorkGroupInvocations uint32 + MaxTaskWorkGroupSize [3]uint32 + MaxTaskTotalMemorySize uint32 + MaxTaskOutputCount uint32 + MaxMeshWorkGroupInvocations uint32 + MaxMeshWorkGroupSize [3]uint32 + MaxMeshTotalMemorySize uint32 + MaxMeshOutputVertices uint32 + MaxMeshOutputPrimitives uint32 + MaxMeshMultiviewViewCount uint32 + MeshOutputPerVertexGranularity uint32 + MeshOutputPerPrimitiveGranularity uint32 + ref2ee3ccb7 *C.VkPhysicalDeviceMeshShaderPropertiesNV + allocs2ee3ccb7 interface{} } -// CommandBufferInheritanceConditionalRenderingInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferInheritanceConditionalRenderingInfoEXT.html -type CommandBufferInheritanceConditionalRenderingInfo struct { - SType StructureType - PNext unsafe.Pointer - ConditionalRenderingEnable Bool32 - ref7155f49c *C.VkCommandBufferInheritanceConditionalRenderingInfoEXT - allocs7155f49c interface{} +// DrawMeshTasksIndirectCommandNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrawMeshTasksIndirectCommandNV.html +type DrawMeshTasksIndirectCommandNV struct { + TaskCount uint32 + FirstTask uint32 + refda6c46ea *C.VkDrawMeshTasksIndirectCommandNV + allocsda6c46ea interface{} } -// ObjectTableNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectTableNVX -type ObjectTableNVX C.VkObjectTableNVX - -// IndirectCommandsLayoutNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsLayoutNVX -type IndirectCommandsLayoutNVX C.VkIndirectCommandsLayoutNVX - -// IndirectCommandsLayoutUsageFlagsNVX type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsLayoutUsageFlagsNVX -type IndirectCommandsLayoutUsageFlagsNVX uint32 +// PhysicalDeviceFragmentShaderBarycentricFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV.html +type PhysicalDeviceFragmentShaderBarycentricFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + FragmentShaderBarycentric Bool32 + reff7f35e73 *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR + allocsf7f35e73 interface{} +} -// ObjectEntryUsageFlagsNVX type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectEntryUsageFlagsNVX -type ObjectEntryUsageFlagsNVX uint32 +// PhysicalDeviceShaderImageFootprintFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderImageFootprintFeaturesNV.html +type PhysicalDeviceShaderImageFootprintFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + ImageFootprint Bool32 + ref9d61e1b2 *C.VkPhysicalDeviceShaderImageFootprintFeaturesNV + allocs9d61e1b2 interface{} +} -// DeviceGeneratedCommandsFeaturesNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDeviceGeneratedCommandsFeaturesNVX -type DeviceGeneratedCommandsFeaturesNVX struct { - SType StructureType - PNext unsafe.Pointer - ComputeBindingPointSupport Bool32 - ref489899be *C.VkDeviceGeneratedCommandsFeaturesNVX - allocs489899be interface{} +// PipelineViewportExclusiveScissorStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportExclusiveScissorStateCreateInfoNV.html +type PipelineViewportExclusiveScissorStateCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + ExclusiveScissorCount uint32 + PExclusiveScissors []Rect2D + refa8715ba6 *C.VkPipelineViewportExclusiveScissorStateCreateInfoNV + allocsa8715ba6 interface{} } -// DeviceGeneratedCommandsLimitsNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDeviceGeneratedCommandsLimitsNVX -type DeviceGeneratedCommandsLimitsNVX struct { - SType StructureType - PNext unsafe.Pointer - MaxIndirectCommandsLayoutTokenCount uint32 - MaxObjectEntryCounts uint32 - MinSequenceCountBufferOffsetAlignment uint32 - MinSequenceIndexBufferOffsetAlignment uint32 - MinCommandsTokenBufferOffsetAlignment uint32 - refb2b76f40 *C.VkDeviceGeneratedCommandsLimitsNVX - allocsb2b76f40 interface{} -} - -// IndirectCommandsTokenNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsTokenNVX -type IndirectCommandsTokenNVX struct { - TokenType IndirectCommandsTokenTypeNVX - Buffer Buffer - Offset DeviceSize - ref8a2daca5 *C.VkIndirectCommandsTokenNVX - allocs8a2daca5 interface{} +// PhysicalDeviceExclusiveScissorFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExclusiveScissorFeaturesNV.html +type PhysicalDeviceExclusiveScissorFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + ExclusiveScissor Bool32 + ref52c9fcfc *C.VkPhysicalDeviceExclusiveScissorFeaturesNV + allocs52c9fcfc interface{} } -// IndirectCommandsLayoutTokenNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsLayoutTokenNVX -type IndirectCommandsLayoutTokenNVX struct { - TokenType IndirectCommandsTokenTypeNVX - BindingUnit uint32 - DynamicCount uint32 - Divisor uint32 - refe421769 *C.VkIndirectCommandsLayoutTokenNVX - allocse421769 interface{} +// QueueFamilyCheckpointPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFamilyCheckpointPropertiesNV.html +type QueueFamilyCheckpointPropertiesNV struct { + SType StructureType + PNext unsafe.Pointer + CheckpointExecutionStageMask PipelineStageFlags + ref351f58c6 *C.VkQueueFamilyCheckpointPropertiesNV + allocs351f58c6 interface{} } -// IndirectCommandsLayoutCreateInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkIndirectCommandsLayoutCreateInfoNVX -type IndirectCommandsLayoutCreateInfoNVX struct { +// CheckpointDataNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCheckpointDataNV.html +type CheckpointDataNV struct { SType StructureType PNext unsafe.Pointer - PipelineBindPoint PipelineBindPoint - Flags IndirectCommandsLayoutUsageFlagsNVX - TokenCount uint32 - PTokens []IndirectCommandsLayoutTokenNVX - ref2a2866d5 *C.VkIndirectCommandsLayoutCreateInfoNVX - allocs2a2866d5 interface{} + Stage PipelineStageFlagBits + PCheckpointMarker unsafe.Pointer + refd1c9224b *C.VkCheckpointDataNV + allocsd1c9224b interface{} } -// CmdProcessCommandsInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkCmdProcessCommandsInfoNVX -type CmdProcessCommandsInfoNVX struct { - SType StructureType - PNext unsafe.Pointer - ObjectTable ObjectTableNVX - IndirectCommandsLayout IndirectCommandsLayoutNVX - IndirectCommandsTokenCount uint32 - PIndirectCommandsTokens []IndirectCommandsTokenNVX - MaxSequencesCount uint32 - TargetCommandBuffer CommandBuffer - SequencesCountBuffer Buffer - SequencesCountOffset DeviceSize - SequencesIndexBuffer Buffer - SequencesIndexOffset DeviceSize - refcd94895d *C.VkCmdProcessCommandsInfoNVX - allocscd94895d interface{} -} - -// CmdReserveSpaceForCommandsInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkCmdReserveSpaceForCommandsInfoNVX -type CmdReserveSpaceForCommandsInfoNVX struct { - SType StructureType - PNext unsafe.Pointer - ObjectTable ObjectTableNVX - IndirectCommandsLayout IndirectCommandsLayoutNVX - MaxSequencesCount uint32 - ref900bfee5 *C.VkCmdReserveSpaceForCommandsInfoNVX - allocs900bfee5 interface{} +// PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.html +type PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL struct { + SType StructureType + PNext unsafe.Pointer + ShaderIntegerFunctions2 Bool32 + refff2cd6c *C.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL + allocsff2cd6c interface{} } -// ObjectTableCreateInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectTableCreateInfoNVX -type ObjectTableCreateInfoNVX struct { - SType StructureType - PNext unsafe.Pointer - ObjectCount uint32 - PObjectEntryTypes []ObjectEntryTypeNVX - PObjectEntryCounts []uint32 - PObjectEntryUsageFlags []ObjectEntryUsageFlagsNVX - MaxUniformBuffersPerDescriptor uint32 - MaxStorageBuffersPerDescriptor uint32 - MaxStorageImagesPerDescriptor uint32 - MaxSampledImagesPerDescriptor uint32 - MaxPipelineLayouts uint32 - refb4a6c9e1 *C.VkObjectTableCreateInfoNVX - allocsb4a6c9e1 interface{} -} - -// ObjectTableEntryNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectTableEntryNVX -type ObjectTableEntryNVX struct { - Type ObjectEntryTypeNVX - Flags ObjectEntryUsageFlagsNVX - refb8f7ffef *C.VkObjectTableEntryNVX - allocsb8f7ffef interface{} -} - -// ObjectTablePipelineEntryNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectTablePipelineEntryNVX -type ObjectTablePipelineEntryNVX struct { - Type ObjectEntryTypeNVX - Flags ObjectEntryUsageFlagsNVX - Pipeline Pipeline - ref8112859b *C.VkObjectTablePipelineEntryNVX - allocs8112859b interface{} -} +// PerformanceConfigurationINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceConfigurationINTEL.html +type PerformanceConfigurationINTEL C.VkPerformanceConfigurationINTEL -// ObjectTableDescriptorSetEntryNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectTableDescriptorSetEntryNVX -type ObjectTableDescriptorSetEntryNVX struct { - Type ObjectEntryTypeNVX - Flags ObjectEntryUsageFlagsNVX - PipelineLayout PipelineLayout - DescriptorSet DescriptorSet - ref6fc0d42f *C.VkObjectTableDescriptorSetEntryNVX - allocs6fc0d42f interface{} -} +// PerformanceValueDataINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceValueDataINTEL.html +const sizeofPerformanceValueDataINTEL = unsafe.Sizeof(C.VkPerformanceValueDataINTEL{}) -// ObjectTableVertexBufferEntryNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectTableVertexBufferEntryNVX -type ObjectTableVertexBufferEntryNVX struct { - Type ObjectEntryTypeNVX - Flags ObjectEntryUsageFlagsNVX - Buffer Buffer - refe8a5908b *C.VkObjectTableVertexBufferEntryNVX - allocse8a5908b interface{} -} +type PerformanceValueDataINTEL [sizeofPerformanceValueDataINTEL]byte -// ObjectTableIndexBufferEntryNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectTableIndexBufferEntryNVX -type ObjectTableIndexBufferEntryNVX struct { - Type ObjectEntryTypeNVX - Flags ObjectEntryUsageFlagsNVX - Buffer Buffer - IndexType IndexType - ref58a08650 *C.VkObjectTableIndexBufferEntryNVX - allocs58a08650 interface{} +// PerformanceValueINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceValueINTEL.html +type PerformanceValueINTEL struct { + Type PerformanceValueTypeINTEL + Data PerformanceValueDataINTEL + refe6a134ae *C.VkPerformanceValueINTEL + allocse6a134ae interface{} } -// ObjectTablePushConstantEntryNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkObjectTablePushConstantEntryNVX -type ObjectTablePushConstantEntryNVX struct { - Type ObjectEntryTypeNVX - Flags ObjectEntryUsageFlagsNVX - PipelineLayout PipelineLayout - StageFlags ShaderStageFlags - ref8c8421e0 *C.VkObjectTablePushConstantEntryNVX - allocs8c8421e0 interface{} +// InitializePerformanceApiInfoINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInitializePerformanceApiInfoINTEL.html +type InitializePerformanceApiInfoINTEL struct { + SType StructureType + PNext unsafe.Pointer + PUserData unsafe.Pointer + refb72b1cf3 *C.VkInitializePerformanceApiInfoINTEL + allocsb72b1cf3 interface{} } -// ViewportWScalingNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkViewportWScalingNV.html -type ViewportWScalingNV struct { - Xcoeff float32 - Ycoeff float32 - ref7ea4590f *C.VkViewportWScalingNV - allocs7ea4590f interface{} +// QueryPoolPerformanceQueryCreateInfoINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPoolPerformanceQueryCreateInfoINTEL.html +type QueryPoolPerformanceQueryCreateInfoINTEL struct { + SType StructureType + PNext unsafe.Pointer + PerformanceCountersSampling QueryPoolSamplingModeINTEL + refb8883992 *C.VkQueryPoolPerformanceQueryCreateInfoINTEL + allocsb8883992 interface{} } -// PipelineViewportWScalingStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportWScalingStateCreateInfoNV.html -type PipelineViewportWScalingStateCreateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - ViewportWScalingEnable Bool32 - ViewportCount uint32 - PViewportWScalings []ViewportWScalingNV - ref3e532c0b *C.VkPipelineViewportWScalingStateCreateInfoNV - allocs3e532c0b interface{} +// QueryPoolCreateInfoINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueryPoolCreateInfoINTEL.html +type QueryPoolCreateInfoINTEL struct { + SType StructureType + PNext unsafe.Pointer + PerformanceCountersSampling QueryPoolSamplingModeINTEL + refb8883992 *C.VkQueryPoolPerformanceQueryCreateInfoINTEL + allocsb8883992 interface{} } -// SurfaceCounterFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSurfaceCounterFlagsEXT.html -type SurfaceCounterFlags uint32 - -// DisplayPowerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDisplayPowerInfoEXT.html -type DisplayPowerInfo struct { +// PerformanceMarkerInfoINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceMarkerInfoINTEL.html +type PerformanceMarkerInfoINTEL struct { SType StructureType PNext unsafe.Pointer - PowerState DisplayPowerState - ref80fed52f *C.VkDisplayPowerInfoEXT - allocs80fed52f interface{} + Marker uint64 + refbf575d93 *C.VkPerformanceMarkerInfoINTEL + allocsbf575d93 interface{} } -// DeviceEventInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceEventInfoEXT.html -type DeviceEventInfo struct { +// PerformanceStreamMarkerInfoINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceStreamMarkerInfoINTEL.html +type PerformanceStreamMarkerInfoINTEL struct { SType StructureType PNext unsafe.Pointer - DeviceEvent DeviceEventType - ref394b3fcb *C.VkDeviceEventInfoEXT - allocs394b3fcb interface{} + Marker uint32 + refaaf8355c *C.VkPerformanceStreamMarkerInfoINTEL + allocsaaf8355c interface{} } -// DisplayEventInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDisplayEventInfoEXT.html -type DisplayEventInfo struct { +// PerformanceOverrideInfoINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceOverrideInfoINTEL.html +type PerformanceOverrideInfoINTEL struct { SType StructureType PNext unsafe.Pointer - DisplayEvent DisplayEventType - refa69f7302 *C.VkDisplayEventInfoEXT - allocsa69f7302 interface{} -} - -// SwapchainCounterCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSwapchainCounterCreateInfoEXT.html -type SwapchainCounterCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - SurfaceCounters SurfaceCounterFlags - ref9f21eca6 *C.VkSwapchainCounterCreateInfoEXT - allocs9f21eca6 interface{} -} - -// RefreshCycleDurationGOOGLE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRefreshCycleDurationGOOGLE.html -type RefreshCycleDurationGOOGLE struct { - RefreshDuration uint64 - ref969cb55b *C.VkRefreshCycleDurationGOOGLE - allocs969cb55b interface{} -} - -// PastPresentationTimingGOOGLE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPastPresentationTimingGOOGLE.html -type PastPresentationTimingGOOGLE struct { - PresentID uint32 - DesiredPresentTime uint64 - ActualPresentTime uint64 - EarliestPresentTime uint64 - PresentMargin uint64 - refac8cf1d8 *C.VkPastPresentationTimingGOOGLE - allocsac8cf1d8 interface{} -} - -// PresentTimeGOOGLE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentTimeGOOGLE.html -type PresentTimeGOOGLE struct { - PresentID uint32 - DesiredPresentTime uint64 - ref9cd90ade *C.VkPresentTimeGOOGLE - allocs9cd90ade interface{} + Type PerformanceOverrideTypeINTEL + Enable Bool32 + Parameter uint64 + ref1cdbce31 *C.VkPerformanceOverrideInfoINTEL + allocs1cdbce31 interface{} } -// PresentTimesInfoGOOGLE as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentTimesInfoGOOGLE.html -type PresentTimesInfoGOOGLE struct { +// PerformanceConfigurationAcquireInfoINTEL as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPerformanceConfigurationAcquireInfoINTEL.html +type PerformanceConfigurationAcquireInfoINTEL struct { SType StructureType PNext unsafe.Pointer - SwapchainCount uint32 - PTimes []PresentTimeGOOGLE - ref70eb8ab3 *C.VkPresentTimesInfoGOOGLE - allocs70eb8ab3 interface{} -} - -// PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX -type PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX struct { - SType StructureType - PNext unsafe.Pointer - PerViewPositionAllComponents Bool32 - refbaf399ad *C.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - allocsbaf399ad interface{} -} - -// PipelineViewportSwizzleStateCreateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportSwizzleStateCreateFlagsNV.html -type PipelineViewportSwizzleStateCreateFlagsNV uint32 - -// ViewportSwizzleNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkViewportSwizzleNV.html -type ViewportSwizzleNV struct { - X ViewportCoordinateSwizzleNV - Y ViewportCoordinateSwizzleNV - Z ViewportCoordinateSwizzleNV - W ViewportCoordinateSwizzleNV - ref74ff2887 *C.VkViewportSwizzleNV - allocs74ff2887 interface{} + Type PerformanceConfigurationTypeINTEL + ref16c1d105 *C.VkPerformanceConfigurationAcquireInfoINTEL + allocs16c1d105 interface{} } -// PipelineViewportSwizzleStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportSwizzleStateCreateInfoNV.html -type PipelineViewportSwizzleStateCreateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineViewportSwizzleStateCreateFlagsNV - ViewportCount uint32 - PViewportSwizzles []ViewportSwizzleNV - ref5e90f24 *C.VkPipelineViewportSwizzleStateCreateInfoNV - allocs5e90f24 interface{} +// PhysicalDevicePCIBusInfoProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePCIBusInfoPropertiesEXT.html +type PhysicalDevicePCIBusInfoProperties struct { + SType StructureType + PNext unsafe.Pointer + PciDomain uint32 + PciBus uint32 + PciDevice uint32 + PciFunction uint32 + refdd9947ff *C.VkPhysicalDevicePCIBusInfoPropertiesEXT + allocsdd9947ff interface{} } -// PipelineDiscardRectangleStateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDiscardRectangleStateCreateFlagsEXT.html -type PipelineDiscardRectangleStateCreateFlags uint32 - -// PhysicalDeviceDiscardRectangleProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDiscardRectanglePropertiesEXT.html -type PhysicalDeviceDiscardRectangleProperties struct { - SType StructureType - PNext unsafe.Pointer - MaxDiscardRectangles uint32 - reffe8591da *C.VkPhysicalDeviceDiscardRectanglePropertiesEXT - allocsfe8591da interface{} +// DisplayNativeHdrSurfaceCapabilitiesAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDisplayNativeHdrSurfaceCapabilitiesAMD +type DisplayNativeHdrSurfaceCapabilitiesAMD struct { + SType StructureType + PNext unsafe.Pointer + LocalDimmingSupport Bool32 + ref2521293a *C.VkDisplayNativeHdrSurfaceCapabilitiesAMD + allocs2521293a interface{} } -// PipelineDiscardRectangleStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineDiscardRectangleStateCreateInfoEXT.html -type PipelineDiscardRectangleStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineDiscardRectangleStateCreateFlags - DiscardRectangleMode DiscardRectangleMode - DiscardRectangleCount uint32 - PDiscardRectangles []Rect2D - refcdbb125e *C.VkPipelineDiscardRectangleStateCreateInfoEXT - allocscdbb125e interface{} +// SwapchainDisplayNativeHdrCreateInfoAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkSwapchainDisplayNativeHdrCreateInfoAMD +type SwapchainDisplayNativeHdrCreateInfoAMD struct { + SType StructureType + PNext unsafe.Pointer + LocalDimmingEnable Bool32 + refffbe2634 *C.VkSwapchainDisplayNativeHdrCreateInfoAMD + allocsffbe2634 interface{} } -// PipelineRasterizationConservativeStateCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationConservativeStateCreateFlagsEXT.html -type PipelineRasterizationConservativeStateCreateFlags uint32 - -// PhysicalDeviceConservativeRasterizationProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.html -type PhysicalDeviceConservativeRasterizationProperties struct { - SType StructureType - PNext unsafe.Pointer - PrimitiveOverestimationSize float32 - MaxExtraPrimitiveOverestimationSize float32 - ExtraPrimitiveOverestimationSizeGranularity float32 - PrimitiveUnderestimation Bool32 - ConservativePointAndLineRasterization Bool32 - DegenerateTrianglesRasterized Bool32 - DegenerateLinesRasterized Bool32 - FullyCoveredFragmentShaderInputVariable Bool32 - ConservativeRasterizationPostDepthCoverage Bool32 - ref878f819c *C.VkPhysicalDeviceConservativeRasterizationPropertiesEXT - allocs878f819c interface{} +// PhysicalDeviceFragmentDensityMapFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.html +type PhysicalDeviceFragmentDensityMapFeatures struct { + SType StructureType + PNext unsafe.Pointer + FragmentDensityMap Bool32 + FragmentDensityMapDynamic Bool32 + FragmentDensityMapNonSubsampledImages Bool32 + reffa0bb2d9 *C.VkPhysicalDeviceFragmentDensityMapFeaturesEXT + allocsfa0bb2d9 interface{} } -// PipelineRasterizationConservativeStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationConservativeStateCreateInfoEXT.html -type PipelineRasterizationConservativeStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineRasterizationConservativeStateCreateFlags - ConservativeRasterizationMode ConservativeRasterizationMode - ExtraPrimitiveOverestimationSize float32 - refe3cd0046 *C.VkPipelineRasterizationConservativeStateCreateInfoEXT - allocse3cd0046 interface{} +// PhysicalDeviceFragmentDensityMapProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentDensityMapPropertiesEXT.html +type PhysicalDeviceFragmentDensityMapProperties struct { + SType StructureType + PNext unsafe.Pointer + MinFragmentDensityTexelSize Extent2D + MaxFragmentDensityTexelSize Extent2D + FragmentDensityInvocations Bool32 + ref79e5ca31 *C.VkPhysicalDeviceFragmentDensityMapPropertiesEXT + allocs79e5ca31 interface{} } -// XYColor as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkXYColorEXT.html -type XYColor struct { - X float32 - Y float32 - refb8efaa5c *C.VkXYColorEXT - allocsb8efaa5c interface{} +// RenderPassFragmentDensityMapCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassFragmentDensityMapCreateInfoEXT.html +type RenderPassFragmentDensityMapCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + FragmentDensityMapAttachment AttachmentReference + ref76b25671 *C.VkRenderPassFragmentDensityMapCreateInfoEXT + allocs76b25671 interface{} } -// HdrMetadata as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkHdrMetadataEXT.html -type HdrMetadata struct { - SType StructureType - PNext unsafe.Pointer - DisplayPrimaryRed XYColor - DisplayPrimaryGreen XYColor - DisplayPrimaryBlue XYColor - WhitePoint XYColor - MaxLuminance float32 - MinLuminance float32 - MaxContentLightLevel float32 - MaxFrameAverageLightLevel float32 - ref5fd28976 *C.VkHdrMetadataEXT - allocs5fd28976 interface{} -} +// ShaderCorePropertiesFlagsAMD type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkShaderCorePropertiesFlagsAMD +type ShaderCorePropertiesFlagsAMD uint32 -// DebugUtilsMessageSeverityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsMessageSeverityFlagsEXT.html -type DebugUtilsMessageSeverityFlags uint32 +// PhysicalDeviceShaderCoreProperties2AMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPhysicalDeviceShaderCoreProperties2AMD +type PhysicalDeviceShaderCoreProperties2AMD struct { + SType StructureType + PNext unsafe.Pointer + ShaderCoreFeatures ShaderCorePropertiesFlagsAMD + ActiveComputeUnitCount uint32 + ref7be3d4c4 *C.VkPhysicalDeviceShaderCoreProperties2AMD + allocs7be3d4c4 interface{} +} -// DebugUtilsMessageTypeFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsMessageTypeFlagsEXT.html -type DebugUtilsMessageTypeFlags uint32 +// PhysicalDeviceCoherentMemoryFeaturesAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPhysicalDeviceCoherentMemoryFeaturesAMD +type PhysicalDeviceCoherentMemoryFeaturesAMD struct { + SType StructureType + PNext unsafe.Pointer + DeviceCoherentMemory Bool32 + ref34cb87b4 *C.VkPhysicalDeviceCoherentMemoryFeaturesAMD + allocs34cb87b4 interface{} +} -// DebugUtilsObjectNameInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsObjectNameInfoEXT.html -type DebugUtilsObjectNameInfo struct { - SType StructureType - PNext unsafe.Pointer - ObjectType ObjectType - ObjectHandle uint64 - PObjectName string - ref5e73c2db *C.VkDebugUtilsObjectNameInfoEXT - allocs5e73c2db interface{} +// PhysicalDeviceShaderImageAtomicInt64Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.html +type PhysicalDeviceShaderImageAtomicInt64Features struct { + SType StructureType + PNext unsafe.Pointer + ShaderImageInt64Atomics Bool32 + SparseImageInt64Atomics Bool32 + ref1b0fbd *C.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT + allocs1b0fbd interface{} } -// DebugUtilsObjectTagInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsObjectTagInfoEXT.html -type DebugUtilsObjectTagInfo struct { +// PhysicalDeviceMemoryBudgetProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMemoryBudgetPropertiesEXT.html +type PhysicalDeviceMemoryBudgetProperties struct { SType StructureType PNext unsafe.Pointer - ObjectType ObjectType - ObjectHandle uint64 - TagName uint64 - TagSize uint - PTag unsafe.Pointer - ref9fd129cf *C.VkDebugUtilsObjectTagInfoEXT - allocs9fd129cf interface{} + HeapBudget [16]DeviceSize + HeapUsage [16]DeviceSize + refa7406c48 *C.VkPhysicalDeviceMemoryBudgetPropertiesEXT + allocsa7406c48 interface{} } -// DebugUtilsLabel as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDebugUtilsLabelEXT.html -type DebugUtilsLabel struct { +// PhysicalDeviceMemoryPriorityFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMemoryPriorityFeaturesEXT.html +type PhysicalDeviceMemoryPriorityFeatures struct { SType StructureType PNext unsafe.Pointer - PLabelName string - Color [4]float32 - ref8faaf7b1 *C.VkDebugUtilsLabelEXT - allocs8faaf7b1 interface{} + MemoryPriority Bool32 + ref24f8641c *C.VkPhysicalDeviceMemoryPriorityFeaturesEXT + allocs24f8641c interface{} } -// SamplerReductionModeCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerReductionModeCreateInfoEXT.html -type SamplerReductionModeCreateInfo struct { +// MemoryPriorityAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryPriorityAllocateInfoEXT.html +type MemoryPriorityAllocateInfo struct { SType StructureType PNext unsafe.Pointer - ReductionMode SamplerReductionMode - reff1cfd4e3 *C.VkSamplerReductionModeCreateInfoEXT - allocsf1cfd4e3 interface{} -} - -// PhysicalDeviceSamplerFilterMinmaxProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.html -type PhysicalDeviceSamplerFilterMinmaxProperties struct { - SType StructureType - PNext unsafe.Pointer - FilterMinmaxSingleComponentFormats Bool32 - FilterMinmaxImageComponentMapping Bool32 - refcc32d100 *C.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT - allocscc32d100 interface{} + Priority float32 + refd3540846 *C.VkMemoryPriorityAllocateInfoEXT + allocsd3540846 interface{} } -// PhysicalDeviceInlineUniformBlockFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceInlineUniformBlockFeaturesEXT.html -type PhysicalDeviceInlineUniformBlockFeatures struct { - SType StructureType - PNext unsafe.Pointer - InlineUniformBlock Bool32 - DescriptorBindingInlineUniformBlockUpdateAfterBind Bool32 - ref5054bc6c *C.VkPhysicalDeviceInlineUniformBlockFeaturesEXT - allocs5054bc6c interface{} +// PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.html +type PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + DedicatedAllocationImageAliasing Bool32 + refade17227 *C.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + allocsade17227 interface{} } -// PhysicalDeviceInlineUniformBlockProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceInlineUniformBlockPropertiesEXT.html -type PhysicalDeviceInlineUniformBlockProperties struct { - SType StructureType - PNext unsafe.Pointer - MaxInlineUniformBlockSize uint32 - MaxPerStageDescriptorInlineUniformBlocks uint32 - MaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks uint32 - MaxDescriptorSetInlineUniformBlocks uint32 - MaxDescriptorSetUpdateAfterBindInlineUniformBlocks uint32 - ref7ef1794 *C.VkPhysicalDeviceInlineUniformBlockPropertiesEXT - allocs7ef1794 interface{} +// PhysicalDeviceBufferAddressFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceBufferAddressFeaturesEXT.html +type PhysicalDeviceBufferAddressFeatures struct { + SType StructureType + PNext unsafe.Pointer + BufferDeviceAddress Bool32 + BufferDeviceAddressCaptureReplay Bool32 + BufferDeviceAddressMultiDevice Bool32 + refe3bd03a5 *C.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT + allocse3bd03a5 interface{} } -// WriteDescriptorSetInlineUniformBlock as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkWriteDescriptorSetInlineUniformBlockEXT.html -type WriteDescriptorSetInlineUniformBlock struct { +// BufferDeviceAddressCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferDeviceAddressCreateInfoEXT.html +type BufferDeviceAddressCreateInfo struct { SType StructureType PNext unsafe.Pointer - DataSize uint32 - PData unsafe.Pointer - ref18d00656 *C.VkWriteDescriptorSetInlineUniformBlockEXT - allocs18d00656 interface{} + DeviceAddress DeviceAddress + ref4c6937a9 *C.VkBufferDeviceAddressCreateInfoEXT + allocs4c6937a9 interface{} } -// DescriptorPoolInlineUniformBlockCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorPoolInlineUniformBlockCreateInfoEXT.html -type DescriptorPoolInlineUniformBlockCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - MaxInlineUniformBlockBindings uint32 - refbc7edaa3 *C.VkDescriptorPoolInlineUniformBlockCreateInfoEXT - allocsbc7edaa3 interface{} +// ValidationFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationFeaturesEXT.html +type ValidationFeatures struct { + SType StructureType + PNext unsafe.Pointer + EnabledValidationFeatureCount uint32 + PEnabledValidationFeatures []ValidationFeatureEnable + DisabledValidationFeatureCount uint32 + PDisabledValidationFeatures []ValidationFeatureDisable + refcd8794ea *C.VkValidationFeaturesEXT + allocscd8794ea interface{} } -// SampleLocation as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSampleLocationEXT.html -type SampleLocation struct { - X float32 - Y float32 - refe7a2e761 *C.VkSampleLocationEXT - allocse7a2e761 interface{} +// CooperativeMatrixPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCooperativeMatrixPropertiesNV.html +type CooperativeMatrixPropertiesNV struct { + SType StructureType + PNext unsafe.Pointer + MSize uint32 + NSize uint32 + KSize uint32 + AType ComponentTypeNV + BType ComponentTypeNV + CType ComponentTypeNV + DType ComponentTypeNV + Scope ScopeNV + ref4302be60 *C.VkCooperativeMatrixPropertiesNV + allocs4302be60 interface{} +} + +// PhysicalDeviceCooperativeMatrixFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceCooperativeMatrixFeaturesNV.html +type PhysicalDeviceCooperativeMatrixFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + CooperativeMatrix Bool32 + CooperativeMatrixRobustBufferAccess Bool32 + refff45ea3f *C.VkPhysicalDeviceCooperativeMatrixFeaturesNV + allocsff45ea3f interface{} } -// SampleLocationsInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSampleLocationsInfoEXT.html -type SampleLocationsInfo struct { - SType StructureType - PNext unsafe.Pointer - SampleLocationsPerPixel SampleCountFlagBits - SampleLocationGridSize Extent2D - SampleLocationsCount uint32 - PSampleLocations []SampleLocation - refd8f3bd2d *C.VkSampleLocationsInfoEXT - allocsd8f3bd2d interface{} +// PhysicalDeviceCooperativeMatrixPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceCooperativeMatrixPropertiesNV.html +type PhysicalDeviceCooperativeMatrixPropertiesNV struct { + SType StructureType + PNext unsafe.Pointer + CooperativeMatrixSupportedStages ShaderStageFlags + ref45336143 *C.VkPhysicalDeviceCooperativeMatrixPropertiesNV + allocs45336143 interface{} } -// AttachmentSampleLocations as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkAttachmentSampleLocationsEXT.html -type AttachmentSampleLocations struct { - AttachmentIndex uint32 - SampleLocationsInfo SampleLocationsInfo - ref6a3dd41e *C.VkAttachmentSampleLocationsEXT - allocs6a3dd41e interface{} -} +// PipelineCoverageReductionStateCreateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageReductionStateCreateFlagsNV.html +type PipelineCoverageReductionStateCreateFlagsNV uint32 -// SubpassSampleLocations as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubpassSampleLocationsEXT.html -type SubpassSampleLocations struct { - SubpassIndex uint32 - SampleLocationsInfo SampleLocationsInfo - ref1f612812 *C.VkSubpassSampleLocationsEXT - allocs1f612812 interface{} +// PhysicalDeviceCoverageReductionModeFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceCoverageReductionModeFeaturesNV.html +type PhysicalDeviceCoverageReductionModeFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + CoverageReductionMode Bool32 + ref1066c79 *C.VkPhysicalDeviceCoverageReductionModeFeaturesNV + allocs1066c79 interface{} } -// RenderPassSampleLocationsBeginInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassSampleLocationsBeginInfoEXT.html -type RenderPassSampleLocationsBeginInfo struct { - SType StructureType - PNext unsafe.Pointer - AttachmentInitialSampleLocationsCount uint32 - PAttachmentInitialSampleLocations []AttachmentSampleLocations - PostSubpassSampleLocationsCount uint32 - PPostSubpassSampleLocations []SubpassSampleLocations - refb61b51d4 *C.VkRenderPassSampleLocationsBeginInfoEXT - allocsb61b51d4 interface{} +// PipelineCoverageReductionStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageReductionStateCreateInfoNV.html +type PipelineCoverageReductionStateCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + Flags PipelineCoverageReductionStateCreateFlagsNV + CoverageReductionMode CoverageReductionModeNV + ref39db618c *C.VkPipelineCoverageReductionStateCreateInfoNV + allocs39db618c interface{} } -// PipelineSampleLocationsStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineSampleLocationsStateCreateInfoEXT.html -type PipelineSampleLocationsStateCreateInfo struct { +// FramebufferMixedSamplesCombinationNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkFramebufferMixedSamplesCombinationNV.html +type FramebufferMixedSamplesCombinationNV struct { SType StructureType PNext unsafe.Pointer - SampleLocationsEnable Bool32 - SampleLocationsInfo SampleLocationsInfo - ref93a2968f *C.VkPipelineSampleLocationsStateCreateInfoEXT - allocs93a2968f interface{} + CoverageReductionMode CoverageReductionModeNV + RasterizationSamples SampleCountFlagBits + DepthStencilSamples SampleCountFlags + ColorSamples SampleCountFlags + ref75affbab *C.VkFramebufferMixedSamplesCombinationNV + allocs75affbab interface{} } -// PhysicalDeviceSampleLocationsProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSampleLocationsPropertiesEXT.html -type PhysicalDeviceSampleLocationsProperties struct { - SType StructureType - PNext unsafe.Pointer - SampleLocationSampleCounts SampleCountFlags - MaxSampleLocationGridSize Extent2D - SampleLocationCoordinateRange [2]float32 - SampleLocationSubPixelBits uint32 - VariableSampleLocations Bool32 - refaf801323 *C.VkPhysicalDeviceSampleLocationsPropertiesEXT - allocsaf801323 interface{} +// PhysicalDeviceFragmentShaderInterlockFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.html +type PhysicalDeviceFragmentShaderInterlockFeatures struct { + SType StructureType + PNext unsafe.Pointer + FragmentShaderSampleInterlock Bool32 + FragmentShaderPixelInterlock Bool32 + FragmentShaderShadingRateInterlock Bool32 + ref1ed4955d *C.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT + allocs1ed4955d interface{} } -// MultisampleProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMultisamplePropertiesEXT.html -type MultisampleProperties struct { - SType StructureType - PNext unsafe.Pointer - MaxSampleLocationGridSize Extent2D - ref3e47f337 *C.VkMultisamplePropertiesEXT - allocs3e47f337 interface{} +// PhysicalDeviceYcbcrImageArraysFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.html +type PhysicalDeviceYcbcrImageArraysFeatures struct { + SType StructureType + PNext unsafe.Pointer + YcbcrImageArrays Bool32 + ref3198007 *C.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT + allocs3198007 interface{} } -// PhysicalDeviceBlendOperationAdvancedFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.html -type PhysicalDeviceBlendOperationAdvancedFeatures struct { - SType StructureType - PNext unsafe.Pointer - AdvancedBlendCoherentOperations Bool32 - ref8514bc93 *C.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT - allocs8514bc93 interface{} +// PhysicalDeviceProvokingVertexFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProvokingVertexFeaturesEXT.html +type PhysicalDeviceProvokingVertexFeatures struct { + SType StructureType + PNext unsafe.Pointer + ProvokingVertexLast Bool32 + TransformFeedbackPreservesProvokingVertex Bool32 + ref3e34d575 *C.VkPhysicalDeviceProvokingVertexFeaturesEXT + allocs3e34d575 interface{} } -// PhysicalDeviceBlendOperationAdvancedProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.html -type PhysicalDeviceBlendOperationAdvancedProperties struct { - SType StructureType - PNext unsafe.Pointer - AdvancedBlendMaxColorAttachments uint32 - AdvancedBlendIndependentBlend Bool32 - AdvancedBlendNonPremultipliedSrcColor Bool32 - AdvancedBlendNonPremultipliedDstColor Bool32 - AdvancedBlendCorrelatedOverlap Bool32 - AdvancedBlendAllOperations Bool32 - ref94cb3fa6 *C.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT - allocs94cb3fa6 interface{} +// PhysicalDeviceProvokingVertexProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceProvokingVertexPropertiesEXT.html +type PhysicalDeviceProvokingVertexProperties struct { + SType StructureType + PNext unsafe.Pointer + ProvokingVertexModePerPipeline Bool32 + TransformFeedbackPreservesTriangleFanProvokingVertex Bool32 + refa8810910 *C.VkPhysicalDeviceProvokingVertexPropertiesEXT + allocsa8810910 interface{} } -// PipelineColorBlendAdvancedStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineColorBlendAdvancedStateCreateInfoEXT.html -type PipelineColorBlendAdvancedStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - SrcPremultiplied Bool32 - DstPremultiplied Bool32 - BlendOverlap BlendOverlap - refcd374989 *C.VkPipelineColorBlendAdvancedStateCreateInfoEXT - allocscd374989 interface{} +// PipelineRasterizationProvokingVertexStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationProvokingVertexStateCreateInfoEXT.html +type PipelineRasterizationProvokingVertexStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + ProvokingVertexMode ProvokingVertexMode + ref367b4d68 *C.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT + allocs367b4d68 interface{} } -// PipelineCoverageToColorStateCreateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageToColorStateCreateFlagsNV.html -type PipelineCoverageToColorStateCreateFlagsNV uint32 +// HeadlessSurfaceCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkHeadlessSurfaceCreateFlagsEXT.html +type HeadlessSurfaceCreateFlags uint32 -// PipelineCoverageToColorStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageToColorStateCreateInfoNV.html -type PipelineCoverageToColorStateCreateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineCoverageToColorStateCreateFlagsNV - CoverageToColorEnable Bool32 - CoverageToColorLocation uint32 - refcc6b7b68 *C.VkPipelineCoverageToColorStateCreateInfoNV - allocscc6b7b68 interface{} +// HeadlessSurfaceCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkHeadlessSurfaceCreateInfoEXT.html +type HeadlessSurfaceCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags HeadlessSurfaceCreateFlags + refed88b258 *C.VkHeadlessSurfaceCreateInfoEXT + allocsed88b258 interface{} } -// PipelineCoverageModulationStateCreateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageModulationStateCreateFlagsNV.html -type PipelineCoverageModulationStateCreateFlagsNV uint32 +// PhysicalDeviceLineRasterizationFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceLineRasterizationFeaturesEXT.html +type PhysicalDeviceLineRasterizationFeatures struct { + SType StructureType + PNext unsafe.Pointer + RectangularLines Bool32 + BresenhamLines Bool32 + SmoothLines Bool32 + StippledRectangularLines Bool32 + StippledBresenhamLines Bool32 + StippledSmoothLines Bool32 + refdb9049a7 *C.VkPhysicalDeviceLineRasterizationFeaturesEXT + allocsdb9049a7 interface{} +} + +// PhysicalDeviceLineRasterizationProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceLineRasterizationPropertiesEXT.html +type PhysicalDeviceLineRasterizationProperties struct { + SType StructureType + PNext unsafe.Pointer + LineSubPixelPrecisionBits uint32 + refe2369446 *C.VkPhysicalDeviceLineRasterizationPropertiesEXT + allocse2369446 interface{} +} -// PipelineCoverageModulationStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineCoverageModulationStateCreateInfoNV.html -type PipelineCoverageModulationStateCreateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - Flags PipelineCoverageModulationStateCreateFlagsNV - CoverageModulationMode CoverageModulationModeNV - CoverageModulationTableEnable Bool32 - CoverageModulationTableCount uint32 - PCoverageModulationTable []float32 - refa081b0ea *C.VkPipelineCoverageModulationStateCreateInfoNV - allocsa081b0ea interface{} +// PipelineRasterizationLineStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRasterizationLineStateCreateInfoEXT.html +type PipelineRasterizationLineStateCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + LineRasterizationMode LineRasterizationMode + StippledLineEnable Bool32 + LineStippleFactor uint32 + LineStipplePattern uint16 + ref649f4226 *C.VkPipelineRasterizationLineStateCreateInfoEXT + allocs649f4226 interface{} } -// DrmFormatModifierProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrmFormatModifierPropertiesEXT.html -type DrmFormatModifierProperties struct { - DrmFormatModifier uint64 - DrmFormatModifierPlaneCount uint32 - DrmFormatModifierTilingFeatures FormatFeatureFlags - ref7dcb7f85 *C.VkDrmFormatModifierPropertiesEXT - allocs7dcb7f85 interface{} +// PhysicalDeviceShaderAtomicFloatFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.html +type PhysicalDeviceShaderAtomicFloatFeatures struct { + SType StructureType + PNext unsafe.Pointer + ShaderBufferFloat32Atomics Bool32 + ShaderBufferFloat32AtomicAdd Bool32 + ShaderBufferFloat64Atomics Bool32 + ShaderBufferFloat64AtomicAdd Bool32 + ShaderSharedFloat32Atomics Bool32 + ShaderSharedFloat32AtomicAdd Bool32 + ShaderSharedFloat64Atomics Bool32 + ShaderSharedFloat64AtomicAdd Bool32 + ShaderImageFloat32Atomics Bool32 + ShaderImageFloat32AtomicAdd Bool32 + SparseImageFloat32Atomics Bool32 + SparseImageFloat32AtomicAdd Bool32 + refb387c45b *C.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT + allocsb387c45b interface{} +} + +// PhysicalDeviceIndexTypeUint8Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.html +type PhysicalDeviceIndexTypeUint8Features struct { + SType StructureType + PNext unsafe.Pointer + IndexTypeUint8 Bool32 + refd29dc94 *C.VkPhysicalDeviceIndexTypeUint8FeaturesEXT + allocsd29dc94 interface{} +} + +// PhysicalDeviceExtendedDynamicStateFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.html +type PhysicalDeviceExtendedDynamicStateFeatures struct { + SType StructureType + PNext unsafe.Pointer + ExtendedDynamicState Bool32 + reff7bd87ab *C.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT + allocsf7bd87ab interface{} +} + +// PhysicalDeviceShaderAtomicFloat2Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.html +type PhysicalDeviceShaderAtomicFloat2Features struct { + SType StructureType + PNext unsafe.Pointer + ShaderBufferFloat16Atomics Bool32 + ShaderBufferFloat16AtomicAdd Bool32 + ShaderBufferFloat16AtomicMinMax Bool32 + ShaderBufferFloat32AtomicMinMax Bool32 + ShaderBufferFloat64AtomicMinMax Bool32 + ShaderSharedFloat16Atomics Bool32 + ShaderSharedFloat16AtomicAdd Bool32 + ShaderSharedFloat16AtomicMinMax Bool32 + ShaderSharedFloat32AtomicMinMax Bool32 + ShaderSharedFloat64AtomicMinMax Bool32 + ShaderImageFloat32AtomicMinMax Bool32 + SparseImageFloat32AtomicMinMax Bool32 + reff53782 *C.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT + allocsf53782 interface{} +} + +// PresentScalingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentScalingFlagsEXT.html +type PresentScalingFlags uint32 + +// PresentGravityFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPresentGravityFlagsEXT.html +type PresentGravityFlags uint32 + +// SurfacePresentMode as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSurfacePresentModeEXT.html +type SurfacePresentMode struct { + SType StructureType + PNext unsafe.Pointer + PresentMode PresentMode + ref7c337d5d *C.VkSurfacePresentModeEXT + allocs7c337d5d interface{} } -// DrmFormatModifierPropertiesList as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrmFormatModifierPropertiesListEXT.html -type DrmFormatModifierPropertiesList struct { - SType StructureType - PNext unsafe.Pointer - DrmFormatModifierCount uint32 - PDrmFormatModifierProperties []DrmFormatModifierProperties - ref7e3ede2 *C.VkDrmFormatModifierPropertiesListEXT - allocs7e3ede2 interface{} +// SurfacePresentScalingCapabilities as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSurfacePresentScalingCapabilitiesEXT.html +type SurfacePresentScalingCapabilities struct { + SType StructureType + PNext unsafe.Pointer + SupportedPresentScaling PresentScalingFlags + SupportedPresentGravityX PresentGravityFlags + SupportedPresentGravityY PresentGravityFlags + MinScaledImageExtent Extent2D + MaxScaledImageExtent Extent2D + ref2053fb9d *C.VkSurfacePresentScalingCapabilitiesEXT + allocs2053fb9d interface{} } -// PhysicalDeviceImageDrmFormatModifierInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImageDrmFormatModifierInfoEXT.html -type PhysicalDeviceImageDrmFormatModifierInfo struct { +// SurfacePresentModeCompatibility as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSurfacePresentModeCompatibilityEXT.html +type SurfacePresentModeCompatibility struct { + SType StructureType + PNext unsafe.Pointer + PresentModeCount uint32 + PPresentModes []PresentMode + ref61fb395d *C.VkSurfacePresentModeCompatibilityEXT + allocs61fb395d interface{} +} + +// PhysicalDeviceSwapchainMaintenance1Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT.html +type PhysicalDeviceSwapchainMaintenance1Features struct { SType StructureType PNext unsafe.Pointer - DrmFormatModifier uint64 - SharingMode SharingMode - QueueFamilyIndexCount uint32 - PQueueFamilyIndices []uint32 - refd7abef44 *C.VkPhysicalDeviceImageDrmFormatModifierInfoEXT - allocsd7abef44 interface{} + SwapchainMaintenance1 Bool32 + ref553fbea0 *C.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT + allocs553fbea0 interface{} } -// ImageDrmFormatModifierListCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageDrmFormatModifierListCreateInfoEXT.html -type ImageDrmFormatModifierListCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - DrmFormatModifierCount uint32 - PDrmFormatModifiers []uint64 - ref544538ab *C.VkImageDrmFormatModifierListCreateInfoEXT - allocs544538ab interface{} +// SwapchainPresentFenceInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSwapchainPresentFenceInfoEXT.html +type SwapchainPresentFenceInfo struct { + SType StructureType + PNext unsafe.Pointer + SwapchainCount uint32 + PFences []Fence + reff3a3ddf9 *C.VkSwapchainPresentFenceInfoEXT + allocsf3a3ddf9 interface{} } -// ImageDrmFormatModifierExplicitCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageDrmFormatModifierExplicitCreateInfoEXT.html -type ImageDrmFormatModifierExplicitCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - DrmFormatModifier uint64 - DrmFormatModifierPlaneCount uint32 - PPlaneLayouts []SubresourceLayout - ref8fb45ca9 *C.VkImageDrmFormatModifierExplicitCreateInfoEXT - allocs8fb45ca9 interface{} +// SwapchainPresentModesCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSwapchainPresentModesCreateInfoEXT.html +type SwapchainPresentModesCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + PresentModeCount uint32 + PPresentModes []PresentMode + ref27b56519 *C.VkSwapchainPresentModesCreateInfoEXT + allocs27b56519 interface{} } -// ImageDrmFormatModifierProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageDrmFormatModifierPropertiesEXT.html -type ImageDrmFormatModifierProperties struct { - SType StructureType - PNext unsafe.Pointer - DrmFormatModifier uint64 - ref86a0f149 *C.VkImageDrmFormatModifierPropertiesEXT - allocs86a0f149 interface{} +// SwapchainPresentModeInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSwapchainPresentModeInfoEXT.html +type SwapchainPresentModeInfo struct { + SType StructureType + PNext unsafe.Pointer + SwapchainCount uint32 + PPresentModes []PresentMode + refee48d4d8 *C.VkSwapchainPresentModeInfoEXT + allocsee48d4d8 interface{} } -// ValidationCache as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCacheEXT.html -type ValidationCache C.VkValidationCacheEXT - -// ValidationCacheCreateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCacheCreateFlagsEXT.html -type ValidationCacheCreateFlags uint32 - -// ValidationCacheCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkValidationCacheCreateInfoEXT.html -type ValidationCacheCreateInfo struct { +// SwapchainPresentScalingCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSwapchainPresentScalingCreateInfoEXT.html +type SwapchainPresentScalingCreateInfo struct { SType StructureType PNext unsafe.Pointer - Flags ValidationCacheCreateFlags - InitialDataSize uint - PInitialData unsafe.Pointer - ref3d8ac8aa *C.VkValidationCacheCreateInfoEXT - allocs3d8ac8aa interface{} + ScalingBehavior PresentScalingFlags + PresentGravityX PresentGravityFlags + PresentGravityY PresentGravityFlags + ref69da29d7 *C.VkSwapchainPresentScalingCreateInfoEXT + allocs69da29d7 interface{} } -// ShaderModuleValidationCacheCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShaderModuleValidationCacheCreateInfoEXT.html -type ShaderModuleValidationCacheCreateInfo struct { +// ReleaseSwapchainImagesInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkReleaseSwapchainImagesInfoEXT.html +type ReleaseSwapchainImagesInfo struct { SType StructureType PNext unsafe.Pointer - ValidationCache ValidationCache - ref37065f24 *C.VkShaderModuleValidationCacheCreateInfoEXT - allocs37065f24 interface{} + Swapchain Swapchain + ImageIndexCount uint32 + PImageIndices []uint32 + ref6c053bf *C.VkReleaseSwapchainImagesInfoEXT + allocs6c053bf interface{} +} + +// IndirectCommandsLayoutNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectCommandsLayoutNV.html +type IndirectCommandsLayoutNV C.VkIndirectCommandsLayoutNV + +// IndirectStateFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectStateFlagsNV.html +type IndirectStateFlagsNV uint32 + +// IndirectCommandsLayoutUsageFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectCommandsLayoutUsageFlagsNV.html +type IndirectCommandsLayoutUsageFlagsNV uint32 + +// PhysicalDeviceDeviceGeneratedCommandsPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV.html +type PhysicalDeviceDeviceGeneratedCommandsPropertiesNV struct { + SType StructureType + PNext unsafe.Pointer + MaxGraphicsShaderGroupCount uint32 + MaxIndirectSequenceCount uint32 + MaxIndirectCommandsTokenCount uint32 + MaxIndirectCommandsStreamCount uint32 + MaxIndirectCommandsTokenOffset uint32 + MaxIndirectCommandsStreamStride uint32 + MinSequencesCountBufferOffsetAlignment uint32 + MinSequencesIndexBufferOffsetAlignment uint32 + MinIndirectCommandsBufferOffsetAlignment uint32 + ref569def06 *C.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV + allocs569def06 interface{} +} + +// PhysicalDeviceDeviceGeneratedCommandsFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.html +type PhysicalDeviceDeviceGeneratedCommandsFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + DeviceGeneratedCommands Bool32 + ref3ea95583 *C.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV + allocs3ea95583 interface{} } -// DescriptorBindingFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBindingFlagsEXT.html -type DescriptorBindingFlags uint32 - -// DescriptorSetLayoutBindingFlagsCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetLayoutBindingFlagsCreateInfoEXT.html -type DescriptorSetLayoutBindingFlagsCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - BindingCount uint32 - PBindingFlags []DescriptorBindingFlags - refcb1cf42 *C.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT - allocscb1cf42 interface{} +// GraphicsShaderGroupCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGraphicsShaderGroupCreateInfoNV.html +type GraphicsShaderGroupCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + StageCount uint32 + PStages []PipelineShaderStageCreateInfo + PVertexInputState []PipelineVertexInputStateCreateInfo + PTessellationState []PipelineTessellationStateCreateInfo + refa9d954e5 *C.VkGraphicsShaderGroupCreateInfoNV + allocsa9d954e5 interface{} } -// PhysicalDeviceDescriptorIndexingFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDescriptorIndexingFeaturesEXT.html -type PhysicalDeviceDescriptorIndexingFeatures struct { - SType StructureType - PNext unsafe.Pointer - ShaderInputAttachmentArrayDynamicIndexing Bool32 - ShaderUniformTexelBufferArrayDynamicIndexing Bool32 - ShaderStorageTexelBufferArrayDynamicIndexing Bool32 - ShaderUniformBufferArrayNonUniformIndexing Bool32 - ShaderSampledImageArrayNonUniformIndexing Bool32 - ShaderStorageBufferArrayNonUniformIndexing Bool32 - ShaderStorageImageArrayNonUniformIndexing Bool32 - ShaderInputAttachmentArrayNonUniformIndexing Bool32 - ShaderUniformTexelBufferArrayNonUniformIndexing Bool32 - ShaderStorageTexelBufferArrayNonUniformIndexing Bool32 - DescriptorBindingUniformBufferUpdateAfterBind Bool32 - DescriptorBindingSampledImageUpdateAfterBind Bool32 - DescriptorBindingStorageImageUpdateAfterBind Bool32 - DescriptorBindingStorageBufferUpdateAfterBind Bool32 - DescriptorBindingUniformTexelBufferUpdateAfterBind Bool32 - DescriptorBindingStorageTexelBufferUpdateAfterBind Bool32 - DescriptorBindingUpdateUnusedWhilePending Bool32 - DescriptorBindingPartiallyBound Bool32 - DescriptorBindingVariableDescriptorCount Bool32 - RuntimeDescriptorArray Bool32 - ref76ca48bc *C.VkPhysicalDeviceDescriptorIndexingFeaturesEXT - allocs76ca48bc interface{} +// GraphicsPipelineShaderGroupsCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGraphicsPipelineShaderGroupsCreateInfoNV.html +type GraphicsPipelineShaderGroupsCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + GroupCount uint32 + PGroups []GraphicsShaderGroupCreateInfoNV + PipelineCount uint32 + PPipelines []Pipeline + refabf1b7d9 *C.VkGraphicsPipelineShaderGroupsCreateInfoNV + allocsabf1b7d9 interface{} } -// PhysicalDeviceDescriptorIndexingProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDescriptorIndexingPropertiesEXT.html -type PhysicalDeviceDescriptorIndexingProperties struct { - SType StructureType - PNext unsafe.Pointer - MaxUpdateAfterBindDescriptorsInAllPools uint32 - ShaderUniformBufferArrayNonUniformIndexingNative Bool32 - ShaderSampledImageArrayNonUniformIndexingNative Bool32 - ShaderStorageBufferArrayNonUniformIndexingNative Bool32 - ShaderStorageImageArrayNonUniformIndexingNative Bool32 - ShaderInputAttachmentArrayNonUniformIndexingNative Bool32 - RobustBufferAccessUpdateAfterBind Bool32 - QuadDivergentImplicitLod Bool32 - MaxPerStageDescriptorUpdateAfterBindSamplers uint32 - MaxPerStageDescriptorUpdateAfterBindUniformBuffers uint32 - MaxPerStageDescriptorUpdateAfterBindStorageBuffers uint32 - MaxPerStageDescriptorUpdateAfterBindSampledImages uint32 - MaxPerStageDescriptorUpdateAfterBindStorageImages uint32 - MaxPerStageDescriptorUpdateAfterBindInputAttachments uint32 - MaxPerStageUpdateAfterBindResources uint32 - MaxDescriptorSetUpdateAfterBindSamplers uint32 - MaxDescriptorSetUpdateAfterBindUniformBuffers uint32 - MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic uint32 - MaxDescriptorSetUpdateAfterBindStorageBuffers uint32 - MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic uint32 - MaxDescriptorSetUpdateAfterBindSampledImages uint32 - MaxDescriptorSetUpdateAfterBindStorageImages uint32 - MaxDescriptorSetUpdateAfterBindInputAttachments uint32 - ref3c07c210 *C.VkPhysicalDeviceDescriptorIndexingPropertiesEXT - allocs3c07c210 interface{} +// BindShaderGroupIndirectCommandNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindShaderGroupIndirectCommandNV.html +type BindShaderGroupIndirectCommandNV struct { + GroupIndex uint32 + ref4b098fa3 *C.VkBindShaderGroupIndirectCommandNV + allocs4b098fa3 interface{} } -// DescriptorSetVariableDescriptorCountAllocateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetVariableDescriptorCountAllocateInfoEXT.html -type DescriptorSetVariableDescriptorCountAllocateInfo struct { - SType StructureType - PNext unsafe.Pointer - DescriptorSetCount uint32 - PDescriptorCounts []uint32 - ref65152aef *C.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT - allocs65152aef interface{} +// BindIndexBufferIndirectCommandNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindIndexBufferIndirectCommandNV.html +type BindIndexBufferIndirectCommandNV struct { + BufferAddress DeviceAddress + Size uint32 + IndexType IndexType + ref74143926 *C.VkBindIndexBufferIndirectCommandNV + allocs74143926 interface{} } -// DescriptorSetVariableDescriptorCountLayoutSupport as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorSetVariableDescriptorCountLayoutSupportEXT.html -type DescriptorSetVariableDescriptorCountLayoutSupport struct { - SType StructureType - PNext unsafe.Pointer - MaxVariableDescriptorCount uint32 - ref4684c56f *C.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT - allocs4684c56f interface{} +// BindVertexBufferIndirectCommandNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBindVertexBufferIndirectCommandNV.html +type BindVertexBufferIndirectCommandNV struct { + BufferAddress DeviceAddress + Size uint32 + Stride uint32 + refca56f95c *C.VkBindVertexBufferIndirectCommandNV + allocsca56f95c interface{} } -// ShadingRatePaletteNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkShadingRatePaletteNV.html -type ShadingRatePaletteNV struct { - ShadingRatePaletteEntryCount uint32 - PShadingRatePaletteEntries []ShadingRatePaletteEntryNV - refa5c4ae3a *C.VkShadingRatePaletteNV - allocsa5c4ae3a interface{} +// SetStateFlagsIndirectCommandNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSetStateFlagsIndirectCommandNV.html +type SetStateFlagsIndirectCommandNV struct { + Data uint32 + ref89ae676d *C.VkSetStateFlagsIndirectCommandNV + allocs89ae676d interface{} } -// PipelineViewportShadingRateImageStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportShadingRateImageStateCreateInfoNV.html -type PipelineViewportShadingRateImageStateCreateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - ShadingRateImageEnable Bool32 - ViewportCount uint32 - PShadingRatePalettes []ShadingRatePaletteNV - ref6f2ec732 *C.VkPipelineViewportShadingRateImageStateCreateInfoNV - allocs6f2ec732 interface{} +// IndirectCommandsStreamNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectCommandsStreamNV.html +type IndirectCommandsStreamNV struct { + Buffer Buffer + Offset DeviceSize + refc623636a *C.VkIndirectCommandsStreamNV + allocsc623636a interface{} } -// PhysicalDeviceShadingRateImageFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShadingRateImageFeaturesNV.html -type PhysicalDeviceShadingRateImageFeaturesNV struct { +// IndirectCommandsLayoutTokenNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectCommandsLayoutTokenNV.html +type IndirectCommandsLayoutTokenNV struct { SType StructureType PNext unsafe.Pointer - ShadingRateImage Bool32 - ShadingRateCoarseSampleOrder Bool32 - ref199a921b *C.VkPhysicalDeviceShadingRateImageFeaturesNV - allocs199a921b interface{} + TokenType IndirectCommandsTokenTypeNV + Stream uint32 + Offset uint32 + VertexBindingUnit uint32 + VertexDynamicStride Bool32 + PushconstantPipelineLayout PipelineLayout + PushconstantShaderStageFlags ShaderStageFlags + PushconstantOffset uint32 + PushconstantSize uint32 + IndirectStateFlags IndirectStateFlagsNV + IndexTypeCount uint32 + PIndexTypes []IndexType + PIndexTypeValues []uint32 + ref96f52b76 *C.VkIndirectCommandsLayoutTokenNV + allocs96f52b76 interface{} +} + +// IndirectCommandsLayoutCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkIndirectCommandsLayoutCreateInfoNV.html +type IndirectCommandsLayoutCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + Flags IndirectCommandsLayoutUsageFlagsNV + PipelineBindPoint PipelineBindPoint + TokenCount uint32 + PTokens []IndirectCommandsLayoutTokenNV + StreamCount uint32 + PStreamStrides []uint32 + ref48273185 *C.VkIndirectCommandsLayoutCreateInfoNV + allocs48273185 interface{} } -// PhysicalDeviceShadingRateImagePropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShadingRateImagePropertiesNV.html -type PhysicalDeviceShadingRateImagePropertiesNV struct { - SType StructureType - PNext unsafe.Pointer - ShadingRateTexelSize Extent2D - ShadingRatePaletteSize uint32 - ShadingRateMaxCoarseSamples uint32 - refea059f34 *C.VkPhysicalDeviceShadingRateImagePropertiesNV - allocsea059f34 interface{} +// GeneratedCommandsInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGeneratedCommandsInfoNV.html +type GeneratedCommandsInfoNV struct { + SType StructureType + PNext unsafe.Pointer + PipelineBindPoint PipelineBindPoint + Pipeline Pipeline + IndirectCommandsLayout IndirectCommandsLayoutNV + StreamCount uint32 + PStreams []IndirectCommandsStreamNV + SequencesCount uint32 + PreprocessBuffer Buffer + PreprocessOffset DeviceSize + PreprocessSize DeviceSize + SequencesCountBuffer Buffer + SequencesCountOffset DeviceSize + SequencesIndexBuffer Buffer + SequencesIndexOffset DeviceSize + refc05396ea *C.VkGeneratedCommandsInfoNV + allocsc05396ea interface{} +} + +// GeneratedCommandsMemoryRequirementsInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGeneratedCommandsMemoryRequirementsInfoNV.html +type GeneratedCommandsMemoryRequirementsInfoNV struct { + SType StructureType + PNext unsafe.Pointer + PipelineBindPoint PipelineBindPoint + Pipeline Pipeline + IndirectCommandsLayout IndirectCommandsLayoutNV + MaxSequencesCount uint32 + refe82e5c4c *C.VkGeneratedCommandsMemoryRequirementsInfoNV + allocse82e5c4c interface{} } -// CoarseSampleLocationNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCoarseSampleLocationNV.html -type CoarseSampleLocationNV struct { - PixelX uint32 - PixelY uint32 - Sample uint32 - ref2f447beb *C.VkCoarseSampleLocationNV - allocs2f447beb interface{} +// PhysicalDeviceInheritedViewportScissorFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.html +type PhysicalDeviceInheritedViewportScissorFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + InheritedViewportScissor2D Bool32 + refcec68147 *C.VkPhysicalDeviceInheritedViewportScissorFeaturesNV + allocscec68147 interface{} } -// CoarseSampleOrderCustomNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCoarseSampleOrderCustomNV.html -type CoarseSampleOrderCustomNV struct { - ShadingRate ShadingRatePaletteEntryNV - SampleCount uint32 - SampleLocationCount uint32 - PSampleLocations []CoarseSampleLocationNV - ref4524fa09 *C.VkCoarseSampleOrderCustomNV - allocs4524fa09 interface{} +// CommandBufferInheritanceViewportScissorInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferInheritanceViewportScissorInfoNV.html +type CommandBufferInheritanceViewportScissorInfoNV struct { + SType StructureType + PNext unsafe.Pointer + ViewportScissor2D Bool32 + ViewportDepthCount uint32 + PViewportDepths []Viewport + refc206d63 *C.VkCommandBufferInheritanceViewportScissorInfoNV + allocsc206d63 interface{} } -// PipelineViewportCoarseSampleOrderStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportCoarseSampleOrderStateCreateInfoNV.html -type PipelineViewportCoarseSampleOrderStateCreateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - SampleOrderType CoarseSampleOrderTypeNV - CustomSampleOrderCount uint32 - PCustomSampleOrders []CoarseSampleOrderCustomNV - ref54de8ca6 *C.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV - allocs54de8ca6 interface{} +// PhysicalDeviceTexelBufferAlignmentFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.html +type PhysicalDeviceTexelBufferAlignmentFeatures struct { + SType StructureType + PNext unsafe.Pointer + TexelBufferAlignment Bool32 + ref2c4411b2 *C.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT + allocs2c4411b2 interface{} } -// AccelerationStructureNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAccelerationStructureNVX -type AccelerationStructureNVX C.VkAccelerationStructureNVX - -// GeometryFlagsNVX type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryFlagsNVX -type GeometryFlagsNVX uint32 +// RenderPassTransformBeginInfoQCOM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkRenderPassTransformBeginInfoQCOM.html +type RenderPassTransformBeginInfoQCOM struct { + SType StructureType + PNext unsafe.Pointer + Transform SurfaceTransformFlagBits + ref938e681d *C.VkRenderPassTransformBeginInfoQCOM + allocs938e681d interface{} +} -// GeometryInstanceFlagsNVX type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryInstanceFlagsNVX -type GeometryInstanceFlagsNVX uint32 +// CommandBufferInheritanceRenderPassTransformInfoQCOM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCommandBufferInheritanceRenderPassTransformInfoQCOM.html +type CommandBufferInheritanceRenderPassTransformInfoQCOM struct { + SType StructureType + PNext unsafe.Pointer + Transform SurfaceTransformFlagBits + RenderArea Rect2D + refee6ff04 *C.VkCommandBufferInheritanceRenderPassTransformInfoQCOM + allocsee6ff04 interface{} +} -// BuildAccelerationStructureFlagsNVX type as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBuildAccelerationStructureFlagsNVX -type BuildAccelerationStructureFlagsNVX uint32 +// DeviceMemoryReportFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceMemoryReportFlagsEXT.html +type DeviceMemoryReportFlags uint32 -// RaytracingPipelineCreateInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkRaytracingPipelineCreateInfoNVX -type RaytracingPipelineCreateInfoNVX struct { +// PhysicalDeviceDeviceMemoryReportFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.html +type PhysicalDeviceDeviceMemoryReportFeatures struct { SType StructureType PNext unsafe.Pointer - Flags PipelineCreateFlags - StageCount uint32 - PStages []PipelineShaderStageCreateInfo - PGroupNumbers []uint32 - MaxRecursionDepth uint32 - Layout PipelineLayout - BasePipelineHandle Pipeline - BasePipelineIndex int32 - ref4d91852a *C.VkRaytracingPipelineCreateInfoNVX - allocs4d91852a interface{} + DeviceMemoryReport Bool32 + ref477470f6 *C.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT + allocs477470f6 interface{} +} + +// DeviceMemoryReportCallbackData as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceMemoryReportCallbackDataEXT.html +type DeviceMemoryReportCallbackData struct { + SType StructureType + PNext unsafe.Pointer + Flags DeviceMemoryReportFlags + Type DeviceMemoryReportEventType + MemoryObjectId uint64 + Size DeviceSize + ObjectType ObjectType + ObjectHandle uint64 + HeapIndex uint32 + ref3150dbde *C.VkDeviceMemoryReportCallbackDataEXT + allocs3150dbde interface{} } -// GeometryTrianglesNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryTrianglesNVX -type GeometryTrianglesNVX struct { +// DeviceMemoryReportCallbackFunc type as declared in vulkan/vulkan_core.h:13857 +type DeviceMemoryReportCallbackFunc func(pCallbackData []DeviceMemoryReportCallbackData, pUserData unsafe.Pointer) + +// DeviceDeviceMemoryReportCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceDeviceMemoryReportCreateInfoEXT.html +type DeviceDeviceMemoryReportCreateInfo struct { SType StructureType PNext unsafe.Pointer - VertexData Buffer - VertexOffset DeviceSize - VertexCount uint32 - VertexStride DeviceSize - VertexFormat Format - IndexData Buffer - IndexOffset DeviceSize - IndexCount uint32 - IndexType IndexType - TransformData Buffer - TransformOffset DeviceSize - ref5c3b4de9 *C.VkGeometryTrianglesNVX - allocs5c3b4de9 interface{} -} - -// GeometryAABBNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryAABBNVX -type GeometryAABBNVX struct { - SType StructureType - PNext unsafe.Pointer - AabbData Buffer - NumAABBs uint32 - Stride uint32 - Offset DeviceSize - reff4c42a9d *C.VkGeometryAABBNVX - allocsf4c42a9d interface{} + Flags DeviceMemoryReportFlags + PfnUserCallback DeviceMemoryReportCallbackFunc + PUserData unsafe.Pointer + refe99f2c76 *C.VkDeviceDeviceMemoryReportCreateInfoEXT + allocse99f2c76 interface{} +} + +// PhysicalDeviceRobustness2Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceRobustness2FeaturesEXT.html +type PhysicalDeviceRobustness2Features struct { + SType StructureType + PNext unsafe.Pointer + RobustBufferAccess2 Bool32 + RobustImageAccess2 Bool32 + NullDescriptor Bool32 + refa1d6be35 *C.VkPhysicalDeviceRobustness2FeaturesEXT + allocsa1d6be35 interface{} +} + +// PhysicalDeviceRobustness2Properties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceRobustness2PropertiesEXT.html +type PhysicalDeviceRobustness2Properties struct { + SType StructureType + PNext unsafe.Pointer + RobustStorageBufferAccessSizeAlignment DeviceSize + RobustUniformBufferAccessSizeAlignment DeviceSize + ref82986127 *C.VkPhysicalDeviceRobustness2PropertiesEXT + allocs82986127 interface{} +} + +// SamplerCustomBorderColorCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerCustomBorderColorCreateInfoEXT.html +type SamplerCustomBorderColorCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + CustomBorderColor ClearColorValue + Format Format + refcac2582e *C.VkSamplerCustomBorderColorCreateInfoEXT + allocscac2582e interface{} } -// GeometryDataNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryDataNVX -type GeometryDataNVX struct { - Triangles GeometryTrianglesNVX - Aabbs GeometryAABBNVX - ref3db64dfa *C.VkGeometryDataNVX - allocs3db64dfa interface{} +// PhysicalDeviceCustomBorderColorProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceCustomBorderColorPropertiesEXT.html +type PhysicalDeviceCustomBorderColorProperties struct { + SType StructureType + PNext unsafe.Pointer + MaxCustomBorderColorSamplers uint32 + ref4b62d3cd *C.VkPhysicalDeviceCustomBorderColorPropertiesEXT + allocs4b62d3cd interface{} } -// GeometryNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkGeometryNVX -type GeometryNVX struct { - SType StructureType - PNext unsafe.Pointer - GeometryType GeometryTypeNVX - Geometry GeometryDataNVX - Flags GeometryFlagsNVX - refd01fad9d *C.VkGeometryNVX - allocsd01fad9d interface{} +// PhysicalDeviceCustomBorderColorFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceCustomBorderColorFeaturesEXT.html +type PhysicalDeviceCustomBorderColorFeatures struct { + SType StructureType + PNext unsafe.Pointer + CustomBorderColors Bool32 + CustomBorderColorWithoutFormat Bool32 + ref8a9c96e0 *C.VkPhysicalDeviceCustomBorderColorFeaturesEXT + allocs8a9c96e0 interface{} } -// AccelerationStructureCreateInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAccelerationStructureCreateInfoNVX -type AccelerationStructureCreateInfoNVX struct { +// PhysicalDevicePresentBarrierFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePresentBarrierFeaturesNV.html +type PhysicalDevicePresentBarrierFeaturesNV struct { SType StructureType PNext unsafe.Pointer - Type AccelerationStructureTypeNVX - Flags BuildAccelerationStructureFlagsNVX - CompactedSize DeviceSize - InstanceCount uint32 - GeometryCount uint32 - PGeometries []GeometryNVX - ref1289fd56 *C.VkAccelerationStructureCreateInfoNVX - allocs1289fd56 interface{} + PresentBarrier Bool32 + reff8c28ce8 *C.VkPhysicalDevicePresentBarrierFeaturesNV + allocsf8c28ce8 interface{} } -// BindAccelerationStructureMemoryInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkBindAccelerationStructureMemoryInfoNVX -type BindAccelerationStructureMemoryInfoNVX struct { - SType StructureType - PNext unsafe.Pointer - AccelerationStructure AccelerationStructureNVX - Memory DeviceMemory - MemoryOffset DeviceSize - DeviceIndexCount uint32 - PDeviceIndices []uint32 - refb92eae10 *C.VkBindAccelerationStructureMemoryInfoNVX - allocsb92eae10 interface{} +// SurfaceCapabilitiesPresentBarrierNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSurfaceCapabilitiesPresentBarrierNV.html +type SurfaceCapabilitiesPresentBarrierNV struct { + SType StructureType + PNext unsafe.Pointer + PresentBarrierSupported Bool32 + refb05347b2 *C.VkSurfaceCapabilitiesPresentBarrierNV + allocsb05347b2 interface{} } -// DescriptorAccelerationStructureInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDescriptorAccelerationStructureInfoNVX -type DescriptorAccelerationStructureInfoNVX struct { - SType StructureType - PNext unsafe.Pointer - AccelerationStructureCount uint32 - PAccelerationStructures []AccelerationStructureNVX - refde5f3ba5 *C.VkDescriptorAccelerationStructureInfoNVX - allocsde5f3ba5 interface{} +// SwapchainPresentBarrierCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSwapchainPresentBarrierCreateInfoNV.html +type SwapchainPresentBarrierCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + PresentBarrierEnable Bool32 + ref72c75914 *C.VkSwapchainPresentBarrierCreateInfoNV + allocs72c75914 interface{} } -// AccelerationStructureMemoryRequirementsInfoNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkAccelerationStructureMemoryRequirementsInfoNVX -type AccelerationStructureMemoryRequirementsInfoNVX struct { - SType StructureType - PNext unsafe.Pointer - AccelerationStructure AccelerationStructureNVX - ref212466e8 *C.VkAccelerationStructureMemoryRequirementsInfoNVX - allocs212466e8 interface{} -} +// DeviceDiagnosticsConfigFlagsNV type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceDiagnosticsConfigFlagsNV.html +type DeviceDiagnosticsConfigFlagsNV uint32 -// PhysicalDeviceRaytracingPropertiesNVX as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPhysicalDeviceRaytracingPropertiesNVX -type PhysicalDeviceRaytracingPropertiesNVX struct { +// PhysicalDeviceDiagnosticsConfigFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.html +type PhysicalDeviceDiagnosticsConfigFeaturesNV struct { SType StructureType PNext unsafe.Pointer - ShaderHeaderSize uint32 - MaxRecursionDepth uint32 - MaxGeometryCount uint32 - refd37a6b69 *C.VkPhysicalDeviceRaytracingPropertiesNVX - allocsd37a6b69 interface{} + DiagnosticsConfig Bool32 + refd354d3ba *C.VkPhysicalDeviceDiagnosticsConfigFeaturesNV + allocsd354d3ba interface{} } -// PhysicalDeviceRepresentativeFragmentTestFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.html -type PhysicalDeviceRepresentativeFragmentTestFeaturesNV struct { - SType StructureType - PNext unsafe.Pointer - RepresentativeFragmentTest Bool32 - reff1f69e03 *C.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV - allocsf1f69e03 interface{} +// DeviceDiagnosticsConfigCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceDiagnosticsConfigCreateInfoNV.html +type DeviceDiagnosticsConfigCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + Flags DeviceDiagnosticsConfigFlagsNV + ref856c966a *C.VkDeviceDiagnosticsConfigCreateInfoNV + allocs856c966a interface{} } -// PipelineRepresentativeFragmentTestStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineRepresentativeFragmentTestStateCreateInfoNV.html -type PipelineRepresentativeFragmentTestStateCreateInfoNV struct { - SType StructureType - PNext unsafe.Pointer - RepresentativeFragmentTestEnable Bool32 - ref9c224e21 *C.VkPipelineRepresentativeFragmentTestStateCreateInfoNV - allocs9c224e21 interface{} +// AccelerationStructure as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkAccelerationStructureKHR +type AccelerationStructure C.VkAccelerationStructureKHR + +// PhysicalDeviceDescriptorBufferProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDescriptorBufferPropertiesEXT.html +type PhysicalDeviceDescriptorBufferProperties struct { + SType StructureType + PNext unsafe.Pointer + CombinedImageSamplerDescriptorSingleArray Bool32 + BufferlessPushDescriptors Bool32 + AllowSamplerImageViewPostSubmitCreation Bool32 + DescriptorBufferOffsetAlignment DeviceSize + MaxDescriptorBufferBindings uint32 + MaxResourceDescriptorBufferBindings uint32 + MaxSamplerDescriptorBufferBindings uint32 + MaxEmbeddedImmutableSamplerBindings uint32 + MaxEmbeddedImmutableSamplers uint32 + BufferCaptureReplayDescriptorDataSize uint64 + ImageCaptureReplayDescriptorDataSize uint64 + ImageViewCaptureReplayDescriptorDataSize uint64 + SamplerCaptureReplayDescriptorDataSize uint64 + AccelerationStructureCaptureReplayDescriptorDataSize uint64 + SamplerDescriptorSize uint64 + CombinedImageSamplerDescriptorSize uint64 + SampledImageDescriptorSize uint64 + StorageImageDescriptorSize uint64 + UniformTexelBufferDescriptorSize uint64 + RobustUniformTexelBufferDescriptorSize uint64 + StorageTexelBufferDescriptorSize uint64 + RobustStorageTexelBufferDescriptorSize uint64 + UniformBufferDescriptorSize uint64 + RobustUniformBufferDescriptorSize uint64 + StorageBufferDescriptorSize uint64 + RobustStorageBufferDescriptorSize uint64 + InputAttachmentDescriptorSize uint64 + AccelerationStructureDescriptorSize uint64 + MaxSamplerDescriptorBufferRange DeviceSize + MaxResourceDescriptorBufferRange DeviceSize + SamplerDescriptorBufferAddressSpaceSize DeviceSize + ResourceDescriptorBufferAddressSpaceSize DeviceSize + DescriptorBufferAddressSpaceSize DeviceSize + ref62cc13fb *C.VkPhysicalDeviceDescriptorBufferPropertiesEXT + allocs62cc13fb interface{} +} + +// PhysicalDeviceDescriptorBufferDensityMapProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT.html +type PhysicalDeviceDescriptorBufferDensityMapProperties struct { + SType StructureType + PNext unsafe.Pointer + CombinedImageSamplerDensityMapDescriptorSize uint64 + refb23ce6c9 *C.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT + allocsb23ce6c9 interface{} +} + +// PhysicalDeviceDescriptorBufferFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceDescriptorBufferFeaturesEXT.html +type PhysicalDeviceDescriptorBufferFeatures struct { + SType StructureType + PNext unsafe.Pointer + DescriptorBuffer Bool32 + DescriptorBufferCaptureReplay Bool32 + DescriptorBufferImageLayoutIgnored Bool32 + DescriptorBufferPushDescriptors Bool32 + ref840279e1 *C.VkPhysicalDeviceDescriptorBufferFeaturesEXT + allocs840279e1 interface{} } -// DeviceQueueGlobalPriorityCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueGlobalPriorityCreateInfoEXT.html -type DeviceQueueGlobalPriorityCreateInfo struct { +// DescriptorAddressInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorAddressInfoEXT.html +type DescriptorAddressInfo struct { SType StructureType PNext unsafe.Pointer - GlobalPriority QueueGlobalPriority - ref76356646 *C.VkDeviceQueueGlobalPriorityCreateInfoEXT - allocs76356646 interface{} + Address DeviceAddress + Range DeviceSize + Format Format + ref3f3c750d *C.VkDescriptorAddressInfoEXT + allocs3f3c750d interface{} } -// ImportMemoryHostPointerInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImportMemoryHostPointerInfoEXT.html -type ImportMemoryHostPointerInfo struct { +// DescriptorBufferBindingInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBufferBindingInfoEXT.html +type DescriptorBufferBindingInfo struct { SType StructureType PNext unsafe.Pointer - HandleType ExternalMemoryHandleTypeFlagBits - PHostPointer unsafe.Pointer - reffe09253e *C.VkImportMemoryHostPointerInfoEXT - allocsfe09253e interface{} + Address DeviceAddress + Usage BufferUsageFlags + refbfb2412f *C.VkDescriptorBufferBindingInfoEXT + allocsbfb2412f interface{} } -// MemoryHostPointerProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkMemoryHostPointerPropertiesEXT.html -type MemoryHostPointerProperties struct { +// DescriptorBufferBindingPushDescriptorBufferHandle as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorBufferBindingPushDescriptorBufferHandleEXT.html +type DescriptorBufferBindingPushDescriptorBufferHandle struct { SType StructureType PNext unsafe.Pointer - MemoryTypeBits uint32 - refebf46a84 *C.VkMemoryHostPointerPropertiesEXT - allocsebf46a84 interface{} + Buffer Buffer + ref14f143c5 *C.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT + allocs14f143c5 interface{} } -// PhysicalDeviceExternalMemoryHostProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.html -type PhysicalDeviceExternalMemoryHostProperties struct { - SType StructureType - PNext unsafe.Pointer - MinImportedHostPointerAlignment DeviceSize - ref7f697d15 *C.VkPhysicalDeviceExternalMemoryHostPropertiesEXT - allocs7f697d15 interface{} +// DescriptorData as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorDataEXT.html +const sizeofDescriptorData = unsafe.Sizeof(C.VkDescriptorDataEXT{}) + +type DescriptorData [sizeofDescriptorData]byte + +// DescriptorGetInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDescriptorGetInfoEXT.html +type DescriptorGetInfo struct { + SType StructureType + PNext unsafe.Pointer + Type DescriptorType + Data DescriptorData + ref15e17023 *C.VkDescriptorGetInfoEXT + allocs15e17023 interface{} } -// CalibratedTimestampInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCalibratedTimestampInfoEXT.html -type CalibratedTimestampInfo struct { +// BufferCaptureDescriptorDataInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkBufferCaptureDescriptorDataInfoEXT.html +type BufferCaptureDescriptorDataInfo struct { SType StructureType PNext unsafe.Pointer - TimeDomain TimeDomain - ref5f061d2a *C.VkCalibratedTimestampInfoEXT - allocs5f061d2a interface{} + Buffer Buffer + ref7d170bdd *C.VkBufferCaptureDescriptorDataInfoEXT + allocs7d170bdd interface{} } -// PhysicalDeviceShaderCorePropertiesAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPhysicalDeviceShaderCorePropertiesAMD -type PhysicalDeviceShaderCorePropertiesAMD struct { - SType StructureType - PNext unsafe.Pointer - 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 - refde4b3b09 *C.VkPhysicalDeviceShaderCorePropertiesAMD - allocsde4b3b09 interface{} +// ImageCaptureDescriptorDataInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCaptureDescriptorDataInfoEXT.html +type ImageCaptureDescriptorDataInfo struct { + SType StructureType + PNext unsafe.Pointer + Image Image + refc02d1ea8 *C.VkImageCaptureDescriptorDataInfoEXT + allocsc02d1ea8 interface{} } -// PhysicalDeviceVertexAttributeDivisorProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.html -type PhysicalDeviceVertexAttributeDivisorProperties struct { - SType StructureType - PNext unsafe.Pointer - MaxVertexAttribDivisor uint32 - refbd6b5075 *C.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - allocsbd6b5075 interface{} +// ImageViewCaptureDescriptorDataInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageViewCaptureDescriptorDataInfoEXT.html +type ImageViewCaptureDescriptorDataInfo struct { + SType StructureType + PNext unsafe.Pointer + ImageView ImageView + refe2b761d2 *C.VkImageViewCaptureDescriptorDataInfoEXT + allocse2b761d2 interface{} } -// VertexInputBindingDivisorDescription as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkVertexInputBindingDivisorDescriptionEXT.html -type VertexInputBindingDivisorDescription struct { - Binding uint32 - Divisor uint32 - refd64d4396 *C.VkVertexInputBindingDivisorDescriptionEXT - allocsd64d4396 interface{} +// SamplerCaptureDescriptorDataInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSamplerCaptureDescriptorDataInfoEXT.html +type SamplerCaptureDescriptorDataInfo struct { + SType StructureType + PNext unsafe.Pointer + Sampler Sampler + ref2455cc7e *C.VkSamplerCaptureDescriptorDataInfoEXT + allocs2455cc7e interface{} } -// PipelineVertexInputDivisorStateCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineVertexInputDivisorStateCreateInfoEXT.html -type PipelineVertexInputDivisorStateCreateInfo struct { - SType StructureType - PNext unsafe.Pointer - VertexBindingDivisorCount uint32 - PVertexBindingDivisors []VertexInputBindingDivisorDescription - ref86096bfd *C.VkPipelineVertexInputDivisorStateCreateInfoEXT - allocs86096bfd interface{} +// OpaqueCaptureDescriptorDataCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkOpaqueCaptureDescriptorDataCreateInfoEXT.html +type OpaqueCaptureDescriptorDataCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + OpaqueCaptureDescriptorData unsafe.Pointer + ref48a027d *C.VkOpaqueCaptureDescriptorDataCreateInfoEXT + allocs48a027d interface{} } -// PhysicalDeviceVertexAttributeDivisorFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.html -type PhysicalDeviceVertexAttributeDivisorFeatures struct { - SType StructureType - PNext unsafe.Pointer - VertexAttributeInstanceRateDivisor Bool32 - VertexAttributeInstanceRateZeroDivisor Bool32 - refffe7619a *C.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - allocsffe7619a interface{} +// GraphicsPipelineLibraryFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGraphicsPipelineLibraryFlagsEXT.html +type GraphicsPipelineLibraryFlags uint32 + +// PhysicalDeviceGraphicsPipelineLibraryFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT.html +type PhysicalDeviceGraphicsPipelineLibraryFeatures struct { + SType StructureType + PNext unsafe.Pointer + GraphicsPipelineLibrary Bool32 + ref34a84548 *C.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT + allocs34a84548 interface{} } -// PhysicalDeviceComputeShaderDerivativesFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.html -type PhysicalDeviceComputeShaderDerivativesFeaturesNV struct { - SType StructureType - PNext unsafe.Pointer - ComputeDerivativeGroupQuads Bool32 - ComputeDerivativeGroupLinear Bool32 - reff31d599c *C.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV - allocsf31d599c interface{} +// PhysicalDeviceGraphicsPipelineLibraryProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT.html +type PhysicalDeviceGraphicsPipelineLibraryProperties struct { + SType StructureType + PNext unsafe.Pointer + GraphicsPipelineLibraryFastLinking Bool32 + GraphicsPipelineLibraryIndependentInterpolationDecoration Bool32 + ref3266d876 *C.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT + allocs3266d876 interface{} } -// PhysicalDeviceMeshShaderFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMeshShaderFeaturesNV.html -type PhysicalDeviceMeshShaderFeaturesNV struct { - SType StructureType - PNext unsafe.Pointer - TaskShader Bool32 - MeshShader Bool32 - ref802b98a *C.VkPhysicalDeviceMeshShaderFeaturesNV - allocs802b98a interface{} +// GraphicsPipelineLibraryCreateInfo as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkGraphicsPipelineLibraryCreateInfoEXT.html +type GraphicsPipelineLibraryCreateInfo struct { + SType StructureType + PNext unsafe.Pointer + Flags GraphicsPipelineLibraryFlags + reff164ebfc *C.VkGraphicsPipelineLibraryCreateInfoEXT + allocsf164ebfc interface{} } -// PhysicalDeviceMeshShaderPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceMeshShaderPropertiesNV.html -type PhysicalDeviceMeshShaderPropertiesNV struct { - SType StructureType - PNext unsafe.Pointer - MaxDrawMeshTasksCount uint32 - MaxTaskWorkGroupInvocations uint32 - MaxTaskWorkGroupSize [3]uint32 - MaxTaskTotalMemorySize uint32 - MaxTaskOutputCount uint32 - MaxMeshWorkGroupInvocations uint32 - MaxMeshWorkGroupSize [3]uint32 - MaxMeshTotalMemorySize uint32 - MaxMeshOutputVertices uint32 - MaxMeshOutputPrimitives uint32 - MaxMeshMultiviewViewCount uint32 - MeshOutputPerVertexGranularity uint32 - MeshOutputPerPrimitiveGranularity uint32 - ref2ee3ccb7 *C.VkPhysicalDeviceMeshShaderPropertiesNV - allocs2ee3ccb7 interface{} +// PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD as declared in https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD +type PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD struct { + SType StructureType + PNext unsafe.Pointer + ShaderEarlyAndLateFragmentTests Bool32 + refec282b5f *C.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + allocsec282b5f interface{} } -// DrawMeshTasksIndirectCommandNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDrawMeshTasksIndirectCommandNV.html -type DrawMeshTasksIndirectCommandNV struct { - TaskCount uint32 - FirstTask uint32 - refda6c46ea *C.VkDrawMeshTasksIndirectCommandNV - allocsda6c46ea interface{} +// PhysicalDeviceFragmentShadingRateEnumsFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.html +type PhysicalDeviceFragmentShadingRateEnumsFeaturesNV struct { + SType StructureType + PNext unsafe.Pointer + FragmentShadingRateEnums Bool32 + SupersampleFragmentShadingRates Bool32 + NoInvocationFragmentShadingRates Bool32 + refd295c0e9 *C.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV + allocsd295c0e9 interface{} } -// PhysicalDeviceFragmentShaderBarycentricFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV.html -type PhysicalDeviceFragmentShaderBarycentricFeaturesNV struct { - SType StructureType - PNext unsafe.Pointer - FragmentShaderBarycentric Bool32 - ref191b97c6 *C.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - allocs191b97c6 interface{} +// PhysicalDeviceFragmentShadingRateEnumsPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV.html +type PhysicalDeviceFragmentShadingRateEnumsPropertiesNV struct { + SType StructureType + PNext unsafe.Pointer + MaxFragmentShadingRateInvocationCount SampleCountFlagBits + ref49eae7dc *C.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV + allocs49eae7dc interface{} } -// PhysicalDeviceShaderImageFootprintFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceShaderImageFootprintFeaturesNV.html -type PhysicalDeviceShaderImageFootprintFeaturesNV struct { - SType StructureType - PNext unsafe.Pointer - ImageFootprint Bool32 - ref9d61e1b2 *C.VkPhysicalDeviceShaderImageFootprintFeaturesNV - allocs9d61e1b2 interface{} +// PipelineFragmentShadingRateEnumStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineFragmentShadingRateEnumStateCreateInfoNV.html +type PipelineFragmentShadingRateEnumStateCreateInfoNV struct { + SType StructureType + PNext unsafe.Pointer + ShadingRateType FragmentShadingRateTypeNV + ShadingRate FragmentShadingRateNV + CombinerOps [2]FragmentShadingRateCombinerOp + ref82a7e17b *C.VkPipelineFragmentShadingRateEnumStateCreateInfoNV + allocs82a7e17b interface{} } -// PipelineViewportExclusiveScissorStateCreateInfoNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPipelineViewportExclusiveScissorStateCreateInfoNV.html -type PipelineViewportExclusiveScissorStateCreateInfoNV struct { +// PhysicalDeviceYcbcr2Plane444FormatsFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.html +type PhysicalDeviceYcbcr2Plane444FormatsFeatures struct { SType StructureType PNext unsafe.Pointer - ExclusiveScissorCount uint32 - PExclusiveScissors []Rect2D - refa8715ba6 *C.VkPipelineViewportExclusiveScissorStateCreateInfoNV - allocsa8715ba6 interface{} + Ycbcr2plane444Formats Bool32 + reff075d674 *C.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT + allocsf075d674 interface{} } -// PhysicalDeviceExclusiveScissorFeaturesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceExclusiveScissorFeaturesNV.html -type PhysicalDeviceExclusiveScissorFeaturesNV struct { - SType StructureType - PNext unsafe.Pointer - ExclusiveScissor Bool32 - ref52c9fcfc *C.VkPhysicalDeviceExclusiveScissorFeaturesNV - allocs52c9fcfc interface{} +// PhysicalDeviceFragmentDensityMap2Features as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.html +type PhysicalDeviceFragmentDensityMap2Features struct { + SType StructureType + PNext unsafe.Pointer + FragmentDensityMapDeferred Bool32 + ref30a59f8 *C.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT + allocs30a59f8 interface{} } -// QueueFamilyCheckpointPropertiesNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueueFamilyCheckpointPropertiesNV.html -type QueueFamilyCheckpointPropertiesNV struct { +// PhysicalDeviceFragmentDensityMap2Properties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceFragmentDensityMap2PropertiesEXT.html +type PhysicalDeviceFragmentDensityMap2Properties struct { + SType StructureType + PNext unsafe.Pointer + SubsampledLoads Bool32 + SubsampledCoarseReconstructionEarlyAccess Bool32 + MaxSubsampledArrayLayers uint32 + MaxDescriptorSetSubsampledSamplers uint32 + refc2a21d23 *C.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT + allocsc2a21d23 interface{} +} + +// CopyCommandTransformInfoQCOM as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCopyCommandTransformInfoQCOM.html +type CopyCommandTransformInfoQCOM struct { + SType StructureType + PNext unsafe.Pointer + Transform SurfaceTransformFlagBits + refeaa6777c *C.VkCopyCommandTransformInfoQCOM + allocseaa6777c interface{} +} + +// ImageCompressionFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCompressionFlagsEXT.html +type ImageCompressionFlags uint32 + +// ImageCompressionFixedRateFlags type as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCompressionFixedRateFlagsEXT.html +type ImageCompressionFixedRateFlags uint32 + +// PhysicalDeviceImageCompressionControlFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceImageCompressionControlFeaturesEXT.html +type PhysicalDeviceImageCompressionControlFeatures struct { + SType StructureType + PNext unsafe.Pointer + ImageCompressionControl Bool32 + ref25740c12 *C.VkPhysicalDeviceImageCompressionControlFeaturesEXT + allocs25740c12 interface{} +} + +// ImageCompressionControl as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCompressionControlEXT.html +type ImageCompressionControl struct { SType StructureType PNext unsafe.Pointer - CheckpointExecutionStageMask PipelineStageFlags - ref351f58c6 *C.VkQueueFamilyCheckpointPropertiesNV - allocs351f58c6 interface{} + Flags ImageCompressionFlags + CompressionControlPlaneCount uint32 + PFixedRateFlags []ImageCompressionFixedRateFlags + ref37cbe96e *C.VkImageCompressionControlEXT + allocs37cbe96e interface{} } -// CheckpointDataNV as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkCheckpointDataNV.html -type CheckpointDataNV struct { +// SubresourceLayout2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkSubresourceLayout2EXT.html +type SubresourceLayout2 struct { SType StructureType PNext unsafe.Pointer - Stage PipelineStageFlagBits - PCheckpointMarker unsafe.Pointer - refd1c9224b *C.VkCheckpointDataNV - allocsd1c9224b interface{} + SubresourceLayout SubresourceLayout + ref63424f18 *C.VkSubresourceLayout2EXT + allocs63424f18 interface{} } -// PhysicalDevicePCIBusInfoProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevicePCIBusInfoPropertiesEXT.html -type PhysicalDevicePCIBusInfoProperties struct { +// ImageSubresource2 as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageSubresource2EXT.html +type ImageSubresource2 struct { + SType StructureType + PNext unsafe.Pointer + ImageSubresource ImageSubresource + ref9782acd8 *C.VkImageSubresource2EXT + allocs9782acd8 interface{} +} + +// ImageCompressionProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageCompressionPropertiesEXT.html +type ImageCompressionProperties struct { + SType StructureType + PNext unsafe.Pointer + ImageCompressionFlags ImageCompressionFlags + ImageCompressionFixedRateFlags ImageCompressionFixedRateFlags + ref6a3ccfa2 *C.VkImageCompressionPropertiesEXT + allocs6a3ccfa2 interface{} +} + +// PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.html +type PhysicalDeviceAttachmentFeedbackLoopLayoutFeatures struct { + SType StructureType + PNext unsafe.Pointer + AttachmentFeedbackLoopLayout Bool32 + reff251dd56 *C.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT + allocsf251dd56 interface{} +} + +// PhysicalDevice4444FormatsFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevice4444FormatsFeaturesEXT.html +type PhysicalDevice4444FormatsFeatures struct { SType StructureType PNext unsafe.Pointer - PciDomain uint16 - PciBus byte - PciDevice byte - PciFunction byte - refdd9947ff *C.VkPhysicalDevicePCIBusInfoPropertiesEXT - allocsdd9947ff interface{} + FormatA4R4G4B4 Bool32 + FormatA4B4G4R4 Bool32 + ref51c957d0 *C.VkPhysicalDevice4444FormatsFeaturesEXT + allocs51c957d0 interface{} +} + +// PhysicalDevicePortabilitySubsetFeatures as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDevicePortabilitySubsetFeaturesKHR +type PhysicalDevicePortabilitySubsetFeatures struct { + SType StructureType + PNext unsafe.Pointer + ConstantAlphaColorBlendFactors Bool32 + Events Bool32 + ImageViewFormatReinterpretation Bool32 + ImageViewFormatSwizzle Bool32 + ImageView2DOn3DImage Bool32 + MultisampleArrayImage Bool32 + MutableComparisonSamplers Bool32 + PointPolygons Bool32 + SamplerMipLodBias Bool32 + SeparateStencilMaskRef Bool32 + ShaderSampleRateInterpolationFunctions Bool32 + TessellationIsolines Bool32 + TessellationPointMode Bool32 + TriangleFans Bool32 + VertexAttributeAccessBeyondStride Bool32 + ref1a31db1e *C.VkPhysicalDevicePortabilitySubsetFeaturesKHR + allocs1a31db1e interface{} +} + +// PhysicalDevicePortabilitySubsetProperties as declared in https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkPhysicalDevicePortabilitySubsetPropertiesKHR +type PhysicalDevicePortabilitySubsetProperties struct { + SType StructureType + PNext unsafe.Pointer + MinVertexInputBindingStrideAlignment uint32 + ref8babbd5c *C.VkPhysicalDevicePortabilitySubsetPropertiesKHR + allocs8babbd5c interface{} } diff --git a/version.go b/version.go new file mode 100644 index 0000000..84b41e2 --- /dev/null +++ b/version.go @@ -0,0 +1,9 @@ +// WARNING: auto-generated by Makefile release target -- run 'make release' to update + +package vulkan + +const ( + GoVersion = "v1.0.6" + GitCommit = "7e2340c" // the commit JUST BEFORE the release + VersionDate = "2023-03-10 21:29" // UTC +) diff --git a/vk_bridge.c b/vk_bridge.c index 56151d0..394e5d9 100644 --- a/vk_bridge.c +++ b/vk_bridge.c @@ -1311,41 +1311,41 @@ VkResult callVkCreateIOSSurfaceMVK( return vgo_vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface); } -VkResult callVkActivateMoltenVKLicenseMVK( - const char* licenseID, - const char* licenseKey, - VkBool32 acceptLicenseTermsAndConditions) { - return vgo_vkActivateMoltenVKLicenseMVK(licenseID, licenseKey, acceptLicenseTermsAndConditions); -} +// VkResult callVkActivateMoltenVKLicenseMVK( +// const char* licenseID, +// const char* licenseKey, +// VkBool32 acceptLicenseTermsAndConditions) { +// return vgo_vkActivateMoltenVKLicenseMVK(licenseID, licenseKey, acceptLicenseTermsAndConditions); +// } -VkResult callVkActivateMoltenVKLicensesMVK() { - return vgo_vkActivateMoltenVKLicensesMVK(); -} +// VkResult callVkActivateMoltenVKLicensesMVK() { +// return vgo_vkActivateMoltenVKLicensesMVK(); +// } VkResult callVkGetMoltenVKDeviceConfigurationMVK( VkDevice device, - MVKDeviceConfiguration* pConfiguration) { - return vgo_vkGetMoltenVKDeviceConfigurationMVK(device, pConfiguration); + MVKConfiguration* pConfiguration) { + return vgo_vkGetMoltenVKDeviceConfigurationMVK(device, pConfiguration, sizeof(MVKConfiguration)); } VkResult callVkSetMoltenVKDeviceConfigurationMVK( VkDevice device, - MVKDeviceConfiguration* pConfiguration) { - return vgo_vkSetMoltenVKDeviceConfigurationMVK(device, pConfiguration); + MVKConfiguration* pConfiguration) { + return vgo_vkSetMoltenVKDeviceConfigurationMVK(device, pConfiguration, sizeof(MVKConfiguration)); } VkResult callVkGetPhysicalDeviceMetalFeaturesMVK( VkPhysicalDevice physicalDevice, MVKPhysicalDeviceMetalFeatures* pMetalFeatures) { - return vgo_vkGetPhysicalDeviceMetalFeaturesMVK(physicalDevice, pMetalFeatures); + return vgo_vkGetPhysicalDeviceMetalFeaturesMVK(physicalDevice, pMetalFeatures, sizeof(MVKConfiguration)); } -VkResult callVkGetSwapchainPerformanceMVK( - VkDevice device, - VkSwapchainKHR swapchain, - MVKSwapchainPerformance* pSwapchainPerf) { - return vgo_vkGetSwapchainPerformanceMVK(device, swapchain, pSwapchainPerf); -} +// VkResult callVkGetSwapchainPerformanceMVK( +// VkDevice device, +// VkSwapchainKHR swapchain, +// MVKSwapchainPerformance* pSwapchainPerf) { +// return vgo_vkGetSwapchainPerformanceMVK(device, swapchain, pSwapchainPerf); +// } #endif /* VK_USE_PLATFORM_IOS_MVK */ #ifdef VK_USE_PLATFORM_WIN32_KHR diff --git a/vk_bridge.h b/vk_bridge.h index cf9cffa..a69351b 100644 --- a/vk_bridge.h +++ b/vk_bridge.h @@ -962,29 +962,29 @@ VkResult callVkCreateIOSSurfaceMVK( const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); -VkResult callVkActivateMoltenVKLicenseMVK( - const char* licenseID, - const char* licenseKey, - VkBool32 acceptLicenseTermsAndConditions); - -VkResult callVkActivateMoltenVKLicensesMVK(); +// VkResult callVkActivateMoltenVKLicenseMVK( +// const char* licenseID, +// const char* licenseKey, +// VkBool32 acceptLicenseTermsAndConditions); +// +// VkResult callVkActivateMoltenVKLicensesMVK(); VkResult callVkGetMoltenVKDeviceConfigurationMVK( VkDevice device, - MVKDeviceConfiguration* pConfiguration); + MVKConfiguration* pConfiguration); VkResult callVkSetMoltenVKDeviceConfigurationMVK( VkDevice device, - MVKDeviceConfiguration* pConfiguration); + MVKConfiguration* pConfiguration); VkResult callVkGetPhysicalDeviceMetalFeaturesMVK( VkPhysicalDevice physicalDevice, MVKPhysicalDeviceMetalFeatures* pMetalFeatures); -VkResult callVkGetSwapchainPerformanceMVK( - VkDevice device, - VkSwapchainKHR swapchain, - MVKSwapchainPerformance* pSwapchainPerf); +// VkResult callVkGetSwapchainPerformanceMVK( +// VkDevice device, +// VkSwapchainKHR swapchain, +// MVKSwapchainPerformance* pSwapchainPerf); #endif /* VK_USE_PLATFORM_IOS_MVK */ #ifdef VK_USE_PLATFORM_WIN32_KHR diff --git a/vk_debug_android.go b/vk_debug_android.go index 70c723c..fc0e738 100644 --- a/vk_debug_android.go +++ b/vk_debug_android.go @@ -1,3 +1,4 @@ +//go:build android // +build android package vulkan diff --git a/vk_null32.go b/vk_null32.go index cc78ec0..6dfc365 100644 --- a/vk_null32.go +++ b/vk_null32.go @@ -1,3 +1,4 @@ +//go:build 386 || arm // +build 386 arm package vulkan diff --git a/vk_null64.go b/vk_null64.go index 0123682..09981a6 100644 --- a/vk_null64.go +++ b/vk_null64.go @@ -1,3 +1,4 @@ +//go:build !386 && !arm // +build !386,!arm package vulkan diff --git a/vk_wrapper.h b/vk_wrapper.h index 0df8b69..cc5ffee 100644 --- a/vk_wrapper.h +++ b/vk_wrapper.h @@ -22,6 +22,7 @@ extern PFN_vkGetPhysicalDeviceFeatures vgo_vkGetPhysicalDeviceFeatures; extern PFN_vkGetPhysicalDeviceFormatProperties vgo_vkGetPhysicalDeviceFormatProperties; extern PFN_vkGetPhysicalDeviceImageFormatProperties vgo_vkGetPhysicalDeviceImageFormatProperties; extern PFN_vkGetPhysicalDeviceProperties vgo_vkGetPhysicalDeviceProperties; +extern PFN_vkGetPhysicalDeviceProperties2 vgo_vkGetPhysicalDeviceProperties2; extern PFN_vkGetPhysicalDeviceQueueFamilyProperties vgo_vkGetPhysicalDeviceQueueFamilyProperties; extern PFN_vkGetPhysicalDeviceMemoryProperties vgo_vkGetPhysicalDeviceMemoryProperties; extern PFN_vkGetInstanceProcAddr vgo_vkGetInstanceProcAddr; @@ -211,12 +212,12 @@ extern PFN_vkCreateAndroidSurfaceKHR vgo_vkCreateAndroidSurfaceKHR; #ifdef VK_USE_PLATFORM_IOS_MVK // VK_MVK_ios_surface extern PFN_vkCreateIOSSurfaceMVK vgo_vkCreateIOSSurfaceMVK; -extern PFN_vkActivateMoltenVKLicenseMVK vgo_vkActivateMoltenVKLicenseMVK; -extern PFN_vkActivateMoltenVKLicensesMVK vgo_vkActivateMoltenVKLicensesMVK; -extern PFN_vkGetMoltenVKDeviceConfigurationMVK vgo_vkGetMoltenVKDeviceConfigurationMVK; -extern PFN_vkSetMoltenVKDeviceConfigurationMVK vgo_vkSetMoltenVKDeviceConfigurationMVK; +// extern PFN_vkActivateMoltenVKLicenseMVK vgo_vkActivateMoltenVKLicenseMVK; +// extern PFN_vkActivateMoltenVKLicensesMVK vgo_vkActivateMoltenVKLicensesMVK; +extern PFN_vkGetMoltenVKConfigurationMVK vgo_vkGetMoltenVKDeviceConfigurationMVK; +extern PFN_vkSetMoltenVKConfigurationMVK vgo_vkSetMoltenVKDeviceConfigurationMVK; extern PFN_vkGetPhysicalDeviceMetalFeaturesMVK vgo_vkGetPhysicalDeviceMetalFeaturesMVK; -extern PFN_vkGetSwapchainPerformanceMVK vgo_vkGetSwapchainPerformanceMVK; +// extern PFN_vkGetSwapchainPerformanceMVK vgo_vkGetSwapchainPerformanceMVK; // vkGetInstanceProcAddr left there so the linker would link MoltenVK extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; #endif diff --git a/vk_wrapper_android.c b/vk_wrapper_android.c index 7e60c5e..0a8aab9 100644 --- a/vk_wrapper_android.c +++ b/vk_wrapper_android.c @@ -6,6 +6,11 @@ // No-op on Android, get the ProcAddr in vkInit() void setProcAddr(void* getProcAddr) {} +// no-op?? +void setDefaultProcAddr() { + +} + int isProcAddrSet() { return 1; } diff --git a/vk_wrapper_ios.m b/vk_wrapper_ios.m index 1679956..0a6fc6e 100644 --- a/vk_wrapper_ios.m +++ b/vk_wrapper_ios.m @@ -7,6 +7,8 @@ // No-op on iOS, get the ProcAddr in vkInit() void setProcAddr(void* getProcAddr) {} +void setDefaultProcAddr(void* getProcAddr) {} + int isProcAddrSet() { return 1; } @@ -201,12 +203,12 @@ int vkInitInstance(VkInstance instance) { #ifdef VK_USE_PLATFORM_IOS_MVK vgo_vkCreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)(vgo_vkGetInstanceProcAddr(instance, "vkCreateIOSSurfaceMVK")); - vgo_vkActivateMoltenVKLicenseMVK = (PFN_vkActivateMoltenVKLicenseMVK)(vgo_vkGetInstanceProcAddr(instance, "vkActivateMoltenVKLicenseMVK")); - vgo_vkActivateMoltenVKLicensesMVK = (PFN_vkActivateMoltenVKLicensesMVK)(vgo_vkGetInstanceProcAddr(instance, "vkActivateMoltenVKLicensesMVK")); - vgo_vkGetMoltenVKDeviceConfigurationMVK = (PFN_vkGetMoltenVKDeviceConfigurationMVK)(vgo_vkGetInstanceProcAddr(instance, "vkGetMoltenVKDeviceConfigurationMVK")); - vgo_vkSetMoltenVKDeviceConfigurationMVK = (PFN_vkSetMoltenVKDeviceConfigurationMVK)(vgo_vkGetInstanceProcAddr(instance, "vkSetMoltenVKDeviceConfigurationMVK")); + // vgo_vkActivateMoltenVKLicenseMVK = (PFN_vkActivateMoltenVKLicenseMVK)(vgo_vkGetInstanceProcAddr(instance, "vkActivateMoltenVKLicenseMVK")); + // vgo_vkActivateMoltenVKLicensesMVK = (PFN_vkActivateMoltenVKLicensesMVK)(vgo_vkGetInstanceProcAddr(instance, "vkActivateMoltenVKLicensesMVK")); + vgo_vkGetMoltenVKDeviceConfigurationMVK = (PFN_vkGetMoltenVKConfigurationMVK)(vgo_vkGetInstanceProcAddr(instance, "vkGetMoltenVKConfigurationMVK")); + vgo_vkSetMoltenVKDeviceConfigurationMVK = (PFN_vkSetMoltenVKConfigurationMVK)(vgo_vkGetInstanceProcAddr(instance, "vkSetMoltenVKConfigurationMVK")); vgo_vkGetPhysicalDeviceMetalFeaturesMVK = (PFN_vkGetPhysicalDeviceMetalFeaturesMVK)(vgo_vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMetalFeaturesMVK")); - vgo_vkGetSwapchainPerformanceMVK = (PFN_vkGetSwapchainPerformanceMVK)(vgo_vkGetInstanceProcAddr(instance, "vkGetSwapchainPerformanceMVK")); + // vgo_vkGetSwapchainPerformanceMVK = (PFN_vkGetSwapchainPerformanceMVK)(vgo_vkGetInstanceProcAddr(instance, "vkGetSwapchainPerformanceMVK")); #endif #ifdef VK_USE_PLATFORM_WIN32_KHR @@ -378,12 +380,12 @@ int vkInitInstance(VkInstance instance) { #ifdef VK_USE_PLATFORM_IOS_MVK PFN_vkCreateIOSSurfaceMVK vgo_vkCreateIOSSurfaceMVK; -PFN_vkActivateMoltenVKLicenseMVK vgo_vkActivateMoltenVKLicenseMVK; -PFN_vkActivateMoltenVKLicensesMVK vgo_vkActivateMoltenVKLicensesMVK; -PFN_vkGetMoltenVKDeviceConfigurationMVK vgo_vkGetMoltenVKDeviceConfigurationMVK; -PFN_vkSetMoltenVKDeviceConfigurationMVK vgo_vkSetMoltenVKDeviceConfigurationMVK; +// PFN_vkActivateMoltenVKLicenseMVK vgo_vkActivateMoltenVKLicenseMVK; +// PFN_vkActivateMoltenVKLicensesMVK vgo_vkActivateMoltenVKLicensesMVK; +PFN_vkGetMoltenVKConfigurationMVK vgo_vkGetMoltenVKDeviceConfigurationMVK; +PFN_vkSetMoltenVKConfigurationMVK vgo_vkSetMoltenVKDeviceConfigurationMVK; PFN_vkGetPhysicalDeviceMetalFeaturesMVK vgo_vkGetPhysicalDeviceMetalFeaturesMVK; -PFN_vkGetSwapchainPerformanceMVK vgo_vkGetSwapchainPerformanceMVK; +// PFN_vkGetSwapchainPerformanceMVK vgo_vkGetSwapchainPerformanceMVK; void __link_moltenvk() { vkGetInstanceProcAddr(NULL, NULL); } #endif diff --git a/vulkan.go b/vulkan.go index a25c62f..8e96b50 100644 --- a/vulkan.go +++ b/vulkan.go @@ -1,6 +1,6 @@ // THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS. -// WARNING: This file has automatically been generated on Mon, 15 Oct 2018 01:04:16 +07. +// WARNING: This file has automatically been generated on Fri, 10 Feb 2023 11:56:02 PST. // Code generated by https://git.io/c-for-go. DO NOT EDIT. package vulkan @@ -8,6 +8,7 @@ package vulkan /* #cgo CFLAGS: -I. -DVK_NO_PROTOTYPES #include "vulkan/vulkan.h" +#include "vulkan/vulkan_beta.h" #include "vk_wrapper.h" #include "vk_bridge.h" #include @@ -472,7 +473,7 @@ func DestroyQueryPool(device Device, queryPool QueryPool, pAllocator *Allocation } // GetQueryPoolResults function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetQueryPoolResults.html -func GetQueryPoolResults(device Device, queryPool QueryPool, firstQuery uint32, queryCount uint32, dataSize uint, pData unsafe.Pointer, stride DeviceSize, flags QueryResultFlags) Result { +func GetQueryPoolResults(device Device, queryPool QueryPool, firstQuery uint32, queryCount uint32, dataSize uint64, pData unsafe.Pointer, stride DeviceSize, flags QueryResultFlags) Result { cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown cqueryPool, _ := *(*C.VkQueryPool)(unsafe.Pointer(&queryPool)), cgoAllocsUnknown cfirstQuery, _ := (C.uint32_t)(firstQuery), cgoAllocsUnknown @@ -610,7 +611,7 @@ func DestroyPipelineCache(device Device, pipelineCache PipelineCache, pAllocator } // GetPipelineCacheData function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetPipelineCacheData.html -func GetPipelineCacheData(device Device, pipelineCache PipelineCache, pDataSize *uint, pData unsafe.Pointer) Result { +func GetPipelineCacheData(device Device, pipelineCache PipelineCache, pDataSize *uint64, pData unsafe.Pointer) Result { cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown cpipelineCache, _ := *(*C.VkPipelineCache)(unsafe.Pointer(&pipelineCache)), cgoAllocsUnknown cpDataSize, _ := (*C.size_t)(unsafe.Pointer(pDataSize)), cgoAllocsUnknown @@ -1567,7 +1568,7 @@ func DestroyDebugReportCallback(instance Instance, callback DebugReportCallback, } // DebugReportMessage function as declared in https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkDebugReportMessageEXT.html -func DebugReportMessage(instance Instance, flags DebugReportFlags, objectType DebugReportObjectType, object uint64, location uint, messageCode int32, pLayerPrefix string, pMessage string) { +func DebugReportMessage(instance Instance, flags DebugReportFlags, objectType DebugReportObjectType, object uint64, location uint64, messageCode int32, pLayerPrefix string, pMessage string) { cinstance, _ := *(*C.VkInstance)(unsafe.Pointer(&instance)), cgoAllocsUnknown cflags, _ := (C.VkDebugReportFlagsEXT)(flags), cgoAllocsUnknown cobjectType, _ := (C.VkDebugReportObjectTypeEXT)(objectType), cgoAllocsUnknown diff --git a/vulkan.yml b/vulkan.yml index 927d964..3e1e8e1 100644 --- a/vulkan.yml +++ b/vulkan.yml @@ -5,6 +5,7 @@ GENERATOR: PackageLicense: "THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS." Includes: - vulkan/vulkan.h + - vulkan/vulkan_beta.h - vk_wrapper.h - vk_bridge.h FlagGroups: @@ -12,17 +13,19 @@ GENERATOR: "-I.", "-DVK_NO_PROTOTYPES", ]} - + PARSER: - IncludePaths: [/usr/include] + IncludePaths: [/usr/local/include, /usr/local/stdinclude] # IncludePaths: [windows/, /usr/include] SourcesPaths: - vulkan/vulkan.h + - vulkan/vulkan_beta.h - vk_wrapper.h - vk_bridge.h # - moltenVK/vk_mvk_moltenvk.h Defines: VK_NO_PROTOTYPES: 1 + VK_ENABLE_BETA_EXTENSIONS: 1 VK_USE_PLATFORM_ANDROID_KHR: null VK_USE_PLATFORM_WIN32_KHR: null VK_USE_PLATFORM_IOS_MVK: null @@ -38,6 +41,8 @@ TRANSLATOR: # callbacks (no allocation callbacks cos it's dumb) - {action: accept, from: PFN_vkDebugReportCallback} - {action: replace, from: PFN_vkDebugReportCallback, to: DebugReportCallbackFunc} + - {action: accept, from: PFN_vkDeviceMemoryReportCallback} + - {action: replace, from: PFN_vkDeviceMemoryReportCallback, to: DeviceMemoryReportCallbackFunc} - {action: ignore, from: DebugUtilsMessenger} # these in global section so doc will work - {action: accept, from: ^callVk} @@ -56,6 +61,7 @@ TRANSLATOR: - {transform: lower} - {action: accept, from: "(?i)^VK_"} - {action: replace, from: "(?i)^VK_", to: "_"} + - {action: replace, from: PipelineCacheHeaderVersionOne, to: PipelineCacheHeaderVersion1} - {load: snakecase} private: - {transform: unexport} diff --git a/vulkan/vk_enum_string_helper.h b/vulkan/vk_enum_string_helper.h new file mode 100644 index 0000000..ff6ab7e --- /dev/null +++ b/vulkan/vk_enum_string_helper.h @@ -0,0 +1,10830 @@ +// *** THIS FILE IS GENERATED - DO NOT EDIT *** +// See helper_file_generator.py for modifications + + +/*************************************************************************** + * + * Copyright (c) 2015-2023 The Khronos Group Inc. + * Copyright (c) 2015-2023 Valve Corporation + * Copyright (c) 2015-2023 LunarG, Inc. + * Copyright (c) 2015-2023 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Author: Mark Lobodzinski + * Author: Courtney Goeltzenleuchter + * Author: Tobin Ehlis + * Author: Chris Forbes + * Author: John Zulauf + * Author: Tony Barbour + * + ****************************************************************************/ + + +#pragma once +#ifdef _MSC_VER +#pragma warning( disable : 4065 ) +#endif + +#include +#include + + +static inline const char* string_VkResult(VkResult input_value) +{ + switch (input_value) + { + case VK_ERROR_COMPRESSION_EXHAUSTED_EXT: + return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT"; + case VK_ERROR_DEVICE_LOST: + return "VK_ERROR_DEVICE_LOST"; + case VK_ERROR_EXTENSION_NOT_PRESENT: + return "VK_ERROR_EXTENSION_NOT_PRESENT"; + case VK_ERROR_FEATURE_NOT_PRESENT: + return "VK_ERROR_FEATURE_NOT_PRESENT"; + case VK_ERROR_FORMAT_NOT_SUPPORTED: + return "VK_ERROR_FORMAT_NOT_SUPPORTED"; + case VK_ERROR_FRAGMENTATION: + return "VK_ERROR_FRAGMENTATION"; + case VK_ERROR_FRAGMENTED_POOL: + return "VK_ERROR_FRAGMENTED_POOL"; + case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT: + return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT"; + case VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR: + return "VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR"; + case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR: + return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR"; + case VK_ERROR_INCOMPATIBLE_DRIVER: + return "VK_ERROR_INCOMPATIBLE_DRIVER"; + case VK_ERROR_INITIALIZATION_FAILED: + return "VK_ERROR_INITIALIZATION_FAILED"; + case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT: + return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT"; + case VK_ERROR_INVALID_EXTERNAL_HANDLE: + return "VK_ERROR_INVALID_EXTERNAL_HANDLE"; + case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS: + return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS"; + case VK_ERROR_INVALID_SHADER_NV: + return "VK_ERROR_INVALID_SHADER_NV"; + case VK_ERROR_LAYER_NOT_PRESENT: + return "VK_ERROR_LAYER_NOT_PRESENT"; + case VK_ERROR_MEMORY_MAP_FAILED: + return "VK_ERROR_MEMORY_MAP_FAILED"; + case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR: + return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR"; + case VK_ERROR_NOT_PERMITTED_KHR: + return "VK_ERROR_NOT_PERMITTED_KHR"; + case VK_ERROR_OUT_OF_DATE_KHR: + return "VK_ERROR_OUT_OF_DATE_KHR"; + case VK_ERROR_OUT_OF_DEVICE_MEMORY: + return "VK_ERROR_OUT_OF_DEVICE_MEMORY"; + case VK_ERROR_OUT_OF_HOST_MEMORY: + return "VK_ERROR_OUT_OF_HOST_MEMORY"; + case VK_ERROR_OUT_OF_POOL_MEMORY: + return "VK_ERROR_OUT_OF_POOL_MEMORY"; + case VK_ERROR_SURFACE_LOST_KHR: + return "VK_ERROR_SURFACE_LOST_KHR"; + case VK_ERROR_TOO_MANY_OBJECTS: + return "VK_ERROR_TOO_MANY_OBJECTS"; + case VK_ERROR_UNKNOWN: + return "VK_ERROR_UNKNOWN"; + case VK_ERROR_VALIDATION_FAILED_EXT: + return "VK_ERROR_VALIDATION_FAILED_EXT"; + case VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR: + return "VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR"; + case VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR: + return "VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR"; + case VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR: + return "VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR"; + case VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR: + return "VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR"; + case VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR: + return "VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR"; + case VK_EVENT_RESET: + return "VK_EVENT_RESET"; + case VK_EVENT_SET: + return "VK_EVENT_SET"; + case VK_INCOMPLETE: + return "VK_INCOMPLETE"; + case VK_NOT_READY: + return "VK_NOT_READY"; + case VK_OPERATION_DEFERRED_KHR: + return "VK_OPERATION_DEFERRED_KHR"; + case VK_OPERATION_NOT_DEFERRED_KHR: + return "VK_OPERATION_NOT_DEFERRED_KHR"; + case VK_PIPELINE_COMPILE_REQUIRED: + return "VK_PIPELINE_COMPILE_REQUIRED"; + case VK_SUBOPTIMAL_KHR: + return "VK_SUBOPTIMAL_KHR"; + case VK_SUCCESS: + return "VK_SUCCESS"; + case VK_THREAD_DONE_KHR: + return "VK_THREAD_DONE_KHR"; + case VK_THREAD_IDLE_KHR: + return "VK_THREAD_IDLE_KHR"; + case VK_TIMEOUT: + return "VK_TIMEOUT"; + default: + return "Unhandled VkResult"; + } +} + +static inline const char* string_VkStructureType(VkStructureType input_value) +{ + switch (input_value) + { + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR"; + case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: + return "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC"; + case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID: + return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID"; + case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: + return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"; + case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID: + return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"; + case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: + return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"; + case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_APPLICATION_INFO: + return "VK_STRUCTURE_TYPE_APPLICATION_INFO"; + case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2: + return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2"; + case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: + return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT"; + case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2: + return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2"; + case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: + return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT"; + case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: + return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"; + case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV: + return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"; + case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: + return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"; + case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO: + return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"; + case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: + return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"; + case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO: + return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"; + case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: + return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"; + case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: + return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"; + case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO: + return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"; + case VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR: + return "VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR"; + case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2: + return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2"; + case VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: + return "VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"; + case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA: + return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA"; + case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_BUFFER_COPY_2: + return "VK_STRUCTURE_TYPE_BUFFER_COPY_2"; + case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO: + return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"; + case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO: + return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO"; + case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2: + return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2"; + case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: + return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"; + case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2: + return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2"; + case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2: + return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"; + case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: + return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO"; + case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO: + return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"; + case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT: + return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"; + case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV: + return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV"; + case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV: + return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO"; + case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO: + return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"; + case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT: + return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"; + case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR: + return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR"; + case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR: + return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"; + case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2: + return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2"; + case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2: + return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2"; + case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: + return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"; + case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET: + return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"; + case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2: + return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2"; + case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2: + return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2"; + case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR: + return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"; + case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT: + return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT"; + case VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT: + return "VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT"; + case VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT: + return "VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT"; + case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX: + return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"; + case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX: + return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"; + case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX: + return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"; + case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR: + return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR"; + case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: + return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"; + case VK_STRUCTURE_TYPE_DEPENDENCY_INFO: + return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS: + return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS"; + case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS: + return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS"; + case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: + return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD"; + case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2: + return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2"; + case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG: + return "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG"; + case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: + return "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG"; + case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT: + return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT"; + case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: + return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"; + case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT: + return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT"; + case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: + return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"; + case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: + return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"; + case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO: + return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"; + case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: + return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"; + case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: + return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"; + case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT: + return "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT"; + case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT: + return "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT"; + case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT: + return "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT"; + case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT: + return "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT"; + case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT: + return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT"; + case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT: + return "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT"; + case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT: + return "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT"; + case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES: + return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"; + case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES: + return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"; + case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: + return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"; + case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: + return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"; + case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: + return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"; + case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES: + return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"; + case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: + return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3"; + case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: + return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"; + case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: + return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"; + case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO: + return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"; + case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO: + return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"; + case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV: + return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"; + case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV: + return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV"; + case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV: + return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"; + case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV: + return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV"; + case VK_STRUCTURE_TYPE_GEOMETRY_NV: + return "VK_STRUCTURE_TYPE_GEOMETRY_NV"; + case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV: + return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV"; + case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_HDR_METADATA_EXT: + return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT"; + case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_IMAGE_BLIT_2: + return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2"; + case VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_IMAGE_COPY_2: + return "VK_STRUCTURE_TYPE_IMAGE_COPY_2"; + case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: + return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"; + case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2: + return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2"; + case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2: + return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"; + case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"; + case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2: + return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2"; + case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2: + return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"; + case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: + return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"; + case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV: + return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"; + case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL: + return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"; + case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK: + return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK"; + case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK: + return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK"; + case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE: + return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"; + case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: + return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"; + case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_MEMORY_BARRIER: + return "VK_STRUCTURE_TYPE_MEMORY_BARRIER"; + case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: + return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2"; + case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: + return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"; + case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: + return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"; + case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV: + return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV"; + case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2: + return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"; + case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA: + return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"; + case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT: + return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT"; + case VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT: + return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT"; + case VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT: + return "VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT"; + case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: + return "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT"; + case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: + return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"; + case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV: + return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV"; + case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: + return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV"; + case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: + return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV"; + case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL: + return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"; + case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR: + return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR"; + case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR: + return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR"; + case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL: + return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"; + case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL: + return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL"; + case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: + return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR"; + case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL: + return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"; + case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: + return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"; + case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: + return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP"; + case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: + return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR"; + case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR: + return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"; + case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: + return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"; + case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: + return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE"; + case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: + return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"; + case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO: + return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"; + case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: + return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"; + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: + return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV"; + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT: + return "VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT"; + case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO: + return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO"; + case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: + return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"; + case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: + return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"; + case VK_STRUCTURE_TYPE_RENDERING_INFO: + return "VK_STRUCTURE_TYPE_RENDERING_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: + return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: + return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2"; + case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: + return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT"; + case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: + return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: + return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: + return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"; + case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: + return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM"; + case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2: + return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2"; + case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: + return "VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT"; + case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: + return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"; + case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: + return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"; + case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: + return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT"; + case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX: + return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX"; + case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO: + return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO"; + case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO: + return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO"; + case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO: + return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO"; + case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT: + return "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT"; + case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"; + case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2: + return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"; + case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP: + return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"; + case VK_STRUCTURE_TYPE_SUBMIT_INFO: + return "VK_STRUCTURE_TYPE_SUBMIT_INFO"; + case VK_STRUCTURE_TYPE_SUBMIT_INFO_2: + return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2"; + case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2: + return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2"; + case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2: + return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2"; + case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: + return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE"; + case VK_STRUCTURE_TYPE_SUBPASS_END_INFO: + return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO"; + case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: + return "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"; + case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: + return "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT"; + case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: + return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"; + case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT: + return "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR: + return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"; + case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: + return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV"; + case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR: + return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"; + case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA: + return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA"; + case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: + return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD"; + case VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM: + return "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM"; + case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: + return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO"; + case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: + return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"; + case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT: + return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"; + case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT: + return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"; + case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN: + return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN"; + case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: + return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"; + case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: + return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"; + case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET: + return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"; + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: + return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"; + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: + return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV"; + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: + return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK"; + case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"; + default: + return "Unhandled VkStructureType"; + } +} + +static inline const char* string_VkPipelineCacheHeaderVersion(VkPipelineCacheHeaderVersion input_value) +{ + switch (input_value) + { + case VK_PIPELINE_CACHE_HEADER_VERSION_ONE: + return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE"; + default: + return "Unhandled VkPipelineCacheHeaderVersion"; + } +} + +static inline const char* string_VkAccessFlagBits(VkAccessFlagBits input_value) +{ + switch (input_value) + { + case VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR: + return "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"; + case VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR: + return "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"; + case VK_ACCESS_COLOR_ATTACHMENT_READ_BIT: + return "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"; + case VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT: + return "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"; + case VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT: + return "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"; + case VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV: + return "VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"; + case VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV: + return "VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"; + case VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT: + return "VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"; + case VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT: + return "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"; + case VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT: + return "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"; + case VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT: + return "VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"; + case VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR: + return "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"; + case VK_ACCESS_HOST_READ_BIT: + return "VK_ACCESS_HOST_READ_BIT"; + case VK_ACCESS_HOST_WRITE_BIT: + return "VK_ACCESS_HOST_WRITE_BIT"; + case VK_ACCESS_INDEX_READ_BIT: + return "VK_ACCESS_INDEX_READ_BIT"; + case VK_ACCESS_INDIRECT_COMMAND_READ_BIT: + return "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"; + case VK_ACCESS_INPUT_ATTACHMENT_READ_BIT: + return "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"; + case VK_ACCESS_MEMORY_READ_BIT: + return "VK_ACCESS_MEMORY_READ_BIT"; + case VK_ACCESS_MEMORY_WRITE_BIT: + return "VK_ACCESS_MEMORY_WRITE_BIT"; + case VK_ACCESS_NONE: + return "VK_ACCESS_NONE"; + case VK_ACCESS_SHADER_READ_BIT: + return "VK_ACCESS_SHADER_READ_BIT"; + case VK_ACCESS_SHADER_WRITE_BIT: + return "VK_ACCESS_SHADER_WRITE_BIT"; + case VK_ACCESS_TRANSFER_READ_BIT: + return "VK_ACCESS_TRANSFER_READ_BIT"; + case VK_ACCESS_TRANSFER_WRITE_BIT: + return "VK_ACCESS_TRANSFER_WRITE_BIT"; + case VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT: + return "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"; + case VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT: + return "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"; + case VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT: + return "VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"; + case VK_ACCESS_UNIFORM_READ_BIT: + return "VK_ACCESS_UNIFORM_READ_BIT"; + case VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT: + return "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"; + default: + return "Unhandled VkAccessFlagBits"; + } +} + +static inline std::string string_VkAccessFlags(VkAccessFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkAccessFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkAccessFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkImageLayout(VkImageLayout input_value) +{ + switch (input_value) + { + case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT: + return "VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT"; + case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT: + return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT"; + case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR: + return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR"; + case VK_IMAGE_LAYOUT_GENERAL: + return "VK_IMAGE_LAYOUT_GENERAL"; + case VK_IMAGE_LAYOUT_PREINITIALIZED: + return "VK_IMAGE_LAYOUT_PREINITIALIZED"; + case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR: + return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR"; + case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR: + return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR"; + case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: + return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL"; + case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: + return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL"; + case VK_IMAGE_LAYOUT_UNDEFINED: + return "VK_IMAGE_LAYOUT_UNDEFINED"; + case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR"; + case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR"; + case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkImageLayout"; + } +} + +static inline const char* string_VkImageAspectFlagBits(VkImageAspectFlagBits input_value) +{ + switch (input_value) + { + case VK_IMAGE_ASPECT_COLOR_BIT: + return "VK_IMAGE_ASPECT_COLOR_BIT"; + case VK_IMAGE_ASPECT_DEPTH_BIT: + return "VK_IMAGE_ASPECT_DEPTH_BIT"; + case VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT: + return "VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"; + case VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT: + return "VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"; + case VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT: + return "VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"; + case VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT: + return "VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"; + case VK_IMAGE_ASPECT_METADATA_BIT: + return "VK_IMAGE_ASPECT_METADATA_BIT"; + case VK_IMAGE_ASPECT_NONE: + return "VK_IMAGE_ASPECT_NONE"; + case VK_IMAGE_ASPECT_PLANE_0_BIT: + return "VK_IMAGE_ASPECT_PLANE_0_BIT"; + case VK_IMAGE_ASPECT_PLANE_1_BIT: + return "VK_IMAGE_ASPECT_PLANE_1_BIT"; + case VK_IMAGE_ASPECT_PLANE_2_BIT: + return "VK_IMAGE_ASPECT_PLANE_2_BIT"; + case VK_IMAGE_ASPECT_STENCIL_BIT: + return "VK_IMAGE_ASPECT_STENCIL_BIT"; + default: + return "Unhandled VkImageAspectFlagBits"; + } +} + +static inline std::string string_VkImageAspectFlags(VkImageAspectFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageAspectFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageAspectFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkObjectType(VkObjectType input_value) +{ + switch (input_value) + { + case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR: + return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR"; + case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV: + return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV"; + case VK_OBJECT_TYPE_BUFFER: + return "VK_OBJECT_TYPE_BUFFER"; + case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA: + return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA"; + case VK_OBJECT_TYPE_BUFFER_VIEW: + return "VK_OBJECT_TYPE_BUFFER_VIEW"; + case VK_OBJECT_TYPE_COMMAND_BUFFER: + return "VK_OBJECT_TYPE_COMMAND_BUFFER"; + case VK_OBJECT_TYPE_COMMAND_POOL: + return "VK_OBJECT_TYPE_COMMAND_POOL"; + case VK_OBJECT_TYPE_CU_FUNCTION_NVX: + return "VK_OBJECT_TYPE_CU_FUNCTION_NVX"; + case VK_OBJECT_TYPE_CU_MODULE_NVX: + return "VK_OBJECT_TYPE_CU_MODULE_NVX"; + case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT: + return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT"; + case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT: + return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT"; + case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR: + return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR"; + case VK_OBJECT_TYPE_DESCRIPTOR_POOL: + return "VK_OBJECT_TYPE_DESCRIPTOR_POOL"; + case VK_OBJECT_TYPE_DESCRIPTOR_SET: + return "VK_OBJECT_TYPE_DESCRIPTOR_SET"; + case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT: + return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT"; + case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE: + return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE"; + case VK_OBJECT_TYPE_DEVICE: + return "VK_OBJECT_TYPE_DEVICE"; + case VK_OBJECT_TYPE_DEVICE_MEMORY: + return "VK_OBJECT_TYPE_DEVICE_MEMORY"; + case VK_OBJECT_TYPE_DISPLAY_KHR: + return "VK_OBJECT_TYPE_DISPLAY_KHR"; + case VK_OBJECT_TYPE_DISPLAY_MODE_KHR: + return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR"; + case VK_OBJECT_TYPE_EVENT: + return "VK_OBJECT_TYPE_EVENT"; + case VK_OBJECT_TYPE_FENCE: + return "VK_OBJECT_TYPE_FENCE"; + case VK_OBJECT_TYPE_FRAMEBUFFER: + return "VK_OBJECT_TYPE_FRAMEBUFFER"; + case VK_OBJECT_TYPE_IMAGE: + return "VK_OBJECT_TYPE_IMAGE"; + case VK_OBJECT_TYPE_IMAGE_VIEW: + return "VK_OBJECT_TYPE_IMAGE_VIEW"; + case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV: + return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV"; + case VK_OBJECT_TYPE_INSTANCE: + return "VK_OBJECT_TYPE_INSTANCE"; + case VK_OBJECT_TYPE_MICROMAP_EXT: + return "VK_OBJECT_TYPE_MICROMAP_EXT"; + case VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV: + return "VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV"; + case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL: + return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL"; + case VK_OBJECT_TYPE_PHYSICAL_DEVICE: + return "VK_OBJECT_TYPE_PHYSICAL_DEVICE"; + case VK_OBJECT_TYPE_PIPELINE: + return "VK_OBJECT_TYPE_PIPELINE"; + case VK_OBJECT_TYPE_PIPELINE_CACHE: + return "VK_OBJECT_TYPE_PIPELINE_CACHE"; + case VK_OBJECT_TYPE_PIPELINE_LAYOUT: + return "VK_OBJECT_TYPE_PIPELINE_LAYOUT"; + case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT: + return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT"; + case VK_OBJECT_TYPE_QUERY_POOL: + return "VK_OBJECT_TYPE_QUERY_POOL"; + case VK_OBJECT_TYPE_QUEUE: + return "VK_OBJECT_TYPE_QUEUE"; + case VK_OBJECT_TYPE_RENDER_PASS: + return "VK_OBJECT_TYPE_RENDER_PASS"; + case VK_OBJECT_TYPE_SAMPLER: + return "VK_OBJECT_TYPE_SAMPLER"; + case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION: + return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"; + case VK_OBJECT_TYPE_SEMAPHORE: + return "VK_OBJECT_TYPE_SEMAPHORE"; + case VK_OBJECT_TYPE_SHADER_MODULE: + return "VK_OBJECT_TYPE_SHADER_MODULE"; + case VK_OBJECT_TYPE_SURFACE_KHR: + return "VK_OBJECT_TYPE_SURFACE_KHR"; + case VK_OBJECT_TYPE_SWAPCHAIN_KHR: + return "VK_OBJECT_TYPE_SWAPCHAIN_KHR"; + case VK_OBJECT_TYPE_UNKNOWN: + return "VK_OBJECT_TYPE_UNKNOWN"; + case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT: + return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT"; + case VK_OBJECT_TYPE_VIDEO_SESSION_KHR: + return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR"; + case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR: + return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR"; + default: + return "Unhandled VkObjectType"; + } +} + +static inline const char* string_VkVendorId(VkVendorId input_value) +{ + switch (input_value) + { + case VK_VENDOR_ID_CODEPLAY: + return "VK_VENDOR_ID_CODEPLAY"; + case VK_VENDOR_ID_KAZAN: + return "VK_VENDOR_ID_KAZAN"; + case VK_VENDOR_ID_MESA: + return "VK_VENDOR_ID_MESA"; + case VK_VENDOR_ID_POCL: + return "VK_VENDOR_ID_POCL"; + case VK_VENDOR_ID_VIV: + return "VK_VENDOR_ID_VIV"; + case VK_VENDOR_ID_VSI: + return "VK_VENDOR_ID_VSI"; + default: + return "Unhandled VkVendorId"; + } +} + +static inline const char* string_VkSystemAllocationScope(VkSystemAllocationScope input_value) +{ + switch (input_value) + { + case VK_SYSTEM_ALLOCATION_SCOPE_CACHE: + return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE"; + case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND: + return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND"; + case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE: + return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE"; + case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE: + return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE"; + case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT: + return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT"; + default: + return "Unhandled VkSystemAllocationScope"; + } +} + +static inline const char* string_VkInternalAllocationType(VkInternalAllocationType input_value) +{ + switch (input_value) + { + case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE: + return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE"; + default: + return "Unhandled VkInternalAllocationType"; + } +} + +static inline const char* string_VkFormat(VkFormat input_value) +{ + switch (input_value) + { + case VK_FORMAT_A1R5G5B5_UNORM_PACK16: + return "VK_FORMAT_A1R5G5B5_UNORM_PACK16"; + case VK_FORMAT_A2B10G10R10_SINT_PACK32: + return "VK_FORMAT_A2B10G10R10_SINT_PACK32"; + case VK_FORMAT_A2B10G10R10_SNORM_PACK32: + return "VK_FORMAT_A2B10G10R10_SNORM_PACK32"; + case VK_FORMAT_A2B10G10R10_SSCALED_PACK32: + return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32"; + case VK_FORMAT_A2B10G10R10_UINT_PACK32: + return "VK_FORMAT_A2B10G10R10_UINT_PACK32"; + case VK_FORMAT_A2B10G10R10_UNORM_PACK32: + return "VK_FORMAT_A2B10G10R10_UNORM_PACK32"; + case VK_FORMAT_A2B10G10R10_USCALED_PACK32: + return "VK_FORMAT_A2B10G10R10_USCALED_PACK32"; + case VK_FORMAT_A2R10G10B10_SINT_PACK32: + return "VK_FORMAT_A2R10G10B10_SINT_PACK32"; + case VK_FORMAT_A2R10G10B10_SNORM_PACK32: + return "VK_FORMAT_A2R10G10B10_SNORM_PACK32"; + case VK_FORMAT_A2R10G10B10_SSCALED_PACK32: + return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32"; + case VK_FORMAT_A2R10G10B10_UINT_PACK32: + return "VK_FORMAT_A2R10G10B10_UINT_PACK32"; + case VK_FORMAT_A2R10G10B10_UNORM_PACK32: + return "VK_FORMAT_A2R10G10B10_UNORM_PACK32"; + case VK_FORMAT_A2R10G10B10_USCALED_PACK32: + return "VK_FORMAT_A2R10G10B10_USCALED_PACK32"; + case VK_FORMAT_A4B4G4R4_UNORM_PACK16: + return "VK_FORMAT_A4B4G4R4_UNORM_PACK16"; + case VK_FORMAT_A4R4G4B4_UNORM_PACK16: + return "VK_FORMAT_A4R4G4B4_UNORM_PACK16"; + case VK_FORMAT_A8B8G8R8_SINT_PACK32: + return "VK_FORMAT_A8B8G8R8_SINT_PACK32"; + case VK_FORMAT_A8B8G8R8_SNORM_PACK32: + return "VK_FORMAT_A8B8G8R8_SNORM_PACK32"; + case VK_FORMAT_A8B8G8R8_SRGB_PACK32: + return "VK_FORMAT_A8B8G8R8_SRGB_PACK32"; + case VK_FORMAT_A8B8G8R8_SSCALED_PACK32: + return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32"; + case VK_FORMAT_A8B8G8R8_UINT_PACK32: + return "VK_FORMAT_A8B8G8R8_UINT_PACK32"; + case VK_FORMAT_A8B8G8R8_UNORM_PACK32: + return "VK_FORMAT_A8B8G8R8_UNORM_PACK32"; + case VK_FORMAT_A8B8G8R8_USCALED_PACK32: + return "VK_FORMAT_A8B8G8R8_USCALED_PACK32"; + case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_10x10_SRGB_BLOCK: + return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK"; + case VK_FORMAT_ASTC_10x10_UNORM_BLOCK: + return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK"; + case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_10x5_SRGB_BLOCK: + return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK"; + case VK_FORMAT_ASTC_10x5_UNORM_BLOCK: + return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK"; + case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_10x6_SRGB_BLOCK: + return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK"; + case VK_FORMAT_ASTC_10x6_UNORM_BLOCK: + return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK"; + case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_10x8_SRGB_BLOCK: + return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK"; + case VK_FORMAT_ASTC_10x8_UNORM_BLOCK: + return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK"; + case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_12x10_SRGB_BLOCK: + return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK"; + case VK_FORMAT_ASTC_12x10_UNORM_BLOCK: + return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK"; + case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_12x12_SRGB_BLOCK: + return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"; + case VK_FORMAT_ASTC_12x12_UNORM_BLOCK: + return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK"; + case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_4x4_SRGB_BLOCK: + return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK"; + case VK_FORMAT_ASTC_4x4_UNORM_BLOCK: + return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK"; + case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_5x4_SRGB_BLOCK: + return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK"; + case VK_FORMAT_ASTC_5x4_UNORM_BLOCK: + return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK"; + case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_5x5_SRGB_BLOCK: + return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK"; + case VK_FORMAT_ASTC_5x5_UNORM_BLOCK: + return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK"; + case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_6x5_SRGB_BLOCK: + return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK"; + case VK_FORMAT_ASTC_6x5_UNORM_BLOCK: + return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK"; + case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_6x6_SRGB_BLOCK: + return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK"; + case VK_FORMAT_ASTC_6x6_UNORM_BLOCK: + return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK"; + case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_8x5_SRGB_BLOCK: + return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK"; + case VK_FORMAT_ASTC_8x5_UNORM_BLOCK: + return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK"; + case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_8x6_SRGB_BLOCK: + return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK"; + case VK_FORMAT_ASTC_8x6_UNORM_BLOCK: + return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK"; + case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK: + return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK"; + case VK_FORMAT_ASTC_8x8_SRGB_BLOCK: + return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK"; + case VK_FORMAT_ASTC_8x8_UNORM_BLOCK: + return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK"; + case VK_FORMAT_B10G11R11_UFLOAT_PACK32: + return "VK_FORMAT_B10G11R11_UFLOAT_PACK32"; + case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16: + return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16"; + case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16: + return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16"; + case VK_FORMAT_B16G16R16G16_422_UNORM: + return "VK_FORMAT_B16G16R16G16_422_UNORM"; + case VK_FORMAT_B4G4R4A4_UNORM_PACK16: + return "VK_FORMAT_B4G4R4A4_UNORM_PACK16"; + case VK_FORMAT_B5G5R5A1_UNORM_PACK16: + return "VK_FORMAT_B5G5R5A1_UNORM_PACK16"; + case VK_FORMAT_B5G6R5_UNORM_PACK16: + return "VK_FORMAT_B5G6R5_UNORM_PACK16"; + case VK_FORMAT_B8G8R8A8_SINT: + return "VK_FORMAT_B8G8R8A8_SINT"; + case VK_FORMAT_B8G8R8A8_SNORM: + return "VK_FORMAT_B8G8R8A8_SNORM"; + case VK_FORMAT_B8G8R8A8_SRGB: + return "VK_FORMAT_B8G8R8A8_SRGB"; + case VK_FORMAT_B8G8R8A8_SSCALED: + return "VK_FORMAT_B8G8R8A8_SSCALED"; + case VK_FORMAT_B8G8R8A8_UINT: + return "VK_FORMAT_B8G8R8A8_UINT"; + case VK_FORMAT_B8G8R8A8_UNORM: + return "VK_FORMAT_B8G8R8A8_UNORM"; + case VK_FORMAT_B8G8R8A8_USCALED: + return "VK_FORMAT_B8G8R8A8_USCALED"; + case VK_FORMAT_B8G8R8G8_422_UNORM: + return "VK_FORMAT_B8G8R8G8_422_UNORM"; + case VK_FORMAT_B8G8R8_SINT: + return "VK_FORMAT_B8G8R8_SINT"; + case VK_FORMAT_B8G8R8_SNORM: + return "VK_FORMAT_B8G8R8_SNORM"; + case VK_FORMAT_B8G8R8_SRGB: + return "VK_FORMAT_B8G8R8_SRGB"; + case VK_FORMAT_B8G8R8_SSCALED: + return "VK_FORMAT_B8G8R8_SSCALED"; + case VK_FORMAT_B8G8R8_UINT: + return "VK_FORMAT_B8G8R8_UINT"; + case VK_FORMAT_B8G8R8_UNORM: + return "VK_FORMAT_B8G8R8_UNORM"; + case VK_FORMAT_B8G8R8_USCALED: + return "VK_FORMAT_B8G8R8_USCALED"; + case VK_FORMAT_BC1_RGBA_SRGB_BLOCK: + return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK"; + case VK_FORMAT_BC1_RGBA_UNORM_BLOCK: + return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK"; + case VK_FORMAT_BC1_RGB_SRGB_BLOCK: + return "VK_FORMAT_BC1_RGB_SRGB_BLOCK"; + case VK_FORMAT_BC1_RGB_UNORM_BLOCK: + return "VK_FORMAT_BC1_RGB_UNORM_BLOCK"; + case VK_FORMAT_BC2_SRGB_BLOCK: + return "VK_FORMAT_BC2_SRGB_BLOCK"; + case VK_FORMAT_BC2_UNORM_BLOCK: + return "VK_FORMAT_BC2_UNORM_BLOCK"; + case VK_FORMAT_BC3_SRGB_BLOCK: + return "VK_FORMAT_BC3_SRGB_BLOCK"; + case VK_FORMAT_BC3_UNORM_BLOCK: + return "VK_FORMAT_BC3_UNORM_BLOCK"; + case VK_FORMAT_BC4_SNORM_BLOCK: + return "VK_FORMAT_BC4_SNORM_BLOCK"; + case VK_FORMAT_BC4_UNORM_BLOCK: + return "VK_FORMAT_BC4_UNORM_BLOCK"; + case VK_FORMAT_BC5_SNORM_BLOCK: + return "VK_FORMAT_BC5_SNORM_BLOCK"; + case VK_FORMAT_BC5_UNORM_BLOCK: + return "VK_FORMAT_BC5_UNORM_BLOCK"; + case VK_FORMAT_BC6H_SFLOAT_BLOCK: + return "VK_FORMAT_BC6H_SFLOAT_BLOCK"; + case VK_FORMAT_BC6H_UFLOAT_BLOCK: + return "VK_FORMAT_BC6H_UFLOAT_BLOCK"; + case VK_FORMAT_BC7_SRGB_BLOCK: + return "VK_FORMAT_BC7_SRGB_BLOCK"; + case VK_FORMAT_BC7_UNORM_BLOCK: + return "VK_FORMAT_BC7_UNORM_BLOCK"; + case VK_FORMAT_D16_UNORM: + return "VK_FORMAT_D16_UNORM"; + case VK_FORMAT_D16_UNORM_S8_UINT: + return "VK_FORMAT_D16_UNORM_S8_UINT"; + case VK_FORMAT_D24_UNORM_S8_UINT: + return "VK_FORMAT_D24_UNORM_S8_UINT"; + case VK_FORMAT_D32_SFLOAT: + return "VK_FORMAT_D32_SFLOAT"; + case VK_FORMAT_D32_SFLOAT_S8_UINT: + return "VK_FORMAT_D32_SFLOAT_S8_UINT"; + case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32: + return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32"; + case VK_FORMAT_EAC_R11G11_SNORM_BLOCK: + return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK"; + case VK_FORMAT_EAC_R11G11_UNORM_BLOCK: + return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK"; + case VK_FORMAT_EAC_R11_SNORM_BLOCK: + return "VK_FORMAT_EAC_R11_SNORM_BLOCK"; + case VK_FORMAT_EAC_R11_UNORM_BLOCK: + return "VK_FORMAT_EAC_R11_UNORM_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK"; + case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16: + return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16"; + case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16"; + case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16"; + case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16"; + case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16"; + case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16"; + case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16"; + case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16: + return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16"; + case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16"; + case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16"; + case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16"; + case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16"; + case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16"; + case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16"; + case VK_FORMAT_G16B16G16R16_422_UNORM: + return "VK_FORMAT_G16B16G16R16_422_UNORM"; + case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM: + return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM"; + case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM: + return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM"; + case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM: + return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM"; + case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM: + return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM"; + case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM: + return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM"; + case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM: + return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM"; + case VK_FORMAT_G8B8G8R8_422_UNORM: + return "VK_FORMAT_G8B8G8R8_422_UNORM"; + case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: + return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM"; + case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM: + return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM"; + case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM: + return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM"; + case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM: + return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM"; + case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM: + return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM"; + case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM: + return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM"; + case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG: + return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG"; + case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG: + return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG"; + case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG: + return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG"; + case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG: + return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG"; + case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG: + return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG"; + case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG: + return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG"; + case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: + return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG"; + case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG: + return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG"; + case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16: + return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16"; + case VK_FORMAT_R10X6G10X6_UNORM_2PACK16: + return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16"; + case VK_FORMAT_R10X6_UNORM_PACK16: + return "VK_FORMAT_R10X6_UNORM_PACK16"; + case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16: + return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16"; + case VK_FORMAT_R12X4G12X4_UNORM_2PACK16: + return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16"; + case VK_FORMAT_R12X4_UNORM_PACK16: + return "VK_FORMAT_R12X4_UNORM_PACK16"; + case VK_FORMAT_R16G16B16A16_SFLOAT: + return "VK_FORMAT_R16G16B16A16_SFLOAT"; + case VK_FORMAT_R16G16B16A16_SINT: + return "VK_FORMAT_R16G16B16A16_SINT"; + case VK_FORMAT_R16G16B16A16_SNORM: + return "VK_FORMAT_R16G16B16A16_SNORM"; + case VK_FORMAT_R16G16B16A16_SSCALED: + return "VK_FORMAT_R16G16B16A16_SSCALED"; + case VK_FORMAT_R16G16B16A16_UINT: + return "VK_FORMAT_R16G16B16A16_UINT"; + case VK_FORMAT_R16G16B16A16_UNORM: + return "VK_FORMAT_R16G16B16A16_UNORM"; + case VK_FORMAT_R16G16B16A16_USCALED: + return "VK_FORMAT_R16G16B16A16_USCALED"; + case VK_FORMAT_R16G16B16_SFLOAT: + return "VK_FORMAT_R16G16B16_SFLOAT"; + case VK_FORMAT_R16G16B16_SINT: + return "VK_FORMAT_R16G16B16_SINT"; + case VK_FORMAT_R16G16B16_SNORM: + return "VK_FORMAT_R16G16B16_SNORM"; + case VK_FORMAT_R16G16B16_SSCALED: + return "VK_FORMAT_R16G16B16_SSCALED"; + case VK_FORMAT_R16G16B16_UINT: + return "VK_FORMAT_R16G16B16_UINT"; + case VK_FORMAT_R16G16B16_UNORM: + return "VK_FORMAT_R16G16B16_UNORM"; + case VK_FORMAT_R16G16B16_USCALED: + return "VK_FORMAT_R16G16B16_USCALED"; + case VK_FORMAT_R16G16_S10_5_NV: + return "VK_FORMAT_R16G16_S10_5_NV"; + case VK_FORMAT_R16G16_SFLOAT: + return "VK_FORMAT_R16G16_SFLOAT"; + case VK_FORMAT_R16G16_SINT: + return "VK_FORMAT_R16G16_SINT"; + case VK_FORMAT_R16G16_SNORM: + return "VK_FORMAT_R16G16_SNORM"; + case VK_FORMAT_R16G16_SSCALED: + return "VK_FORMAT_R16G16_SSCALED"; + case VK_FORMAT_R16G16_UINT: + return "VK_FORMAT_R16G16_UINT"; + case VK_FORMAT_R16G16_UNORM: + return "VK_FORMAT_R16G16_UNORM"; + case VK_FORMAT_R16G16_USCALED: + return "VK_FORMAT_R16G16_USCALED"; + case VK_FORMAT_R16_SFLOAT: + return "VK_FORMAT_R16_SFLOAT"; + case VK_FORMAT_R16_SINT: + return "VK_FORMAT_R16_SINT"; + case VK_FORMAT_R16_SNORM: + return "VK_FORMAT_R16_SNORM"; + case VK_FORMAT_R16_SSCALED: + return "VK_FORMAT_R16_SSCALED"; + case VK_FORMAT_R16_UINT: + return "VK_FORMAT_R16_UINT"; + case VK_FORMAT_R16_UNORM: + return "VK_FORMAT_R16_UNORM"; + case VK_FORMAT_R16_USCALED: + return "VK_FORMAT_R16_USCALED"; + case VK_FORMAT_R32G32B32A32_SFLOAT: + return "VK_FORMAT_R32G32B32A32_SFLOAT"; + case VK_FORMAT_R32G32B32A32_SINT: + return "VK_FORMAT_R32G32B32A32_SINT"; + case VK_FORMAT_R32G32B32A32_UINT: + return "VK_FORMAT_R32G32B32A32_UINT"; + case VK_FORMAT_R32G32B32_SFLOAT: + return "VK_FORMAT_R32G32B32_SFLOAT"; + case VK_FORMAT_R32G32B32_SINT: + return "VK_FORMAT_R32G32B32_SINT"; + case VK_FORMAT_R32G32B32_UINT: + return "VK_FORMAT_R32G32B32_UINT"; + case VK_FORMAT_R32G32_SFLOAT: + return "VK_FORMAT_R32G32_SFLOAT"; + case VK_FORMAT_R32G32_SINT: + return "VK_FORMAT_R32G32_SINT"; + case VK_FORMAT_R32G32_UINT: + return "VK_FORMAT_R32G32_UINT"; + case VK_FORMAT_R32_SFLOAT: + return "VK_FORMAT_R32_SFLOAT"; + case VK_FORMAT_R32_SINT: + return "VK_FORMAT_R32_SINT"; + case VK_FORMAT_R32_UINT: + return "VK_FORMAT_R32_UINT"; + case VK_FORMAT_R4G4B4A4_UNORM_PACK16: + return "VK_FORMAT_R4G4B4A4_UNORM_PACK16"; + case VK_FORMAT_R4G4_UNORM_PACK8: + return "VK_FORMAT_R4G4_UNORM_PACK8"; + case VK_FORMAT_R5G5B5A1_UNORM_PACK16: + return "VK_FORMAT_R5G5B5A1_UNORM_PACK16"; + case VK_FORMAT_R5G6B5_UNORM_PACK16: + return "VK_FORMAT_R5G6B5_UNORM_PACK16"; + case VK_FORMAT_R64G64B64A64_SFLOAT: + return "VK_FORMAT_R64G64B64A64_SFLOAT"; + case VK_FORMAT_R64G64B64A64_SINT: + return "VK_FORMAT_R64G64B64A64_SINT"; + case VK_FORMAT_R64G64B64A64_UINT: + return "VK_FORMAT_R64G64B64A64_UINT"; + case VK_FORMAT_R64G64B64_SFLOAT: + return "VK_FORMAT_R64G64B64_SFLOAT"; + case VK_FORMAT_R64G64B64_SINT: + return "VK_FORMAT_R64G64B64_SINT"; + case VK_FORMAT_R64G64B64_UINT: + return "VK_FORMAT_R64G64B64_UINT"; + case VK_FORMAT_R64G64_SFLOAT: + return "VK_FORMAT_R64G64_SFLOAT"; + case VK_FORMAT_R64G64_SINT: + return "VK_FORMAT_R64G64_SINT"; + case VK_FORMAT_R64G64_UINT: + return "VK_FORMAT_R64G64_UINT"; + case VK_FORMAT_R64_SFLOAT: + return "VK_FORMAT_R64_SFLOAT"; + case VK_FORMAT_R64_SINT: + return "VK_FORMAT_R64_SINT"; + case VK_FORMAT_R64_UINT: + return "VK_FORMAT_R64_UINT"; + case VK_FORMAT_R8G8B8A8_SINT: + return "VK_FORMAT_R8G8B8A8_SINT"; + case VK_FORMAT_R8G8B8A8_SNORM: + return "VK_FORMAT_R8G8B8A8_SNORM"; + case VK_FORMAT_R8G8B8A8_SRGB: + return "VK_FORMAT_R8G8B8A8_SRGB"; + case VK_FORMAT_R8G8B8A8_SSCALED: + return "VK_FORMAT_R8G8B8A8_SSCALED"; + case VK_FORMAT_R8G8B8A8_UINT: + return "VK_FORMAT_R8G8B8A8_UINT"; + case VK_FORMAT_R8G8B8A8_UNORM: + return "VK_FORMAT_R8G8B8A8_UNORM"; + case VK_FORMAT_R8G8B8A8_USCALED: + return "VK_FORMAT_R8G8B8A8_USCALED"; + case VK_FORMAT_R8G8B8_SINT: + return "VK_FORMAT_R8G8B8_SINT"; + case VK_FORMAT_R8G8B8_SNORM: + return "VK_FORMAT_R8G8B8_SNORM"; + case VK_FORMAT_R8G8B8_SRGB: + return "VK_FORMAT_R8G8B8_SRGB"; + case VK_FORMAT_R8G8B8_SSCALED: + return "VK_FORMAT_R8G8B8_SSCALED"; + case VK_FORMAT_R8G8B8_UINT: + return "VK_FORMAT_R8G8B8_UINT"; + case VK_FORMAT_R8G8B8_UNORM: + return "VK_FORMAT_R8G8B8_UNORM"; + case VK_FORMAT_R8G8B8_USCALED: + return "VK_FORMAT_R8G8B8_USCALED"; + case VK_FORMAT_R8G8_SINT: + return "VK_FORMAT_R8G8_SINT"; + case VK_FORMAT_R8G8_SNORM: + return "VK_FORMAT_R8G8_SNORM"; + case VK_FORMAT_R8G8_SRGB: + return "VK_FORMAT_R8G8_SRGB"; + case VK_FORMAT_R8G8_SSCALED: + return "VK_FORMAT_R8G8_SSCALED"; + case VK_FORMAT_R8G8_UINT: + return "VK_FORMAT_R8G8_UINT"; + case VK_FORMAT_R8G8_UNORM: + return "VK_FORMAT_R8G8_UNORM"; + case VK_FORMAT_R8G8_USCALED: + return "VK_FORMAT_R8G8_USCALED"; + case VK_FORMAT_R8_SINT: + return "VK_FORMAT_R8_SINT"; + case VK_FORMAT_R8_SNORM: + return "VK_FORMAT_R8_SNORM"; + case VK_FORMAT_R8_SRGB: + return "VK_FORMAT_R8_SRGB"; + case VK_FORMAT_R8_SSCALED: + return "VK_FORMAT_R8_SSCALED"; + case VK_FORMAT_R8_UINT: + return "VK_FORMAT_R8_UINT"; + case VK_FORMAT_R8_UNORM: + return "VK_FORMAT_R8_UNORM"; + case VK_FORMAT_R8_USCALED: + return "VK_FORMAT_R8_USCALED"; + case VK_FORMAT_S8_UINT: + return "VK_FORMAT_S8_UINT"; + case VK_FORMAT_UNDEFINED: + return "VK_FORMAT_UNDEFINED"; + case VK_FORMAT_X8_D24_UNORM_PACK32: + return "VK_FORMAT_X8_D24_UNORM_PACK32"; + default: + return "Unhandled VkFormat"; + } +} + +static inline const char* string_VkFormatFeatureFlagBits(VkFormatFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR: + return "VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"; + case VK_FORMAT_FEATURE_BLIT_DST_BIT: + return "VK_FORMAT_FEATURE_BLIT_DST_BIT"; + case VK_FORMAT_FEATURE_BLIT_SRC_BIT: + return "VK_FORMAT_FEATURE_BLIT_SRC_BIT"; + case VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT: + return "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"; + case VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT: + return "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"; + case VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT: + return "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"; + case VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT: + return "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"; + case VK_FORMAT_FEATURE_DISJOINT_BIT: + return "VK_FORMAT_FEATURE_DISJOINT_BIT"; + case VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT: + return "VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"; + case VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: + return "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"; + case VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT: + return "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"; + case VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT: + return "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"; + case VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT: + return "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"; + case VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT: + return "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"; + case VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT: + return "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"; + case VK_FORMAT_FEATURE_TRANSFER_DST_BIT: + return "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"; + case VK_FORMAT_FEATURE_TRANSFER_SRC_BIT: + return "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"; + case VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT: + return "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"; + case VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT: + return "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"; + case VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"; + case VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkFormatFeatureFlagBits"; + } +} + +static inline std::string string_VkFormatFeatureFlags(VkFormatFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFormatFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFormatFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkImageCreateFlagBits(VkImageCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT: + return "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"; + case VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT: + return "VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"; + case VK_IMAGE_CREATE_ALIAS_BIT: + return "VK_IMAGE_CREATE_ALIAS_BIT"; + case VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT: + return "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"; + case VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV: + return "VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"; + case VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT: + return "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"; + case VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT: + return "VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"; + case VK_IMAGE_CREATE_DISJOINT_BIT: + return "VK_IMAGE_CREATE_DISJOINT_BIT"; + case VK_IMAGE_CREATE_EXTENDED_USAGE_BIT: + return "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"; + case VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM: + return "VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"; + case VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT: + return "VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT"; + case VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT: + return "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"; + case VK_IMAGE_CREATE_PROTECTED_BIT: + return "VK_IMAGE_CREATE_PROTECTED_BIT"; + case VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT: + return "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"; + case VK_IMAGE_CREATE_SPARSE_ALIASED_BIT: + return "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"; + case VK_IMAGE_CREATE_SPARSE_BINDING_BIT: + return "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"; + case VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT: + return "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"; + case VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT: + return "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"; + case VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT: + return "VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"; + default: + return "Unhandled VkImageCreateFlagBits"; + } +} + +static inline std::string string_VkImageCreateFlags(VkImageCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSampleCountFlagBits(VkSampleCountFlagBits input_value) +{ + switch (input_value) + { + case VK_SAMPLE_COUNT_16_BIT: + return "VK_SAMPLE_COUNT_16_BIT"; + case VK_SAMPLE_COUNT_1_BIT: + return "VK_SAMPLE_COUNT_1_BIT"; + case VK_SAMPLE_COUNT_2_BIT: + return "VK_SAMPLE_COUNT_2_BIT"; + case VK_SAMPLE_COUNT_32_BIT: + return "VK_SAMPLE_COUNT_32_BIT"; + case VK_SAMPLE_COUNT_4_BIT: + return "VK_SAMPLE_COUNT_4_BIT"; + case VK_SAMPLE_COUNT_64_BIT: + return "VK_SAMPLE_COUNT_64_BIT"; + case VK_SAMPLE_COUNT_8_BIT: + return "VK_SAMPLE_COUNT_8_BIT"; + default: + return "Unhandled VkSampleCountFlagBits"; + } +} + +static inline std::string string_VkSampleCountFlags(VkSampleCountFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSampleCountFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSampleCountFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkImageTiling(VkImageTiling input_value) +{ + switch (input_value) + { + case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT: + return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT"; + case VK_IMAGE_TILING_LINEAR: + return "VK_IMAGE_TILING_LINEAR"; + case VK_IMAGE_TILING_OPTIMAL: + return "VK_IMAGE_TILING_OPTIMAL"; + default: + return "Unhandled VkImageTiling"; + } +} + +static inline const char* string_VkImageType(VkImageType input_value) +{ + switch (input_value) + { + case VK_IMAGE_TYPE_1D: + return "VK_IMAGE_TYPE_1D"; + case VK_IMAGE_TYPE_2D: + return "VK_IMAGE_TYPE_2D"; + case VK_IMAGE_TYPE_3D: + return "VK_IMAGE_TYPE_3D"; + default: + return "Unhandled VkImageType"; + } +} + +static inline const char* string_VkImageUsageFlagBits(VkImageUsageFlagBits input_value) +{ + switch (input_value) + { + case VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT: + return "VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"; + case VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT: + return "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"; + case VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT: + return "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"; + case VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT: + return "VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"; + case VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: + return "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"; + case VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT: + return "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"; + case VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI: + return "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"; + case VK_IMAGE_USAGE_SAMPLED_BIT: + return "VK_IMAGE_USAGE_SAMPLED_BIT"; + case VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM: + return "VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM"; + case VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM: + return "VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM"; + case VK_IMAGE_USAGE_STORAGE_BIT: + return "VK_IMAGE_USAGE_STORAGE_BIT"; + case VK_IMAGE_USAGE_TRANSFER_DST_BIT: + return "VK_IMAGE_USAGE_TRANSFER_DST_BIT"; + case VK_IMAGE_USAGE_TRANSFER_SRC_BIT: + return "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"; + case VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT: + return "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"; + case VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"; + case VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"; + case VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkImageUsageFlagBits"; + } +} + +static inline std::string string_VkImageUsageFlags(VkImageUsageFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageUsageFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageUsageFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkInstanceCreateFlagBits(VkInstanceCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR: + return "VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"; + default: + return "Unhandled VkInstanceCreateFlagBits"; + } +} + +static inline std::string string_VkInstanceCreateFlags(VkInstanceCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkInstanceCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkInstanceCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkMemoryHeapFlagBits(VkMemoryHeapFlagBits input_value) +{ + switch (input_value) + { + case VK_MEMORY_HEAP_DEVICE_LOCAL_BIT: + return "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"; + case VK_MEMORY_HEAP_MULTI_INSTANCE_BIT: + return "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"; + default: + return "Unhandled VkMemoryHeapFlagBits"; + } +} + +static inline std::string string_VkMemoryHeapFlags(VkMemoryHeapFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkMemoryHeapFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkMemoryHeapFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkMemoryPropertyFlagBits(VkMemoryPropertyFlagBits input_value) +{ + switch (input_value) + { + case VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD: + return "VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"; + case VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT: + return "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"; + case VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD: + return "VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"; + case VK_MEMORY_PROPERTY_HOST_CACHED_BIT: + return "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"; + case VK_MEMORY_PROPERTY_HOST_COHERENT_BIT: + return "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"; + case VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT: + return "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"; + case VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT: + return "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"; + case VK_MEMORY_PROPERTY_PROTECTED_BIT: + return "VK_MEMORY_PROPERTY_PROTECTED_BIT"; + case VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV: + return "VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"; + default: + return "Unhandled VkMemoryPropertyFlagBits"; + } +} + +static inline std::string string_VkMemoryPropertyFlags(VkMemoryPropertyFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkMemoryPropertyFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkMemoryPropertyFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPhysicalDeviceType(VkPhysicalDeviceType input_value) +{ + switch (input_value) + { + case VK_PHYSICAL_DEVICE_TYPE_CPU: + return "VK_PHYSICAL_DEVICE_TYPE_CPU"; + case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU: + return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU"; + case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU: + return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU"; + case VK_PHYSICAL_DEVICE_TYPE_OTHER: + return "VK_PHYSICAL_DEVICE_TYPE_OTHER"; + case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU: + return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU"; + default: + return "Unhandled VkPhysicalDeviceType"; + } +} + +static inline const char* string_VkQueueFlagBits(VkQueueFlagBits input_value) +{ + switch (input_value) + { + case VK_QUEUE_COMPUTE_BIT: + return "VK_QUEUE_COMPUTE_BIT"; + case VK_QUEUE_GRAPHICS_BIT: + return "VK_QUEUE_GRAPHICS_BIT"; + case VK_QUEUE_OPTICAL_FLOW_BIT_NV: + return "VK_QUEUE_OPTICAL_FLOW_BIT_NV"; + case VK_QUEUE_PROTECTED_BIT: + return "VK_QUEUE_PROTECTED_BIT"; + case VK_QUEUE_SPARSE_BINDING_BIT: + return "VK_QUEUE_SPARSE_BINDING_BIT"; + case VK_QUEUE_TRANSFER_BIT: + return "VK_QUEUE_TRANSFER_BIT"; + case VK_QUEUE_VIDEO_DECODE_BIT_KHR: + return "VK_QUEUE_VIDEO_DECODE_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_QUEUE_VIDEO_ENCODE_BIT_KHR: + return "VK_QUEUE_VIDEO_ENCODE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkQueueFlagBits"; + } +} + +static inline std::string string_VkQueueFlags(VkQueueFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkQueueFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkQueueFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkDeviceQueueCreateFlagBits(VkDeviceQueueCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT: + return "VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"; + default: + return "Unhandled VkDeviceQueueCreateFlagBits"; + } +} + +static inline std::string string_VkDeviceQueueCreateFlags(VkDeviceQueueCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDeviceQueueCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDeviceQueueCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPipelineStageFlagBits(VkPipelineStageFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR: + return "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"; + case VK_PIPELINE_STAGE_ALL_COMMANDS_BIT: + return "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"; + case VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT: + return "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"; + case VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT: + return "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"; + case VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT: + return "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"; + case VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV: + return "VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"; + case VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT: + return "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"; + case VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT: + return "VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"; + case VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT: + return "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"; + case VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT: + return "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"; + case VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT: + return "VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"; + case VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT: + return "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"; + case VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: + return "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"; + case VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT: + return "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"; + case VK_PIPELINE_STAGE_HOST_BIT: + return "VK_PIPELINE_STAGE_HOST_BIT"; + case VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT: + return "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"; + case VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT: + return "VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT"; + case VK_PIPELINE_STAGE_NONE: + return "VK_PIPELINE_STAGE_NONE"; + case VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"; + case VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT: + return "VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT"; + case VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT: + return "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"; + case VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT: + return "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"; + case VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT: + return "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"; + case VK_PIPELINE_STAGE_TRANSFER_BIT: + return "VK_PIPELINE_STAGE_TRANSFER_BIT"; + case VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT: + return "VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"; + case VK_PIPELINE_STAGE_VERTEX_INPUT_BIT: + return "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"; + case VK_PIPELINE_STAGE_VERTEX_SHADER_BIT: + return "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"; + default: + return "Unhandled VkPipelineStageFlagBits"; + } +} + +static inline std::string string_VkPipelineStageFlags(VkPipelineStageFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineStageFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineStageFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSparseMemoryBindFlagBits(VkSparseMemoryBindFlagBits input_value) +{ + switch (input_value) + { + case VK_SPARSE_MEMORY_BIND_METADATA_BIT: + return "VK_SPARSE_MEMORY_BIND_METADATA_BIT"; + default: + return "Unhandled VkSparseMemoryBindFlagBits"; + } +} + +static inline std::string string_VkSparseMemoryBindFlags(VkSparseMemoryBindFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSparseMemoryBindFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSparseMemoryBindFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSparseImageFormatFlagBits(VkSparseImageFormatFlagBits input_value) +{ + switch (input_value) + { + case VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT: + return "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"; + case VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT: + return "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"; + case VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT: + return "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"; + default: + return "Unhandled VkSparseImageFormatFlagBits"; + } +} + +static inline std::string string_VkSparseImageFormatFlags(VkSparseImageFormatFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSparseImageFormatFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSparseImageFormatFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkFenceCreateFlagBits(VkFenceCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_FENCE_CREATE_SIGNALED_BIT: + return "VK_FENCE_CREATE_SIGNALED_BIT"; + default: + return "Unhandled VkFenceCreateFlagBits"; + } +} + +static inline std::string string_VkFenceCreateFlags(VkFenceCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFenceCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFenceCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkEventCreateFlagBits(VkEventCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_EVENT_CREATE_DEVICE_ONLY_BIT: + return "VK_EVENT_CREATE_DEVICE_ONLY_BIT"; + default: + return "Unhandled VkEventCreateFlagBits"; + } +} + +static inline std::string string_VkEventCreateFlags(VkEventCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkEventCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkEventCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkQueryPipelineStatisticFlagBits(VkQueryPipelineStatisticFlagBits input_value) +{ + switch (input_value) + { + case VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI: + return "VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI"; + case VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT: + return "VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT"; + case VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT: + return "VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT"; + case VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"; + default: + return "Unhandled VkQueryPipelineStatisticFlagBits"; + } +} + +static inline std::string string_VkQueryPipelineStatisticFlags(VkQueryPipelineStatisticFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkQueryPipelineStatisticFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkQueryPipelineStatisticFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkQueryType(VkQueryType input_value) +{ + switch (input_value) + { + case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR: + return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR"; + case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV: + return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV"; + case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR: + return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR"; + case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR: + return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR"; + case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR: + return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR"; + case VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT: + return "VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT"; + case VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT: + return "VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT"; + case VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT: + return "VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT"; + case VK_QUERY_TYPE_OCCLUSION: + return "VK_QUERY_TYPE_OCCLUSION"; + case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL: + return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL"; + case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR: + return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR"; + case VK_QUERY_TYPE_PIPELINE_STATISTICS: + return "VK_QUERY_TYPE_PIPELINE_STATISTICS"; + case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT: + return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT"; + case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR: + return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR"; + case VK_QUERY_TYPE_TIMESTAMP: + return "VK_QUERY_TYPE_TIMESTAMP"; + case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT: + return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR: + return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkQueryType"; + } +} + +static inline const char* string_VkQueryResultFlagBits(VkQueryResultFlagBits input_value) +{ + switch (input_value) + { + case VK_QUERY_RESULT_64_BIT: + return "VK_QUERY_RESULT_64_BIT"; + case VK_QUERY_RESULT_PARTIAL_BIT: + return "VK_QUERY_RESULT_PARTIAL_BIT"; + case VK_QUERY_RESULT_WAIT_BIT: + return "VK_QUERY_RESULT_WAIT_BIT"; + case VK_QUERY_RESULT_WITH_AVAILABILITY_BIT: + return "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"; + case VK_QUERY_RESULT_WITH_STATUS_BIT_KHR: + return "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"; + default: + return "Unhandled VkQueryResultFlagBits"; + } +} + +static inline std::string string_VkQueryResultFlags(VkQueryResultFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkQueryResultFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkQueryResultFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkBufferCreateFlagBits(VkBufferCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT: + return "VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"; + case VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT: + return "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"; + case VK_BUFFER_CREATE_PROTECTED_BIT: + return "VK_BUFFER_CREATE_PROTECTED_BIT"; + case VK_BUFFER_CREATE_SPARSE_ALIASED_BIT: + return "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"; + case VK_BUFFER_CREATE_SPARSE_BINDING_BIT: + return "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"; + case VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT: + return "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"; + default: + return "Unhandled VkBufferCreateFlagBits"; + } +} + +static inline std::string string_VkBufferCreateFlags(VkBufferCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkBufferCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkBufferCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkBufferUsageFlagBits(VkBufferUsageFlagBits input_value) +{ + switch (input_value) + { + case VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR: + return "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"; + case VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR: + return "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"; + case VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT: + return "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"; + case VK_BUFFER_USAGE_INDEX_BUFFER_BIT: + return "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"; + case VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT: + return "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"; + case VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT: + return "VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"; + case VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT: + return "VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT"; + case VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT: + return "VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"; + case VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT: + return "VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"; + case VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT: + return "VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"; + case VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR: + return "VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"; + case VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT: + return "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"; + case VK_BUFFER_USAGE_STORAGE_BUFFER_BIT: + return "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"; + case VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT: + return "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"; + case VK_BUFFER_USAGE_TRANSFER_DST_BIT: + return "VK_BUFFER_USAGE_TRANSFER_DST_BIT"; + case VK_BUFFER_USAGE_TRANSFER_SRC_BIT: + return "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"; + case VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT: + return "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"; + case VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT: + return "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"; + case VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT: + return "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"; + case VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT: + return "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"; + case VK_BUFFER_USAGE_VERTEX_BUFFER_BIT: + return "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"; + case VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR: + return "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"; + case VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR: + return "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR: + return "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR: + return "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkBufferUsageFlagBits"; + } +} + +static inline std::string string_VkBufferUsageFlags(VkBufferUsageFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkBufferUsageFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkBufferUsageFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSharingMode(VkSharingMode input_value) +{ + switch (input_value) + { + case VK_SHARING_MODE_CONCURRENT: + return "VK_SHARING_MODE_CONCURRENT"; + case VK_SHARING_MODE_EXCLUSIVE: + return "VK_SHARING_MODE_EXCLUSIVE"; + default: + return "Unhandled VkSharingMode"; + } +} + +static inline const char* string_VkComponentSwizzle(VkComponentSwizzle input_value) +{ + switch (input_value) + { + case VK_COMPONENT_SWIZZLE_A: + return "VK_COMPONENT_SWIZZLE_A"; + case VK_COMPONENT_SWIZZLE_B: + return "VK_COMPONENT_SWIZZLE_B"; + case VK_COMPONENT_SWIZZLE_G: + return "VK_COMPONENT_SWIZZLE_G"; + case VK_COMPONENT_SWIZZLE_IDENTITY: + return "VK_COMPONENT_SWIZZLE_IDENTITY"; + case VK_COMPONENT_SWIZZLE_ONE: + return "VK_COMPONENT_SWIZZLE_ONE"; + case VK_COMPONENT_SWIZZLE_R: + return "VK_COMPONENT_SWIZZLE_R"; + case VK_COMPONENT_SWIZZLE_ZERO: + return "VK_COMPONENT_SWIZZLE_ZERO"; + default: + return "Unhandled VkComponentSwizzle"; + } +} + +static inline const char* string_VkImageViewCreateFlagBits(VkImageViewCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT: + return "VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"; + case VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT: + return "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"; + case VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT: + return "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"; + default: + return "Unhandled VkImageViewCreateFlagBits"; + } +} + +static inline std::string string_VkImageViewCreateFlags(VkImageViewCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageViewCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageViewCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkImageViewType(VkImageViewType input_value) +{ + switch (input_value) + { + case VK_IMAGE_VIEW_TYPE_1D: + return "VK_IMAGE_VIEW_TYPE_1D"; + case VK_IMAGE_VIEW_TYPE_1D_ARRAY: + return "VK_IMAGE_VIEW_TYPE_1D_ARRAY"; + case VK_IMAGE_VIEW_TYPE_2D: + return "VK_IMAGE_VIEW_TYPE_2D"; + case VK_IMAGE_VIEW_TYPE_2D_ARRAY: + return "VK_IMAGE_VIEW_TYPE_2D_ARRAY"; + case VK_IMAGE_VIEW_TYPE_3D: + return "VK_IMAGE_VIEW_TYPE_3D"; + case VK_IMAGE_VIEW_TYPE_CUBE: + return "VK_IMAGE_VIEW_TYPE_CUBE"; + case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY: + return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY"; + default: + return "Unhandled VkImageViewType"; + } +} + +static inline const char* string_VkPipelineCacheCreateFlagBits(VkPipelineCacheCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT: + return "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"; + default: + return "Unhandled VkPipelineCacheCreateFlagBits"; + } +} + +static inline std::string string_VkPipelineCacheCreateFlags(VkPipelineCacheCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineCacheCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineCacheCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkBlendFactor(VkBlendFactor input_value) +{ + switch (input_value) + { + case VK_BLEND_FACTOR_CONSTANT_ALPHA: + return "VK_BLEND_FACTOR_CONSTANT_ALPHA"; + case VK_BLEND_FACTOR_CONSTANT_COLOR: + return "VK_BLEND_FACTOR_CONSTANT_COLOR"; + case VK_BLEND_FACTOR_DST_ALPHA: + return "VK_BLEND_FACTOR_DST_ALPHA"; + case VK_BLEND_FACTOR_DST_COLOR: + return "VK_BLEND_FACTOR_DST_COLOR"; + case VK_BLEND_FACTOR_ONE: + return "VK_BLEND_FACTOR_ONE"; + case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA: + return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA"; + case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR: + return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"; + case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA: + return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA"; + case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR: + return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR"; + case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA: + return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"; + case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR: + return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"; + case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA: + return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"; + case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR: + return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR"; + case VK_BLEND_FACTOR_SRC1_ALPHA: + return "VK_BLEND_FACTOR_SRC1_ALPHA"; + case VK_BLEND_FACTOR_SRC1_COLOR: + return "VK_BLEND_FACTOR_SRC1_COLOR"; + case VK_BLEND_FACTOR_SRC_ALPHA: + return "VK_BLEND_FACTOR_SRC_ALPHA"; + case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE: + return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"; + case VK_BLEND_FACTOR_SRC_COLOR: + return "VK_BLEND_FACTOR_SRC_COLOR"; + case VK_BLEND_FACTOR_ZERO: + return "VK_BLEND_FACTOR_ZERO"; + default: + return "Unhandled VkBlendFactor"; + } +} + +static inline const char* string_VkBlendOp(VkBlendOp input_value) +{ + switch (input_value) + { + case VK_BLEND_OP_ADD: + return "VK_BLEND_OP_ADD"; + case VK_BLEND_OP_BLUE_EXT: + return "VK_BLEND_OP_BLUE_EXT"; + case VK_BLEND_OP_COLORBURN_EXT: + return "VK_BLEND_OP_COLORBURN_EXT"; + case VK_BLEND_OP_COLORDODGE_EXT: + return "VK_BLEND_OP_COLORDODGE_EXT"; + case VK_BLEND_OP_CONTRAST_EXT: + return "VK_BLEND_OP_CONTRAST_EXT"; + case VK_BLEND_OP_DARKEN_EXT: + return "VK_BLEND_OP_DARKEN_EXT"; + case VK_BLEND_OP_DIFFERENCE_EXT: + return "VK_BLEND_OP_DIFFERENCE_EXT"; + case VK_BLEND_OP_DST_ATOP_EXT: + return "VK_BLEND_OP_DST_ATOP_EXT"; + case VK_BLEND_OP_DST_EXT: + return "VK_BLEND_OP_DST_EXT"; + case VK_BLEND_OP_DST_IN_EXT: + return "VK_BLEND_OP_DST_IN_EXT"; + case VK_BLEND_OP_DST_OUT_EXT: + return "VK_BLEND_OP_DST_OUT_EXT"; + case VK_BLEND_OP_DST_OVER_EXT: + return "VK_BLEND_OP_DST_OVER_EXT"; + case VK_BLEND_OP_EXCLUSION_EXT: + return "VK_BLEND_OP_EXCLUSION_EXT"; + case VK_BLEND_OP_GREEN_EXT: + return "VK_BLEND_OP_GREEN_EXT"; + case VK_BLEND_OP_HARDLIGHT_EXT: + return "VK_BLEND_OP_HARDLIGHT_EXT"; + case VK_BLEND_OP_HARDMIX_EXT: + return "VK_BLEND_OP_HARDMIX_EXT"; + case VK_BLEND_OP_HSL_COLOR_EXT: + return "VK_BLEND_OP_HSL_COLOR_EXT"; + case VK_BLEND_OP_HSL_HUE_EXT: + return "VK_BLEND_OP_HSL_HUE_EXT"; + case VK_BLEND_OP_HSL_LUMINOSITY_EXT: + return "VK_BLEND_OP_HSL_LUMINOSITY_EXT"; + case VK_BLEND_OP_HSL_SATURATION_EXT: + return "VK_BLEND_OP_HSL_SATURATION_EXT"; + case VK_BLEND_OP_INVERT_EXT: + return "VK_BLEND_OP_INVERT_EXT"; + case VK_BLEND_OP_INVERT_OVG_EXT: + return "VK_BLEND_OP_INVERT_OVG_EXT"; + case VK_BLEND_OP_INVERT_RGB_EXT: + return "VK_BLEND_OP_INVERT_RGB_EXT"; + case VK_BLEND_OP_LIGHTEN_EXT: + return "VK_BLEND_OP_LIGHTEN_EXT"; + case VK_BLEND_OP_LINEARBURN_EXT: + return "VK_BLEND_OP_LINEARBURN_EXT"; + case VK_BLEND_OP_LINEARDODGE_EXT: + return "VK_BLEND_OP_LINEARDODGE_EXT"; + case VK_BLEND_OP_LINEARLIGHT_EXT: + return "VK_BLEND_OP_LINEARLIGHT_EXT"; + case VK_BLEND_OP_MAX: + return "VK_BLEND_OP_MAX"; + case VK_BLEND_OP_MIN: + return "VK_BLEND_OP_MIN"; + case VK_BLEND_OP_MINUS_CLAMPED_EXT: + return "VK_BLEND_OP_MINUS_CLAMPED_EXT"; + case VK_BLEND_OP_MINUS_EXT: + return "VK_BLEND_OP_MINUS_EXT"; + case VK_BLEND_OP_MULTIPLY_EXT: + return "VK_BLEND_OP_MULTIPLY_EXT"; + case VK_BLEND_OP_OVERLAY_EXT: + return "VK_BLEND_OP_OVERLAY_EXT"; + case VK_BLEND_OP_PINLIGHT_EXT: + return "VK_BLEND_OP_PINLIGHT_EXT"; + case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT: + return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT"; + case VK_BLEND_OP_PLUS_CLAMPED_EXT: + return "VK_BLEND_OP_PLUS_CLAMPED_EXT"; + case VK_BLEND_OP_PLUS_DARKER_EXT: + return "VK_BLEND_OP_PLUS_DARKER_EXT"; + case VK_BLEND_OP_PLUS_EXT: + return "VK_BLEND_OP_PLUS_EXT"; + case VK_BLEND_OP_RED_EXT: + return "VK_BLEND_OP_RED_EXT"; + case VK_BLEND_OP_REVERSE_SUBTRACT: + return "VK_BLEND_OP_REVERSE_SUBTRACT"; + case VK_BLEND_OP_SCREEN_EXT: + return "VK_BLEND_OP_SCREEN_EXT"; + case VK_BLEND_OP_SOFTLIGHT_EXT: + return "VK_BLEND_OP_SOFTLIGHT_EXT"; + case VK_BLEND_OP_SRC_ATOP_EXT: + return "VK_BLEND_OP_SRC_ATOP_EXT"; + case VK_BLEND_OP_SRC_EXT: + return "VK_BLEND_OP_SRC_EXT"; + case VK_BLEND_OP_SRC_IN_EXT: + return "VK_BLEND_OP_SRC_IN_EXT"; + case VK_BLEND_OP_SRC_OUT_EXT: + return "VK_BLEND_OP_SRC_OUT_EXT"; + case VK_BLEND_OP_SRC_OVER_EXT: + return "VK_BLEND_OP_SRC_OVER_EXT"; + case VK_BLEND_OP_SUBTRACT: + return "VK_BLEND_OP_SUBTRACT"; + case VK_BLEND_OP_VIVIDLIGHT_EXT: + return "VK_BLEND_OP_VIVIDLIGHT_EXT"; + case VK_BLEND_OP_XOR_EXT: + return "VK_BLEND_OP_XOR_EXT"; + case VK_BLEND_OP_ZERO_EXT: + return "VK_BLEND_OP_ZERO_EXT"; + default: + return "Unhandled VkBlendOp"; + } +} + +static inline const char* string_VkColorComponentFlagBits(VkColorComponentFlagBits input_value) +{ + switch (input_value) + { + case VK_COLOR_COMPONENT_A_BIT: + return "VK_COLOR_COMPONENT_A_BIT"; + case VK_COLOR_COMPONENT_B_BIT: + return "VK_COLOR_COMPONENT_B_BIT"; + case VK_COLOR_COMPONENT_G_BIT: + return "VK_COLOR_COMPONENT_G_BIT"; + case VK_COLOR_COMPONENT_R_BIT: + return "VK_COLOR_COMPONENT_R_BIT"; + default: + return "Unhandled VkColorComponentFlagBits"; + } +} + +static inline std::string string_VkColorComponentFlags(VkColorComponentFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkColorComponentFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkColorComponentFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCompareOp(VkCompareOp input_value) +{ + switch (input_value) + { + case VK_COMPARE_OP_ALWAYS: + return "VK_COMPARE_OP_ALWAYS"; + case VK_COMPARE_OP_EQUAL: + return "VK_COMPARE_OP_EQUAL"; + case VK_COMPARE_OP_GREATER: + return "VK_COMPARE_OP_GREATER"; + case VK_COMPARE_OP_GREATER_OR_EQUAL: + return "VK_COMPARE_OP_GREATER_OR_EQUAL"; + case VK_COMPARE_OP_LESS: + return "VK_COMPARE_OP_LESS"; + case VK_COMPARE_OP_LESS_OR_EQUAL: + return "VK_COMPARE_OP_LESS_OR_EQUAL"; + case VK_COMPARE_OP_NEVER: + return "VK_COMPARE_OP_NEVER"; + case VK_COMPARE_OP_NOT_EQUAL: + return "VK_COMPARE_OP_NOT_EQUAL"; + default: + return "Unhandled VkCompareOp"; + } +} + +static inline const char* string_VkPipelineCreateFlagBits(VkPipelineCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT: + return "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"; + case VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR: + return "VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"; + case VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR: + return "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"; + case VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT: + return "VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"; + case VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV: + return "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"; + case VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT: + return "VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"; + case VK_PIPELINE_CREATE_DERIVATIVE_BIT: + return "VK_PIPELINE_CREATE_DERIVATIVE_BIT"; + case VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT: + return "VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT"; + case VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT: + return "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"; + case VK_PIPELINE_CREATE_DISPATCH_BASE_BIT: + return "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"; + case VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT: + return "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"; + case VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT: + return "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"; + case VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV: + return "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"; + case VK_PIPELINE_CREATE_LIBRARY_BIT_KHR: + return "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"; + case VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT: + return "VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"; + case VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT: + return "VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT"; + case VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT: + return "VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT"; + case VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV: + return "VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"; + case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT: + return "VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"; + case VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"; + case VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT: + return "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"; + case VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: + return "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"; + case VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT: + return "VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"; + case VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT: + return "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"; + default: + return "Unhandled VkPipelineCreateFlagBits"; + } +} + +static inline std::string string_VkPipelineCreateFlags(VkPipelineCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPipelineShaderStageCreateFlagBits(VkPipelineShaderStageCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT: + return "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"; + case VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT: + return "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"; + default: + return "Unhandled VkPipelineShaderStageCreateFlagBits"; + } +} + +static inline std::string string_VkPipelineShaderStageCreateFlags(VkPipelineShaderStageCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineShaderStageCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineShaderStageCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkShaderStageFlagBits(VkShaderStageFlagBits input_value) +{ + switch (input_value) + { + case VK_SHADER_STAGE_ALL: + return "VK_SHADER_STAGE_ALL"; + case VK_SHADER_STAGE_ALL_GRAPHICS: + return "VK_SHADER_STAGE_ALL_GRAPHICS"; + case VK_SHADER_STAGE_ANY_HIT_BIT_KHR: + return "VK_SHADER_STAGE_ANY_HIT_BIT_KHR"; + case VK_SHADER_STAGE_CALLABLE_BIT_KHR: + return "VK_SHADER_STAGE_CALLABLE_BIT_KHR"; + case VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR: + return "VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"; + case VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI: + return "VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI"; + case VK_SHADER_STAGE_COMPUTE_BIT: + return "VK_SHADER_STAGE_COMPUTE_BIT"; + case VK_SHADER_STAGE_FRAGMENT_BIT: + return "VK_SHADER_STAGE_FRAGMENT_BIT"; + case VK_SHADER_STAGE_GEOMETRY_BIT: + return "VK_SHADER_STAGE_GEOMETRY_BIT"; + case VK_SHADER_STAGE_INTERSECTION_BIT_KHR: + return "VK_SHADER_STAGE_INTERSECTION_BIT_KHR"; + case VK_SHADER_STAGE_MESH_BIT_EXT: + return "VK_SHADER_STAGE_MESH_BIT_EXT"; + case VK_SHADER_STAGE_MISS_BIT_KHR: + return "VK_SHADER_STAGE_MISS_BIT_KHR"; + case VK_SHADER_STAGE_RAYGEN_BIT_KHR: + return "VK_SHADER_STAGE_RAYGEN_BIT_KHR"; + case VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI: + return "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"; + case VK_SHADER_STAGE_TASK_BIT_EXT: + return "VK_SHADER_STAGE_TASK_BIT_EXT"; + case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT: + return "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"; + case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: + return "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"; + case VK_SHADER_STAGE_VERTEX_BIT: + return "VK_SHADER_STAGE_VERTEX_BIT"; + default: + return "Unhandled VkShaderStageFlagBits"; + } +} + +static inline std::string string_VkShaderStageFlags(VkShaderStageFlags input_value) +{ + if (input_value == VK_SHADER_STAGE_ALL) { return "VK_SHADER_STAGE_ALL"; } + if (input_value == VK_SHADER_STAGE_ALL_GRAPHICS) { return "VK_SHADER_STAGE_ALL_GRAPHICS"; } + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkShaderStageFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkShaderStageFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCullModeFlagBits(VkCullModeFlagBits input_value) +{ + switch (input_value) + { + case VK_CULL_MODE_BACK_BIT: + return "VK_CULL_MODE_BACK_BIT"; + case VK_CULL_MODE_FRONT_AND_BACK: + return "VK_CULL_MODE_FRONT_AND_BACK"; + case VK_CULL_MODE_FRONT_BIT: + return "VK_CULL_MODE_FRONT_BIT"; + case VK_CULL_MODE_NONE: + return "VK_CULL_MODE_NONE"; + default: + return "Unhandled VkCullModeFlagBits"; + } +} + +static inline std::string string_VkCullModeFlags(VkCullModeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCullModeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCullModeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkDynamicState(VkDynamicState input_value) +{ + switch (input_value) + { + case VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT: + return "VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT"; + case VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT: + return "VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT"; + case VK_DYNAMIC_STATE_BLEND_CONSTANTS: + return "VK_DYNAMIC_STATE_BLEND_CONSTANTS"; + case VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT: + return "VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT"; + case VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT: + return "VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT"; + case VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT: + return "VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT"; + case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT: + return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT"; + case VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT: + return "VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT"; + case VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT: + return "VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT"; + case VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV: + return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV"; + case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV: + return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV"; + case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV: + return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV"; + case VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV: + return "VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV"; + case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV: + return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV"; + case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV: + return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV"; + case VK_DYNAMIC_STATE_CULL_MODE: + return "VK_DYNAMIC_STATE_CULL_MODE"; + case VK_DYNAMIC_STATE_DEPTH_BIAS: + return "VK_DYNAMIC_STATE_DEPTH_BIAS"; + case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE: + return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE"; + case VK_DYNAMIC_STATE_DEPTH_BOUNDS: + return "VK_DYNAMIC_STATE_DEPTH_BOUNDS"; + case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE: + return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE"; + case VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT: + return "VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT"; + case VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT: + return "VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT"; + case VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT: + return "VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT"; + case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP: + return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP"; + case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE: + return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE"; + case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE: + return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE"; + case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT: + return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT"; + case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV: + return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV"; + case VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT: + return "VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT"; + case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR: + return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR"; + case VK_DYNAMIC_STATE_FRONT_FACE: + return "VK_DYNAMIC_STATE_FRONT_FACE"; + case VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT: + return "VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT"; + case VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT: + return "VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT"; + case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT: + return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT"; + case VK_DYNAMIC_STATE_LINE_WIDTH: + return "VK_DYNAMIC_STATE_LINE_WIDTH"; + case VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT: + return "VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT"; + case VK_DYNAMIC_STATE_LOGIC_OP_EXT: + return "VK_DYNAMIC_STATE_LOGIC_OP_EXT"; + case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT: + return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT"; + case VK_DYNAMIC_STATE_POLYGON_MODE_EXT: + return "VK_DYNAMIC_STATE_POLYGON_MODE_EXT"; + case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE: + return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE"; + case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY: + return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY"; + case VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT: + return "VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT"; + case VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT: + return "VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT"; + case VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT: + return "VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT"; + case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE: + return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE"; + case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR: + return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR"; + case VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV: + return "VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV"; + case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT: + return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT"; + case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT: + return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT"; + case VK_DYNAMIC_STATE_SAMPLE_MASK_EXT: + return "VK_DYNAMIC_STATE_SAMPLE_MASK_EXT"; + case VK_DYNAMIC_STATE_SCISSOR: + return "VK_DYNAMIC_STATE_SCISSOR"; + case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT: + return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT"; + case VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV: + return "VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV"; + case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK: + return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK"; + case VK_DYNAMIC_STATE_STENCIL_OP: + return "VK_DYNAMIC_STATE_STENCIL_OP"; + case VK_DYNAMIC_STATE_STENCIL_REFERENCE: + return "VK_DYNAMIC_STATE_STENCIL_REFERENCE"; + case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE: + return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE"; + case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK: + return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK"; + case VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT: + return "VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT"; + case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE: + return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE"; + case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT: + return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT"; + case VK_DYNAMIC_STATE_VIEWPORT: + return "VK_DYNAMIC_STATE_VIEWPORT"; + case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV: + return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV"; + case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV: + return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV"; + case VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV: + return "VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV"; + case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT: + return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT"; + case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV: + return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV"; + case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV: + return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV"; + default: + return "Unhandled VkDynamicState"; + } +} + +static inline const char* string_VkFrontFace(VkFrontFace input_value) +{ + switch (input_value) + { + case VK_FRONT_FACE_CLOCKWISE: + return "VK_FRONT_FACE_CLOCKWISE"; + case VK_FRONT_FACE_COUNTER_CLOCKWISE: + return "VK_FRONT_FACE_COUNTER_CLOCKWISE"; + default: + return "Unhandled VkFrontFace"; + } +} + +static inline const char* string_VkVertexInputRate(VkVertexInputRate input_value) +{ + switch (input_value) + { + case VK_VERTEX_INPUT_RATE_INSTANCE: + return "VK_VERTEX_INPUT_RATE_INSTANCE"; + case VK_VERTEX_INPUT_RATE_VERTEX: + return "VK_VERTEX_INPUT_RATE_VERTEX"; + default: + return "Unhandled VkVertexInputRate"; + } +} + +static inline const char* string_VkPrimitiveTopology(VkPrimitiveTopology input_value) +{ + switch (input_value) + { + case VK_PRIMITIVE_TOPOLOGY_LINE_LIST: + return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST"; + case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY: + return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY"; + case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP: + return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP"; + case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY: + return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY"; + case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST: + return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST"; + case VK_PRIMITIVE_TOPOLOGY_POINT_LIST: + return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST"; + case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN: + return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN"; + case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST: + return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST"; + case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY: + return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY"; + case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP: + return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"; + case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY: + return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY"; + default: + return "Unhandled VkPrimitiveTopology"; + } +} + +static inline const char* string_VkPolygonMode(VkPolygonMode input_value) +{ + switch (input_value) + { + case VK_POLYGON_MODE_FILL: + return "VK_POLYGON_MODE_FILL"; + case VK_POLYGON_MODE_FILL_RECTANGLE_NV: + return "VK_POLYGON_MODE_FILL_RECTANGLE_NV"; + case VK_POLYGON_MODE_LINE: + return "VK_POLYGON_MODE_LINE"; + case VK_POLYGON_MODE_POINT: + return "VK_POLYGON_MODE_POINT"; + default: + return "Unhandled VkPolygonMode"; + } +} + +static inline const char* string_VkPipelineDepthStencilStateCreateFlagBits(VkPipelineDepthStencilStateCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT: + return "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"; + case VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT: + return "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"; + default: + return "Unhandled VkPipelineDepthStencilStateCreateFlagBits"; + } +} + +static inline std::string string_VkPipelineDepthStencilStateCreateFlags(VkPipelineDepthStencilStateCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineDepthStencilStateCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineDepthStencilStateCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkStencilOp(VkStencilOp input_value) +{ + switch (input_value) + { + case VK_STENCIL_OP_DECREMENT_AND_CLAMP: + return "VK_STENCIL_OP_DECREMENT_AND_CLAMP"; + case VK_STENCIL_OP_DECREMENT_AND_WRAP: + return "VK_STENCIL_OP_DECREMENT_AND_WRAP"; + case VK_STENCIL_OP_INCREMENT_AND_CLAMP: + return "VK_STENCIL_OP_INCREMENT_AND_CLAMP"; + case VK_STENCIL_OP_INCREMENT_AND_WRAP: + return "VK_STENCIL_OP_INCREMENT_AND_WRAP"; + case VK_STENCIL_OP_INVERT: + return "VK_STENCIL_OP_INVERT"; + case VK_STENCIL_OP_KEEP: + return "VK_STENCIL_OP_KEEP"; + case VK_STENCIL_OP_REPLACE: + return "VK_STENCIL_OP_REPLACE"; + case VK_STENCIL_OP_ZERO: + return "VK_STENCIL_OP_ZERO"; + default: + return "Unhandled VkStencilOp"; + } +} + +static inline const char* string_VkPipelineColorBlendStateCreateFlagBits(VkPipelineColorBlendStateCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT: + return "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT"; + default: + return "Unhandled VkPipelineColorBlendStateCreateFlagBits"; + } +} + +static inline std::string string_VkPipelineColorBlendStateCreateFlags(VkPipelineColorBlendStateCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineColorBlendStateCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineColorBlendStateCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkLogicOp(VkLogicOp input_value) +{ + switch (input_value) + { + case VK_LOGIC_OP_AND: + return "VK_LOGIC_OP_AND"; + case VK_LOGIC_OP_AND_INVERTED: + return "VK_LOGIC_OP_AND_INVERTED"; + case VK_LOGIC_OP_AND_REVERSE: + return "VK_LOGIC_OP_AND_REVERSE"; + case VK_LOGIC_OP_CLEAR: + return "VK_LOGIC_OP_CLEAR"; + case VK_LOGIC_OP_COPY: + return "VK_LOGIC_OP_COPY"; + case VK_LOGIC_OP_COPY_INVERTED: + return "VK_LOGIC_OP_COPY_INVERTED"; + case VK_LOGIC_OP_EQUIVALENT: + return "VK_LOGIC_OP_EQUIVALENT"; + case VK_LOGIC_OP_INVERT: + return "VK_LOGIC_OP_INVERT"; + case VK_LOGIC_OP_NAND: + return "VK_LOGIC_OP_NAND"; + case VK_LOGIC_OP_NOR: + return "VK_LOGIC_OP_NOR"; + case VK_LOGIC_OP_NO_OP: + return "VK_LOGIC_OP_NO_OP"; + case VK_LOGIC_OP_OR: + return "VK_LOGIC_OP_OR"; + case VK_LOGIC_OP_OR_INVERTED: + return "VK_LOGIC_OP_OR_INVERTED"; + case VK_LOGIC_OP_OR_REVERSE: + return "VK_LOGIC_OP_OR_REVERSE"; + case VK_LOGIC_OP_SET: + return "VK_LOGIC_OP_SET"; + case VK_LOGIC_OP_XOR: + return "VK_LOGIC_OP_XOR"; + default: + return "Unhandled VkLogicOp"; + } +} + +static inline const char* string_VkPipelineLayoutCreateFlagBits(VkPipelineLayoutCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT: + return "VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"; + default: + return "Unhandled VkPipelineLayoutCreateFlagBits"; + } +} + +static inline std::string string_VkPipelineLayoutCreateFlags(VkPipelineLayoutCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineLayoutCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineLayoutCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkBorderColor(VkBorderColor input_value) +{ + switch (input_value) + { + case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT: + return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT"; + case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK: + return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK"; + case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE: + return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE"; + case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK: + return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK"; + case VK_BORDER_COLOR_INT_CUSTOM_EXT: + return "VK_BORDER_COLOR_INT_CUSTOM_EXT"; + case VK_BORDER_COLOR_INT_OPAQUE_BLACK: + return "VK_BORDER_COLOR_INT_OPAQUE_BLACK"; + case VK_BORDER_COLOR_INT_OPAQUE_WHITE: + return "VK_BORDER_COLOR_INT_OPAQUE_WHITE"; + case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK: + return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK"; + default: + return "Unhandled VkBorderColor"; + } +} + +static inline const char* string_VkFilter(VkFilter input_value) +{ + switch (input_value) + { + case VK_FILTER_CUBIC_EXT: + return "VK_FILTER_CUBIC_EXT"; + case VK_FILTER_LINEAR: + return "VK_FILTER_LINEAR"; + case VK_FILTER_NEAREST: + return "VK_FILTER_NEAREST"; + default: + return "Unhandled VkFilter"; + } +} + +static inline const char* string_VkSamplerAddressMode(VkSamplerAddressMode input_value) +{ + switch (input_value) + { + case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER: + return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER"; + case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE: + return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE"; + case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT: + return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT"; + case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE: + return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE"; + case VK_SAMPLER_ADDRESS_MODE_REPEAT: + return "VK_SAMPLER_ADDRESS_MODE_REPEAT"; + default: + return "Unhandled VkSamplerAddressMode"; + } +} + +static inline const char* string_VkSamplerCreateFlagBits(VkSamplerCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT: + return "VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"; + case VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM: + return "VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM"; + case VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT: + return "VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT"; + case VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT: + return "VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"; + case VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT: + return "VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"; + default: + return "Unhandled VkSamplerCreateFlagBits"; + } +} + +static inline std::string string_VkSamplerCreateFlags(VkSamplerCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSamplerCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSamplerCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSamplerMipmapMode(VkSamplerMipmapMode input_value) +{ + switch (input_value) + { + case VK_SAMPLER_MIPMAP_MODE_LINEAR: + return "VK_SAMPLER_MIPMAP_MODE_LINEAR"; + case VK_SAMPLER_MIPMAP_MODE_NEAREST: + return "VK_SAMPLER_MIPMAP_MODE_NEAREST"; + default: + return "Unhandled VkSamplerMipmapMode"; + } +} + +static inline const char* string_VkDescriptorPoolCreateFlagBits(VkDescriptorPoolCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT: + return "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"; + case VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT: + return "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT"; + case VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT: + return "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"; + default: + return "Unhandled VkDescriptorPoolCreateFlagBits"; + } +} + +static inline std::string string_VkDescriptorPoolCreateFlags(VkDescriptorPoolCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDescriptorPoolCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDescriptorPoolCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkDescriptorType(VkDescriptorType input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR: + return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR"; + case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV: + return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV"; + case VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM: + return "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM"; + case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER: + return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER"; + case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK: + return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK"; + case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT: + return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT"; + case VK_DESCRIPTOR_TYPE_MUTABLE_EXT: + return "VK_DESCRIPTOR_TYPE_MUTABLE_EXT"; + case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE: + return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE"; + case VK_DESCRIPTOR_TYPE_SAMPLER: + return "VK_DESCRIPTOR_TYPE_SAMPLER"; + case VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM: + return "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM"; + case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER: + return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER"; + case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC: + return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC"; + case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE: + return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE"; + case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: + return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER"; + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: + return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER"; + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: + return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC"; + case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: + return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER"; + default: + return "Unhandled VkDescriptorType"; + } +} + +static inline const char* string_VkDescriptorSetLayoutCreateFlagBits(VkDescriptorSetLayoutCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT: + return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT"; + case VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT: + return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT"; + case VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT: + return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT"; + case VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR: + return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"; + case VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT: + return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"; + default: + return "Unhandled VkDescriptorSetLayoutCreateFlagBits"; + } +} + +static inline std::string string_VkDescriptorSetLayoutCreateFlags(VkDescriptorSetLayoutCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDescriptorSetLayoutCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDescriptorSetLayoutCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkAttachmentDescriptionFlagBits(VkAttachmentDescriptionFlagBits input_value) +{ + switch (input_value) + { + case VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT: + return "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"; + default: + return "Unhandled VkAttachmentDescriptionFlagBits"; + } +} + +static inline std::string string_VkAttachmentDescriptionFlags(VkAttachmentDescriptionFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkAttachmentDescriptionFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkAttachmentDescriptionFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkAttachmentLoadOp(VkAttachmentLoadOp input_value) +{ + switch (input_value) + { + case VK_ATTACHMENT_LOAD_OP_CLEAR: + return "VK_ATTACHMENT_LOAD_OP_CLEAR"; + case VK_ATTACHMENT_LOAD_OP_DONT_CARE: + return "VK_ATTACHMENT_LOAD_OP_DONT_CARE"; + case VK_ATTACHMENT_LOAD_OP_LOAD: + return "VK_ATTACHMENT_LOAD_OP_LOAD"; + case VK_ATTACHMENT_LOAD_OP_NONE_EXT: + return "VK_ATTACHMENT_LOAD_OP_NONE_EXT"; + default: + return "Unhandled VkAttachmentLoadOp"; + } +} + +static inline const char* string_VkAttachmentStoreOp(VkAttachmentStoreOp input_value) +{ + switch (input_value) + { + case VK_ATTACHMENT_STORE_OP_DONT_CARE: + return "VK_ATTACHMENT_STORE_OP_DONT_CARE"; + case VK_ATTACHMENT_STORE_OP_NONE: + return "VK_ATTACHMENT_STORE_OP_NONE"; + case VK_ATTACHMENT_STORE_OP_STORE: + return "VK_ATTACHMENT_STORE_OP_STORE"; + default: + return "Unhandled VkAttachmentStoreOp"; + } +} + +static inline const char* string_VkDependencyFlagBits(VkDependencyFlagBits input_value) +{ + switch (input_value) + { + case VK_DEPENDENCY_BY_REGION_BIT: + return "VK_DEPENDENCY_BY_REGION_BIT"; + case VK_DEPENDENCY_DEVICE_GROUP_BIT: + return "VK_DEPENDENCY_DEVICE_GROUP_BIT"; + case VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT: + return "VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT"; + case VK_DEPENDENCY_VIEW_LOCAL_BIT: + return "VK_DEPENDENCY_VIEW_LOCAL_BIT"; + default: + return "Unhandled VkDependencyFlagBits"; + } +} + +static inline std::string string_VkDependencyFlags(VkDependencyFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDependencyFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDependencyFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkFramebufferCreateFlagBits(VkFramebufferCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT: + return "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"; + default: + return "Unhandled VkFramebufferCreateFlagBits"; + } +} + +static inline std::string string_VkFramebufferCreateFlags(VkFramebufferCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFramebufferCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFramebufferCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPipelineBindPoint(VkPipelineBindPoint input_value) +{ + switch (input_value) + { + case VK_PIPELINE_BIND_POINT_COMPUTE: + return "VK_PIPELINE_BIND_POINT_COMPUTE"; + case VK_PIPELINE_BIND_POINT_GRAPHICS: + return "VK_PIPELINE_BIND_POINT_GRAPHICS"; + case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR: + return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR"; + case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI: + return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI"; + default: + return "Unhandled VkPipelineBindPoint"; + } +} + +static inline const char* string_VkRenderPassCreateFlagBits(VkRenderPassCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM: + return "VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"; + default: + return "Unhandled VkRenderPassCreateFlagBits"; + } +} + +static inline std::string string_VkRenderPassCreateFlags(VkRenderPassCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkRenderPassCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkRenderPassCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSubpassDescriptionFlagBits(VkSubpassDescriptionFlagBits input_value) +{ + switch (input_value) + { + case VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT: + return "VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT"; + case VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM: + return "VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"; + case VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX: + return "VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"; + case VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX: + return "VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"; + case VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT: + return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT"; + case VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT: + return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"; + case VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT: + return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"; + case VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM: + return "VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"; + default: + return "Unhandled VkSubpassDescriptionFlagBits"; + } +} + +static inline std::string string_VkSubpassDescriptionFlags(VkSubpassDescriptionFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSubpassDescriptionFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSubpassDescriptionFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCommandPoolCreateFlagBits(VkCommandPoolCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_COMMAND_POOL_CREATE_PROTECTED_BIT: + return "VK_COMMAND_POOL_CREATE_PROTECTED_BIT"; + case VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT: + return "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"; + case VK_COMMAND_POOL_CREATE_TRANSIENT_BIT: + return "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"; + default: + return "Unhandled VkCommandPoolCreateFlagBits"; + } +} + +static inline std::string string_VkCommandPoolCreateFlags(VkCommandPoolCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCommandPoolCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCommandPoolCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCommandPoolResetFlagBits(VkCommandPoolResetFlagBits input_value) +{ + switch (input_value) + { + case VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT: + return "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"; + default: + return "Unhandled VkCommandPoolResetFlagBits"; + } +} + +static inline std::string string_VkCommandPoolResetFlags(VkCommandPoolResetFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCommandPoolResetFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCommandPoolResetFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCommandBufferLevel(VkCommandBufferLevel input_value) +{ + switch (input_value) + { + case VK_COMMAND_BUFFER_LEVEL_PRIMARY: + return "VK_COMMAND_BUFFER_LEVEL_PRIMARY"; + case VK_COMMAND_BUFFER_LEVEL_SECONDARY: + return "VK_COMMAND_BUFFER_LEVEL_SECONDARY"; + default: + return "Unhandled VkCommandBufferLevel"; + } +} + +static inline const char* string_VkCommandBufferUsageFlagBits(VkCommandBufferUsageFlagBits input_value) +{ + switch (input_value) + { + case VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT: + return "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"; + case VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT: + return "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"; + case VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT: + return "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"; + default: + return "Unhandled VkCommandBufferUsageFlagBits"; + } +} + +static inline std::string string_VkCommandBufferUsageFlags(VkCommandBufferUsageFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCommandBufferUsageFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCommandBufferUsageFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkQueryControlFlagBits(VkQueryControlFlagBits input_value) +{ + switch (input_value) + { + case VK_QUERY_CONTROL_PRECISE_BIT: + return "VK_QUERY_CONTROL_PRECISE_BIT"; + default: + return "Unhandled VkQueryControlFlagBits"; + } +} + +static inline std::string string_VkQueryControlFlags(VkQueryControlFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkQueryControlFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkQueryControlFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCommandBufferResetFlagBits(VkCommandBufferResetFlagBits input_value) +{ + switch (input_value) + { + case VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT: + return "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"; + default: + return "Unhandled VkCommandBufferResetFlagBits"; + } +} + +static inline std::string string_VkCommandBufferResetFlags(VkCommandBufferResetFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCommandBufferResetFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCommandBufferResetFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkIndexType(VkIndexType input_value) +{ + switch (input_value) + { + case VK_INDEX_TYPE_NONE_KHR: + return "VK_INDEX_TYPE_NONE_KHR"; + case VK_INDEX_TYPE_UINT16: + return "VK_INDEX_TYPE_UINT16"; + case VK_INDEX_TYPE_UINT32: + return "VK_INDEX_TYPE_UINT32"; + case VK_INDEX_TYPE_UINT8_EXT: + return "VK_INDEX_TYPE_UINT8_EXT"; + default: + return "Unhandled VkIndexType"; + } +} + +static inline const char* string_VkStencilFaceFlagBits(VkStencilFaceFlagBits input_value) +{ + switch (input_value) + { + case VK_STENCIL_FACE_BACK_BIT: + return "VK_STENCIL_FACE_BACK_BIT"; + case VK_STENCIL_FACE_FRONT_AND_BACK: + return "VK_STENCIL_FACE_FRONT_AND_BACK"; + case VK_STENCIL_FACE_FRONT_BIT: + return "VK_STENCIL_FACE_FRONT_BIT"; + default: + return "Unhandled VkStencilFaceFlagBits"; + } +} + +static inline std::string string_VkStencilFaceFlags(VkStencilFaceFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkStencilFaceFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkStencilFaceFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSubpassContents(VkSubpassContents input_value) +{ + switch (input_value) + { + case VK_SUBPASS_CONTENTS_INLINE: + return "VK_SUBPASS_CONTENTS_INLINE"; + case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS: + return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS"; + default: + return "Unhandled VkSubpassContents"; + } +} + +static inline const char* string_VkSubgroupFeatureFlagBits(VkSubgroupFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_SUBGROUP_FEATURE_ARITHMETIC_BIT: + return "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"; + case VK_SUBGROUP_FEATURE_BALLOT_BIT: + return "VK_SUBGROUP_FEATURE_BALLOT_BIT"; + case VK_SUBGROUP_FEATURE_BASIC_BIT: + return "VK_SUBGROUP_FEATURE_BASIC_BIT"; + case VK_SUBGROUP_FEATURE_CLUSTERED_BIT: + return "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"; + case VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV: + return "VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"; + case VK_SUBGROUP_FEATURE_QUAD_BIT: + return "VK_SUBGROUP_FEATURE_QUAD_BIT"; + case VK_SUBGROUP_FEATURE_SHUFFLE_BIT: + return "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"; + case VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT: + return "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"; + case VK_SUBGROUP_FEATURE_VOTE_BIT: + return "VK_SUBGROUP_FEATURE_VOTE_BIT"; + default: + return "Unhandled VkSubgroupFeatureFlagBits"; + } +} + +static inline std::string string_VkSubgroupFeatureFlags(VkSubgroupFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSubgroupFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSubgroupFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPeerMemoryFeatureFlagBits(VkPeerMemoryFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_PEER_MEMORY_FEATURE_COPY_DST_BIT: + return "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"; + case VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT: + return "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"; + case VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT: + return "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"; + case VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT: + return "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"; + default: + return "Unhandled VkPeerMemoryFeatureFlagBits"; + } +} + +static inline std::string string_VkPeerMemoryFeatureFlags(VkPeerMemoryFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPeerMemoryFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPeerMemoryFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkMemoryAllocateFlagBits(VkMemoryAllocateFlagBits input_value) +{ + switch (input_value) + { + case VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"; + case VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"; + case VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"; + default: + return "Unhandled VkMemoryAllocateFlagBits"; + } +} + +static inline std::string string_VkMemoryAllocateFlags(VkMemoryAllocateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkMemoryAllocateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkMemoryAllocateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPointClippingBehavior(VkPointClippingBehavior input_value) +{ + switch (input_value) + { + case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES: + return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES"; + case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY: + return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY"; + default: + return "Unhandled VkPointClippingBehavior"; + } +} + +static inline const char* string_VkTessellationDomainOrigin(VkTessellationDomainOrigin input_value) +{ + switch (input_value) + { + case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT: + return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"; + case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT: + return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"; + default: + return "Unhandled VkTessellationDomainOrigin"; + } +} + +static inline const char* string_VkSamplerYcbcrModelConversion(VkSamplerYcbcrModelConversion input_value) +{ + switch (input_value) + { + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY"; + default: + return "Unhandled VkSamplerYcbcrModelConversion"; + } +} + +static inline const char* string_VkSamplerYcbcrRange(VkSamplerYcbcrRange input_value) +{ + switch (input_value) + { + case VK_SAMPLER_YCBCR_RANGE_ITU_FULL: + return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL"; + case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW: + return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW"; + default: + return "Unhandled VkSamplerYcbcrRange"; + } +} + +static inline const char* string_VkChromaLocation(VkChromaLocation input_value) +{ + switch (input_value) + { + case VK_CHROMA_LOCATION_COSITED_EVEN: + return "VK_CHROMA_LOCATION_COSITED_EVEN"; + case VK_CHROMA_LOCATION_MIDPOINT: + return "VK_CHROMA_LOCATION_MIDPOINT"; + default: + return "Unhandled VkChromaLocation"; + } +} + +static inline const char* string_VkDescriptorUpdateTemplateType(VkDescriptorUpdateTemplateType input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET: + return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"; + case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR: + return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR"; + default: + return "Unhandled VkDescriptorUpdateTemplateType"; + } +} + +static inline const char* string_VkExternalMemoryHandleTypeFlagBits(VkExternalMemoryHandleTypeFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"; + default: + return "Unhandled VkExternalMemoryHandleTypeFlagBits"; + } +} + +static inline std::string string_VkExternalMemoryHandleTypeFlags(VkExternalMemoryHandleTypeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryHandleTypeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryHandleTypeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalMemoryFeatureFlagBits(VkExternalMemoryFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"; + case VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalMemoryFeatureFlagBits"; + } +} + +static inline std::string string_VkExternalMemoryFeatureFlags(VkExternalMemoryFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalFenceHandleTypeFlagBits(VkExternalFenceHandleTypeFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"; + default: + return "Unhandled VkExternalFenceHandleTypeFlagBits"; + } +} + +static inline std::string string_VkExternalFenceHandleTypeFlags(VkExternalFenceHandleTypeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalFenceHandleTypeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalFenceHandleTypeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalFenceFeatureFlagBits(VkExternalFenceFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalFenceFeatureFlagBits"; + } +} + +static inline std::string string_VkExternalFenceFeatureFlags(VkExternalFenceFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalFenceFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalFenceFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkFenceImportFlagBits(VkFenceImportFlagBits input_value) +{ + switch (input_value) + { + case VK_FENCE_IMPORT_TEMPORARY_BIT: + return "VK_FENCE_IMPORT_TEMPORARY_BIT"; + default: + return "Unhandled VkFenceImportFlagBits"; + } +} + +static inline std::string string_VkFenceImportFlags(VkFenceImportFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFenceImportFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFenceImportFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSemaphoreImportFlagBits(VkSemaphoreImportFlagBits input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_IMPORT_TEMPORARY_BIT: + return "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"; + default: + return "Unhandled VkSemaphoreImportFlagBits"; + } +} + +static inline std::string string_VkSemaphoreImportFlags(VkSemaphoreImportFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSemaphoreImportFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSemaphoreImportFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalSemaphoreHandleTypeFlagBits(VkExternalSemaphoreHandleTypeFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"; + default: + return "Unhandled VkExternalSemaphoreHandleTypeFlagBits"; + } +} + +static inline std::string string_VkExternalSemaphoreHandleTypeFlags(VkExternalSemaphoreHandleTypeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalSemaphoreHandleTypeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalSemaphoreHandleTypeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalSemaphoreFeatureFlagBits(VkExternalSemaphoreFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalSemaphoreFeatureFlagBits"; + } +} + +static inline std::string string_VkExternalSemaphoreFeatureFlags(VkExternalSemaphoreFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalSemaphoreFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalSemaphoreFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkDriverId(VkDriverId input_value) +{ + switch (input_value) + { + case VK_DRIVER_ID_AMD_OPEN_SOURCE: + return "VK_DRIVER_ID_AMD_OPEN_SOURCE"; + case VK_DRIVER_ID_AMD_PROPRIETARY: + return "VK_DRIVER_ID_AMD_PROPRIETARY"; + case VK_DRIVER_ID_ARM_PROPRIETARY: + return "VK_DRIVER_ID_ARM_PROPRIETARY"; + case VK_DRIVER_ID_BROADCOM_PROPRIETARY: + return "VK_DRIVER_ID_BROADCOM_PROPRIETARY"; + case VK_DRIVER_ID_COREAVI_PROPRIETARY: + return "VK_DRIVER_ID_COREAVI_PROPRIETARY"; + case VK_DRIVER_ID_GGP_PROPRIETARY: + return "VK_DRIVER_ID_GGP_PROPRIETARY"; + case VK_DRIVER_ID_GOOGLE_SWIFTSHADER: + return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER"; + case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA: + return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA"; + case VK_DRIVER_ID_IMAGINATION_PROPRIETARY: + return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY"; + case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA: + return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA"; + case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS: + return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS"; + case VK_DRIVER_ID_JUICE_PROPRIETARY: + return "VK_DRIVER_ID_JUICE_PROPRIETARY"; + case VK_DRIVER_ID_MESA_DOZEN: + return "VK_DRIVER_ID_MESA_DOZEN"; + case VK_DRIVER_ID_MESA_LLVMPIPE: + return "VK_DRIVER_ID_MESA_LLVMPIPE"; + case VK_DRIVER_ID_MESA_NVK: + return "VK_DRIVER_ID_MESA_NVK"; + case VK_DRIVER_ID_MESA_PANVK: + return "VK_DRIVER_ID_MESA_PANVK"; + case VK_DRIVER_ID_MESA_RADV: + return "VK_DRIVER_ID_MESA_RADV"; + case VK_DRIVER_ID_MESA_TURNIP: + return "VK_DRIVER_ID_MESA_TURNIP"; + case VK_DRIVER_ID_MESA_V3DV: + return "VK_DRIVER_ID_MESA_V3DV"; + case VK_DRIVER_ID_MESA_VENUS: + return "VK_DRIVER_ID_MESA_VENUS"; + case VK_DRIVER_ID_MOLTENVK: + return "VK_DRIVER_ID_MOLTENVK"; + case VK_DRIVER_ID_NVIDIA_PROPRIETARY: + return "VK_DRIVER_ID_NVIDIA_PROPRIETARY"; + case VK_DRIVER_ID_QUALCOMM_PROPRIETARY: + return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY"; + case VK_DRIVER_ID_SAMSUNG_PROPRIETARY: + return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY"; + case VK_DRIVER_ID_VERISILICON_PROPRIETARY: + return "VK_DRIVER_ID_VERISILICON_PROPRIETARY"; + default: + return "Unhandled VkDriverId"; + } +} + +static inline const char* string_VkShaderFloatControlsIndependence(VkShaderFloatControlsIndependence input_value) +{ + switch (input_value) + { + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY"; + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL"; + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE"; + default: + return "Unhandled VkShaderFloatControlsIndependence"; + } +} + +static inline const char* string_VkResolveModeFlagBits(VkResolveModeFlagBits input_value) +{ + switch (input_value) + { + case VK_RESOLVE_MODE_AVERAGE_BIT: + return "VK_RESOLVE_MODE_AVERAGE_BIT"; + case VK_RESOLVE_MODE_MAX_BIT: + return "VK_RESOLVE_MODE_MAX_BIT"; + case VK_RESOLVE_MODE_MIN_BIT: + return "VK_RESOLVE_MODE_MIN_BIT"; + case VK_RESOLVE_MODE_NONE: + return "VK_RESOLVE_MODE_NONE"; + case VK_RESOLVE_MODE_SAMPLE_ZERO_BIT: + return "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"; + default: + return "Unhandled VkResolveModeFlagBits"; + } +} + +static inline std::string string_VkResolveModeFlags(VkResolveModeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkResolveModeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkResolveModeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkDescriptorBindingFlagBits(VkDescriptorBindingFlagBits input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT: + return "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"; + case VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT: + return "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"; + case VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT: + return "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"; + case VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT: + return "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"; + default: + return "Unhandled VkDescriptorBindingFlagBits"; + } +} + +static inline std::string string_VkDescriptorBindingFlags(VkDescriptorBindingFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDescriptorBindingFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDescriptorBindingFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSamplerReductionMode(VkSamplerReductionMode input_value) +{ + switch (input_value) + { + case VK_SAMPLER_REDUCTION_MODE_MAX: + return "VK_SAMPLER_REDUCTION_MODE_MAX"; + case VK_SAMPLER_REDUCTION_MODE_MIN: + return "VK_SAMPLER_REDUCTION_MODE_MIN"; + case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE: + return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE"; + default: + return "Unhandled VkSamplerReductionMode"; + } +} + +static inline const char* string_VkSemaphoreType(VkSemaphoreType input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_TYPE_BINARY: + return "VK_SEMAPHORE_TYPE_BINARY"; + case VK_SEMAPHORE_TYPE_TIMELINE: + return "VK_SEMAPHORE_TYPE_TIMELINE"; + default: + return "Unhandled VkSemaphoreType"; + } +} + +static inline const char* string_VkSemaphoreWaitFlagBits(VkSemaphoreWaitFlagBits input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_WAIT_ANY_BIT: + return "VK_SEMAPHORE_WAIT_ANY_BIT"; + default: + return "Unhandled VkSemaphoreWaitFlagBits"; + } +} + +static inline std::string string_VkSemaphoreWaitFlags(VkSemaphoreWaitFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSemaphoreWaitFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSemaphoreWaitFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPipelineCreationFeedbackFlagBits(VkPipelineCreationFeedbackFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT: + return "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"; + case VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT: + return "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"; + case VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT: + return "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"; + default: + return "Unhandled VkPipelineCreationFeedbackFlagBits"; + } +} + +static inline std::string string_VkPipelineCreationFeedbackFlags(VkPipelineCreationFeedbackFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineCreationFeedbackFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineCreationFeedbackFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkToolPurposeFlagBits(VkToolPurposeFlagBits input_value) +{ + switch (input_value) + { + case VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT: + return "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"; + case VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT: + return "VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"; + case VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT: + return "VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"; + case VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT: + return "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"; + case VK_TOOL_PURPOSE_PROFILING_BIT: + return "VK_TOOL_PURPOSE_PROFILING_BIT"; + case VK_TOOL_PURPOSE_TRACING_BIT: + return "VK_TOOL_PURPOSE_TRACING_BIT"; + case VK_TOOL_PURPOSE_VALIDATION_BIT: + return "VK_TOOL_PURPOSE_VALIDATION_BIT"; + default: + return "Unhandled VkToolPurposeFlagBits"; + } +} + +static inline std::string string_VkToolPurposeFlags(VkToolPurposeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkToolPurposeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkToolPurposeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPipelineStageFlagBits2(uint64_t input_value) +{ + switch (input_value) + { + case VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR: + return "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"; + case VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR: + return "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"; + case VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT: + return "VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT"; + case VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT: + return "VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT"; + case VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT: + return "VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT"; + case VK_PIPELINE_STAGE_2_BLIT_BIT: + return "VK_PIPELINE_STAGE_2_BLIT_BIT"; + case VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT: + return "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT"; + case VK_PIPELINE_STAGE_2_CLEAR_BIT: + return "VK_PIPELINE_STAGE_2_CLEAR_BIT"; + case VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI: + return "VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"; + case VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT: + return "VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"; + case VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV: + return "VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"; + case VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT: + return "VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT"; + case VK_PIPELINE_STAGE_2_COPY_BIT: + return "VK_PIPELINE_STAGE_2_COPY_BIT"; + case VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT: + return "VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT"; + case VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT: + return "VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT"; + case VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT: + return "VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"; + case VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: + return "VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"; + case VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_HOST_BIT: + return "VK_PIPELINE_STAGE_2_HOST_BIT"; + case VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT: + return "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"; + case VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI: + return "VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI"; + case VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT: + return "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"; + case VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT: + return "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"; + case VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT: + return "VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"; + case VK_PIPELINE_STAGE_2_NONE: + return "VK_PIPELINE_STAGE_2_NONE"; + case VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV: + return "VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"; + case VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT: + return "VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT"; + case VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"; + case VK_PIPELINE_STAGE_2_RESOLVE_BIT: + return "VK_PIPELINE_STAGE_2_RESOLVE_BIT"; + case VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI: + return "VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI"; + case VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT: + return "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"; + case VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT: + return "VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT"; + case VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT: + return "VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"; + case VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT: + return "VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"; + case VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT: + return "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"; + case VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkPipelineStageFlagBits2"; + } +} + +static inline std::string string_VkPipelineStageFlags2(VkPipelineStageFlags2 input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineStageFlagBits2(static_cast(1ULL << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineStageFlagBits2(static_cast(0))); + return ret; +} + +static inline const char* string_VkAccessFlagBits2(uint64_t input_value) +{ + switch (input_value) + { + case VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR: + return "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"; + case VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR: + return "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"; + case VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT: + return "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT"; + case VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT: + return "VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"; + case VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT: + return "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT"; + case VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV: + return "VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"; + case VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV: + return "VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"; + case VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT: + return "VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT"; + case VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT: + return "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT"; + case VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT: + return "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"; + case VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT: + return "VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT"; + case VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT: + return "VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"; + case VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR: + return "VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"; + case VK_ACCESS_2_HOST_READ_BIT: + return "VK_ACCESS_2_HOST_READ_BIT"; + case VK_ACCESS_2_HOST_WRITE_BIT: + return "VK_ACCESS_2_HOST_WRITE_BIT"; + case VK_ACCESS_2_INDEX_READ_BIT: + return "VK_ACCESS_2_INDEX_READ_BIT"; + case VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT: + return "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT"; + case VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT: + return "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT"; + case VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI: + return "VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI"; + case VK_ACCESS_2_MEMORY_READ_BIT: + return "VK_ACCESS_2_MEMORY_READ_BIT"; + case VK_ACCESS_2_MEMORY_WRITE_BIT: + return "VK_ACCESS_2_MEMORY_WRITE_BIT"; + case VK_ACCESS_2_MICROMAP_READ_BIT_EXT: + return "VK_ACCESS_2_MICROMAP_READ_BIT_EXT"; + case VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT: + return "VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT"; + case VK_ACCESS_2_NONE: + return "VK_ACCESS_2_NONE"; + case VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV: + return "VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV"; + case VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV: + return "VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV"; + case VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR: + return "VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR"; + case VK_ACCESS_2_SHADER_READ_BIT: + return "VK_ACCESS_2_SHADER_READ_BIT"; + case VK_ACCESS_2_SHADER_SAMPLED_READ_BIT: + return "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT"; + case VK_ACCESS_2_SHADER_STORAGE_READ_BIT: + return "VK_ACCESS_2_SHADER_STORAGE_READ_BIT"; + case VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT: + return "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"; + case VK_ACCESS_2_SHADER_WRITE_BIT: + return "VK_ACCESS_2_SHADER_WRITE_BIT"; + case VK_ACCESS_2_TRANSFER_READ_BIT: + return "VK_ACCESS_2_TRANSFER_READ_BIT"; + case VK_ACCESS_2_TRANSFER_WRITE_BIT: + return "VK_ACCESS_2_TRANSFER_WRITE_BIT"; + case VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT: + return "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"; + case VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT: + return "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"; + case VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT: + return "VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"; + case VK_ACCESS_2_UNIFORM_READ_BIT: + return "VK_ACCESS_2_UNIFORM_READ_BIT"; + case VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT: + return "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"; + case VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR: + return "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"; + case VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR: + return "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR: + return "VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR: + return "VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkAccessFlagBits2"; + } +} + +static inline std::string string_VkAccessFlags2(VkAccessFlags2 input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkAccessFlagBits2(static_cast(1ULL << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkAccessFlagBits2(static_cast(0))); + return ret; +} + +static inline const char* string_VkSubmitFlagBits(VkSubmitFlagBits input_value) +{ + switch (input_value) + { + case VK_SUBMIT_PROTECTED_BIT: + return "VK_SUBMIT_PROTECTED_BIT"; + default: + return "Unhandled VkSubmitFlagBits"; + } +} + +static inline std::string string_VkSubmitFlags(VkSubmitFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSubmitFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSubmitFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkRenderingFlagBits(VkRenderingFlagBits input_value) +{ + switch (input_value) + { + case VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT: + return "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"; + case VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT: + return "VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT"; + case VK_RENDERING_RESUMING_BIT: + return "VK_RENDERING_RESUMING_BIT"; + case VK_RENDERING_SUSPENDING_BIT: + return "VK_RENDERING_SUSPENDING_BIT"; + default: + return "Unhandled VkRenderingFlagBits"; + } +} + +static inline std::string string_VkRenderingFlags(VkRenderingFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkRenderingFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkRenderingFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkFormatFeatureFlagBits2(uint64_t input_value) +{ + switch (input_value) + { + case VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR: + return "VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"; + case VK_FORMAT_FEATURE_2_BLIT_DST_BIT: + return "VK_FORMAT_FEATURE_2_BLIT_DST_BIT"; + case VK_FORMAT_FEATURE_2_BLIT_SRC_BIT: + return "VK_FORMAT_FEATURE_2_BLIT_SRC_BIT"; + case VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM: + return "VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM"; + case VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM: + return "VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM"; + case VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT: + return "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT"; + case VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT: + return "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT"; + case VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT: + return "VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT"; + case VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT: + return "VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT"; + case VK_FORMAT_FEATURE_2_DISJOINT_BIT: + return "VK_FORMAT_FEATURE_2_DISJOINT_BIT"; + case VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT: + return "VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT"; + case VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: + return "VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"; + case VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV: + return "VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV"; + case VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT: + return "VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT"; + case VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV: + return "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV"; + case VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV: + return "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV"; + case VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV: + return "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT"; + case VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT: + return "VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT"; + case VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT: + return "VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT"; + case VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT: + return "VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT"; + case VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT: + return "VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT"; + case VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"; + case VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM: + return "VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM"; + case VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM: + return "VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM"; + default: + return "Unhandled VkFormatFeatureFlagBits2"; + } +} + +static inline std::string string_VkFormatFeatureFlags2(VkFormatFeatureFlags2 input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFormatFeatureFlagBits2(static_cast(1ULL << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFormatFeatureFlagBits2(static_cast(0))); + return ret; +} + +static inline const char* string_VkSurfaceTransformFlagBitsKHR(VkSurfaceTransformFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR: + return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"; + case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR: + return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"; + case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR: + return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"; + case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR: + return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"; + case VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR: + return "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"; + case VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR: + return "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"; + case VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR: + return "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"; + case VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR: + return "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"; + case VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR: + return "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"; + default: + return "Unhandled VkSurfaceTransformFlagBitsKHR"; + } +} + +static inline std::string string_VkSurfaceTransformFlagsKHR(VkSurfaceTransformFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSurfaceTransformFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSurfaceTransformFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkPresentModeKHR(VkPresentModeKHR input_value) +{ + switch (input_value) + { + case VK_PRESENT_MODE_FIFO_KHR: + return "VK_PRESENT_MODE_FIFO_KHR"; + case VK_PRESENT_MODE_FIFO_RELAXED_KHR: + return "VK_PRESENT_MODE_FIFO_RELAXED_KHR"; + case VK_PRESENT_MODE_IMMEDIATE_KHR: + return "VK_PRESENT_MODE_IMMEDIATE_KHR"; + case VK_PRESENT_MODE_MAILBOX_KHR: + return "VK_PRESENT_MODE_MAILBOX_KHR"; + case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: + return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR"; + case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: + return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR"; + default: + return "Unhandled VkPresentModeKHR"; + } +} + +static inline const char* string_VkColorSpaceKHR(VkColorSpaceKHR input_value) +{ + switch (input_value) + { + case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT: + return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT"; + case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT: + return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT"; + case VK_COLOR_SPACE_BT2020_LINEAR_EXT: + return "VK_COLOR_SPACE_BT2020_LINEAR_EXT"; + case VK_COLOR_SPACE_BT709_LINEAR_EXT: + return "VK_COLOR_SPACE_BT709_LINEAR_EXT"; + case VK_COLOR_SPACE_BT709_NONLINEAR_EXT: + return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT"; + case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT: + return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT"; + case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD: + return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD"; + case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT: + return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT"; + case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT: + return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT"; + case VK_COLOR_SPACE_DOLBYVISION_EXT: + return "VK_COLOR_SPACE_DOLBYVISION_EXT"; + case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT: + return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT"; + case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT: + return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT"; + case VK_COLOR_SPACE_HDR10_HLG_EXT: + return "VK_COLOR_SPACE_HDR10_HLG_EXT"; + case VK_COLOR_SPACE_HDR10_ST2084_EXT: + return "VK_COLOR_SPACE_HDR10_ST2084_EXT"; + case VK_COLOR_SPACE_PASS_THROUGH_EXT: + return "VK_COLOR_SPACE_PASS_THROUGH_EXT"; + case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR: + return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR"; + default: + return "Unhandled VkColorSpaceKHR"; + } +} + +static inline const char* string_VkCompositeAlphaFlagBitsKHR(VkCompositeAlphaFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR: + return "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"; + case VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR: + return "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"; + case VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR: + return "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"; + case VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR: + return "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"; + default: + return "Unhandled VkCompositeAlphaFlagBitsKHR"; + } +} + +static inline std::string string_VkCompositeAlphaFlagsKHR(VkCompositeAlphaFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCompositeAlphaFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCompositeAlphaFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkSwapchainCreateFlagBitsKHR(VkSwapchainCreateFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT: + return "VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT"; + case VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR: + return "VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"; + case VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR: + return "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"; + case VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR: + return "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"; + default: + return "Unhandled VkSwapchainCreateFlagBitsKHR"; + } +} + +static inline std::string string_VkSwapchainCreateFlagsKHR(VkSwapchainCreateFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSwapchainCreateFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSwapchainCreateFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkDeviceGroupPresentModeFlagBitsKHR(VkDeviceGroupPresentModeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR: + return "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"; + case VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR: + return "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"; + case VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR: + return "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"; + case VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR: + return "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"; + default: + return "Unhandled VkDeviceGroupPresentModeFlagBitsKHR"; + } +} + +static inline std::string string_VkDeviceGroupPresentModeFlagsKHR(VkDeviceGroupPresentModeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDeviceGroupPresentModeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDeviceGroupPresentModeFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkDisplayPlaneAlphaFlagBitsKHR(VkDisplayPlaneAlphaFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR: + return "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"; + case VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR: + return "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"; + case VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR: + return "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"; + case VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR: + return "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"; + default: + return "Unhandled VkDisplayPlaneAlphaFlagBitsKHR"; + } +} + +static inline std::string string_VkDisplayPlaneAlphaFlagsKHR(VkDisplayPlaneAlphaFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDisplayPlaneAlphaFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDisplayPlaneAlphaFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkVideoCodecOperationFlagBitsKHR(VkVideoCodecOperationFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR: + return "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR"; + case VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR: + return "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT: + return "VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT: + return "VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODEC_OPERATION_NONE_KHR: + return "VK_VIDEO_CODEC_OPERATION_NONE_KHR"; + default: + return "Unhandled VkVideoCodecOperationFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoCodecOperationFlagsKHR(VkVideoCodecOperationFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoCodecOperationFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoCodecOperationFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkVideoChromaSubsamplingFlagBitsKHR(VkVideoChromaSubsamplingFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"; + case VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"; + case VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"; + case VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR"; + case VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"; + default: + return "Unhandled VkVideoChromaSubsamplingFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoChromaSubsamplingFlagsKHR(VkVideoChromaSubsamplingFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoChromaSubsamplingFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoChromaSubsamplingFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkVideoComponentBitDepthFlagBitsKHR(VkVideoComponentBitDepthFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR: + return "VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"; + case VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR: + return "VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"; + case VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR: + return "VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"; + case VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR: + return "VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"; + default: + return "Unhandled VkVideoComponentBitDepthFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoComponentBitDepthFlagsKHR(VkVideoComponentBitDepthFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoComponentBitDepthFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoComponentBitDepthFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkVideoCapabilityFlagBitsKHR(VkVideoCapabilityFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR: + return "VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"; + case VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR: + return "VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR"; + default: + return "Unhandled VkVideoCapabilityFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoCapabilityFlagsKHR(VkVideoCapabilityFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoCapabilityFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoCapabilityFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkVideoSessionCreateFlagBitsKHR(VkVideoSessionCreateFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR: + return "VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"; + default: + return "Unhandled VkVideoSessionCreateFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoSessionCreateFlagsKHR(VkVideoSessionCreateFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoSessionCreateFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoSessionCreateFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkVideoCodingControlFlagBitsKHR(VkVideoCodingControlFlagBitsKHR input_value) +{ + switch (input_value) + { +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR: + return "VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR: + return "VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR: + return "VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"; + default: + return "Unhandled VkVideoCodingControlFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoCodingControlFlagsKHR(VkVideoCodingControlFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoCodingControlFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoCodingControlFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkQueryResultStatusKHR(VkQueryResultStatusKHR input_value) +{ + switch (input_value) + { + case VK_QUERY_RESULT_STATUS_COMPLETE_KHR: + return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR"; + case VK_QUERY_RESULT_STATUS_ERROR_KHR: + return "VK_QUERY_RESULT_STATUS_ERROR_KHR"; + case VK_QUERY_RESULT_STATUS_NOT_READY_KHR: + return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR"; + default: + return "Unhandled VkQueryResultStatusKHR"; + } +} + +static inline const char* string_VkVideoDecodeCapabilityFlagBitsKHR(VkVideoDecodeCapabilityFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR: + return "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"; + case VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR: + return "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"; + default: + return "Unhandled VkVideoDecodeCapabilityFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoDecodeCapabilityFlagsKHR(VkVideoDecodeCapabilityFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoDecodeCapabilityFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoDecodeCapabilityFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkVideoDecodeUsageFlagBitsKHR(VkVideoDecodeUsageFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_DECODE_USAGE_DEFAULT_KHR: + return "VK_VIDEO_DECODE_USAGE_DEFAULT_KHR"; + case VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR: + return "VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR"; + case VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR: + return "VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR"; + case VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR: + return "VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR"; + default: + return "Unhandled VkVideoDecodeUsageFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoDecodeUsageFlagsKHR(VkVideoDecodeUsageFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoDecodeUsageFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoDecodeUsageFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkVideoDecodeH264PictureLayoutFlagBitsKHR(VkVideoDecodeH264PictureLayoutFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR: + return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR"; + case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR: + return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR"; + case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR: + return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR"; + default: + return "Unhandled VkVideoDecodeH264PictureLayoutFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoDecodeH264PictureLayoutFlagsKHR(VkVideoDecodeH264PictureLayoutFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkRenderingFlagBitsKHR(VkRenderingFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT: + return "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"; + case VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT: + return "VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT"; + case VK_RENDERING_RESUMING_BIT: + return "VK_RENDERING_RESUMING_BIT"; + case VK_RENDERING_SUSPENDING_BIT: + return "VK_RENDERING_SUSPENDING_BIT"; + default: + return "Unhandled VkRenderingFlagBitsKHR"; + } +} + +static inline std::string string_VkRenderingFlagsKHR(VkRenderingFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkRenderingFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkRenderingFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkPeerMemoryFeatureFlagBitsKHR(VkPeerMemoryFeatureFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_PEER_MEMORY_FEATURE_COPY_DST_BIT: + return "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"; + case VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT: + return "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"; + case VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT: + return "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"; + case VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT: + return "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"; + default: + return "Unhandled VkPeerMemoryFeatureFlagBitsKHR"; + } +} + +static inline std::string string_VkPeerMemoryFeatureFlagsKHR(VkPeerMemoryFeatureFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPeerMemoryFeatureFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPeerMemoryFeatureFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkMemoryAllocateFlagBitsKHR(VkMemoryAllocateFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"; + case VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"; + case VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"; + default: + return "Unhandled VkMemoryAllocateFlagBitsKHR"; + } +} + +static inline std::string string_VkMemoryAllocateFlagsKHR(VkMemoryAllocateFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkMemoryAllocateFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkMemoryAllocateFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalMemoryHandleTypeFlagBitsKHR(VkExternalMemoryHandleTypeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"; + default: + return "Unhandled VkExternalMemoryHandleTypeFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalMemoryHandleTypeFlagsKHR(VkExternalMemoryHandleTypeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryHandleTypeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryHandleTypeFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalMemoryFeatureFlagBitsKHR(VkExternalMemoryFeatureFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"; + case VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalMemoryFeatureFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalMemoryFeatureFlagsKHR(VkExternalMemoryFeatureFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryFeatureFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryFeatureFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalSemaphoreHandleTypeFlagBitsKHR(VkExternalSemaphoreHandleTypeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"; + default: + return "Unhandled VkExternalSemaphoreHandleTypeFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalSemaphoreHandleTypeFlagsKHR(VkExternalSemaphoreHandleTypeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalSemaphoreHandleTypeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalSemaphoreHandleTypeFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalSemaphoreFeatureFlagBitsKHR(VkExternalSemaphoreFeatureFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalSemaphoreFeatureFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalSemaphoreFeatureFlagsKHR(VkExternalSemaphoreFeatureFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalSemaphoreFeatureFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalSemaphoreFeatureFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkSemaphoreImportFlagBitsKHR(VkSemaphoreImportFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_IMPORT_TEMPORARY_BIT: + return "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"; + default: + return "Unhandled VkSemaphoreImportFlagBitsKHR"; + } +} + +static inline std::string string_VkSemaphoreImportFlagsKHR(VkSemaphoreImportFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSemaphoreImportFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSemaphoreImportFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkDescriptorUpdateTemplateTypeKHR(VkDescriptorUpdateTemplateTypeKHR input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET: + return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"; + case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR: + return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR"; + default: + return "Unhandled VkDescriptorUpdateTemplateTypeKHR"; + } +} + +static inline const char* string_VkExternalFenceHandleTypeFlagBitsKHR(VkExternalFenceHandleTypeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"; + default: + return "Unhandled VkExternalFenceHandleTypeFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalFenceHandleTypeFlagsKHR(VkExternalFenceHandleTypeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalFenceHandleTypeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalFenceHandleTypeFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalFenceFeatureFlagBitsKHR(VkExternalFenceFeatureFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalFenceFeatureFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalFenceFeatureFlagsKHR(VkExternalFenceFeatureFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalFenceFeatureFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalFenceFeatureFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkFenceImportFlagBitsKHR(VkFenceImportFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_FENCE_IMPORT_TEMPORARY_BIT: + return "VK_FENCE_IMPORT_TEMPORARY_BIT"; + default: + return "Unhandled VkFenceImportFlagBitsKHR"; + } +} + +static inline std::string string_VkFenceImportFlagsKHR(VkFenceImportFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFenceImportFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFenceImportFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkPerformanceCounterUnitKHR(VkPerformanceCounterUnitKHR input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR"; + default: + return "Unhandled VkPerformanceCounterUnitKHR"; + } +} + +static inline const char* string_VkPerformanceCounterScopeKHR(VkPerformanceCounterScopeKHR input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR: + return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR"; + case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR: + return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR"; + case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR: + return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR"; + default: + return "Unhandled VkPerformanceCounterScopeKHR"; + } +} + +static inline const char* string_VkPerformanceCounterStorageKHR(VkPerformanceCounterStorageKHR input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR"; + default: + return "Unhandled VkPerformanceCounterStorageKHR"; + } +} + +static inline const char* string_VkPerformanceCounterDescriptionFlagBitsKHR(VkPerformanceCounterDescriptionFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR: + return "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"; + case VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR: + return "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"; + default: + return "Unhandled VkPerformanceCounterDescriptionFlagBitsKHR"; + } +} + +static inline std::string string_VkPerformanceCounterDescriptionFlagsKHR(VkPerformanceCounterDescriptionFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPerformanceCounterDescriptionFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPerformanceCounterDescriptionFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkPointClippingBehaviorKHR(VkPointClippingBehaviorKHR input_value) +{ + switch (input_value) + { + case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES: + return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES"; + case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY: + return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY"; + default: + return "Unhandled VkPointClippingBehaviorKHR"; + } +} + +static inline const char* string_VkTessellationDomainOriginKHR(VkTessellationDomainOriginKHR input_value) +{ + switch (input_value) + { + case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT: + return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"; + case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT: + return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"; + default: + return "Unhandled VkTessellationDomainOriginKHR"; + } +} + +static inline const char* string_VkSamplerYcbcrModelConversionKHR(VkSamplerYcbcrModelConversionKHR input_value) +{ + switch (input_value) + { + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY"; + default: + return "Unhandled VkSamplerYcbcrModelConversionKHR"; + } +} + +static inline const char* string_VkSamplerYcbcrRangeKHR(VkSamplerYcbcrRangeKHR input_value) +{ + switch (input_value) + { + case VK_SAMPLER_YCBCR_RANGE_ITU_FULL: + return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL"; + case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW: + return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW"; + default: + return "Unhandled VkSamplerYcbcrRangeKHR"; + } +} + +static inline const char* string_VkChromaLocationKHR(VkChromaLocationKHR input_value) +{ + switch (input_value) + { + case VK_CHROMA_LOCATION_COSITED_EVEN: + return "VK_CHROMA_LOCATION_COSITED_EVEN"; + case VK_CHROMA_LOCATION_MIDPOINT: + return "VK_CHROMA_LOCATION_MIDPOINT"; + default: + return "Unhandled VkChromaLocationKHR"; + } +} + +static inline const char* string_VkQueueGlobalPriorityKHR(VkQueueGlobalPriorityKHR input_value) +{ + switch (input_value) + { + case VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR: + return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR"; + case VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR: + return "VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR"; + case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR: + return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR"; + case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR: + return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR"; + default: + return "Unhandled VkQueueGlobalPriorityKHR"; + } +} + +static inline const char* string_VkDriverIdKHR(VkDriverIdKHR input_value) +{ + switch (input_value) + { + case VK_DRIVER_ID_AMD_OPEN_SOURCE: + return "VK_DRIVER_ID_AMD_OPEN_SOURCE"; + case VK_DRIVER_ID_AMD_PROPRIETARY: + return "VK_DRIVER_ID_AMD_PROPRIETARY"; + case VK_DRIVER_ID_ARM_PROPRIETARY: + return "VK_DRIVER_ID_ARM_PROPRIETARY"; + case VK_DRIVER_ID_BROADCOM_PROPRIETARY: + return "VK_DRIVER_ID_BROADCOM_PROPRIETARY"; + case VK_DRIVER_ID_COREAVI_PROPRIETARY: + return "VK_DRIVER_ID_COREAVI_PROPRIETARY"; + case VK_DRIVER_ID_GGP_PROPRIETARY: + return "VK_DRIVER_ID_GGP_PROPRIETARY"; + case VK_DRIVER_ID_GOOGLE_SWIFTSHADER: + return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER"; + case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA: + return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA"; + case VK_DRIVER_ID_IMAGINATION_PROPRIETARY: + return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY"; + case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA: + return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA"; + case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS: + return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS"; + case VK_DRIVER_ID_JUICE_PROPRIETARY: + return "VK_DRIVER_ID_JUICE_PROPRIETARY"; + case VK_DRIVER_ID_MESA_DOZEN: + return "VK_DRIVER_ID_MESA_DOZEN"; + case VK_DRIVER_ID_MESA_LLVMPIPE: + return "VK_DRIVER_ID_MESA_LLVMPIPE"; + case VK_DRIVER_ID_MESA_NVK: + return "VK_DRIVER_ID_MESA_NVK"; + case VK_DRIVER_ID_MESA_PANVK: + return "VK_DRIVER_ID_MESA_PANVK"; + case VK_DRIVER_ID_MESA_RADV: + return "VK_DRIVER_ID_MESA_RADV"; + case VK_DRIVER_ID_MESA_TURNIP: + return "VK_DRIVER_ID_MESA_TURNIP"; + case VK_DRIVER_ID_MESA_V3DV: + return "VK_DRIVER_ID_MESA_V3DV"; + case VK_DRIVER_ID_MESA_VENUS: + return "VK_DRIVER_ID_MESA_VENUS"; + case VK_DRIVER_ID_MOLTENVK: + return "VK_DRIVER_ID_MOLTENVK"; + case VK_DRIVER_ID_NVIDIA_PROPRIETARY: + return "VK_DRIVER_ID_NVIDIA_PROPRIETARY"; + case VK_DRIVER_ID_QUALCOMM_PROPRIETARY: + return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY"; + case VK_DRIVER_ID_SAMSUNG_PROPRIETARY: + return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY"; + case VK_DRIVER_ID_VERISILICON_PROPRIETARY: + return "VK_DRIVER_ID_VERISILICON_PROPRIETARY"; + default: + return "Unhandled VkDriverIdKHR"; + } +} + +static inline const char* string_VkShaderFloatControlsIndependenceKHR(VkShaderFloatControlsIndependenceKHR input_value) +{ + switch (input_value) + { + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY"; + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL"; + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE"; + default: + return "Unhandled VkShaderFloatControlsIndependenceKHR"; + } +} + +static inline const char* string_VkResolveModeFlagBitsKHR(VkResolveModeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_RESOLVE_MODE_AVERAGE_BIT: + return "VK_RESOLVE_MODE_AVERAGE_BIT"; + case VK_RESOLVE_MODE_MAX_BIT: + return "VK_RESOLVE_MODE_MAX_BIT"; + case VK_RESOLVE_MODE_MIN_BIT: + return "VK_RESOLVE_MODE_MIN_BIT"; + case VK_RESOLVE_MODE_NONE: + return "VK_RESOLVE_MODE_NONE"; + case VK_RESOLVE_MODE_SAMPLE_ZERO_BIT: + return "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"; + default: + return "Unhandled VkResolveModeFlagBitsKHR"; + } +} + +static inline std::string string_VkResolveModeFlagsKHR(VkResolveModeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkResolveModeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkResolveModeFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkSemaphoreTypeKHR(VkSemaphoreTypeKHR input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_TYPE_BINARY: + return "VK_SEMAPHORE_TYPE_BINARY"; + case VK_SEMAPHORE_TYPE_TIMELINE: + return "VK_SEMAPHORE_TYPE_TIMELINE"; + default: + return "Unhandled VkSemaphoreTypeKHR"; + } +} + +static inline const char* string_VkSemaphoreWaitFlagBitsKHR(VkSemaphoreWaitFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_WAIT_ANY_BIT: + return "VK_SEMAPHORE_WAIT_ANY_BIT"; + default: + return "Unhandled VkSemaphoreWaitFlagBitsKHR"; + } +} + +static inline std::string string_VkSemaphoreWaitFlagsKHR(VkSemaphoreWaitFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSemaphoreWaitFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSemaphoreWaitFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkFragmentShadingRateCombinerOpKHR(VkFragmentShadingRateCombinerOpKHR input_value) +{ + switch (input_value) + { + case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR: + return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR"; + case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR: + return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR"; + case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR: + return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR"; + case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR: + return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR"; + case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR: + return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR"; + default: + return "Unhandled VkFragmentShadingRateCombinerOpKHR"; + } +} + +static inline const char* string_VkPipelineExecutableStatisticFormatKHR(VkPipelineExecutableStatisticFormatKHR input_value) +{ + switch (input_value) + { + case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR: + return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR"; + case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR: + return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR"; + case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR: + return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR"; + case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR: + return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR"; + default: + return "Unhandled VkPipelineExecutableStatisticFormatKHR"; + } +} + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeCapabilityFlagBitsKHR(VkVideoEncodeCapabilityFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR: + return "VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"; + default: + return "Unhandled VkVideoEncodeCapabilityFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoEncodeCapabilityFlagsKHR(VkVideoEncodeCapabilityFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeCapabilityFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeCapabilityFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeRateControlModeFlagBitsKHR(VkVideoEncodeRateControlModeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR: + return "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"; + case VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR: + return "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"; + case VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR: + return "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"; + default: + return "Unhandled VkVideoEncodeRateControlModeFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoEncodeRateControlModeFlagsKHR(VkVideoEncodeRateControlModeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeRateControlModeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeRateControlModeFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeUsageFlagBitsKHR(VkVideoEncodeUsageFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR: + return "VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR"; + case VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR: + return "VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR"; + case VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR: + return "VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR"; + case VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR: + return "VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR"; + case VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR: + return "VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR"; + default: + return "Unhandled VkVideoEncodeUsageFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoEncodeUsageFlagsKHR(VkVideoEncodeUsageFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeUsageFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeUsageFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeContentFlagBitsKHR(VkVideoEncodeContentFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR: + return "VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR"; + case VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR: + return "VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR"; + case VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR: + return "VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR"; + case VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR: + return "VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR"; + default: + return "Unhandled VkVideoEncodeContentFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoEncodeContentFlagsKHR(VkVideoEncodeContentFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeContentFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeContentFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeTuningModeKHR(VkVideoEncodeTuningModeKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR: + return "VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR"; + case VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR: + return "VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR"; + case VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR: + return "VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR"; + case VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR: + return "VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR"; + case VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR: + return "VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR"; + default: + return "Unhandled VkVideoEncodeTuningModeKHR"; + } +} +#endif // VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkPipelineStageFlagBits2KHR(uint64_t input_value) +{ + switch (input_value) + { + case VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR: + return "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"; + case VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR: + return "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"; + case VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT: + return "VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT"; + case VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT: + return "VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT"; + case VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT: + return "VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT"; + case VK_PIPELINE_STAGE_2_BLIT_BIT: + return "VK_PIPELINE_STAGE_2_BLIT_BIT"; + case VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT: + return "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT"; + case VK_PIPELINE_STAGE_2_CLEAR_BIT: + return "VK_PIPELINE_STAGE_2_CLEAR_BIT"; + case VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI: + return "VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"; + case VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT: + return "VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"; + case VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV: + return "VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"; + case VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT: + return "VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT"; + case VK_PIPELINE_STAGE_2_COPY_BIT: + return "VK_PIPELINE_STAGE_2_COPY_BIT"; + case VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT: + return "VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT"; + case VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT: + return "VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT"; + case VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT: + return "VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"; + case VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: + return "VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"; + case VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_HOST_BIT: + return "VK_PIPELINE_STAGE_2_HOST_BIT"; + case VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT: + return "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"; + case VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI: + return "VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI"; + case VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT: + return "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"; + case VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT: + return "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"; + case VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT: + return "VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"; + case VK_PIPELINE_STAGE_2_NONE: + return "VK_PIPELINE_STAGE_2_NONE"; + case VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV: + return "VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"; + case VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT: + return "VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT"; + case VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"; + case VK_PIPELINE_STAGE_2_RESOLVE_BIT: + return "VK_PIPELINE_STAGE_2_RESOLVE_BIT"; + case VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI: + return "VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI"; + case VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT: + return "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"; + case VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT: + return "VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT"; + case VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT: + return "VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"; + case VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT: + return "VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"; + case VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT: + return "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"; + case VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT: + return "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"; + case VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkPipelineStageFlagBits2KHR"; + } +} + +static inline std::string string_VkPipelineStageFlags2KHR(VkPipelineStageFlags2KHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineStageFlagBits2KHR(static_cast(1ULL << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineStageFlagBits2KHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkAccessFlagBits2KHR(uint64_t input_value) +{ + switch (input_value) + { + case VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR: + return "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"; + case VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR: + return "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"; + case VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT: + return "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT"; + case VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT: + return "VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"; + case VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT: + return "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT"; + case VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV: + return "VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"; + case VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV: + return "VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"; + case VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT: + return "VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT"; + case VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT: + return "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT"; + case VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT: + return "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"; + case VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT: + return "VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT"; + case VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT: + return "VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"; + case VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR: + return "VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"; + case VK_ACCESS_2_HOST_READ_BIT: + return "VK_ACCESS_2_HOST_READ_BIT"; + case VK_ACCESS_2_HOST_WRITE_BIT: + return "VK_ACCESS_2_HOST_WRITE_BIT"; + case VK_ACCESS_2_INDEX_READ_BIT: + return "VK_ACCESS_2_INDEX_READ_BIT"; + case VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT: + return "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT"; + case VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT: + return "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT"; + case VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI: + return "VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI"; + case VK_ACCESS_2_MEMORY_READ_BIT: + return "VK_ACCESS_2_MEMORY_READ_BIT"; + case VK_ACCESS_2_MEMORY_WRITE_BIT: + return "VK_ACCESS_2_MEMORY_WRITE_BIT"; + case VK_ACCESS_2_MICROMAP_READ_BIT_EXT: + return "VK_ACCESS_2_MICROMAP_READ_BIT_EXT"; + case VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT: + return "VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT"; + case VK_ACCESS_2_NONE: + return "VK_ACCESS_2_NONE"; + case VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV: + return "VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV"; + case VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV: + return "VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV"; + case VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR: + return "VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR"; + case VK_ACCESS_2_SHADER_READ_BIT: + return "VK_ACCESS_2_SHADER_READ_BIT"; + case VK_ACCESS_2_SHADER_SAMPLED_READ_BIT: + return "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT"; + case VK_ACCESS_2_SHADER_STORAGE_READ_BIT: + return "VK_ACCESS_2_SHADER_STORAGE_READ_BIT"; + case VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT: + return "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"; + case VK_ACCESS_2_SHADER_WRITE_BIT: + return "VK_ACCESS_2_SHADER_WRITE_BIT"; + case VK_ACCESS_2_TRANSFER_READ_BIT: + return "VK_ACCESS_2_TRANSFER_READ_BIT"; + case VK_ACCESS_2_TRANSFER_WRITE_BIT: + return "VK_ACCESS_2_TRANSFER_WRITE_BIT"; + case VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT: + return "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"; + case VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT: + return "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"; + case VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT: + return "VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"; + case VK_ACCESS_2_UNIFORM_READ_BIT: + return "VK_ACCESS_2_UNIFORM_READ_BIT"; + case VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT: + return "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"; + case VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR: + return "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"; + case VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR: + return "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR: + return "VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR: + return "VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkAccessFlagBits2KHR"; + } +} + +static inline std::string string_VkAccessFlags2KHR(VkAccessFlags2KHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkAccessFlagBits2KHR(static_cast(1ULL << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkAccessFlagBits2KHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkSubmitFlagBitsKHR(VkSubmitFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_SUBMIT_PROTECTED_BIT: + return "VK_SUBMIT_PROTECTED_BIT"; + default: + return "Unhandled VkSubmitFlagBitsKHR"; + } +} + +static inline std::string string_VkSubmitFlagsKHR(VkSubmitFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSubmitFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSubmitFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkFormatFeatureFlagBits2KHR(uint64_t input_value) +{ + switch (input_value) + { + case VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR: + return "VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"; + case VK_FORMAT_FEATURE_2_BLIT_DST_BIT: + return "VK_FORMAT_FEATURE_2_BLIT_DST_BIT"; + case VK_FORMAT_FEATURE_2_BLIT_SRC_BIT: + return "VK_FORMAT_FEATURE_2_BLIT_SRC_BIT"; + case VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM: + return "VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM"; + case VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM: + return "VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM"; + case VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT: + return "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT"; + case VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT: + return "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT"; + case VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT: + return "VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT"; + case VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT: + return "VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT"; + case VK_FORMAT_FEATURE_2_DISJOINT_BIT: + return "VK_FORMAT_FEATURE_2_DISJOINT_BIT"; + case VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT: + return "VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT"; + case VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: + return "VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"; + case VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV: + return "VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV"; + case VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT: + return "VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT"; + case VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV: + return "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV"; + case VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV: + return "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV"; + case VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV: + return "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"; + case VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT: + return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT"; + case VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT: + return "VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT"; + case VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT: + return "VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT"; + case VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT: + return "VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT"; + case VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT: + return "VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT"; + case VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT: + return "VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT"; + case VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"; + case VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM: + return "VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM"; + case VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM: + return "VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM"; + default: + return "Unhandled VkFormatFeatureFlagBits2KHR"; + } +} + +static inline std::string string_VkFormatFeatureFlags2KHR(VkFormatFeatureFlags2KHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFormatFeatureFlagBits2KHR(static_cast(1ULL << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFormatFeatureFlagBits2KHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkDebugReportFlagBitsEXT(VkDebugReportFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_DEBUG_REPORT_DEBUG_BIT_EXT: + return "VK_DEBUG_REPORT_DEBUG_BIT_EXT"; + case VK_DEBUG_REPORT_ERROR_BIT_EXT: + return "VK_DEBUG_REPORT_ERROR_BIT_EXT"; + case VK_DEBUG_REPORT_INFORMATION_BIT_EXT: + return "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"; + case VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT: + return "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"; + case VK_DEBUG_REPORT_WARNING_BIT_EXT: + return "VK_DEBUG_REPORT_WARNING_BIT_EXT"; + default: + return "Unhandled VkDebugReportFlagBitsEXT"; + } +} + +static inline std::string string_VkDebugReportFlagsEXT(VkDebugReportFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDebugReportFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDebugReportFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkDebugReportObjectTypeEXT(VkDebugReportObjectTypeEXT input_value) +{ + switch (input_value) + { + case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT"; + default: + return "Unhandled VkDebugReportObjectTypeEXT"; + } +} + +static inline const char* string_VkRasterizationOrderAMD(VkRasterizationOrderAMD input_value) +{ + switch (input_value) + { + case VK_RASTERIZATION_ORDER_RELAXED_AMD: + return "VK_RASTERIZATION_ORDER_RELAXED_AMD"; + case VK_RASTERIZATION_ORDER_STRICT_AMD: + return "VK_RASTERIZATION_ORDER_STRICT_AMD"; + default: + return "Unhandled VkRasterizationOrderAMD"; + } +} + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH264CapabilityFlagBitsEXT(VkVideoEncodeH264CapabilityFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH264CapabilityFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH264CapabilityFlagsEXT(VkVideoEncodeH264CapabilityFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH264CapabilityFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH264CapabilityFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH264InputModeFlagBitsEXT(VkVideoEncodeH264InputModeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH264InputModeFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH264InputModeFlagsEXT(VkVideoEncodeH264InputModeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH264InputModeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH264InputModeFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH264OutputModeFlagBitsEXT(VkVideoEncodeH264OutputModeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH264OutputModeFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH264OutputModeFlagsEXT(VkVideoEncodeH264OutputModeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH264OutputModeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH264OutputModeFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH264RateControlStructureEXT(VkVideoEncodeH264RateControlStructureEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT: + return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT"; + case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT: + return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT"; + case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT: + return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"; + default: + return "Unhandled VkVideoEncodeH264RateControlStructureEXT"; + } +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH265CapabilityFlagBitsEXT(VkVideoEncodeH265CapabilityFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH265CapabilityFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH265CapabilityFlagsEXT(VkVideoEncodeH265CapabilityFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH265CapabilityFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH265CapabilityFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH265InputModeFlagBitsEXT(VkVideoEncodeH265InputModeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH265InputModeFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH265InputModeFlagsEXT(VkVideoEncodeH265InputModeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH265InputModeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH265InputModeFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH265OutputModeFlagBitsEXT(VkVideoEncodeH265OutputModeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH265OutputModeFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH265OutputModeFlagsEXT(VkVideoEncodeH265OutputModeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH265OutputModeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH265OutputModeFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH265CtbSizeFlagBitsEXT(VkVideoEncodeH265CtbSizeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH265CtbSizeFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH265CtbSizeFlagsEXT(VkVideoEncodeH265CtbSizeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH265CtbSizeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH265CtbSizeFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH265TransformBlockSizeFlagBitsEXT(VkVideoEncodeH265TransformBlockSizeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT"; + case VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT: + return "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH265TransformBlockSizeFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH265TransformBlockSizeFlagsEXT(VkVideoEncodeH265TransformBlockSizeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH265TransformBlockSizeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH265TransformBlockSizeFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH265RateControlStructureEXT(VkVideoEncodeH265RateControlStructureEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT: + return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT"; + case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT: + return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT"; + case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT: + return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"; + default: + return "Unhandled VkVideoEncodeH265RateControlStructureEXT"; + } +} +#endif // VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkShaderInfoTypeAMD(VkShaderInfoTypeAMD input_value) +{ + switch (input_value) + { + case VK_SHADER_INFO_TYPE_BINARY_AMD: + return "VK_SHADER_INFO_TYPE_BINARY_AMD"; + case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD: + return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD"; + case VK_SHADER_INFO_TYPE_STATISTICS_AMD: + return "VK_SHADER_INFO_TYPE_STATISTICS_AMD"; + default: + return "Unhandled VkShaderInfoTypeAMD"; + } +} + +static inline const char* string_VkExternalMemoryHandleTypeFlagBitsNV(VkExternalMemoryHandleTypeFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"; + default: + return "Unhandled VkExternalMemoryHandleTypeFlagBitsNV"; + } +} + +static inline std::string string_VkExternalMemoryHandleTypeFlagsNV(VkExternalMemoryHandleTypeFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryHandleTypeFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryHandleTypeFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalMemoryFeatureFlagBitsNV(VkExternalMemoryFeatureFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV: + return "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"; + case VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV: + return "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"; + case VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV: + return "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"; + default: + return "Unhandled VkExternalMemoryFeatureFlagBitsNV"; + } +} + +static inline std::string string_VkExternalMemoryFeatureFlagsNV(VkExternalMemoryFeatureFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryFeatureFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryFeatureFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkValidationCheckEXT(VkValidationCheckEXT input_value) +{ + switch (input_value) + { + case VK_VALIDATION_CHECK_ALL_EXT: + return "VK_VALIDATION_CHECK_ALL_EXT"; + case VK_VALIDATION_CHECK_SHADERS_EXT: + return "VK_VALIDATION_CHECK_SHADERS_EXT"; + default: + return "Unhandled VkValidationCheckEXT"; + } +} + +static inline const char* string_VkPipelineRobustnessBufferBehaviorEXT(VkPipelineRobustnessBufferBehaviorEXT input_value) +{ + switch (input_value) + { + case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT: + return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT"; + case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT: + return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT"; + case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT: + return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT"; + case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT: + return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT"; + default: + return "Unhandled VkPipelineRobustnessBufferBehaviorEXT"; + } +} + +static inline const char* string_VkPipelineRobustnessImageBehaviorEXT(VkPipelineRobustnessImageBehaviorEXT input_value) +{ + switch (input_value) + { + case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT: + return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT"; + case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT: + return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT"; + case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT: + return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT"; + case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT: + return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT"; + default: + return "Unhandled VkPipelineRobustnessImageBehaviorEXT"; + } +} + +static inline const char* string_VkConditionalRenderingFlagBitsEXT(VkConditionalRenderingFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT: + return "VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"; + default: + return "Unhandled VkConditionalRenderingFlagBitsEXT"; + } +} + +static inline std::string string_VkConditionalRenderingFlagsEXT(VkConditionalRenderingFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkConditionalRenderingFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkConditionalRenderingFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkSurfaceCounterFlagBitsEXT(VkSurfaceCounterFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_SURFACE_COUNTER_VBLANK_BIT_EXT: + return "VK_SURFACE_COUNTER_VBLANK_BIT_EXT"; + default: + return "Unhandled VkSurfaceCounterFlagBitsEXT"; + } +} + +static inline std::string string_VkSurfaceCounterFlagsEXT(VkSurfaceCounterFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSurfaceCounterFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSurfaceCounterFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkDisplayPowerStateEXT(VkDisplayPowerStateEXT input_value) +{ + switch (input_value) + { + case VK_DISPLAY_POWER_STATE_OFF_EXT: + return "VK_DISPLAY_POWER_STATE_OFF_EXT"; + case VK_DISPLAY_POWER_STATE_ON_EXT: + return "VK_DISPLAY_POWER_STATE_ON_EXT"; + case VK_DISPLAY_POWER_STATE_SUSPEND_EXT: + return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT"; + default: + return "Unhandled VkDisplayPowerStateEXT"; + } +} + +static inline const char* string_VkDeviceEventTypeEXT(VkDeviceEventTypeEXT input_value) +{ + switch (input_value) + { + case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT: + return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT"; + default: + return "Unhandled VkDeviceEventTypeEXT"; + } +} + +static inline const char* string_VkDisplayEventTypeEXT(VkDisplayEventTypeEXT input_value) +{ + switch (input_value) + { + case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT: + return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT"; + default: + return "Unhandled VkDisplayEventTypeEXT"; + } +} + +static inline const char* string_VkViewportCoordinateSwizzleNV(VkViewportCoordinateSwizzleNV input_value) +{ + switch (input_value) + { + case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV"; + default: + return "Unhandled VkViewportCoordinateSwizzleNV"; + } +} + +static inline const char* string_VkDiscardRectangleModeEXT(VkDiscardRectangleModeEXT input_value) +{ + switch (input_value) + { + case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT: + return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT"; + case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT: + return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT"; + default: + return "Unhandled VkDiscardRectangleModeEXT"; + } +} + +static inline const char* string_VkConservativeRasterizationModeEXT(VkConservativeRasterizationModeEXT input_value) +{ + switch (input_value) + { + case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT: + return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT"; + case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT: + return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT"; + case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT: + return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT"; + default: + return "Unhandled VkConservativeRasterizationModeEXT"; + } +} + +static inline const char* string_VkDebugUtilsMessageSeverityFlagBitsEXT(VkDebugUtilsMessageSeverityFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"; + default: + return "Unhandled VkDebugUtilsMessageSeverityFlagBitsEXT"; + } +} + +static inline std::string string_VkDebugUtilsMessageSeverityFlagsEXT(VkDebugUtilsMessageSeverityFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDebugUtilsMessageSeverityFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDebugUtilsMessageSeverityFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkDebugUtilsMessageTypeFlagBitsEXT(VkDebugUtilsMessageTypeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"; + default: + return "Unhandled VkDebugUtilsMessageTypeFlagBitsEXT"; + } +} + +static inline std::string string_VkDebugUtilsMessageTypeFlagsEXT(VkDebugUtilsMessageTypeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDebugUtilsMessageTypeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDebugUtilsMessageTypeFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkSamplerReductionModeEXT(VkSamplerReductionModeEXT input_value) +{ + switch (input_value) + { + case VK_SAMPLER_REDUCTION_MODE_MAX: + return "VK_SAMPLER_REDUCTION_MODE_MAX"; + case VK_SAMPLER_REDUCTION_MODE_MIN: + return "VK_SAMPLER_REDUCTION_MODE_MIN"; + case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE: + return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE"; + default: + return "Unhandled VkSamplerReductionModeEXT"; + } +} + +static inline const char* string_VkBlendOverlapEXT(VkBlendOverlapEXT input_value) +{ + switch (input_value) + { + case VK_BLEND_OVERLAP_CONJOINT_EXT: + return "VK_BLEND_OVERLAP_CONJOINT_EXT"; + case VK_BLEND_OVERLAP_DISJOINT_EXT: + return "VK_BLEND_OVERLAP_DISJOINT_EXT"; + case VK_BLEND_OVERLAP_UNCORRELATED_EXT: + return "VK_BLEND_OVERLAP_UNCORRELATED_EXT"; + default: + return "Unhandled VkBlendOverlapEXT"; + } +} + +static inline const char* string_VkCoverageModulationModeNV(VkCoverageModulationModeNV input_value) +{ + switch (input_value) + { + case VK_COVERAGE_MODULATION_MODE_ALPHA_NV: + return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV"; + case VK_COVERAGE_MODULATION_MODE_NONE_NV: + return "VK_COVERAGE_MODULATION_MODE_NONE_NV"; + case VK_COVERAGE_MODULATION_MODE_RGBA_NV: + return "VK_COVERAGE_MODULATION_MODE_RGBA_NV"; + case VK_COVERAGE_MODULATION_MODE_RGB_NV: + return "VK_COVERAGE_MODULATION_MODE_RGB_NV"; + default: + return "Unhandled VkCoverageModulationModeNV"; + } +} + +static inline const char* string_VkValidationCacheHeaderVersionEXT(VkValidationCacheHeaderVersionEXT input_value) +{ + switch (input_value) + { + case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT: + return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"; + default: + return "Unhandled VkValidationCacheHeaderVersionEXT"; + } +} + +static inline const char* string_VkDescriptorBindingFlagBitsEXT(VkDescriptorBindingFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT: + return "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"; + case VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT: + return "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"; + case VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT: + return "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"; + case VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT: + return "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"; + default: + return "Unhandled VkDescriptorBindingFlagBitsEXT"; + } +} + +static inline std::string string_VkDescriptorBindingFlagsEXT(VkDescriptorBindingFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDescriptorBindingFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDescriptorBindingFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkShadingRatePaletteEntryNV(VkShadingRatePaletteEntryNV input_value) +{ + switch (input_value) + { + case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV"; + default: + return "Unhandled VkShadingRatePaletteEntryNV"; + } +} + +static inline const char* string_VkCoarseSampleOrderTypeNV(VkCoarseSampleOrderTypeNV input_value) +{ + switch (input_value) + { + case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV: + return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV"; + case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV: + return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV"; + case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV: + return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV"; + case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV: + return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV"; + default: + return "Unhandled VkCoarseSampleOrderTypeNV"; + } +} + +static inline const char* string_VkRayTracingShaderGroupTypeKHR(VkRayTracingShaderGroupTypeKHR input_value) +{ + switch (input_value) + { + case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR"; + case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR"; + case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR"; + default: + return "Unhandled VkRayTracingShaderGroupTypeKHR"; + } +} + +static inline const char* string_VkRayTracingShaderGroupTypeNV(VkRayTracingShaderGroupTypeNV input_value) +{ + switch (input_value) + { + case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR"; + case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR"; + case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR"; + default: + return "Unhandled VkRayTracingShaderGroupTypeNV"; + } +} + +static inline const char* string_VkGeometryTypeKHR(VkGeometryTypeKHR input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_TYPE_AABBS_KHR: + return "VK_GEOMETRY_TYPE_AABBS_KHR"; + case VK_GEOMETRY_TYPE_INSTANCES_KHR: + return "VK_GEOMETRY_TYPE_INSTANCES_KHR"; + case VK_GEOMETRY_TYPE_TRIANGLES_KHR: + return "VK_GEOMETRY_TYPE_TRIANGLES_KHR"; + default: + return "Unhandled VkGeometryTypeKHR"; + } +} + +static inline const char* string_VkGeometryTypeNV(VkGeometryTypeNV input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_TYPE_AABBS_KHR: + return "VK_GEOMETRY_TYPE_AABBS_KHR"; + case VK_GEOMETRY_TYPE_INSTANCES_KHR: + return "VK_GEOMETRY_TYPE_INSTANCES_KHR"; + case VK_GEOMETRY_TYPE_TRIANGLES_KHR: + return "VK_GEOMETRY_TYPE_TRIANGLES_KHR"; + default: + return "Unhandled VkGeometryTypeNV"; + } +} + +static inline const char* string_VkAccelerationStructureTypeKHR(VkAccelerationStructureTypeKHR input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR"; + case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR"; + case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR"; + default: + return "Unhandled VkAccelerationStructureTypeKHR"; + } +} + +static inline const char* string_VkAccelerationStructureTypeNV(VkAccelerationStructureTypeNV input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR"; + case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR"; + case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR"; + default: + return "Unhandled VkAccelerationStructureTypeNV"; + } +} + +static inline const char* string_VkGeometryFlagBitsKHR(VkGeometryFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR: + return "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"; + case VK_GEOMETRY_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_OPAQUE_BIT_KHR"; + default: + return "Unhandled VkGeometryFlagBitsKHR"; + } +} + +static inline std::string string_VkGeometryFlagsKHR(VkGeometryFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkGeometryFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkGeometryFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkGeometryFlagBitsNV(VkGeometryFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR: + return "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"; + case VK_GEOMETRY_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_OPAQUE_BIT_KHR"; + default: + return "Unhandled VkGeometryFlagBitsNV"; + } +} + +static inline std::string string_VkGeometryFlagsNV(VkGeometryFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkGeometryFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkGeometryFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkGeometryInstanceFlagBitsKHR(VkGeometryInstanceFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT: + return "VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT"; + case VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT: + return "VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT"; + case VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"; + default: + return "Unhandled VkGeometryInstanceFlagBitsKHR"; + } +} + +static inline std::string string_VkGeometryInstanceFlagsKHR(VkGeometryInstanceFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkGeometryInstanceFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkGeometryInstanceFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkGeometryInstanceFlagBitsNV(VkGeometryInstanceFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT: + return "VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT"; + case VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT: + return "VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT"; + case VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"; + default: + return "Unhandled VkGeometryInstanceFlagBitsNV"; + } +} + +static inline std::string string_VkGeometryInstanceFlagsNV(VkGeometryInstanceFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkGeometryInstanceFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkGeometryInstanceFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkBuildAccelerationStructureFlagBitsKHR(VkBuildAccelerationStructureFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT"; + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT"; + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT"; + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV: + return "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"; + case VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"; + default: + return "Unhandled VkBuildAccelerationStructureFlagBitsKHR"; + } +} + +static inline std::string string_VkBuildAccelerationStructureFlagsKHR(VkBuildAccelerationStructureFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkBuildAccelerationStructureFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkBuildAccelerationStructureFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkBuildAccelerationStructureFlagBitsNV(VkBuildAccelerationStructureFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT"; + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT"; + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT"; + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV: + return "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"; + case VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"; + default: + return "Unhandled VkBuildAccelerationStructureFlagBitsNV"; + } +} + +static inline std::string string_VkBuildAccelerationStructureFlagsNV(VkBuildAccelerationStructureFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkBuildAccelerationStructureFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkBuildAccelerationStructureFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkCopyAccelerationStructureModeKHR(VkCopyAccelerationStructureModeKHR input_value) +{ + switch (input_value) + { + case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR"; + default: + return "Unhandled VkCopyAccelerationStructureModeKHR"; + } +} + +static inline const char* string_VkCopyAccelerationStructureModeNV(VkCopyAccelerationStructureModeNV input_value) +{ + switch (input_value) + { + case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR"; + default: + return "Unhandled VkCopyAccelerationStructureModeNV"; + } +} + +static inline const char* string_VkAccelerationStructureMemoryRequirementsTypeNV(VkAccelerationStructureMemoryRequirementsTypeNV input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV: + return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV"; + case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV: + return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV"; + case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV: + return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV"; + default: + return "Unhandled VkAccelerationStructureMemoryRequirementsTypeNV"; + } +} + +static inline const char* string_VkQueueGlobalPriorityEXT(VkQueueGlobalPriorityEXT input_value) +{ + switch (input_value) + { + case VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR: + return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR"; + case VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR: + return "VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR"; + case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR: + return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR"; + case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR: + return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR"; + default: + return "Unhandled VkQueueGlobalPriorityEXT"; + } +} + +static inline const char* string_VkTimeDomainEXT(VkTimeDomainEXT input_value) +{ + switch (input_value) + { + case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT: + return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"; + case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT: + return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT"; + case VK_TIME_DOMAIN_DEVICE_EXT: + return "VK_TIME_DOMAIN_DEVICE_EXT"; + case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT: + return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT"; + default: + return "Unhandled VkTimeDomainEXT"; + } +} + +static inline const char* string_VkMemoryOverallocationBehaviorAMD(VkMemoryOverallocationBehaviorAMD input_value) +{ + switch (input_value) + { + case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD: + return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD"; + case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD: + return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD"; + case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD: + return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD"; + default: + return "Unhandled VkMemoryOverallocationBehaviorAMD"; + } +} + +static inline const char* string_VkPipelineCreationFeedbackFlagBitsEXT(VkPipelineCreationFeedbackFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT: + return "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"; + case VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT: + return "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"; + case VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT: + return "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"; + default: + return "Unhandled VkPipelineCreationFeedbackFlagBitsEXT"; + } +} + +static inline std::string string_VkPipelineCreationFeedbackFlagsEXT(VkPipelineCreationFeedbackFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineCreationFeedbackFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineCreationFeedbackFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkPerformanceConfigurationTypeINTEL(VkPerformanceConfigurationTypeINTEL input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL: + return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL"; + default: + return "Unhandled VkPerformanceConfigurationTypeINTEL"; + } +} + +static inline const char* string_VkQueryPoolSamplingModeINTEL(VkQueryPoolSamplingModeINTEL input_value) +{ + switch (input_value) + { + case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL: + return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL"; + default: + return "Unhandled VkQueryPoolSamplingModeINTEL"; + } +} + +static inline const char* string_VkPerformanceOverrideTypeINTEL(VkPerformanceOverrideTypeINTEL input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL: + return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL"; + case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL: + return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL"; + default: + return "Unhandled VkPerformanceOverrideTypeINTEL"; + } +} + +static inline const char* string_VkPerformanceParameterTypeINTEL(VkPerformanceParameterTypeINTEL input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL: + return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL"; + case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL: + return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL"; + default: + return "Unhandled VkPerformanceParameterTypeINTEL"; + } +} + +static inline const char* string_VkPerformanceValueTypeINTEL(VkPerformanceValueTypeINTEL input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL: + return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL"; + case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL: + return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL"; + case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL: + return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL"; + case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL: + return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL"; + case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL: + return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL"; + default: + return "Unhandled VkPerformanceValueTypeINTEL"; + } +} + +static inline const char* string_VkToolPurposeFlagBitsEXT(VkToolPurposeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT: + return "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"; + case VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT: + return "VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"; + case VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT: + return "VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"; + case VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT: + return "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"; + case VK_TOOL_PURPOSE_PROFILING_BIT: + return "VK_TOOL_PURPOSE_PROFILING_BIT"; + case VK_TOOL_PURPOSE_TRACING_BIT: + return "VK_TOOL_PURPOSE_TRACING_BIT"; + case VK_TOOL_PURPOSE_VALIDATION_BIT: + return "VK_TOOL_PURPOSE_VALIDATION_BIT"; + default: + return "Unhandled VkToolPurposeFlagBitsEXT"; + } +} + +static inline std::string string_VkToolPurposeFlagsEXT(VkToolPurposeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkToolPurposeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkToolPurposeFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkValidationFeatureEnableEXT(VkValidationFeatureEnableEXT input_value) +{ + switch (input_value) + { + case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT: + return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT"; + case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT: + return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT"; + case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT: + return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT"; + case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT: + return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT"; + case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT: + return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT"; + default: + return "Unhandled VkValidationFeatureEnableEXT"; + } +} + +static inline const char* string_VkValidationFeatureDisableEXT(VkValidationFeatureDisableEXT input_value) +{ + switch (input_value) + { + case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT"; + default: + return "Unhandled VkValidationFeatureDisableEXT"; + } +} + +static inline const char* string_VkComponentTypeNV(VkComponentTypeNV input_value) +{ + switch (input_value) + { + case VK_COMPONENT_TYPE_FLOAT16_NV: + return "VK_COMPONENT_TYPE_FLOAT16_NV"; + case VK_COMPONENT_TYPE_FLOAT32_NV: + return "VK_COMPONENT_TYPE_FLOAT32_NV"; + case VK_COMPONENT_TYPE_FLOAT64_NV: + return "VK_COMPONENT_TYPE_FLOAT64_NV"; + case VK_COMPONENT_TYPE_SINT16_NV: + return "VK_COMPONENT_TYPE_SINT16_NV"; + case VK_COMPONENT_TYPE_SINT32_NV: + return "VK_COMPONENT_TYPE_SINT32_NV"; + case VK_COMPONENT_TYPE_SINT64_NV: + return "VK_COMPONENT_TYPE_SINT64_NV"; + case VK_COMPONENT_TYPE_SINT8_NV: + return "VK_COMPONENT_TYPE_SINT8_NV"; + case VK_COMPONENT_TYPE_UINT16_NV: + return "VK_COMPONENT_TYPE_UINT16_NV"; + case VK_COMPONENT_TYPE_UINT32_NV: + return "VK_COMPONENT_TYPE_UINT32_NV"; + case VK_COMPONENT_TYPE_UINT64_NV: + return "VK_COMPONENT_TYPE_UINT64_NV"; + case VK_COMPONENT_TYPE_UINT8_NV: + return "VK_COMPONENT_TYPE_UINT8_NV"; + default: + return "Unhandled VkComponentTypeNV"; + } +} + +static inline const char* string_VkScopeNV(VkScopeNV input_value) +{ + switch (input_value) + { + case VK_SCOPE_DEVICE_NV: + return "VK_SCOPE_DEVICE_NV"; + case VK_SCOPE_QUEUE_FAMILY_NV: + return "VK_SCOPE_QUEUE_FAMILY_NV"; + case VK_SCOPE_SUBGROUP_NV: + return "VK_SCOPE_SUBGROUP_NV"; + case VK_SCOPE_WORKGROUP_NV: + return "VK_SCOPE_WORKGROUP_NV"; + default: + return "Unhandled VkScopeNV"; + } +} + +static inline const char* string_VkCoverageReductionModeNV(VkCoverageReductionModeNV input_value) +{ + switch (input_value) + { + case VK_COVERAGE_REDUCTION_MODE_MERGE_NV: + return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV"; + case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV: + return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV"; + default: + return "Unhandled VkCoverageReductionModeNV"; + } +} + +static inline const char* string_VkProvokingVertexModeEXT(VkProvokingVertexModeEXT input_value) +{ + switch (input_value) + { + case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT: + return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT"; + case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT: + return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT"; + default: + return "Unhandled VkProvokingVertexModeEXT"; + } +} + + +#ifdef VK_USE_PLATFORM_WIN32_KHR + +static inline const char* string_VkFullScreenExclusiveEXT(VkFullScreenExclusiveEXT input_value) +{ + switch (input_value) + { + case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT: + return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT"; + case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT: + return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT"; + case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT: + return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT"; + case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT: + return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT"; + default: + return "Unhandled VkFullScreenExclusiveEXT"; + } +} +#endif // VK_USE_PLATFORM_WIN32_KHR + +static inline const char* string_VkLineRasterizationModeEXT(VkLineRasterizationModeEXT input_value) +{ + switch (input_value) + { + case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT: + return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT"; + case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT: + return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT"; + case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT: + return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT"; + case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT: + return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT"; + default: + return "Unhandled VkLineRasterizationModeEXT"; + } +} + +static inline const char* string_VkPresentScalingFlagBitsEXT(VkPresentScalingFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT: + return "VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT"; + case VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT: + return "VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT"; + case VK_PRESENT_SCALING_STRETCH_BIT_EXT: + return "VK_PRESENT_SCALING_STRETCH_BIT_EXT"; + default: + return "Unhandled VkPresentScalingFlagBitsEXT"; + } +} + +static inline std::string string_VkPresentScalingFlagsEXT(VkPresentScalingFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPresentScalingFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPresentScalingFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkPresentGravityFlagBitsEXT(VkPresentGravityFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_PRESENT_GRAVITY_CENTERED_BIT_EXT: + return "VK_PRESENT_GRAVITY_CENTERED_BIT_EXT"; + case VK_PRESENT_GRAVITY_MAX_BIT_EXT: + return "VK_PRESENT_GRAVITY_MAX_BIT_EXT"; + case VK_PRESENT_GRAVITY_MIN_BIT_EXT: + return "VK_PRESENT_GRAVITY_MIN_BIT_EXT"; + default: + return "Unhandled VkPresentGravityFlagBitsEXT"; + } +} + +static inline std::string string_VkPresentGravityFlagsEXT(VkPresentGravityFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPresentGravityFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPresentGravityFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkIndirectStateFlagBitsNV(VkIndirectStateFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV: + return "VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"; + default: + return "Unhandled VkIndirectStateFlagBitsNV"; + } +} + +static inline std::string string_VkIndirectStateFlagsNV(VkIndirectStateFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkIndirectStateFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkIndirectStateFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkIndirectCommandsTokenTypeNV(VkIndirectCommandsTokenTypeNV input_value) +{ + switch (input_value) + { + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV"; + default: + return "Unhandled VkIndirectCommandsTokenTypeNV"; + } +} + +static inline const char* string_VkIndirectCommandsLayoutUsageFlagBitsNV(VkIndirectCommandsLayoutUsageFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV: + return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"; + case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV: + return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"; + case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV: + return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"; + default: + return "Unhandled VkIndirectCommandsLayoutUsageFlagBitsNV"; + } +} + +static inline std::string string_VkIndirectCommandsLayoutUsageFlagsNV(VkIndirectCommandsLayoutUsageFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkIndirectCommandsLayoutUsageFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkIndirectCommandsLayoutUsageFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkDeviceMemoryReportEventTypeEXT(VkDeviceMemoryReportEventTypeEXT input_value) +{ + switch (input_value) + { + case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT: + return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT"; + case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT: + return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT"; + case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT: + return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT"; + case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT: + return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT"; + case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT: + return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT"; + default: + return "Unhandled VkDeviceMemoryReportEventTypeEXT"; + } +} + +static inline const char* string_VkDeviceDiagnosticsConfigFlagBitsNV(VkDeviceDiagnosticsConfigFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV: + return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"; + case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV: + return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"; + case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV: + return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"; + case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV: + return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV"; + default: + return "Unhandled VkDeviceDiagnosticsConfigFlagBitsNV"; + } +} + +static inline std::string string_VkDeviceDiagnosticsConfigFlagsNV(VkDeviceDiagnosticsConfigFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDeviceDiagnosticsConfigFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDeviceDiagnosticsConfigFlagBitsNV(static_cast(0))); + return ret; +} + + +#ifdef VK_USE_PLATFORM_METAL_EXT + +static inline const char* string_VkExportMetalObjectTypeFlagBitsEXT(VkExportMetalObjectTypeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT: + return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT"; + case VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT: + return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT"; + case VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT: + return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT"; + case VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT: + return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT"; + case VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT: + return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT"; + case VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT: + return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT"; + default: + return "Unhandled VkExportMetalObjectTypeFlagBitsEXT"; + } +} + +static inline std::string string_VkExportMetalObjectTypeFlagsEXT(VkExportMetalObjectTypeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExportMetalObjectTypeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExportMetalObjectTypeFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_USE_PLATFORM_METAL_EXT + +static inline const char* string_VkGraphicsPipelineLibraryFlagBitsEXT(VkGraphicsPipelineLibraryFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT: + return "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT"; + case VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT: + return "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT"; + case VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT: + return "VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT"; + case VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT: + return "VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT"; + default: + return "Unhandled VkGraphicsPipelineLibraryFlagBitsEXT"; + } +} + +static inline std::string string_VkGraphicsPipelineLibraryFlagsEXT(VkGraphicsPipelineLibraryFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkGraphicsPipelineLibraryFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkGraphicsPipelineLibraryFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkFragmentShadingRateTypeNV(VkFragmentShadingRateTypeNV input_value) +{ + switch (input_value) + { + case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV: + return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV"; + case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV: + return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV"; + default: + return "Unhandled VkFragmentShadingRateTypeNV"; + } +} + +static inline const char* string_VkFragmentShadingRateNV(VkFragmentShadingRateNV input_value) +{ + switch (input_value) + { + case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV: + return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV"; + case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV: + return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV"; + case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV: + return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV"; + case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV: + return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV"; + case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV: + return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV"; + default: + return "Unhandled VkFragmentShadingRateNV"; + } +} + +static inline const char* string_VkAccelerationStructureMotionInstanceTypeNV(VkAccelerationStructureMotionInstanceTypeNV input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV: + return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV"; + case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV: + return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV"; + case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV: + return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV"; + default: + return "Unhandled VkAccelerationStructureMotionInstanceTypeNV"; + } +} + +static inline const char* string_VkImageCompressionFlagBitsEXT(VkImageCompressionFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_IMAGE_COMPRESSION_DEFAULT_EXT: + return "VK_IMAGE_COMPRESSION_DEFAULT_EXT"; + case VK_IMAGE_COMPRESSION_DISABLED_EXT: + return "VK_IMAGE_COMPRESSION_DISABLED_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT"; + default: + return "Unhandled VkImageCompressionFlagBitsEXT"; + } +} + +static inline std::string string_VkImageCompressionFlagsEXT(VkImageCompressionFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageCompressionFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageCompressionFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkImageCompressionFixedRateFlagBitsEXT(VkImageCompressionFixedRateFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT"; + case VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT: + return "VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT"; + default: + return "Unhandled VkImageCompressionFixedRateFlagBitsEXT"; + } +} + +static inline std::string string_VkImageCompressionFixedRateFlagsEXT(VkImageCompressionFixedRateFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageCompressionFixedRateFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageCompressionFixedRateFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkDeviceFaultAddressTypeEXT(VkDeviceFaultAddressTypeEXT input_value) +{ + switch (input_value) + { + case VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT: + return "VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT"; + case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT: + return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT"; + case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT: + return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT"; + case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT: + return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT"; + case VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT: + return "VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT"; + case VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT: + return "VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT"; + case VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT: + return "VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT"; + default: + return "Unhandled VkDeviceFaultAddressTypeEXT"; + } +} + +static inline const char* string_VkDeviceFaultVendorBinaryHeaderVersionEXT(VkDeviceFaultVendorBinaryHeaderVersionEXT input_value) +{ + switch (input_value) + { + case VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT: + return "VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT"; + default: + return "Unhandled VkDeviceFaultVendorBinaryHeaderVersionEXT"; + } +} + +static inline const char* string_VkDeviceAddressBindingFlagBitsEXT(VkDeviceAddressBindingFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT: + return "VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT"; + default: + return "Unhandled VkDeviceAddressBindingFlagBitsEXT"; + } +} + +static inline std::string string_VkDeviceAddressBindingFlagsEXT(VkDeviceAddressBindingFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDeviceAddressBindingFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDeviceAddressBindingFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkDeviceAddressBindingTypeEXT(VkDeviceAddressBindingTypeEXT input_value) +{ + switch (input_value) + { + case VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT: + return "VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT"; + case VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT: + return "VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT"; + default: + return "Unhandled VkDeviceAddressBindingTypeEXT"; + } +} + + +#ifdef VK_USE_PLATFORM_FUCHSIA + +static inline const char* string_VkImageConstraintsInfoFlagBitsFUCHSIA(VkImageConstraintsInfoFlagBitsFUCHSIA input_value) +{ + switch (input_value) + { + case VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA: + return "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"; + case VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA: + return "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"; + case VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA: + return "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"; + case VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA: + return "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"; + case VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA: + return "VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"; + default: + return "Unhandled VkImageConstraintsInfoFlagBitsFUCHSIA"; + } +} + +static inline std::string string_VkImageConstraintsInfoFlagsFUCHSIA(VkImageConstraintsInfoFlagsFUCHSIA input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageConstraintsInfoFlagBitsFUCHSIA(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageConstraintsInfoFlagBitsFUCHSIA(static_cast(0))); + return ret; +} +#endif // VK_USE_PLATFORM_FUCHSIA + +static inline const char* string_VkMicromapTypeEXT(VkMicromapTypeEXT input_value) +{ + switch (input_value) + { + case VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT: + return "VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT"; + default: + return "Unhandled VkMicromapTypeEXT"; + } +} + +static inline const char* string_VkBuildMicromapFlagBitsEXT(VkBuildMicromapFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT: + return "VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT"; + case VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT: + return "VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT"; + case VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT: + return "VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT"; + default: + return "Unhandled VkBuildMicromapFlagBitsEXT"; + } +} + +static inline std::string string_VkBuildMicromapFlagsEXT(VkBuildMicromapFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkBuildMicromapFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkBuildMicromapFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkBuildMicromapModeEXT(VkBuildMicromapModeEXT input_value) +{ + switch (input_value) + { + case VK_BUILD_MICROMAP_MODE_BUILD_EXT: + return "VK_BUILD_MICROMAP_MODE_BUILD_EXT"; + default: + return "Unhandled VkBuildMicromapModeEXT"; + } +} + +static inline const char* string_VkMicromapCreateFlagBitsEXT(VkMicromapCreateFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT: + return "VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"; + default: + return "Unhandled VkMicromapCreateFlagBitsEXT"; + } +} + +static inline std::string string_VkMicromapCreateFlagsEXT(VkMicromapCreateFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkMicromapCreateFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkMicromapCreateFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkCopyMicromapModeEXT(VkCopyMicromapModeEXT input_value) +{ + switch (input_value) + { + case VK_COPY_MICROMAP_MODE_CLONE_EXT: + return "VK_COPY_MICROMAP_MODE_CLONE_EXT"; + case VK_COPY_MICROMAP_MODE_COMPACT_EXT: + return "VK_COPY_MICROMAP_MODE_COMPACT_EXT"; + case VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT: + return "VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT"; + case VK_COPY_MICROMAP_MODE_SERIALIZE_EXT: + return "VK_COPY_MICROMAP_MODE_SERIALIZE_EXT"; + default: + return "Unhandled VkCopyMicromapModeEXT"; + } +} + +static inline const char* string_VkOpacityMicromapFormatEXT(VkOpacityMicromapFormatEXT input_value) +{ + switch (input_value) + { + case VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT: + return "VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT"; + case VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT: + return "VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT"; + default: + return "Unhandled VkOpacityMicromapFormatEXT"; + } +} + +static inline const char* string_VkOpacityMicromapSpecialIndexEXT(VkOpacityMicromapSpecialIndexEXT input_value) +{ + switch (input_value) + { + case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT: + return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT"; + case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT: + return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT"; + case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT: + return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT"; + case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT: + return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT"; + default: + return "Unhandled VkOpacityMicromapSpecialIndexEXT"; + } +} + +static inline const char* string_VkAccelerationStructureCompatibilityKHR(VkAccelerationStructureCompatibilityKHR input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR: + return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR"; + case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR: + return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR"; + default: + return "Unhandled VkAccelerationStructureCompatibilityKHR"; + } +} + +static inline const char* string_VkAccelerationStructureBuildTypeKHR(VkAccelerationStructureBuildTypeKHR input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR: + return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR"; + case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR: + return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR"; + case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR: + return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR"; + default: + return "Unhandled VkAccelerationStructureBuildTypeKHR"; + } +} + +static inline const char* string_VkMemoryDecompressionMethodFlagBitsNV(uint64_t input_value) +{ + switch (input_value) + { + case VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV: + return "VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV"; + default: + return "Unhandled VkMemoryDecompressionMethodFlagBitsNV"; + } +} + +static inline std::string string_VkMemoryDecompressionMethodFlagsNV(VkMemoryDecompressionMethodFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkMemoryDecompressionMethodFlagBitsNV(static_cast(1ULL << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkMemoryDecompressionMethodFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkSubpassMergeStatusEXT(VkSubpassMergeStatusEXT input_value) +{ + switch (input_value) + { + case VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT: + return "VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT"; + case VK_SUBPASS_MERGE_STATUS_MERGED_EXT: + return "VK_SUBPASS_MERGE_STATUS_MERGED_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT"; + case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT: + return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT"; + default: + return "Unhandled VkSubpassMergeStatusEXT"; + } +} + +static inline const char* string_VkDirectDriverLoadingModeLUNARG(VkDirectDriverLoadingModeLUNARG input_value) +{ + switch (input_value) + { + case VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG: + return "VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG"; + case VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG: + return "VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG"; + default: + return "Unhandled VkDirectDriverLoadingModeLUNARG"; + } +} + +static inline const char* string_VkOpticalFlowGridSizeFlagBitsNV(VkOpticalFlowGridSizeFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV: + return "VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV"; + case VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV: + return "VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV"; + case VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV: + return "VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV"; + case VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV: + return "VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV"; + case VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV: + return "VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV"; + default: + return "Unhandled VkOpticalFlowGridSizeFlagBitsNV"; + } +} + +static inline std::string string_VkOpticalFlowGridSizeFlagsNV(VkOpticalFlowGridSizeFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkOpticalFlowGridSizeFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkOpticalFlowGridSizeFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkOpticalFlowUsageFlagBitsNV(VkOpticalFlowUsageFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_OPTICAL_FLOW_USAGE_COST_BIT_NV: + return "VK_OPTICAL_FLOW_USAGE_COST_BIT_NV"; + case VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV: + return "VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV"; + case VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV: + return "VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV"; + case VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV: + return "VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV"; + case VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV: + return "VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV"; + case VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV: + return "VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV"; + default: + return "Unhandled VkOpticalFlowUsageFlagBitsNV"; + } +} + +static inline std::string string_VkOpticalFlowUsageFlagsNV(VkOpticalFlowUsageFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkOpticalFlowUsageFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkOpticalFlowUsageFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkOpticalFlowPerformanceLevelNV(VkOpticalFlowPerformanceLevelNV input_value) +{ + switch (input_value) + { + case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV: + return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV"; + case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV: + return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV"; + case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV: + return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV"; + case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV: + return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV"; + default: + return "Unhandled VkOpticalFlowPerformanceLevelNV"; + } +} + +static inline const char* string_VkOpticalFlowSessionBindingPointNV(VkOpticalFlowSessionBindingPointNV input_value) +{ + switch (input_value) + { + case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV: + return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV"; + case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV: + return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV"; + case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV: + return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV"; + case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV: + return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV"; + case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV: + return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV"; + case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV: + return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV"; + case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV: + return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV"; + case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV: + return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV"; + case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV: + return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV"; + default: + return "Unhandled VkOpticalFlowSessionBindingPointNV"; + } +} + +static inline const char* string_VkOpticalFlowSessionCreateFlagBitsNV(VkOpticalFlowSessionCreateFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV: + return "VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV"; + case VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV: + return "VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV"; + case VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV: + return "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV"; + case VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV: + return "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV"; + case VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV: + return "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV"; + default: + return "Unhandled VkOpticalFlowSessionCreateFlagBitsNV"; + } +} + +static inline std::string string_VkOpticalFlowSessionCreateFlagsNV(VkOpticalFlowSessionCreateFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkOpticalFlowSessionCreateFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkOpticalFlowSessionCreateFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkOpticalFlowExecuteFlagBitsNV(VkOpticalFlowExecuteFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV: + return "VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV"; + default: + return "Unhandled VkOpticalFlowExecuteFlagBitsNV"; + } +} + +static inline std::string string_VkOpticalFlowExecuteFlagsNV(VkOpticalFlowExecuteFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkOpticalFlowExecuteFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkOpticalFlowExecuteFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkRayTracingInvocationReorderModeNV(VkRayTracingInvocationReorderModeNV input_value) +{ + switch (input_value) + { + case VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV: + return "VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV"; + case VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV: + return "VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV"; + default: + return "Unhandled VkRayTracingInvocationReorderModeNV"; + } +} + +static inline const char* string_VkBuildAccelerationStructureModeKHR(VkBuildAccelerationStructureModeKHR input_value) +{ + switch (input_value) + { + case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR"; + default: + return "Unhandled VkBuildAccelerationStructureModeKHR"; + } +} + +static inline const char* string_VkAccelerationStructureCreateFlagBitsKHR(VkAccelerationStructureCreateFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT: + return "VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"; + case VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR: + return "VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"; + case VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV: + return "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"; + default: + return "Unhandled VkAccelerationStructureCreateFlagBitsKHR"; + } +} + +static inline std::string string_VkAccelerationStructureCreateFlagsKHR(VkAccelerationStructureCreateFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkAccelerationStructureCreateFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkAccelerationStructureCreateFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkShaderGroupShaderKHR(VkShaderGroupShaderKHR input_value) +{ + switch (input_value) + { + case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR: + return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR"; + case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR: + return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR"; + case VK_SHADER_GROUP_SHADER_GENERAL_KHR: + return "VK_SHADER_GROUP_SHADER_GENERAL_KHR"; + case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR: + return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR"; + default: + return "Unhandled VkShaderGroupShaderKHR"; + } +} + +static inline const char * GetPhysDevFeatureString(uint32_t index) { + const char * IndexToPhysDevFeatureString[] = { + "robustBufferAccess", + "fullDrawIndexUint32", + "imageCubeArray", + "independentBlend", + "geometryShader", + "tessellationShader", + "sampleRateShading", + "dualSrcBlend", + "logicOp", + "multiDrawIndirect", + "drawIndirectFirstInstance", + "depthClamp", + "depthBiasClamp", + "fillModeNonSolid", + "depthBounds", + "wideLines", + "largePoints", + "alphaToOne", + "multiViewport", + "samplerAnisotropy", + "textureCompressionETC2", + "textureCompressionASTC_LDR", + "textureCompressionBC", + "occlusionQueryPrecise", + "pipelineStatisticsQuery", + "vertexPipelineStoresAndAtomics", + "fragmentStoresAndAtomics", + "shaderTessellationAndGeometryPointSize", + "shaderImageGatherExtended", + "shaderStorageImageExtendedFormats", + "shaderStorageImageMultisample", + "shaderStorageImageReadWithoutFormat", + "shaderStorageImageWriteWithoutFormat", + "shaderUniformBufferArrayDynamicIndexing", + "shaderSampledImageArrayDynamicIndexing", + "shaderStorageBufferArrayDynamicIndexing", + "shaderStorageImageArrayDynamicIndexing", + "shaderClipDistance", + "shaderCullDistance", + "shaderFloat64", + "shaderInt64", + "shaderInt16", + "shaderResourceResidency", + "shaderResourceMinLod", + "sparseBinding", + "sparseResidencyBuffer", + "sparseResidencyImage2D", + "sparseResidencyImage3D", + "sparseResidency2Samples", + "sparseResidency4Samples", + "sparseResidency8Samples", + "sparseResidency16Samples", + "sparseResidencyAliased", + "variableMultisampleRate", + "inheritedQueries", + }; + + return IndexToPhysDevFeatureString[index]; +} + +static inline bool IsDuplicatePnext(VkStructureType input_value) +{ + switch (input_value) + { + case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: + case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: + case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: + case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT: + case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT: + case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT: + case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT: + case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT: + case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT: + case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT: + return true; + default: + return false; + } +} diff --git a/vulkan/vk_icd.h b/vulkan/vk_icd.h new file mode 100644 index 0000000..1133fa3 --- /dev/null +++ b/vulkan/vk_icd.h @@ -0,0 +1,258 @@ +// +// File: vk_icd.h +// +/* + * Copyright (c) 2015-2023 LunarG, Inc. + * Copyright (c) 2015-2023 The Khronos Group Inc. + * Copyright (c) 2015-2023 Valve Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +#pragma once + +#include "vulkan.h" +#include + +// Loader-ICD version negotiation API. Versions add the following features: +// Version 0 - Initial. Doesn't support vk_icdGetInstanceProcAddr +// or vk_icdNegotiateLoaderICDInterfaceVersion. +// Version 1 - Add support for vk_icdGetInstanceProcAddr. +// Version 2 - Add Loader/ICD Interface version negotiation +// via vk_icdNegotiateLoaderICDInterfaceVersion. +// Version 3 - Add ICD creation/destruction of KHR_surface objects. +// Version 4 - Add unknown physical device extension querying via +// vk_icdGetPhysicalDeviceProcAddr. +// Version 5 - Tells ICDs that the loader is now paying attention to the +// application version of Vulkan passed into the ApplicationInfo +// structure during vkCreateInstance. This will tell the ICD +// that if the loader is older, it should automatically fail a +// call for any API version > 1.0. Otherwise, the loader will +// manually determine if it can support the expected version. +// Version 6 - Add support for vk_icdEnumerateAdapterPhysicalDevices. +// Version 7 - If an ICD supports any of the following functions, they must be +// queryable with vk_icdGetInstanceProcAddr: +// vk_icdNegotiateLoaderICDInterfaceVersion +// vk_icdGetPhysicalDeviceProcAddr +// vk_icdEnumerateAdapterPhysicalDevices (Windows only) +// In addition, these functions no longer need to be exported directly. +// This version allows drivers provided through the extension +// VK_LUNARG_direct_driver_loading be able to support the entire +// Driver-Loader interface. + +#define CURRENT_LOADER_ICD_INTERFACE_VERSION 7 +#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0 +#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4 + +// Old typedefs that don't follow a proper naming convention but are preserved for compatibility +typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion); +// This is defined in vk_layer.h which will be found by the loader, but if an ICD is building against this +// file directly, it won't be found. +#ifndef PFN_GetPhysicalDeviceProcAddr +typedef PFN_vkVoidFunction(VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName); +#endif + +// Typedefs for loader/ICD interface +typedef VkResult (VKAPI_PTR *PFN_vk_icdNegotiateLoaderICDInterfaceVersion)(uint32_t* pVersion); +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vk_icdGetInstanceProcAddr)(VkInstance instance, const char* pName); +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vk_icdGetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName); +#if defined(VK_USE_PLATFORM_WIN32_KHR) +typedef VkResult (VKAPI_PTR *PFN_vk_icdEnumerateAdapterPhysicalDevices)(VkInstance instance, LUID adapterLUID, + uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); +#endif + +// Prototypes for loader/ICD interface +#if !defined(VK_NO_PROTOTYPES) +#ifdef __cplusplus +extern "C" { +#endif + VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pVersion); + VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName); + VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance isntance, const char* pName); +#if defined(VK_USE_PLATFORM_WIN32_KHR) + VKAPI_ATTR VkResult VKAPI_CALL vk_icdEnumerateAdapterPhysicalDevices(VkInstance instance, LUID adapterLUID, + uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); +#endif +#ifdef __cplusplus +} +#endif +#endif + +/* + * The ICD must reserve space for a pointer for the loader's dispatch + * table, at the start of . + * The ICD must initialize this variable using the SET_LOADER_MAGIC_VALUE macro. + */ + +#define ICD_LOADER_MAGIC 0x01CDC0DE + +typedef union { + uintptr_t loaderMagic; + void *loaderData; +} VK_LOADER_DATA; + +static inline void set_loader_magic_value(void *pNewObject) { + VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject; + loader_info->loaderMagic = ICD_LOADER_MAGIC; +} + +static inline bool valid_loader_magic_value(void *pNewObject) { + const VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject; + return (loader_info->loaderMagic & 0xffffffff) == ICD_LOADER_MAGIC; +} + +/* + * Windows and Linux ICDs will treat VkSurfaceKHR as a pointer to a struct that + * contains the platform-specific connection and surface information. + */ +typedef enum { + VK_ICD_WSI_PLATFORM_MIR, + VK_ICD_WSI_PLATFORM_WAYLAND, + VK_ICD_WSI_PLATFORM_WIN32, + VK_ICD_WSI_PLATFORM_XCB, + VK_ICD_WSI_PLATFORM_XLIB, + VK_ICD_WSI_PLATFORM_ANDROID, + VK_ICD_WSI_PLATFORM_MACOS, + VK_ICD_WSI_PLATFORM_IOS, + VK_ICD_WSI_PLATFORM_DISPLAY, + VK_ICD_WSI_PLATFORM_HEADLESS, + VK_ICD_WSI_PLATFORM_METAL, + VK_ICD_WSI_PLATFORM_DIRECTFB, + VK_ICD_WSI_PLATFORM_VI, + VK_ICD_WSI_PLATFORM_GGP, + VK_ICD_WSI_PLATFORM_SCREEN, + VK_ICD_WSI_PLATFORM_FUCHSIA, +} VkIcdWsiPlatform; + +typedef struct { + VkIcdWsiPlatform platform; +} VkIcdSurfaceBase; + +#ifdef VK_USE_PLATFORM_MIR_KHR +typedef struct { + VkIcdSurfaceBase base; + MirConnection *connection; + MirSurface *mirSurface; +} VkIcdSurfaceMir; +#endif // VK_USE_PLATFORM_MIR_KHR + +#ifdef VK_USE_PLATFORM_WAYLAND_KHR +typedef struct { + VkIcdSurfaceBase base; + struct wl_display *display; + struct wl_surface *surface; +} VkIcdSurfaceWayland; +#endif // VK_USE_PLATFORM_WAYLAND_KHR + +#ifdef VK_USE_PLATFORM_WIN32_KHR +typedef struct { + VkIcdSurfaceBase base; + HINSTANCE hinstance; + HWND hwnd; +} VkIcdSurfaceWin32; +#endif // VK_USE_PLATFORM_WIN32_KHR + +#ifdef VK_USE_PLATFORM_XCB_KHR +typedef struct { + VkIcdSurfaceBase base; + xcb_connection_t *connection; + xcb_window_t window; +} VkIcdSurfaceXcb; +#endif // VK_USE_PLATFORM_XCB_KHR + +#ifdef VK_USE_PLATFORM_XLIB_KHR +typedef struct { + VkIcdSurfaceBase base; + Display *dpy; + Window window; +} VkIcdSurfaceXlib; +#endif // VK_USE_PLATFORM_XLIB_KHR + +#ifdef VK_USE_PLATFORM_DIRECTFB_EXT +typedef struct { + VkIcdSurfaceBase base; + IDirectFB *dfb; + IDirectFBSurface *surface; +} VkIcdSurfaceDirectFB; +#endif // VK_USE_PLATFORM_DIRECTFB_EXT + +#ifdef VK_USE_PLATFORM_ANDROID_KHR +typedef struct { + VkIcdSurfaceBase base; + struct ANativeWindow *window; +} VkIcdSurfaceAndroid; +#endif // VK_USE_PLATFORM_ANDROID_KHR + +#ifdef VK_USE_PLATFORM_MACOS_MVK +typedef struct { + VkIcdSurfaceBase base; + const void *pView; +} VkIcdSurfaceMacOS; +#endif // VK_USE_PLATFORM_MACOS_MVK + +#ifdef VK_USE_PLATFORM_IOS_MVK +typedef struct { + VkIcdSurfaceBase base; + const void *pView; +} VkIcdSurfaceIOS; +#endif // VK_USE_PLATFORM_IOS_MVK + +#ifdef VK_USE_PLATFORM_GGP +typedef struct { + VkIcdSurfaceBase base; + GgpStreamDescriptor streamDescriptor; +} VkIcdSurfaceGgp; +#endif // VK_USE_PLATFORM_GGP + +typedef struct { + VkIcdSurfaceBase base; + VkDisplayModeKHR displayMode; + uint32_t planeIndex; + uint32_t planeStackIndex; + VkSurfaceTransformFlagBitsKHR transform; + float globalAlpha; + VkDisplayPlaneAlphaFlagBitsKHR alphaMode; + VkExtent2D imageExtent; +} VkIcdSurfaceDisplay; + +typedef struct { + VkIcdSurfaceBase base; +} VkIcdSurfaceHeadless; + +#ifdef VK_USE_PLATFORM_METAL_EXT +typedef struct { + VkIcdSurfaceBase base; + const CAMetalLayer *pLayer; +} VkIcdSurfaceMetal; +#endif // VK_USE_PLATFORM_METAL_EXT + +#ifdef VK_USE_PLATFORM_VI_NN +typedef struct { + VkIcdSurfaceBase base; + void *window; +} VkIcdSurfaceVi; +#endif // VK_USE_PLATFORM_VI_NN + +#ifdef VK_USE_PLATFORM_SCREEN_QNX +typedef struct { + VkIcdSurfaceBase base; + struct _screen_context *context; + struct _screen_window *window; +} VkIcdSurfaceScreen; +#endif // VK_USE_PLATFORM_SCREEN_QNX + +#ifdef VK_USE_PLATFORM_FUCHSIA +typedef struct { + VkIcdSurfaceBase base; +} VkIcdSurfaceImagePipe; +#endif // VK_USE_PLATFORM_FUCHSIA diff --git a/vulkan/vk_layer.h b/vulkan/vk_layer.h new file mode 100644 index 0000000..6bd1c9a --- /dev/null +++ b/vulkan/vk_layer.h @@ -0,0 +1,211 @@ +// +// File: vk_layer.h +// +/* + * Copyright (c) 2015-2023 LunarG, Inc. + * Copyright (c) 2015-2023 The Khronos Group Inc. + * Copyright (c) 2015-2023 Valve Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +#pragma once + +/* Need to define dispatch table + * Core struct can then have ptr to dispatch table at the top + * Along with object ptrs for current and next OBJ + */ + +#include "vulkan_core.h" + +#if defined(__GNUC__) && __GNUC__ >= 4 +#define VK_LAYER_EXPORT __attribute__((visibility("default"))) +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) +#define VK_LAYER_EXPORT __attribute__((visibility("default"))) +#else +#define VK_LAYER_EXPORT +#endif + +#define MAX_NUM_UNKNOWN_EXTS 250 + + // Loader-Layer version negotiation API. Versions add the following features: + // Versions 0/1 - Initial. Doesn't support vk_layerGetPhysicalDeviceProcAddr + // or vk_icdNegotiateLoaderLayerInterfaceVersion. + // Version 2 - Add support for vk_layerGetPhysicalDeviceProcAddr and + // vk_icdNegotiateLoaderLayerInterfaceVersion. +#define CURRENT_LOADER_LAYER_INTERFACE_VERSION 2 +#define MIN_SUPPORTED_LOADER_LAYER_INTERFACE_VERSION 1 + +#define VK_CURRENT_CHAIN_VERSION 1 + +// Typedef for use in the interfaces below +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName); + +// Version negotiation values +typedef enum VkNegotiateLayerStructType { + LAYER_NEGOTIATE_UNINTIALIZED = 0, + LAYER_NEGOTIATE_INTERFACE_STRUCT = 1, +} VkNegotiateLayerStructType; + +// Version negotiation structures +typedef struct VkNegotiateLayerInterface { + VkNegotiateLayerStructType sType; + void *pNext; + uint32_t loaderLayerInterfaceVersion; + PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr; + PFN_vkGetDeviceProcAddr pfnGetDeviceProcAddr; + PFN_GetPhysicalDeviceProcAddr pfnGetPhysicalDeviceProcAddr; +} VkNegotiateLayerInterface; + +// Version negotiation functions +typedef VkResult (VKAPI_PTR *PFN_vkNegotiateLoaderLayerInterfaceVersion)(VkNegotiateLayerInterface *pVersionStruct); + +// Function prototype for unknown physical device extension command +typedef VkResult(VKAPI_PTR *PFN_PhysDevExt)(VkPhysicalDevice phys_device); + +// ------------------------------------------------------------------------------------------------ +// CreateInstance and CreateDevice support structures + +/* Sub type of structure for instance and device loader ext of CreateInfo. + * When sType == VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO + * or sType == VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO + * then VkLayerFunction indicates struct type pointed to by pNext + */ +typedef enum VkLayerFunction_ { + VK_LAYER_LINK_INFO = 0, + VK_LOADER_DATA_CALLBACK = 1, + VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK = 2, + VK_LOADER_FEATURES = 3, +} VkLayerFunction; + +typedef struct VkLayerInstanceLink_ { + struct VkLayerInstanceLink_ *pNext; + PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; + PFN_GetPhysicalDeviceProcAddr pfnNextGetPhysicalDeviceProcAddr; +} VkLayerInstanceLink; + +/* + * When creating the device chain the loader needs to pass + * down information about it's device structure needed at + * the end of the chain. Passing the data via the + * VkLayerDeviceInfo avoids issues with finding the + * exact instance being used. + */ +typedef struct VkLayerDeviceInfo_ { + void *device_info; + PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; +} VkLayerDeviceInfo; + +typedef VkResult (VKAPI_PTR *PFN_vkSetInstanceLoaderData)(VkInstance instance, + void *object); +typedef VkResult (VKAPI_PTR *PFN_vkSetDeviceLoaderData)(VkDevice device, + void *object); +typedef VkResult (VKAPI_PTR *PFN_vkLayerCreateDevice)(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo, + const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA); +typedef void (VKAPI_PTR *PFN_vkLayerDestroyDevice)(VkDevice physicalDevice, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction); + +typedef enum VkLoaderFeastureFlagBits { + VK_LOADER_FEATURE_PHYSICAL_DEVICE_SORTING = 0x00000001, +} VkLoaderFlagBits; +typedef VkFlags VkLoaderFeatureFlags; + +typedef struct { + VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO + const void *pNext; + VkLayerFunction function; + union { + VkLayerInstanceLink *pLayerInfo; + PFN_vkSetInstanceLoaderData pfnSetInstanceLoaderData; + struct { + PFN_vkLayerCreateDevice pfnLayerCreateDevice; + PFN_vkLayerDestroyDevice pfnLayerDestroyDevice; + } layerDevice; + VkLoaderFeatureFlags loaderFeatures; + } u; +} VkLayerInstanceCreateInfo; + +typedef struct VkLayerDeviceLink_ { + struct VkLayerDeviceLink_ *pNext; + PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; + PFN_vkGetDeviceProcAddr pfnNextGetDeviceProcAddr; +} VkLayerDeviceLink; + +typedef struct { + VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO + const void *pNext; + VkLayerFunction function; + union { + VkLayerDeviceLink *pLayerInfo; + PFN_vkSetDeviceLoaderData pfnSetDeviceLoaderData; + } u; +} VkLayerDeviceCreateInfo; + +#ifdef __cplusplus +extern "C" { +#endif + +VKAPI_ATTR VkResult VKAPI_CALL vkNegotiateLoaderLayerInterfaceVersion(VkNegotiateLayerInterface *pVersionStruct); + +typedef enum VkChainType { + VK_CHAIN_TYPE_UNKNOWN = 0, + VK_CHAIN_TYPE_ENUMERATE_INSTANCE_EXTENSION_PROPERTIES = 1, + VK_CHAIN_TYPE_ENUMERATE_INSTANCE_LAYER_PROPERTIES = 2, + VK_CHAIN_TYPE_ENUMERATE_INSTANCE_VERSION = 3, +} VkChainType; + +typedef struct VkChainHeader { + VkChainType type; + uint32_t version; + uint32_t size; +} VkChainHeader; + +typedef struct VkEnumerateInstanceExtensionPropertiesChain { + VkChainHeader header; + VkResult(VKAPI_PTR *pfnNextLayer)(const struct VkEnumerateInstanceExtensionPropertiesChain *, const char *, uint32_t *, + VkExtensionProperties *); + const struct VkEnumerateInstanceExtensionPropertiesChain *pNextLink; + +#if defined(__cplusplus) + inline VkResult CallDown(const char *pLayerName, uint32_t *pPropertyCount, VkExtensionProperties *pProperties) const { + return pfnNextLayer(pNextLink, pLayerName, pPropertyCount, pProperties); + } +#endif +} VkEnumerateInstanceExtensionPropertiesChain; + +typedef struct VkEnumerateInstanceLayerPropertiesChain { + VkChainHeader header; + VkResult(VKAPI_PTR *pfnNextLayer)(const struct VkEnumerateInstanceLayerPropertiesChain *, uint32_t *, VkLayerProperties *); + const struct VkEnumerateInstanceLayerPropertiesChain *pNextLink; + +#if defined(__cplusplus) + inline VkResult CallDown(uint32_t *pPropertyCount, VkLayerProperties *pProperties) const { + return pfnNextLayer(pNextLink, pPropertyCount, pProperties); + } +#endif +} VkEnumerateInstanceLayerPropertiesChain; + +typedef struct VkEnumerateInstanceVersionChain { + VkChainHeader header; + VkResult(VKAPI_PTR *pfnNextLayer)(const struct VkEnumerateInstanceVersionChain *, uint32_t *); + const struct VkEnumerateInstanceVersionChain *pNextLink; + +#if defined(__cplusplus) + inline VkResult CallDown(uint32_t *pApiVersion) const { + return pfnNextLayer(pNextLink, pApiVersion); + } +#endif +} VkEnumerateInstanceVersionChain; + +#ifdef __cplusplus +} +#endif diff --git a/vulkan/vk_platform.h b/vulkan/vk_platform.h index 7289299..3ff8c5d 100644 --- a/vulkan/vk_platform.h +++ b/vulkan/vk_platform.h @@ -2,19 +2,9 @@ // File: vk_platform.h // /* -** Copyright (c) 2014-2017 The Khronos Group Inc. +** Copyright 2014-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ @@ -52,7 +42,7 @@ extern "C" #define VKAPI_CALL __stdcall #define VKAPI_PTR VKAPI_CALL #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7 - #error "Vulkan isn't supported for the 'armeabi' NDK ABI" + #error "Vulkan is not supported for the 'armeabi' NDK ABI" #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE) // On Android 32-bit ARM targets, Vulkan functions use the "hardfloat" // calling convention, i.e. float parameters are passed in registers. This @@ -68,7 +58,9 @@ extern "C" #define VKAPI_PTR #endif -#include +#if !defined(VK_NO_STDDEF_H) + #include +#endif // !defined(VK_NO_STDDEF_H) #if !defined(VK_NO_STDINT_H) #if defined(_MSC_VER) && (_MSC_VER < 1600) diff --git a/vulkan/vk_sdk_platform.h b/vulkan/vk_sdk_platform.h new file mode 100644 index 0000000..3bdf505 --- /dev/null +++ b/vulkan/vk_sdk_platform.h @@ -0,0 +1,81 @@ +// +// File: vk_sdk_platform.h +// +/* + * Copyright (c) 2015-2023 LunarG, Inc. + * Copyright (c) 2015-2023 The Khronos Group Inc. + * Copyright (c) 2015-2023 Valve Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#pragma once + +// Allow users to suppress warnings generated by this header file by defining VK_SDK_PLATFORM_SUPRRESS_DEPRECATION_WARNING +#ifndef VK_SDK_PLATFORM_SUPRRESS_DEPRECATION_WARNING + +#if defined(__GNUC__) && __GNUC__ >= 4 +#warning "vk_sdk_platform.h is deprecated and will be removed in future release! Use VK_SDK_PLATFORM_SUPRRESS_DEPRECATION_WARNING to suppress warning!" +#endif + +// MSVC doesn't support warning directive +#if defined(_MSC_VER) +#pragma message("vk_sdk_platform.h is deprecated and will be removed in future release! Use VK_SDK_PLATFORM_SUPRRESS_DEPRECATION_WARNING to suppress warning!") +#endif + +#endif + +#if defined(_WIN32) +#ifndef NOMINMAX +#define NOMINMAX +#endif +#ifndef __cplusplus +#undef inline +#define inline __inline +#endif // __cplusplus + +#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) +// C99: +// Microsoft didn't implement C99 in Visual Studio; but started adding it with +// VS2013. However, VS2013 still didn't have snprintf(). The following is a +// work-around (Note: The _CRT_SECURE_NO_WARNINGS macro must be set in the +// "CMakeLists.txt" file). +// NOTE: This is fixed in Visual Studio 2015. +#define snprintf _snprintf +#endif + +#define strdup _strdup + +#endif // _WIN32 + +// Check for noexcept support using clang, with fallback to Windows or GCC version numbers +#ifndef NOEXCEPT +#if defined(__clang__) +#if __has_feature(cxx_noexcept) +#define HAS_NOEXCEPT +#endif +#else +#if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ * 10 + __GNUC_MINOR__ >= 46 +#define HAS_NOEXCEPT +#else +#if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023026 && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS +#define HAS_NOEXCEPT +#endif +#endif +#endif + +#ifdef HAS_NOEXCEPT +#define NOEXCEPT noexcept +#else +#define NOEXCEPT +#endif +#endif diff --git a/vulkan/vulkan.h b/vulkan/vulkan.h index cf9d85a..3510ac9 100644 --- a/vulkan/vulkan.h +++ b/vulkan/vulkan.h @@ -2,19 +2,9 @@ #define VULKAN_H_ 1 /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ #include "vk_platform.h" @@ -38,20 +28,16 @@ #include "vulkan_macos.h" #endif - -#ifdef VK_USE_PLATFORM_MIR_KHR -#include -#include "vulkan_mir.h" +#ifdef VK_USE_PLATFORM_METAL_EXT +#include "vulkan_metal.h" #endif - #ifdef VK_USE_PLATFORM_VI_NN #include "vulkan_vi.h" #endif #ifdef VK_USE_PLATFORM_WAYLAND_KHR -#include #include "vulkan_wayland.h" #endif @@ -74,10 +60,32 @@ #endif +#ifdef VK_USE_PLATFORM_DIRECTFB_EXT +#include +#include "vulkan_directfb.h" +#endif + + #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT #include #include #include "vulkan_xlib_xrandr.h" #endif + +#ifdef VK_USE_PLATFORM_GGP +#include +#include "vulkan_ggp.h" +#endif + + +#ifdef VK_USE_PLATFORM_SCREEN_QNX +#include +#include "vulkan_screen.h" +#endif + +#ifdef VK_ENABLE_BETA_EXTENSIONS +#include "vulkan_beta.h" +#endif + #endif // VULKAN_H_ diff --git a/vulkan/vulkan_android.h b/vulkan/vulkan_android.h index 07aaeda..11f5397 100644 --- a/vulkan/vulkan_android.h +++ b/vulkan/vulkan_android.h @@ -1,24 +1,10 @@ #ifndef VULKAN_ANDROID_H_ #define VULKAN_ANDROID_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -27,14 +13,17 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_KHR_android_surface 1 struct ANativeWindow; - #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" - typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; - typedef struct VkAndroidSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -42,7 +31,6 @@ typedef struct VkAndroidSurfaceCreateInfoKHR { struct ANativeWindow* window; } VkAndroidSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES @@ -53,12 +41,11 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( VkSurfaceKHR* pSurface); #endif + #define VK_ANDROID_external_memory_android_hardware_buffer 1 struct AHardwareBuffer; - -#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3 +#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" - typedef struct VkAndroidHardwareBufferUsageANDROID { VkStructureType sType; void* pNext; @@ -103,6 +90,18 @@ typedef struct VkExternalFormatANDROID { uint64_t externalFormat; } VkExternalFormatANDROID; +typedef struct VkAndroidHardwareBufferFormatProperties2ANDROID { + VkStructureType sType; + void* pNext; + VkFormat format; + uint64_t externalFormat; + VkFormatFeatureFlags2 formatFeatures; + VkComponentMapping samplerYcbcrConversionComponents; + VkSamplerYcbcrModelConversion suggestedYcbcrModel; + VkSamplerYcbcrRange suggestedYcbcrRange; + VkChromaLocation suggestedXChromaOffset; + VkChromaLocation suggestedYChromaOffset; +} VkAndroidHardwareBufferFormatProperties2ANDROID; typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer); diff --git a/vulkan/vulkan_beta.h b/vulkan/vulkan_beta.h new file mode 100644 index 0000000..2f7098b --- /dev/null +++ b/vulkan/vulkan_beta.h @@ -0,0 +1,554 @@ +#ifndef VULKAN_BETA_H_ +#define VULKAN_BETA_H_ 1 + +/* +** Copyright 2015-2022 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_KHR_portability_subset 1 +#define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1 +#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset" +typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 constantAlphaColorBlendFactors; + VkBool32 events; + VkBool32 imageViewFormatReinterpretation; + VkBool32 imageViewFormatSwizzle; + VkBool32 imageView2DOn3DImage; + VkBool32 multisampleArrayImage; + VkBool32 mutableComparisonSamplers; + VkBool32 pointPolygons; + VkBool32 samplerMipLodBias; + VkBool32 separateStencilMaskRef; + VkBool32 shaderSampleRateInterpolationFunctions; + VkBool32 tessellationIsolines; + VkBool32 tessellationPointMode; + VkBool32 triangleFans; + VkBool32 vertexAttributeAccessBeyondStride; +} VkPhysicalDevicePortabilitySubsetFeaturesKHR; + +typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t minVertexInputBindingStrideAlignment; +} VkPhysicalDevicePortabilitySubsetPropertiesKHR; + + +#ifdef GO_INCLUDE_video_decode + +#define VK_KHR_video_encode_queue 1 +#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 7 +#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue" + +typedef enum VkVideoEncodeTuningModeKHR { + VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1, + VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2, + VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3, + VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4, + VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeTuningModeKHR; +typedef VkFlags VkVideoEncodeFlagsKHR; + +typedef enum VkVideoEncodeCapabilityFlagBitsKHR { + VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeCapabilityFlagBitsKHR; +typedef VkFlags VkVideoEncodeCapabilityFlagsKHR; + +typedef enum VkVideoEncodeRateControlModeFlagBitsKHR { + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0, + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 1, + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 2, + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeRateControlModeFlagBitsKHR; +typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; + +typedef enum VkVideoEncodeUsageFlagBitsKHR { + VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008, + VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeUsageFlagBitsKHR; +typedef VkFlags VkVideoEncodeUsageFlagsKHR; + +typedef enum VkVideoEncodeContentFlagBitsKHR { + VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeContentFlagBitsKHR; +typedef VkFlags VkVideoEncodeContentFlagsKHR; +typedef VkFlags VkVideoEncodeRateControlFlagsKHR; +typedef struct VkVideoEncodeInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeFlagsKHR flags; + uint32_t qualityLevel; + VkBuffer dstBitstreamBuffer; + VkDeviceSize dstBitstreamBufferOffset; + VkDeviceSize dstBitstreamBufferMaxRange; + VkVideoPictureResourceInfoKHR srcPictureResource; + const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotInfoKHR* pReferenceSlots; + uint32_t precedingExternallyEncodedBytes; +} VkVideoEncodeInfoKHR; + +typedef struct VkVideoEncodeCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoEncodeCapabilityFlagsKHR flags; + VkVideoEncodeRateControlModeFlagsKHR rateControlModes; + uint8_t rateControlLayerCount; + uint8_t qualityLevelCount; + VkExtent2D inputImageDataFillAlignment; +} VkVideoEncodeCapabilitiesKHR; + +typedef struct VkVideoEncodeUsageInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeUsageFlagsKHR videoUsageHints; + VkVideoEncodeContentFlagsKHR videoContentHints; + VkVideoEncodeTuningModeKHR tuningMode; +} VkVideoEncodeUsageInfoKHR; + +typedef struct VkVideoEncodeRateControlLayerInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t averageBitrate; + uint32_t maxBitrate; + uint32_t frameRateNumerator; + uint32_t frameRateDenominator; + uint32_t virtualBufferSizeInMs; + uint32_t initialVirtualBufferSizeInMs; +} VkVideoEncodeRateControlLayerInfoKHR; + +typedef struct VkVideoEncodeRateControlInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeRateControlFlagsKHR flags; + VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode; + uint8_t layerCount; + const VkVideoEncodeRateControlLayerInfoKHR* pLayerConfigs; +} VkVideoEncodeRateControlInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR( + VkCommandBuffer commandBuffer, + const VkVideoEncodeInfoKHR* pEncodeInfo); +#endif + +#define VK_EXT_video_encode_h264 1 +#include "vk_video/vulkan_video_codec_h264std.h" +#include "vk_video/vulkan_video_codec_h264std_encode.h" +#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 9 +#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264" + +typedef enum VkVideoEncodeH264RateControlStructureEXT { + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH264RateControlStructureEXT; + +typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT { + VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT = 0x00000008, + VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000010, + VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000020, + VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000040, + VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000080, + VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT = 0x00000100, + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0x00000200, + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT = 0x00000400, + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT = 0x00000800, + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0x00001000, + VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00002000, + VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00004000, + VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00008000, + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00010000, + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00020000, + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00040000, + VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT = 0x00080000, + VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00100000, + VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT = 0x00200000, + VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0x00400000, + VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x00800000, + VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0x01000000, + VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH264CapabilityFlagBitsEXT; +typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT; + +typedef enum VkVideoEncodeH264InputModeFlagBitsEXT { + VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH264InputModeFlagBitsEXT; +typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT; + +typedef enum VkVideoEncodeH264OutputModeFlagBitsEXT { + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH264OutputModeFlagBitsEXT; +typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT; +typedef struct VkVideoEncodeH264CapabilitiesEXT { + VkStructureType sType; + void* pNext; + VkVideoEncodeH264CapabilityFlagsEXT flags; + VkVideoEncodeH264InputModeFlagsEXT inputModeFlags; + VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags; + uint8_t maxPPictureL0ReferenceCount; + uint8_t maxBPictureL0ReferenceCount; + uint8_t maxL1ReferenceCount; + VkBool32 motionVectorsOverPicBoundariesFlag; + uint32_t maxBytesPerPicDenom; + uint32_t maxBitsPerMbDenom; + uint32_t log2MaxMvLengthHorizontal; + uint32_t log2MaxMvLengthVertical; +} VkVideoEncodeH264CapabilitiesEXT; + +typedef struct VkVideoEncodeH264SessionParametersAddInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t stdSPSCount; + const StdVideoH264SequenceParameterSet* pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH264PictureParameterSet* pStdPPSs; +} VkVideoEncodeH264SessionParametersAddInfoEXT; + +typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; + const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo; +} VkVideoEncodeH264SessionParametersCreateInfoEXT; + +typedef struct VkVideoEncodeH264DpbSlotInfoEXT { + VkStructureType sType; + const void* pNext; + int8_t slotIndex; + const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo; +} VkVideoEncodeH264DpbSlotInfoEXT; + +typedef struct VkVideoEncodeH264ReferenceListsInfoEXT { + VkStructureType sType; + const void* pNext; + uint8_t referenceList0EntryCount; + const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList0Entries; + uint8_t referenceList1EntryCount; + const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries; + const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations; +} VkVideoEncodeH264ReferenceListsInfoEXT; + +typedef struct VkVideoEncodeH264NaluSliceInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t mbCount; + const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists; + const StdVideoEncodeH264SliceHeader* pSliceHeaderStd; +} VkVideoEncodeH264NaluSliceInfoEXT; + +typedef struct VkVideoEncodeH264VclFrameInfoEXT { + VkStructureType sType; + const void* pNext; + const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists; + uint32_t naluSliceEntryCount; + const VkVideoEncodeH264NaluSliceInfoEXT* pNaluSliceEntries; + const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo; +} VkVideoEncodeH264VclFrameInfoEXT; + +typedef struct VkVideoEncodeH264EmitPictureParametersInfoEXT { + VkStructureType sType; + const void* pNext; + uint8_t spsId; + VkBool32 emitSpsEnable; + uint32_t ppsIdEntryCount; + const uint8_t* ppsIdEntries; +} VkVideoEncodeH264EmitPictureParametersInfoEXT; + +typedef struct VkVideoEncodeH264ProfileInfoEXT { + VkStructureType sType; + const void* pNext; + StdVideoH264ProfileIdc stdProfileIdc; +} VkVideoEncodeH264ProfileInfoEXT; + +typedef struct VkVideoEncodeH264RateControlInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t gopFrameCount; + uint32_t idrPeriod; + uint32_t consecutiveBFrameCount; + VkVideoEncodeH264RateControlStructureEXT rateControlStructure; + uint8_t temporalLayerCount; +} VkVideoEncodeH264RateControlInfoEXT; + +typedef struct VkVideoEncodeH264QpEXT { + int32_t qpI; + int32_t qpP; + int32_t qpB; +} VkVideoEncodeH264QpEXT; + +typedef struct VkVideoEncodeH264FrameSizeEXT { + uint32_t frameISize; + uint32_t framePSize; + uint32_t frameBSize; +} VkVideoEncodeH264FrameSizeEXT; + +typedef struct VkVideoEncodeH264RateControlLayerInfoEXT { + VkStructureType sType; + const void* pNext; + uint8_t temporalLayerId; + VkBool32 useInitialRcQp; + VkVideoEncodeH264QpEXT initialRcQp; + VkBool32 useMinQp; + VkVideoEncodeH264QpEXT minQp; + VkBool32 useMaxQp; + VkVideoEncodeH264QpEXT maxQp; + VkBool32 useMaxFrameSize; + VkVideoEncodeH264FrameSizeEXT maxFrameSize; +} VkVideoEncodeH264RateControlLayerInfoEXT; + + + +#define VK_EXT_video_encode_h265 1 +#include "vk_video/vulkan_video_codec_h265std.h" +#include "vk_video/vulkan_video_codec_h265std_encode.h" +#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 9 +#define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265" + +typedef enum VkVideoEncodeH265RateControlStructureEXT { + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH265RateControlStructureEXT; + +typedef enum VkVideoEncodeH265CapabilityFlagBitsEXT { + VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT = 0x00000008, + VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT = 0x00000010, + VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000020, + VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT = 0x00000040, + VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT = 0x00000080, + VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT = 0x00000100, + VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT = 0x00000200, + VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT = 0x00000400, + VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT = 0x00000800, + VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0x00001000, + VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT = 0x00002000, + VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0x00004000, + VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT = 0x00008000, + VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT = 0x00010000, + VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT = 0x00020000, + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT = 0x00040000, + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT = 0x00080000, + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT = 0x00100000, + VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT = 0x00200000, + VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT = 0x00400000, + VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT = 0x00800000, + VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x01000000, + VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0x02000000, + VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH265CapabilityFlagBitsEXT; +typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT; + +typedef enum VkVideoEncodeH265InputModeFlagBitsEXT { + VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH265InputModeFlagBitsEXT; +typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT; + +typedef enum VkVideoEncodeH265OutputModeFlagBitsEXT { + VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH265OutputModeFlagBitsEXT; +typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT; + +typedef enum VkVideoEncodeH265CtbSizeFlagBitsEXT { + VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH265CtbSizeFlagBitsEXT; +typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT; + +typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsEXT { + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT = 0x00000008, + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH265TransformBlockSizeFlagBitsEXT; +typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT; +typedef struct VkVideoEncodeH265CapabilitiesEXT { + VkStructureType sType; + void* pNext; + VkVideoEncodeH265CapabilityFlagsEXT flags; + VkVideoEncodeH265InputModeFlagsEXT inputModeFlags; + VkVideoEncodeH265OutputModeFlagsEXT outputModeFlags; + VkVideoEncodeH265CtbSizeFlagsEXT ctbSizes; + VkVideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes; + uint8_t maxPPictureL0ReferenceCount; + uint8_t maxBPictureL0ReferenceCount; + uint8_t maxL1ReferenceCount; + uint8_t maxSubLayersCount; + uint8_t minLog2MinLumaCodingBlockSizeMinus3; + uint8_t maxLog2MinLumaCodingBlockSizeMinus3; + uint8_t minLog2MinLumaTransformBlockSizeMinus2; + uint8_t maxLog2MinLumaTransformBlockSizeMinus2; + uint8_t minMaxTransformHierarchyDepthInter; + uint8_t maxMaxTransformHierarchyDepthInter; + uint8_t minMaxTransformHierarchyDepthIntra; + uint8_t maxMaxTransformHierarchyDepthIntra; + uint8_t maxDiffCuQpDeltaDepth; + uint8_t minMaxNumMergeCand; + uint8_t maxMaxNumMergeCand; +} VkVideoEncodeH265CapabilitiesEXT; + +typedef struct VkVideoEncodeH265SessionParametersAddInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t stdVPSCount; + const StdVideoH265VideoParameterSet* pStdVPSs; + uint32_t stdSPSCount; + const StdVideoH265SequenceParameterSet* pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH265PictureParameterSet* pStdPPSs; +} VkVideoEncodeH265SessionParametersAddInfoEXT; + +typedef struct VkVideoEncodeH265SessionParametersCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxStdVPSCount; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; + const VkVideoEncodeH265SessionParametersAddInfoEXT* pParametersAddInfo; +} VkVideoEncodeH265SessionParametersCreateInfoEXT; + +typedef struct VkVideoEncodeH265DpbSlotInfoEXT { + VkStructureType sType; + const void* pNext; + int8_t slotIndex; + const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo; +} VkVideoEncodeH265DpbSlotInfoEXT; + +typedef struct VkVideoEncodeH265ReferenceListsInfoEXT { + VkStructureType sType; + const void* pNext; + uint8_t referenceList0EntryCount; + const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList0Entries; + uint8_t referenceList1EntryCount; + const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList1Entries; + const StdVideoEncodeH265ReferenceModifications* pReferenceModifications; +} VkVideoEncodeH265ReferenceListsInfoEXT; + +typedef struct VkVideoEncodeH265NaluSliceSegmentInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t ctbCount; + const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists; + const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd; +} VkVideoEncodeH265NaluSliceSegmentInfoEXT; + +typedef struct VkVideoEncodeH265VclFrameInfoEXT { + VkStructureType sType; + const void* pNext; + const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists; + uint32_t naluSliceSegmentEntryCount; + const VkVideoEncodeH265NaluSliceSegmentInfoEXT* pNaluSliceSegmentEntries; + const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo; +} VkVideoEncodeH265VclFrameInfoEXT; + +typedef struct VkVideoEncodeH265EmitPictureParametersInfoEXT { + VkStructureType sType; + const void* pNext; + uint8_t vpsId; + uint8_t spsId; + VkBool32 emitVpsEnable; + VkBool32 emitSpsEnable; + uint32_t ppsIdEntryCount; + const uint8_t* ppsIdEntries; +} VkVideoEncodeH265EmitPictureParametersInfoEXT; + +typedef struct VkVideoEncodeH265ProfileInfoEXT { + VkStructureType sType; + const void* pNext; + StdVideoH265ProfileIdc stdProfileIdc; +} VkVideoEncodeH265ProfileInfoEXT; + +typedef struct VkVideoEncodeH265RateControlInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t gopFrameCount; + uint32_t idrPeriod; + uint32_t consecutiveBFrameCount; + VkVideoEncodeH265RateControlStructureEXT rateControlStructure; + uint8_t subLayerCount; +} VkVideoEncodeH265RateControlInfoEXT; + +typedef struct VkVideoEncodeH265QpEXT { + int32_t qpI; + int32_t qpP; + int32_t qpB; +} VkVideoEncodeH265QpEXT; + +typedef struct VkVideoEncodeH265FrameSizeEXT { + uint32_t frameISize; + uint32_t framePSize; + uint32_t frameBSize; +} VkVideoEncodeH265FrameSizeEXT; + +typedef struct VkVideoEncodeH265RateControlLayerInfoEXT { + VkStructureType sType; + const void* pNext; + uint8_t temporalId; + VkBool32 useInitialRcQp; + VkVideoEncodeH265QpEXT initialRcQp; + VkBool32 useMinQp; + VkVideoEncodeH265QpEXT minQp; + VkBool32 useMaxQp; + VkVideoEncodeH265QpEXT maxQp; + VkBool32 useMaxFrameSize; + VkVideoEncodeH265FrameSizeEXT maxFrameSize; +} VkVideoEncodeH265RateControlLayerInfoEXT; + +#endif // GO_INCLUDE_video_decode + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan/vulkan_beta_h.patch b/vulkan/vulkan_beta_h.patch new file mode 100644 index 0000000..8295522 --- /dev/null +++ b/vulkan/vulkan_beta_h.patch @@ -0,0 +1,26 @@ +--- /usr/local/include/vulkan/vulkan_beta.h 2023-01-27 11:55:20 ++++ vulkan_beta.h 2023-02-10 11:53:39 +@@ -49,6 +49,7 @@ + } VkPhysicalDevicePortabilitySubsetPropertiesKHR; + + ++#ifdef GO_INCLUDE_video_decode + + #define VK_KHR_video_encode_queue 1 + #define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 7 +@@ -158,7 +159,6 @@ + const VkVideoEncodeInfoKHR* pEncodeInfo); + #endif + +- + #define VK_EXT_video_encode_h264 1 + #include "vk_video/vulkan_video_codec_h264std.h" + #include "vk_video/vulkan_video_codec_h264std_encode.h" +@@ -545,6 +545,7 @@ + VkVideoEncodeH265FrameSizeEXT maxFrameSize; + } VkVideoEncodeH265RateControlLayerInfoEXT; + ++#endif // GO_INCLUDE_video_decode + + #ifdef __cplusplus + } diff --git a/vulkan/vulkan_core.h b/vulkan/vulkan_core.h index a7780a0..b8c1a46 100644 --- a/vulkan/vulkan_core.h +++ b/vulkan/vulkan_core.h @@ -1,24 +1,10 @@ #ifndef VULKAN_CORE_H_ #define VULKAN_CORE_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -27,47 +13,90 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_VERSION_1_0 1 #include "vk_platform.h" +#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; + + +#ifndef VK_USE_64_BIT_PTR_DEFINES + #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + #define VK_USE_64_BIT_PTR_DEFINES 1 + #else + #define VK_USE_64_BIT_PTR_DEFINES 0 + #endif +#endif + + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L)) + #define VK_NULL_HANDLE nullptr + #else + #define VK_NULL_HANDLE ((void*)0) + #endif + #else + #define VK_NULL_HANDLE 0ULL + #endif +#endif +#ifndef VK_NULL_HANDLE + #define VK_NULL_HANDLE 0 +#endif + + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; + #else + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; + #endif +#endif + +// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. #define VK_MAKE_VERSION(major, minor, patch) \ - (((major) << 22) | ((minor) << 12) | (patch)) + ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 +#define VK_MAKE_API_VERSION(variant, major, minor, patch) \ + ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) + // Vulkan 1.0 version number -#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 +#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 -#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) -#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) -#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Version of this file -#define VK_HEADER_VERSION 88 +#define VK_HEADER_VERSION 239 +// Complete version of this file +#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) -#define VK_NULL_HANDLE 0 - - - -#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; - +// DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. +#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) -#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE) -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) - #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; -#else - #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; -#endif -#endif - +// DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. +#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) +// DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. +#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) -typedef uint32_t VkFlags; +#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29) +#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU) +#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) +#define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) typedef uint32_t VkBool32; +typedef uint64_t VkDeviceAddress; typedef uint64_t VkDeviceSize; +typedef uint32_t VkFlags; typedef uint32_t VkSampleMask; - +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) VK_DEFINE_HANDLE(VkInstance) VK_DEFINE_HANDLE(VkPhysicalDevice) VK_DEFINE_HANDLE(VkDevice) @@ -76,8 +105,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) VK_DEFINE_HANDLE(VkCommandBuffer) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) @@ -85,39 +112,29 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) - -#define VK_LOD_CLAMP_NONE 1000.0f -#define VK_REMAINING_MIP_LEVELS (~0U) -#define VK_REMAINING_ARRAY_LAYERS (~0U) -#define VK_WHOLE_SIZE (~0ULL) #define VK_ATTACHMENT_UNUSED (~0U) -#define VK_TRUE 1 -#define VK_FALSE 0 +#define VK_FALSE 0U +#define VK_LOD_CLAMP_NONE 1000.0F #define VK_QUEUE_FAMILY_IGNORED (~0U) +#define VK_REMAINING_ARRAY_LAYERS (~0U) +#define VK_REMAINING_MIP_LEVELS (~0U) #define VK_SUBPASS_EXTERNAL (~0U) -#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256 -#define VK_UUID_SIZE 16 -#define VK_MAX_MEMORY_TYPES 32 -#define VK_MAX_MEMORY_HEAPS 16 -#define VK_MAX_EXTENSION_NAME_SIZE 256 -#define VK_MAX_DESCRIPTION_SIZE 256 - - -typedef enum VkPipelineCacheHeaderVersion { - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, - VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, - VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, - VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1), - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF -} VkPipelineCacheHeaderVersion; +#define VK_TRUE 1U +#define VK_WHOLE_SIZE (~0ULL) +#define VK_MAX_MEMORY_TYPES 32U +#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U +#define VK_UUID_SIZE 16U +#define VK_MAX_EXTENSION_NAME_SIZE 256U +#define VK_MAX_DESCRIPTION_SIZE 256U +#define VK_MAX_MEMORY_HEAPS 16U typedef enum VkResult { VK_SUCCESS = 0, @@ -138,8 +155,12 @@ typedef enum VkResult { VK_ERROR_TOO_MANY_OBJECTS = -10, VK_ERROR_FORMAT_NOT_SUPPORTED = -11, VK_ERROR_FRAGMENTED_POOL = -12, + VK_ERROR_UNKNOWN = -13, VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000, VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003, + VK_ERROR_FRAGMENTATION = -1000161000, + VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000, + VK_PIPELINE_COMPILE_REQUIRED = 1000297000, VK_ERROR_SURFACE_LOST_KHR = -1000000000, VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001, VK_SUBOPTIMAL_KHR = 1000001003, @@ -147,14 +168,28 @@ typedef enum VkResult { 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_FRAGMENTATION_EXT = -1000161000, - VK_ERROR_NOT_PERMITTED_EXT = -1000174001, + VK_ERROR_NOT_PERMITTED_KHR = -1000174001, + VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000, + VK_THREAD_IDLE_KHR = 1000268000, + 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 = VK_ERROR_OUT_OF_POOL_MEMORY, VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, - VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL, - VK_RESULT_END_RANGE = VK_INCOMPLETE, - VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1), + VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION, + VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED_KHR, + VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, + VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, + VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED, + VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED, VK_RESULT_MAX_ENUM = 0x7FFFFFFF } VkResult; @@ -244,7 +279,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000, VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, @@ -272,7 +307,109 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52, + VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000, + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000, + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002, + VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003, + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004, + VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005, + VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000, + VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000, + VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002, + VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000, + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001, + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001, + VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002, + VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003, + VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004, + VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001, + VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002, + VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003, + VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54, + VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000, + VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001, + VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000, + VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000, + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002, + VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003, + VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004, + VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000, + VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000, + VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001, + VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002, + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003, + VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004, + VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005, + VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006, + VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007, + VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008, + VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009, + VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000, + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002, + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000, + VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000, + VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001, + VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001, + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001, + VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002, + VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003, VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, @@ -287,7 +424,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, - VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000, VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, @@ -295,13 +431,115 @@ typedef enum VkStructureType { 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, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, + VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000, + VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001, + 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT = 1000038005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT = 1000038006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT = 1000038007, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038008, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038009, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT = 1000038010, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT = 1000039005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT = 1000039006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT = 1000039007, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT = 1000039008, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039009, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039010, +#endif + 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, + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008, + VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009, + VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, @@ -312,6 +550,9 @@ typedef enum VkStructureType { 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, @@ -331,12 +572,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, - VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, - VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, - VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002, - VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003, - VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004, - VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, @@ -350,20 +585,22 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001, VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, - VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000, - VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001, - VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002, - VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003, - VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004, - VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005, - VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006, VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001, + VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002, + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003, + VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004, + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005, + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, @@ -385,78 +622,394 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, - VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, - VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006, VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, - VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009, + VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010, + VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011, + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001, + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015, + VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016, + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001, VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, - VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, - VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT = 1000158004, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006, VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001, +#endif VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005, - VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX = 1000165000, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX = 1000165001, - VK_STRUCTURE_TYPE_GEOMETRY_INSTANCE_NVX = 1000165002, - VK_STRUCTURE_TYPE_GEOMETRY_NVX = 1000165003, - VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX = 1000165004, - VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX = 1000165005, - VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX = 1000165006, - VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX = 1000165007, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX = 1000165008, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX = 1000165009, - VK_STRUCTURE_TYPE_HIT_SHADER_MODULE_CREATE_INFO_NVX = 1000165010, + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001, + VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003, + VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004, + VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005, + VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009, + VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000, VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, - VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, + VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000, + 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, + VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, + VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000, 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, VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000, + VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000, + VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001, + VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002, + VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003, + VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004, + VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, + VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000, + VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001, VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, + VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, + VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, + VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000, + VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, + VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, + VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, + VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, + VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000, + VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001, + VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002, + VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002, + VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001, + VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000, + VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001, + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002, + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003, + 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, + VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003, + VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004, + VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005, + VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000, + VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000, + VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001, + VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001, + VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000, + 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004, +#endif + 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, + VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002, + 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_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_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, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000, + VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001, + VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002, + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000, + VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003, + VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005, + VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006, + VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007, + VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009, + VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002, + 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_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, + VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO, + VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO, + VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO, + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, @@ -476,6 +1029,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, @@ -489,9 +1043,22 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO, + VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO, + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2, + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2, + VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2, + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2, + VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO, + VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, @@ -499,14 +1066,22 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, + VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK, + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO, VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, + VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, @@ -515,31 +1090,221 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO, VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, - VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, - VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, - VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), + VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, + VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES, + VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO, + VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO, + VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, + VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO, + VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES, + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT, + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES, + VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO, + VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO, + VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO, + VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES, + VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO, + VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES, + VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2, + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2, + VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO, + VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2, + VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, + VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2, + VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2, + VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2, + VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2, + VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2, + VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2, + VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT, + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT, + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3, + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES, + VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS, + VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS, VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF } VkStructureType; +typedef enum VkPipelineCacheHeaderVersion { + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCacheHeaderVersion; + +typedef enum VkImageLayout { + VK_IMAGE_LAYOUT_UNDEFINED = 0, + VK_IMAGE_LAYOUT_GENERAL = 1, + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, + VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, + VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, + VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, + VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, + VK_IMAGE_LAYOUT_PREINITIALIZED = 8, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, + VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, + VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, + 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002, +#endif + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF +} VkImageLayout; + +typedef enum VkObjectType { + VK_OBJECT_TYPE_UNKNOWN = 0, + VK_OBJECT_TYPE_INSTANCE = 1, + VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, + VK_OBJECT_TYPE_DEVICE = 3, + VK_OBJECT_TYPE_QUEUE = 4, + VK_OBJECT_TYPE_SEMAPHORE = 5, + VK_OBJECT_TYPE_COMMAND_BUFFER = 6, + VK_OBJECT_TYPE_FENCE = 7, + VK_OBJECT_TYPE_DEVICE_MEMORY = 8, + VK_OBJECT_TYPE_BUFFER = 9, + VK_OBJECT_TYPE_IMAGE = 10, + VK_OBJECT_TYPE_EVENT = 11, + VK_OBJECT_TYPE_QUERY_POOL = 12, + VK_OBJECT_TYPE_BUFFER_VIEW = 13, + VK_OBJECT_TYPE_IMAGE_VIEW = 14, + VK_OBJECT_TYPE_SHADER_MODULE = 15, + VK_OBJECT_TYPE_PIPELINE_CACHE = 16, + VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, + VK_OBJECT_TYPE_RENDER_PASS = 18, + VK_OBJECT_TYPE_PIPELINE = 19, + VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, + VK_OBJECT_TYPE_SAMPLER = 21, + VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, + VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, + VK_OBJECT_TYPE_FRAMEBUFFER = 24, + VK_OBJECT_TYPE_COMMAND_POOL = 25, + VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, + VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, + VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000, + VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, + VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, + 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, + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, + VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, + VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, + 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 = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, + VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, + VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT, + VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkObjectType; + +typedef enum VkVendorId { + VK_VENDOR_ID_VIV = 0x10001, + VK_VENDOR_ID_VSI = 0x10002, + VK_VENDOR_ID_KAZAN = 0x10003, + VK_VENDOR_ID_CODEPLAY = 0x10004, + VK_VENDOR_ID_MESA = 0x10005, + VK_VENDOR_ID_POCL = 0x10006, + VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF +} VkVendorId; + typedef enum VkSystemAllocationScope { VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, - VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND, - VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE, - VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1), VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF } VkSystemAllocationScope; typedef enum VkInternalAllocationType { VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, - VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, - VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, - VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1), VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF } VkInternalAllocationType; @@ -763,6 +1528,26 @@ typedef enum VkFormat { VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, + VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002, + VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003, + VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000, + VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001, + VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000, + VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001, + VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002, + VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003, + VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004, + VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005, + VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006, + VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007, + VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008, + VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009, + VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010, + VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011, + VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012, + VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013, VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, @@ -771,6 +1556,21 @@ typedef enum VkFormat { 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 = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK, + VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK, + VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK, + VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK, + VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK, + VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK, + VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK, VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, @@ -805,41 +1605,35 @@ typedef enum VkFormat { VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, - VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED, - VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, - VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1), + VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16, + VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM, + VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16, + VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16, VK_FORMAT_MAX_ENUM = 0x7FFFFFFF } VkFormat; -typedef enum VkImageType { - VK_IMAGE_TYPE_1D = 0, - VK_IMAGE_TYPE_2D = 1, - VK_IMAGE_TYPE_3D = 2, - VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D, - VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D, - VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1), - VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkImageType; - typedef enum VkImageTiling { VK_IMAGE_TILING_OPTIMAL = 0, VK_IMAGE_TILING_LINEAR = 1, VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, - VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL, - VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR, - VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1), VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF } VkImageTiling; +typedef enum VkImageType { + VK_IMAGE_TYPE_1D = 0, + VK_IMAGE_TYPE_2D = 1, + VK_IMAGE_TYPE_3D = 2, + VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkImageType; + typedef enum VkPhysicalDeviceType { VK_PHYSICAL_DEVICE_TYPE_OTHER = 0, VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, VK_PHYSICAL_DEVICE_TYPE_CPU = 4, - VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER, - VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU, - VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1), VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF } VkPhysicalDeviceType; @@ -847,45 +1641,41 @@ typedef enum VkQueryType { 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_COMPACTED_SIZE_NVX = 1000165000, - VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, - VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, - VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1), + 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, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000, +#endif + 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 = 0x7FFFFFFF } VkQueryType; typedef enum VkSharingMode { VK_SHARING_MODE_EXCLUSIVE = 0, VK_SHARING_MODE_CONCURRENT = 1, - VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE, - VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT, - VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1), VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF } VkSharingMode; -typedef enum VkImageLayout { - VK_IMAGE_LAYOUT_UNDEFINED = 0, - VK_IMAGE_LAYOUT_GENERAL = 1, - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, - VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, - VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, - VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, - VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, - VK_IMAGE_LAYOUT_PREINITIALIZED = 8, - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, - VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, - VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, - VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, - VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED, - VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED, - VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1), - VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF -} VkImageLayout; +typedef enum VkComponentSwizzle { + VK_COMPONENT_SWIZZLE_IDENTITY = 0, + VK_COMPONENT_SWIZZLE_ZERO = 1, + VK_COMPONENT_SWIZZLE_ONE = 2, + VK_COMPONENT_SWIZZLE_R = 3, + VK_COMPONENT_SWIZZLE_G = 4, + VK_COMPONENT_SWIZZLE_B = 5, + VK_COMPONENT_SWIZZLE_A = 6, + VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF +} VkComponentSwizzle; typedef enum VkImageViewType { VK_IMAGE_VIEW_TYPE_1D = 0, @@ -895,151 +1685,31 @@ typedef enum VkImageViewType { VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4, VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5, VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, - VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D, - VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, - VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1), VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF } VkImageViewType; -typedef enum VkComponentSwizzle { - VK_COMPONENT_SWIZZLE_IDENTITY = 0, - VK_COMPONENT_SWIZZLE_ZERO = 1, - VK_COMPONENT_SWIZZLE_ONE = 2, - VK_COMPONENT_SWIZZLE_R = 3, - VK_COMPONENT_SWIZZLE_G = 4, - VK_COMPONENT_SWIZZLE_B = 5, - VK_COMPONENT_SWIZZLE_A = 6, - VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY, - VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A, - VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1), - VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF -} VkComponentSwizzle; - -typedef enum VkVertexInputRate { - VK_VERTEX_INPUT_RATE_VERTEX = 0, - VK_VERTEX_INPUT_RATE_INSTANCE = 1, - VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX, - VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE, - VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1), - VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF -} VkVertexInputRate; - -typedef enum VkPrimitiveTopology { - VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, - VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, - VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, - VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, - VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, - VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, - VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, - VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, - VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1), - VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF -} VkPrimitiveTopology; - -typedef enum VkPolygonMode { - VK_POLYGON_MODE_FILL = 0, - VK_POLYGON_MODE_LINE = 1, - VK_POLYGON_MODE_POINT = 2, - VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, - VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL, - VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT, - VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1), - VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF -} VkPolygonMode; - -typedef enum VkFrontFace { - VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, - VK_FRONT_FACE_CLOCKWISE = 1, - VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE, - VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE, - VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1), - VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF -} VkFrontFace; - -typedef enum VkCompareOp { - VK_COMPARE_OP_NEVER = 0, - VK_COMPARE_OP_LESS = 1, - VK_COMPARE_OP_EQUAL = 2, - VK_COMPARE_OP_LESS_OR_EQUAL = 3, - VK_COMPARE_OP_GREATER = 4, - VK_COMPARE_OP_NOT_EQUAL = 5, - VK_COMPARE_OP_GREATER_OR_EQUAL = 6, - VK_COMPARE_OP_ALWAYS = 7, - VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER, - VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS, - VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1), - VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF -} VkCompareOp; - -typedef enum VkStencilOp { - VK_STENCIL_OP_KEEP = 0, - VK_STENCIL_OP_ZERO = 1, - VK_STENCIL_OP_REPLACE = 2, - VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, - VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, - VK_STENCIL_OP_INVERT = 5, - VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, - VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, - VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP, - VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP, - VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1), - VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF -} VkStencilOp; - -typedef enum VkLogicOp { - VK_LOGIC_OP_CLEAR = 0, - VK_LOGIC_OP_AND = 1, - VK_LOGIC_OP_AND_REVERSE = 2, - VK_LOGIC_OP_COPY = 3, - VK_LOGIC_OP_AND_INVERTED = 4, - VK_LOGIC_OP_NO_OP = 5, - VK_LOGIC_OP_XOR = 6, - VK_LOGIC_OP_OR = 7, - VK_LOGIC_OP_NOR = 8, - VK_LOGIC_OP_EQUIVALENT = 9, - VK_LOGIC_OP_INVERT = 10, - VK_LOGIC_OP_OR_REVERSE = 11, - VK_LOGIC_OP_COPY_INVERTED = 12, - VK_LOGIC_OP_OR_INVERTED = 13, - VK_LOGIC_OP_NAND = 14, - VK_LOGIC_OP_SET = 15, - VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR, - VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET, - VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1), - VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF -} VkLogicOp; - -typedef enum VkBlendFactor { - VK_BLEND_FACTOR_ZERO = 0, - VK_BLEND_FACTOR_ONE = 1, - VK_BLEND_FACTOR_SRC_COLOR = 2, - VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, - VK_BLEND_FACTOR_DST_COLOR = 4, - VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, - VK_BLEND_FACTOR_SRC_ALPHA = 6, - VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, - VK_BLEND_FACTOR_DST_ALPHA = 8, - VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, - VK_BLEND_FACTOR_CONSTANT_COLOR = 10, - VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, - VK_BLEND_FACTOR_CONSTANT_ALPHA = 12, - VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, - VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, - VK_BLEND_FACTOR_SRC1_COLOR = 15, - VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, - VK_BLEND_FACTOR_SRC1_ALPHA = 17, - VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, - VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO, - VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, - VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1), - VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF -} VkBlendFactor; +typedef enum VkBlendFactor { + VK_BLEND_FACTOR_ZERO = 0, + VK_BLEND_FACTOR_ONE = 1, + VK_BLEND_FACTOR_SRC_COLOR = 2, + VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, + VK_BLEND_FACTOR_DST_COLOR = 4, + VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, + VK_BLEND_FACTOR_SRC_ALPHA = 6, + VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, + VK_BLEND_FACTOR_DST_ALPHA = 8, + VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, + VK_BLEND_FACTOR_CONSTANT_COLOR = 10, + VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, + VK_BLEND_FACTOR_CONSTANT_ALPHA = 12, + VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, + VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, + VK_BLEND_FACTOR_SRC1_COLOR = 15, + VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, + VK_BLEND_FACTOR_SRC1_ALPHA = 17, + VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, + VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF +} VkBlendFactor; typedef enum VkBlendOp { VK_BLEND_OP_ADD = 0, @@ -1093,12 +1763,21 @@ typedef enum VkBlendOp { VK_BLEND_OP_RED_EXT = 1000148043, VK_BLEND_OP_GREEN_EXT = 1000148044, VK_BLEND_OP_BLUE_EXT = 1000148045, - VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD, - VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX, - VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1), VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF } VkBlendOp; +typedef enum VkCompareOp { + VK_COMPARE_OP_NEVER = 0, + VK_COMPARE_OP_LESS = 1, + VK_COMPARE_OP_EQUAL = 2, + VK_COMPARE_OP_LESS_OR_EQUAL = 3, + VK_COMPARE_OP_GREATER = 4, + VK_COMPARE_OP_NOT_EQUAL = 5, + VK_COMPARE_OP_GREATER_OR_EQUAL = 6, + VK_COMPARE_OP_ALWAYS = 7, + VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF +} VkCompareOp; + typedef enum VkDynamicState { VK_DYNAMIC_STATE_VIEWPORT = 0, VK_DYNAMIC_STATE_SCISSOR = 1, @@ -1109,61 +1788,185 @@ typedef enum VkDynamicState { VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8, + VK_DYNAMIC_STATE_CULL_MODE = 1000267000, + VK_DYNAMIC_STATE_FRONT_FACE = 1000267001, + VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004, + VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005, + VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006, + VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007, + VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008, + VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009, + VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010, + VK_DYNAMIC_STATE_STENCIL_OP = 1000267011, + VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001, + VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002, + VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004, VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, + VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000, VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, - VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT, - VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE, - VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1), + VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000, + VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000, + VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000, + 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 = VK_DYNAMIC_STATE_CULL_MODE, + VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE, + VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, + VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE, + VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, + VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, + VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, + VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, + VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, + VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP, + VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE, + VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE, + VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF } VkDynamicState; +typedef enum VkFrontFace { + VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, + VK_FRONT_FACE_CLOCKWISE = 1, + VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF +} VkFrontFace; + +typedef enum VkVertexInputRate { + VK_VERTEX_INPUT_RATE_VERTEX = 0, + VK_VERTEX_INPUT_RATE_INSTANCE = 1, + VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF +} VkVertexInputRate; + +typedef enum VkPrimitiveTopology { + VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, + VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, + VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, + VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, + VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, + VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, + VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF +} VkPrimitiveTopology; + +typedef enum VkPolygonMode { + VK_POLYGON_MODE_FILL = 0, + VK_POLYGON_MODE_LINE = 1, + VK_POLYGON_MODE_POINT = 2, + VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, + VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF +} VkPolygonMode; + +typedef enum VkStencilOp { + VK_STENCIL_OP_KEEP = 0, + VK_STENCIL_OP_ZERO = 1, + VK_STENCIL_OP_REPLACE = 2, + VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, + VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, + VK_STENCIL_OP_INVERT = 5, + VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, + VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, + VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF +} VkStencilOp; + +typedef enum VkLogicOp { + VK_LOGIC_OP_CLEAR = 0, + VK_LOGIC_OP_AND = 1, + VK_LOGIC_OP_AND_REVERSE = 2, + VK_LOGIC_OP_COPY = 3, + VK_LOGIC_OP_AND_INVERTED = 4, + VK_LOGIC_OP_NO_OP = 5, + VK_LOGIC_OP_XOR = 6, + VK_LOGIC_OP_OR = 7, + VK_LOGIC_OP_NOR = 8, + VK_LOGIC_OP_EQUIVALENT = 9, + VK_LOGIC_OP_INVERT = 10, + VK_LOGIC_OP_OR_REVERSE = 11, + VK_LOGIC_OP_COPY_INVERTED = 12, + VK_LOGIC_OP_OR_INVERTED = 13, + VK_LOGIC_OP_NAND = 14, + VK_LOGIC_OP_SET = 15, + VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF +} VkLogicOp; + +typedef enum VkBorderColor { + VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, + VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, + VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, + VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3, + VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, + VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5, + VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003, + VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004, + VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF +} VkBorderColor; + typedef enum VkFilter { VK_FILTER_NEAREST = 0, VK_FILTER_LINEAR = 1, - VK_FILTER_CUBIC_IMG = 1000015000, - VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST, - VK_FILTER_END_RANGE = VK_FILTER_LINEAR, - VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1), + VK_FILTER_CUBIC_EXT = 1000015000, + VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT, VK_FILTER_MAX_ENUM = 0x7FFFFFFF } VkFilter; -typedef enum VkSamplerMipmapMode { - VK_SAMPLER_MIPMAP_MODE_NEAREST = 0, - VK_SAMPLER_MIPMAP_MODE_LINEAR = 1, - VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST, - VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR, - VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1), - VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF -} VkSamplerMipmapMode; - typedef enum VkSamplerAddressMode { VK_SAMPLER_ADDRESS_MODE_REPEAT = 0, VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, - VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT, - VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, - VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1), + VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF } VkSamplerAddressMode; -typedef enum VkBorderColor { - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, - VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, - VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, - VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3, - VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, - VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5, - VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, - VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE, - VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1), - VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF -} VkBorderColor; +typedef enum VkSamplerMipmapMode { + VK_SAMPLER_MIPMAP_MODE_NEAREST = 0, + VK_SAMPLER_MIPMAP_MODE_LINEAR = 1, + VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF +} VkSamplerMipmapMode; typedef enum VkDescriptorType { VK_DESCRIPTOR_TYPE_SAMPLER = 0, @@ -1177,11 +1980,14 @@ typedef enum VkDescriptorType { VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, - VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, - VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000, - VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER, - VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, - VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1), + VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000, + VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, + VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, + 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 = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT, VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDescriptorType; @@ -1189,128 +1995,120 @@ typedef enum VkAttachmentLoadOp { VK_ATTACHMENT_LOAD_OP_LOAD = 0, VK_ATTACHMENT_LOAD_OP_CLEAR = 1, VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, - VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD, - VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE, - VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1), + VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000, VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF } VkAttachmentLoadOp; typedef enum VkAttachmentStoreOp { VK_ATTACHMENT_STORE_OP_STORE = 0, VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, - VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE, - VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE, - VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1), + VK_ATTACHMENT_STORE_OP_NONE = 1000301000, + VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE, + VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE, + VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE, VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF } VkAttachmentStoreOp; typedef enum VkPipelineBindPoint { VK_PIPELINE_BIND_POINT_GRAPHICS = 0, VK_PIPELINE_BIND_POINT_COMPUTE = 1, - VK_PIPELINE_BIND_POINT_RAYTRACING_NVX = 1000165000, - VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS, - VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE, - VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1), + VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000, + VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003, + VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF } VkPipelineBindPoint; typedef enum VkCommandBufferLevel { VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0, VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1, - VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY, - VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY, - VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1), VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF } VkCommandBufferLevel; typedef enum VkIndexType { VK_INDEX_TYPE_UINT16 = 0, VK_INDEX_TYPE_UINT32 = 1, - VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16, - VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32, - VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1), + VK_INDEX_TYPE_NONE_KHR = 1000165000, + VK_INDEX_TYPE_UINT8_EXT = 1000265000, + VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR, VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF } VkIndexType; typedef enum VkSubpassContents { VK_SUBPASS_CONTENTS_INLINE = 0, VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, - VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE, - VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, - VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1), VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF } VkSubpassContents; -typedef enum VkObjectType { - VK_OBJECT_TYPE_UNKNOWN = 0, - VK_OBJECT_TYPE_INSTANCE = 1, - VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, - VK_OBJECT_TYPE_DEVICE = 3, - VK_OBJECT_TYPE_QUEUE = 4, - VK_OBJECT_TYPE_SEMAPHORE = 5, - VK_OBJECT_TYPE_COMMAND_BUFFER = 6, - VK_OBJECT_TYPE_FENCE = 7, - VK_OBJECT_TYPE_DEVICE_MEMORY = 8, - VK_OBJECT_TYPE_BUFFER = 9, - VK_OBJECT_TYPE_IMAGE = 10, - VK_OBJECT_TYPE_EVENT = 11, - VK_OBJECT_TYPE_QUERY_POOL = 12, - VK_OBJECT_TYPE_BUFFER_VIEW = 13, - VK_OBJECT_TYPE_IMAGE_VIEW = 14, - VK_OBJECT_TYPE_SHADER_MODULE = 15, - VK_OBJECT_TYPE_PIPELINE_CACHE = 16, - VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, - VK_OBJECT_TYPE_RENDER_PASS = 18, - VK_OBJECT_TYPE_PIPELINE = 19, - VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, - VK_OBJECT_TYPE_SAMPLER = 21, - VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, - VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, - VK_OBJECT_TYPE_FRAMEBUFFER = 24, - VK_OBJECT_TYPE_COMMAND_POOL = 25, - VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, - VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, - VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, - VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, - VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, - VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, - VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, - VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, - VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, - VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, - VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, - VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000, - VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, - VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, - VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN, - VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL, - VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1), - VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkObjectType; - -typedef enum VkVendorId { - VK_VENDOR_ID_VIV = 0x10001, - VK_VENDOR_ID_VSI = 0x10002, - VK_VENDOR_ID_KAZAN = 0x10003, - VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV, - VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN, - VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1), - VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF -} VkVendorId; - -typedef VkFlags VkInstanceCreateFlags; - -typedef enum VkFormatFeatureFlagBits { - VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, - VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, - VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, - VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, - VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, - VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, - VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, - VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, - VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, - VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, +typedef enum VkAccessFlagBits { + VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, + VK_ACCESS_INDEX_READ_BIT = 0x00000002, + VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, + VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, + VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, + VK_ACCESS_SHADER_READ_BIT = 0x00000020, + VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, + VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, + VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, + VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, + VK_ACCESS_HOST_READ_BIT = 0x00002000, + VK_ACCESS_HOST_WRITE_BIT = 0x00004000, + VK_ACCESS_MEMORY_READ_BIT = 0x00008000, + VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, + VK_ACCESS_NONE = 0, + VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, + VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, + VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, + VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000, + VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000, + VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, + VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000, + VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000, + VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000, + VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, + VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, + VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, + VK_ACCESS_NONE_KHR = VK_ACCESS_NONE, + VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkAccessFlagBits; +typedef VkFlags VkAccessFlags; + +typedef enum VkImageAspectFlagBits { + VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, + VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, + VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, + VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, + VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, + VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, + VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, + VK_IMAGE_ASPECT_NONE = 0, + VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, + VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, + VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, + VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, + VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, + VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, + VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, + VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE, + VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkImageAspectFlagBits; +typedef VkFlags VkImageAspectFlags; + +typedef enum VkFormatFeatureFlagBits { + VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, + VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, + VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, + VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, + VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, + VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, + VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, + VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, @@ -1323,10 +2121,23 @@ typedef enum VkFormatFeatureFlagBits { VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000, + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000, + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000, + VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000, + VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000, + VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000, +#endif + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT, VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT, VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, @@ -1338,20 +2149,6 @@ typedef enum VkFormatFeatureFlagBits { } VkFormatFeatureFlagBits; typedef VkFlags VkFormatFeatureFlags; -typedef enum VkImageUsageFlagBits { - VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, - VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, - VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, - VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, - VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, - VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, - VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, - VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkImageUsageFlagBits; -typedef VkFlags VkImageUsageFlags; - typedef enum VkImageCreateFlagBits { VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, @@ -1367,6 +2164,11 @@ typedef enum VkImageCreateFlagBits { VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, + VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000, + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000, + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000, + VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000, VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, @@ -1389,15 +2191,51 @@ typedef enum VkSampleCountFlagBits { } VkSampleCountFlagBits; typedef VkFlags VkSampleCountFlags; -typedef enum VkQueueFlagBits { - VK_QUEUE_GRAPHICS_BIT = 0x00000001, - VK_QUEUE_COMPUTE_BIT = 0x00000002, - VK_QUEUE_TRANSFER_BIT = 0x00000004, - VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, - VK_QUEUE_PROTECTED_BIT = 0x00000010, - VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkQueueFlagBits; -typedef VkFlags VkQueueFlags; +typedef enum VkImageUsageFlagBits { + VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, + VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, + VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, + VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, + VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, + VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400, + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800, + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000, + VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, + VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000, +#endif + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000, + VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000, + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000, + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000, + VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, + VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkImageUsageFlagBits; +typedef VkFlags VkImageUsageFlags; + +typedef enum VkInstanceCreateFlagBits { + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001, + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkInstanceCreateFlagBits; +typedef VkFlags VkInstanceCreateFlags; + +typedef enum VkMemoryHeapFlagBits { + VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, + VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, + VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, + VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkMemoryHeapFlagBits; +typedef VkFlags VkMemoryHeapFlags; typedef enum VkMemoryPropertyFlagBits { VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, @@ -1406,17 +2244,27 @@ typedef enum VkMemoryPropertyFlagBits { VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, + VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040, + VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, + VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100, VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkMemoryPropertyFlagBits; typedef VkFlags VkMemoryPropertyFlags; -typedef enum VkMemoryHeapFlagBits { - VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, - VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, - VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, - VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkMemoryHeapFlagBits; -typedef VkFlags VkMemoryHeapFlags; +typedef enum VkQueueFlagBits { + VK_QUEUE_GRAPHICS_BIT = 0x00000001, + VK_QUEUE_COMPUTE_BIT = 0x00000002, + VK_QUEUE_TRANSFER_BIT = 0x00000004, + VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, + VK_QUEUE_PROTECTED_BIT = 0x00000010, + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040, +#endif + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100, + VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkQueueFlagBits; +typedef VkFlags VkQueueFlags; typedef VkFlags VkDeviceCreateFlags; typedef enum VkDeviceQueueCreateFlagBits { @@ -1443,36 +2291,32 @@ typedef enum VkPipelineStageFlagBits { VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, + VK_PIPELINE_STAGE_NONE = 0, VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, - VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, - VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, - VK_PIPELINE_STAGE_RAYTRACING_BIT_NVX = 0x00200000, - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, + VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000, + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000, + VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, + VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000, + VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000, + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000, + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000, + VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, + VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT, + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT, + VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE, VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineStageFlagBits; typedef VkFlags VkPipelineStageFlags; typedef VkFlags VkMemoryMapFlags; -typedef enum VkImageAspectFlagBits { - VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, - VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, - VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, - VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, - VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, - VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, - VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, - VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, - VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, - VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, - VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, - VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, - VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, - VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, - VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkImageAspectFlagBits; -typedef VkFlags VkImageAspectFlags; +typedef enum VkSparseMemoryBindFlagBits { + VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, + VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSparseMemoryBindFlagBits; +typedef VkFlags VkSparseMemoryBindFlags; typedef enum VkSparseImageFormatFlagBits { VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, @@ -1482,20 +2326,19 @@ typedef enum VkSparseImageFormatFlagBits { } VkSparseImageFormatFlagBits; typedef VkFlags VkSparseImageFormatFlags; -typedef enum VkSparseMemoryBindFlagBits { - VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, - VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSparseMemoryBindFlagBits; -typedef VkFlags VkSparseMemoryBindFlags; - typedef enum VkFenceCreateFlagBits { VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkFenceCreateFlagBits; typedef VkFlags VkFenceCreateFlags; typedef VkFlags VkSemaphoreCreateFlags; + +typedef enum VkEventCreateFlagBits { + VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001, + VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT, + VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkEventCreateFlagBits; typedef VkFlags VkEventCreateFlags; -typedef VkFlags VkQueryPoolCreateFlags; typedef enum VkQueryPipelineStatisticFlagBits { VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, @@ -1509,15 +2352,20 @@ typedef enum VkQueryPipelineStatisticFlagBits { VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800, + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000, + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000, VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkQueryPipelineStatisticFlagBits; typedef VkFlags VkQueryPipelineStatisticFlags; +typedef VkFlags VkQueryPoolCreateFlags; typedef enum VkQueryResultFlagBits { VK_QUERY_RESULT_64_BIT = 0x00000001, VK_QUERY_RESULT_WAIT_BIT = 0x00000002, VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010, VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkQueryResultFlagBits; typedef VkFlags VkQueryResultFlags; @@ -1527,6 +2375,10 @@ typedef enum VkBufferCreateFlagBits { VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, + VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010, + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020, + VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, + VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkBufferCreateFlagBits; typedef VkFlags VkBufferCreateFlags; @@ -1541,30 +2393,108 @@ typedef enum VkBufferUsageFlagBits { VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, + VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000, + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000, + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000, VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, - VK_BUFFER_USAGE_RAYTRACING_BIT_NVX = 0x00000400, + VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000, + VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000, + VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000, +#endif + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000, + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000, + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000, + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000, + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000, + VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR, + VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, + VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkBufferUsageFlagBits; typedef VkFlags VkBufferUsageFlags; typedef VkFlags VkBufferViewCreateFlags; + +typedef enum VkImageViewCreateFlagBits { + VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004, + VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002, + VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkImageViewCreateFlagBits; typedef VkFlags VkImageViewCreateFlags; typedef VkFlags VkShaderModuleCreateFlags; + +typedef enum VkPipelineCacheCreateFlagBits { + VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001, + VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, + VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCacheCreateFlagBits; typedef VkFlags VkPipelineCacheCreateFlags; +typedef enum VkColorComponentFlagBits { + VK_COLOR_COMPONENT_R_BIT = 0x00000001, + VK_COLOR_COMPONENT_G_BIT = 0x00000002, + VK_COLOR_COMPONENT_B_BIT = 0x00000004, + VK_COLOR_COMPONENT_A_BIT = 0x00000008, + VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkColorComponentFlagBits; +typedef VkFlags VkColorComponentFlags; + typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, - VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010, - VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX = 0x00000020, + VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010, + VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100, + VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200, + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000, + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000, + VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000, + VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000, + VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000, + VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, + VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040, + VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, + VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, + VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800, + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000, + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000, + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400, + VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000, + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000, + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000, + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000, + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000, + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000, + VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, + VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, + VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, + VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT, + VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT, VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineCreateFlagBits; typedef VkFlags VkPipelineCreateFlags; + +typedef enum VkPipelineShaderStageCreateFlagBits { + VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001, + VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002, + VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT, + VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT, + VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineShaderStageCreateFlagBits; typedef VkFlags VkPipelineShaderStageCreateFlags; typedef enum VkShaderStageFlagBits { @@ -1576,21 +2506,26 @@ typedef enum VkShaderStageFlagBits { VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, VK_SHADER_STAGE_ALL = 0x7FFFFFFF, - VK_SHADER_STAGE_RAYGEN_BIT_NVX = 0x00000100, - VK_SHADER_STAGE_ANY_HIT_BIT_NVX = 0x00000200, - VK_SHADER_STAGE_CLOSEST_HIT_BIT_NVX = 0x00000400, - VK_SHADER_STAGE_MISS_BIT_NVX = 0x00000800, - VK_SHADER_STAGE_INTERSECTION_BIT_NVX = 0x00001000, - VK_SHADER_STAGE_CALLABLE_BIT_NVX = 0x00002000, - VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040, - VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, + VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100, + VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200, + VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400, + VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800, + VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000, + VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000, + VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040, + VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080, + VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000, + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000, + VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR, + VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR, + VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, + VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR, + VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR, + VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR, + VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT, + VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT, VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkShaderStageFlagBits; -typedef VkFlags VkPipelineVertexInputStateCreateFlags; -typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; -typedef VkFlags VkPipelineTessellationStateCreateFlags; -typedef VkFlags VkPipelineViewportStateCreateFlags; -typedef VkFlags VkPipelineRasterizationStateCreateFlags; typedef enum VkCullModeFlagBits { VK_CULL_MODE_NONE = 0, @@ -1600,39 +2535,69 @@ typedef enum VkCullModeFlagBits { VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkCullModeFlagBits; typedef VkFlags VkCullModeFlags; +typedef VkFlags VkPipelineVertexInputStateCreateFlags; +typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; +typedef VkFlags VkPipelineTessellationStateCreateFlags; +typedef VkFlags VkPipelineViewportStateCreateFlags; +typedef VkFlags VkPipelineRasterizationStateCreateFlags; typedef VkFlags VkPipelineMultisampleStateCreateFlags; + +typedef enum VkPipelineDepthStencilStateCreateFlagBits { + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineDepthStencilStateCreateFlagBits; typedef VkFlags VkPipelineDepthStencilStateCreateFlags; -typedef VkFlags VkPipelineColorBlendStateCreateFlags; -typedef enum VkColorComponentFlagBits { - VK_COLOR_COMPONENT_R_BIT = 0x00000001, - VK_COLOR_COMPONENT_G_BIT = 0x00000002, - VK_COLOR_COMPONENT_B_BIT = 0x00000004, - VK_COLOR_COMPONENT_A_BIT = 0x00000008, - VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkColorComponentFlagBits; -typedef VkFlags VkColorComponentFlags; +typedef enum VkPipelineColorBlendStateCreateFlagBits { + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001, + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT, + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineColorBlendStateCreateFlagBits; +typedef VkFlags VkPipelineColorBlendStateCreateFlags; typedef VkFlags VkPipelineDynamicStateCreateFlags; + +typedef enum VkPipelineLayoutCreateFlagBits { + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002, + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineLayoutCreateFlagBits; typedef VkFlags VkPipelineLayoutCreateFlags; typedef VkFlags VkShaderStageFlags; -typedef VkFlags VkSamplerCreateFlags; -typedef enum VkDescriptorSetLayoutCreateFlagBits { - VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, - VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002, - VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkDescriptorSetLayoutCreateFlagBits; -typedef VkFlags VkDescriptorSetLayoutCreateFlags; +typedef enum VkSamplerCreateFlagBits { + VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001, + VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002, + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008, + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004, + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010, + VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSamplerCreateFlagBits; +typedef VkFlags VkSamplerCreateFlags; typedef enum VkDescriptorPoolCreateFlagBits { VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, - VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002, + VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002, + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004, + VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT, VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkDescriptorPoolCreateFlagBits; typedef VkFlags VkDescriptorPoolCreateFlags; typedef VkFlags VkDescriptorPoolResetFlags; -typedef VkFlags VkFramebufferCreateFlags; -typedef VkFlags VkRenderPassCreateFlags; + +typedef enum VkDescriptorSetLayoutCreateFlagBits { + VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkDescriptorSetLayoutCreateFlagBits; +typedef VkFlags VkDescriptorSetLayoutCreateFlags; typedef enum VkAttachmentDescriptionFlagBits { VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, @@ -1640,55 +2605,46 @@ typedef enum VkAttachmentDescriptionFlagBits { } VkAttachmentDescriptionFlagBits; typedef VkFlags VkAttachmentDescriptionFlags; -typedef enum VkSubpassDescriptionFlagBits { - VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, - VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, - VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSubpassDescriptionFlagBits; -typedef VkFlags VkSubpassDescriptionFlags; - -typedef enum VkAccessFlagBits { - VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, - VK_ACCESS_INDEX_READ_BIT = 0x00000002, - VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, - VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, - VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, - VK_ACCESS_SHADER_READ_BIT = 0x00000020, - VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, - VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, - VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, - VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, - VK_ACCESS_HOST_READ_BIT = 0x00002000, - VK_ACCESS_HOST_WRITE_BIT = 0x00004000, - VK_ACCESS_MEMORY_READ_BIT = 0x00008000, - VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, - VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, - VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, - VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, - VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, - VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, - VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, - VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, - VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, - VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NVX = 0x00200000, - VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NVX = 0x00400000, - VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkAccessFlagBits; -typedef VkFlags VkAccessFlags; - typedef enum VkDependencyFlagBits { VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008, VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT, VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT, VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkDependencyFlagBits; typedef VkFlags VkDependencyFlags; +typedef enum VkFramebufferCreateFlagBits { + VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001, + VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, + VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkFramebufferCreateFlagBits; +typedef VkFlags VkFramebufferCreateFlags; + +typedef enum VkRenderPassCreateFlagBits { + VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002, + VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkRenderPassCreateFlagBits; +typedef VkFlags VkRenderPassCreateFlags; + +typedef enum VkSubpassDescriptionFlagBits { + VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, + VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, + VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004, + VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040, + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, + VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSubpassDescriptionFlagBits; +typedef VkFlags VkSubpassDescriptionFlags; + typedef enum VkCommandPoolCreateFlagBits { VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, @@ -1726,41 +2682,119 @@ typedef VkFlags VkCommandBufferResetFlags; typedef enum VkStencilFaceFlagBits { VK_STENCIL_FACE_FRONT_BIT = 0x00000001, VK_STENCIL_FACE_BACK_BIT = 0x00000002, - VK_STENCIL_FRONT_AND_BACK = 0x00000003, + VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003, + VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK, VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkStencilFaceFlagBits; typedef VkFlags VkStencilFaceFlags; +typedef struct VkExtent2D { + uint32_t width; + uint32_t height; +} VkExtent2D; -typedef struct VkApplicationInfo { +typedef struct VkExtent3D { + uint32_t width; + uint32_t height; + uint32_t depth; +} VkExtent3D; + +typedef struct VkOffset2D { + int32_t x; + int32_t y; +} VkOffset2D; + +typedef struct VkOffset3D { + int32_t x; + int32_t y; + int32_t z; +} VkOffset3D; + +typedef struct VkRect2D { + VkOffset2D offset; + VkExtent2D extent; +} VkRect2D; + +typedef struct VkBaseInStructure { + VkStructureType sType; + const struct VkBaseInStructure* pNext; +} VkBaseInStructure; + +typedef struct VkBaseOutStructure { + VkStructureType sType; + struct VkBaseOutStructure* pNext; +} VkBaseOutStructure; + +typedef struct VkBufferMemoryBarrier { VkStructureType sType; const void* pNext; - const char* pApplicationName; - uint32_t applicationVersion; - const char* pEngineName; - uint32_t engineVersion; - uint32_t apiVersion; -} VkApplicationInfo; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; +} VkBufferMemoryBarrier; -typedef struct VkInstanceCreateInfo { - VkStructureType sType; - const void* pNext; - VkInstanceCreateFlags flags; - const VkApplicationInfo* pApplicationInfo; - uint32_t enabledLayerCount; - const char* const* ppEnabledLayerNames; - uint32_t enabledExtensionCount; - const char* const* ppEnabledExtensionNames; -} VkInstanceCreateInfo; +typedef struct VkDispatchIndirectCommand { + uint32_t x; + uint32_t y; + uint32_t z; +} VkDispatchIndirectCommand; -typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( - void* pUserData, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); +typedef struct VkDrawIndexedIndirectCommand { + uint32_t indexCount; + uint32_t instanceCount; + uint32_t firstIndex; + int32_t vertexOffset; + uint32_t firstInstance; +} VkDrawIndexedIndirectCommand; -typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( +typedef struct VkDrawIndirectCommand { + uint32_t vertexCount; + uint32_t instanceCount; + uint32_t firstVertex; + uint32_t firstInstance; +} VkDrawIndirectCommand; + +typedef struct VkImageSubresourceRange { + VkImageAspectFlags aspectMask; + uint32_t baseMipLevel; + uint32_t levelCount; + uint32_t baseArrayLayer; + uint32_t layerCount; +} VkImageSubresourceRange; + +typedef struct VkImageMemoryBarrier { + VkStructureType sType; + const void* pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkImageLayout oldLayout; + VkImageLayout newLayout; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkImage image; + VkImageSubresourceRange subresourceRange; +} VkImageMemoryBarrier; + +typedef struct VkMemoryBarrier { + VkStructureType sType; + const void* pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; +} VkMemoryBarrier; + +typedef struct VkPipelineCacheHeaderVersionOne { + uint32_t headerSize; + VkPipelineCacheHeaderVersion headerVersion; + uint32_t vendorID; + uint32_t deviceID; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; +} VkPipelineCacheHeaderVersionOne; + +typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( void* pUserData, - void* pOriginal, size_t size, size_t alignment, VkSystemAllocationScope allocationScope); @@ -1781,6 +2815,14 @@ typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope); +typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( + void* pUserData, + void* pOriginal, + size_t size, + size_t alignment, + VkSystemAllocationScope allocationScope); + +typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); typedef struct VkAllocationCallbacks { void* pUserData; PFN_vkAllocationFunction pfnAllocation; @@ -1790,6 +2832,51 @@ typedef struct VkAllocationCallbacks { PFN_vkInternalFreeNotification pfnInternalFree; } VkAllocationCallbacks; +typedef struct VkApplicationInfo { + VkStructureType sType; + const void* pNext; + const char* pApplicationName; + uint32_t applicationVersion; + const char* pEngineName; + uint32_t engineVersion; + uint32_t apiVersion; +} VkApplicationInfo; + +typedef struct VkFormatProperties { + VkFormatFeatureFlags linearTilingFeatures; + VkFormatFeatureFlags optimalTilingFeatures; + VkFormatFeatureFlags bufferFeatures; +} VkFormatProperties; + +typedef struct VkImageFormatProperties { + VkExtent3D maxExtent; + uint32_t maxMipLevels; + uint32_t maxArrayLayers; + VkSampleCountFlags sampleCounts; + VkDeviceSize maxResourceSize; +} VkImageFormatProperties; + +typedef struct VkInstanceCreateInfo { + VkStructureType sType; + const void* pNext; + VkInstanceCreateFlags flags; + const VkApplicationInfo* pApplicationInfo; + uint32_t enabledLayerCount; + const char* const* ppEnabledLayerNames; + uint32_t enabledExtensionCount; + const char* const* ppEnabledExtensionNames; +} VkInstanceCreateInfo; + +typedef struct VkMemoryHeap { + VkDeviceSize size; + VkMemoryHeapFlags flags; +} VkMemoryHeap; + +typedef struct VkMemoryType { + VkMemoryPropertyFlags propertyFlags; + uint32_t heapIndex; +} VkMemoryType; + typedef struct VkPhysicalDeviceFeatures { VkBool32 robustBufferAccess; VkBool32 fullDrawIndexUint32; @@ -1848,26 +2935,6 @@ typedef struct VkPhysicalDeviceFeatures { VkBool32 inheritedQueries; } VkPhysicalDeviceFeatures; -typedef struct VkFormatProperties { - VkFormatFeatureFlags linearTilingFeatures; - VkFormatFeatureFlags optimalTilingFeatures; - VkFormatFeatureFlags bufferFeatures; -} VkFormatProperties; - -typedef struct VkExtent3D { - uint32_t width; - uint32_t height; - uint32_t depth; -} VkExtent3D; - -typedef struct VkImageFormatProperties { - VkExtent3D maxExtent; - uint32_t maxMipLevels; - uint32_t maxArrayLayers; - VkSampleCountFlags sampleCounts; - VkDeviceSize maxResourceSize; -} VkImageFormatProperties; - typedef struct VkPhysicalDeviceLimits { uint32_t maxImageDimension1D; uint32_t maxImageDimension2D; @@ -1977,6 +3044,13 @@ typedef struct VkPhysicalDeviceLimits { VkDeviceSize nonCoherentAtomSize; } VkPhysicalDeviceLimits; +typedef struct VkPhysicalDeviceMemoryProperties { + uint32_t memoryTypeCount; + VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; + uint32_t memoryHeapCount; + VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; +} VkPhysicalDeviceMemoryProperties; + typedef struct VkPhysicalDeviceSparseProperties { VkBool32 residencyStandard2DBlockShape; VkBool32 residencyStandard2DMultisampleBlockShape; @@ -2004,24 +3078,6 @@ typedef struct VkQueueFamilyProperties { VkExtent3D minImageTransferGranularity; } VkQueueFamilyProperties; -typedef struct VkMemoryType { - VkMemoryPropertyFlags propertyFlags; - uint32_t heapIndex; -} VkMemoryType; - -typedef struct VkMemoryHeap { - VkDeviceSize size; - VkMemoryHeapFlags flags; -} VkMemoryHeap; - -typedef struct VkPhysicalDeviceMemoryProperties { - uint32_t memoryTypeCount; - VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; - uint32_t memoryHeapCount; - VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; -} VkPhysicalDeviceMemoryProperties; - -typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); typedef struct VkDeviceQueueCreateInfo { VkStructureType sType; const void* pNext; @@ -2068,13 +3124,6 @@ typedef struct VkSubmitInfo { const VkSemaphore* pSignalSemaphores; } VkSubmitInfo; -typedef struct VkMemoryAllocateInfo { - VkStructureType sType; - const void* pNext; - VkDeviceSize allocationSize; - uint32_t memoryTypeIndex; -} VkMemoryAllocateInfo; - typedef struct VkMappedMemoryRange { VkStructureType sType; const void* pNext; @@ -2083,26 +3132,19 @@ typedef struct VkMappedMemoryRange { VkDeviceSize size; } VkMappedMemoryRange; +typedef struct VkMemoryAllocateInfo { + VkStructureType sType; + const void* pNext; + VkDeviceSize allocationSize; + uint32_t memoryTypeIndex; +} VkMemoryAllocateInfo; + typedef struct VkMemoryRequirements { VkDeviceSize size; VkDeviceSize alignment; uint32_t memoryTypeBits; } VkMemoryRequirements; -typedef struct VkSparseImageFormatProperties { - VkImageAspectFlags aspectMask; - VkExtent3D imageGranularity; - VkSparseImageFormatFlags flags; -} VkSparseImageFormatProperties; - -typedef struct VkSparseImageMemoryRequirements { - VkSparseImageFormatProperties formatProperties; - uint32_t imageMipTailFirstLod; - VkDeviceSize imageMipTailSize; - VkDeviceSize imageMipTailOffset; - VkDeviceSize imageMipTailStride; -} VkSparseImageMemoryRequirements; - typedef struct VkSparseMemoryBind { VkDeviceSize resourceOffset; VkDeviceSize size; @@ -2129,12 +3171,6 @@ typedef struct VkImageSubresource { uint32_t arrayLayer; } VkImageSubresource; -typedef struct VkOffset3D { - int32_t x; - int32_t y; - int32_t z; -} VkOffset3D; - typedef struct VkSparseImageMemoryBind { VkImageSubresource subresource; VkOffset3D offset; @@ -2165,13 +3201,27 @@ typedef struct VkBindSparseInfo { const VkSemaphore* pSignalSemaphores; } VkBindSparseInfo; -typedef struct VkFenceCreateInfo { - VkStructureType sType; - const void* pNext; - VkFenceCreateFlags flags; -} VkFenceCreateInfo; +typedef struct VkSparseImageFormatProperties { + VkImageAspectFlags aspectMask; + VkExtent3D imageGranularity; + VkSparseImageFormatFlags flags; +} VkSparseImageFormatProperties; -typedef struct VkSemaphoreCreateInfo { +typedef struct VkSparseImageMemoryRequirements { + VkSparseImageFormatProperties formatProperties; + uint32_t imageMipTailFirstLod; + VkDeviceSize imageMipTailSize; + VkDeviceSize imageMipTailOffset; + VkDeviceSize imageMipTailStride; +} VkSparseImageMemoryRequirements; + +typedef struct VkFenceCreateInfo { + VkStructureType sType; + const void* pNext; + VkFenceCreateFlags flags; +} VkFenceCreateInfo; + +typedef struct VkSemaphoreCreateInfo { VkStructureType sType; const void* pNext; VkSemaphoreCreateFlags flags; @@ -2246,14 +3296,6 @@ typedef struct VkComponentMapping { VkComponentSwizzle a; } VkComponentMapping; -typedef struct VkImageSubresourceRange { - VkImageAspectFlags aspectMask; - uint32_t baseMipLevel; - uint32_t levelCount; - uint32_t baseArrayLayer; - uint32_t layerCount; -} VkImageSubresourceRange; - typedef struct VkImageViewCreateInfo { VkStructureType sType; const void* pNext; @@ -2304,6 +3346,16 @@ typedef struct VkPipelineShaderStageCreateInfo { const VkSpecializationInfo* pSpecializationInfo; } VkPipelineShaderStageCreateInfo; +typedef struct VkComputePipelineCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + VkPipelineShaderStageCreateInfo stage; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkComputePipelineCreateInfo; + typedef struct VkVertexInputBindingDescription { uint32_t binding; uint32_t stride; @@ -2351,21 +3403,6 @@ typedef struct VkViewport { float maxDepth; } VkViewport; -typedef struct VkOffset2D { - int32_t x; - int32_t y; -} VkOffset2D; - -typedef struct VkExtent2D { - uint32_t width; - uint32_t height; -} VkExtent2D; - -typedef struct VkRect2D { - VkOffset2D offset; - VkExtent2D extent; -} VkRect2D; - typedef struct VkPipelineViewportStateCreateInfo { VkStructureType sType; const void* pNext; @@ -2481,16 +3518,6 @@ typedef struct VkGraphicsPipelineCreateInfo { int32_t basePipelineIndex; } VkGraphicsPipelineCreateInfo; -typedef struct VkComputePipelineCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineCreateFlags flags; - VkPipelineShaderStageCreateInfo stage; - VkPipelineLayout layout; - VkPipeline basePipelineHandle; - int32_t basePipelineIndex; -} VkComputePipelineCreateInfo; - typedef struct VkPushConstantRange { VkShaderStageFlags stageFlags; uint32_t offset; @@ -2528,21 +3555,29 @@ typedef struct VkSamplerCreateInfo { VkBool32 unnormalizedCoordinates; } VkSamplerCreateInfo; -typedef struct VkDescriptorSetLayoutBinding { - uint32_t binding; - VkDescriptorType descriptorType; - uint32_t descriptorCount; - VkShaderStageFlags stageFlags; - const VkSampler* pImmutableSamplers; -} VkDescriptorSetLayoutBinding; +typedef struct VkCopyDescriptorSet { + VkStructureType sType; + const void* pNext; + VkDescriptorSet srcSet; + uint32_t srcBinding; + uint32_t srcArrayElement; + VkDescriptorSet dstSet; + uint32_t dstBinding; + uint32_t dstArrayElement; + uint32_t descriptorCount; +} VkCopyDescriptorSet; -typedef struct VkDescriptorSetLayoutCreateInfo { - VkStructureType sType; - const void* pNext; - VkDescriptorSetLayoutCreateFlags flags; - uint32_t bindingCount; - const VkDescriptorSetLayoutBinding* pBindings; -} VkDescriptorSetLayoutCreateInfo; +typedef struct VkDescriptorBufferInfo { + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize range; +} VkDescriptorBufferInfo; + +typedef struct VkDescriptorImageInfo { + VkSampler sampler; + VkImageView imageView; + VkImageLayout imageLayout; +} VkDescriptorImageInfo; typedef struct VkDescriptorPoolSize { VkDescriptorType type; @@ -2566,17 +3601,21 @@ typedef struct VkDescriptorSetAllocateInfo { const VkDescriptorSetLayout* pSetLayouts; } VkDescriptorSetAllocateInfo; -typedef struct VkDescriptorImageInfo { - VkSampler sampler; - VkImageView imageView; - VkImageLayout imageLayout; -} VkDescriptorImageInfo; +typedef struct VkDescriptorSetLayoutBinding { + uint32_t binding; + VkDescriptorType descriptorType; + uint32_t descriptorCount; + VkShaderStageFlags stageFlags; + const VkSampler* pImmutableSamplers; +} VkDescriptorSetLayoutBinding; -typedef struct VkDescriptorBufferInfo { - VkBuffer buffer; - VkDeviceSize offset; - VkDeviceSize range; -} VkDescriptorBufferInfo; +typedef struct VkDescriptorSetLayoutCreateInfo { + VkStructureType sType; + const void* pNext; + VkDescriptorSetLayoutCreateFlags flags; + uint32_t bindingCount; + const VkDescriptorSetLayoutBinding* pBindings; +} VkDescriptorSetLayoutCreateInfo; typedef struct VkWriteDescriptorSet { VkStructureType sType; @@ -2591,30 +3630,6 @@ typedef struct VkWriteDescriptorSet { const VkBufferView* pTexelBufferView; } VkWriteDescriptorSet; -typedef struct VkCopyDescriptorSet { - VkStructureType sType; - const void* pNext; - VkDescriptorSet srcSet; - uint32_t srcBinding; - uint32_t srcArrayElement; - VkDescriptorSet dstSet; - uint32_t dstBinding; - uint32_t dstArrayElement; - uint32_t descriptorCount; -} VkCopyDescriptorSet; - -typedef struct VkFramebufferCreateInfo { - VkStructureType sType; - const void* pNext; - VkFramebufferCreateFlags flags; - VkRenderPass renderPass; - uint32_t attachmentCount; - const VkImageView* pAttachments; - uint32_t width; - uint32_t height; - uint32_t layers; -} VkFramebufferCreateInfo; - typedef struct VkAttachmentDescription { VkAttachmentDescriptionFlags flags; VkFormat format; @@ -2632,6 +3647,18 @@ typedef struct VkAttachmentReference { VkImageLayout layout; } VkAttachmentReference; +typedef struct VkFramebufferCreateInfo { + VkStructureType sType; + const void* pNext; + VkFramebufferCreateFlags flags; + VkRenderPass renderPass; + uint32_t attachmentCount; + const VkImageView* pAttachments; + uint32_t width; + uint32_t height; + uint32_t layers; +} VkFramebufferCreateInfo; + typedef struct VkSubpassDescription { VkSubpassDescriptionFlags flags; VkPipelineBindPoint pipelineBindPoint; @@ -2713,21 +3740,6 @@ typedef struct VkImageSubresourceLayers { uint32_t layerCount; } VkImageSubresourceLayers; -typedef struct VkImageCopy { - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageCopy; - -typedef struct VkImageBlit { - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffsets[2]; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffsets[2]; -} VkImageBlit; - typedef struct VkBufferImageCopy { VkDeviceSize bufferOffset; uint32_t bufferRowLength; @@ -2765,6 +3777,21 @@ typedef struct VkClearRect { uint32_t layerCount; } VkClearRect; +typedef struct VkImageBlit { + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit; + +typedef struct VkImageCopy { + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy; + typedef struct VkImageResolve { VkImageSubresourceLayers srcSubresource; VkOffset3D srcOffset; @@ -2773,38 +3800,6 @@ typedef struct VkImageResolve { VkExtent3D extent; } VkImageResolve; -typedef struct VkMemoryBarrier { - VkStructureType sType; - const void* pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; -} VkMemoryBarrier; - -typedef struct VkBufferMemoryBarrier { - VkStructureType sType; - const void* pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkBuffer buffer; - VkDeviceSize offset; - VkDeviceSize size; -} VkBufferMemoryBarrier; - -typedef struct VkImageMemoryBarrier { - VkStructureType sType; - const void* pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - VkImageLayout oldLayout; - VkImageLayout newLayout; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkImage image; - VkImageSubresourceRange subresourceRange; -} VkImageMemoryBarrier; - typedef struct VkRenderPassBeginInfo { VkStructureType sType; const void* pNext; @@ -2815,38 +3810,6 @@ typedef struct VkRenderPassBeginInfo { const VkClearValue* pClearValues; } VkRenderPassBeginInfo; -typedef struct VkDispatchIndirectCommand { - uint32_t x; - uint32_t y; - uint32_t z; -} VkDispatchIndirectCommand; - -typedef struct VkDrawIndexedIndirectCommand { - uint32_t indexCount; - uint32_t instanceCount; - uint32_t firstIndex; - int32_t vertexOffset; - uint32_t firstInstance; -} VkDrawIndexedIndirectCommand; - -typedef struct VkDrawIndirectCommand { - uint32_t vertexCount; - uint32_t instanceCount; - uint32_t firstVertex; - uint32_t firstInstance; -} VkDrawIndirectCommand; - -typedef struct VkBaseOutStructure { - VkStructureType sType; - struct VkBaseOutStructure* pNext; -} VkBaseOutStructure; - -typedef struct VkBaseInStructure { - VkStructureType sType; - const struct VkBaseInStructure* pNext; -} VkBaseInStructure; - - typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance); typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator); typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); @@ -3784,27 +4747,22 @@ VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands( const VkCommandBuffer* pCommandBuffers); #endif + #define VK_VERSION_1_1 1 // Vulkan 1.1 version number -#define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 - +#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) - -#define VK_MAX_DEVICE_GROUP_SIZE 32 -#define VK_LUID_SIZE 8 -#define VK_QUEUE_FAMILY_EXTERNAL (~0U-1) - +#define VK_MAX_DEVICE_GROUP_SIZE 32U +#define VK_LUID_SIZE 8U +#define VK_QUEUE_FAMILY_EXTERNAL (~1U) typedef enum VkPointClippingBehavior { VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, - VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, - VK_POINT_CLIPPING_BEHAVIOR_END_RANGE = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, - VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES + 1), VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF } VkPointClippingBehavior; @@ -3813,9 +4771,6 @@ typedef enum VkTessellationDomainOrigin { VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1, VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, - VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, - VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, - VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT + 1), VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF } VkTessellationDomainOrigin; @@ -3830,9 +4785,6 @@ typedef enum VkSamplerYcbcrModelConversion { VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709, VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY + 1), VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF } VkSamplerYcbcrModelConversion; @@ -3841,9 +4793,6 @@ typedef enum VkSamplerYcbcrRange { VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1, VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, - VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, - VK_SAMPLER_YCBCR_RANGE_END_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, - VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - VK_SAMPLER_YCBCR_RANGE_ITU_FULL + 1), VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF } VkSamplerYcbcrRange; @@ -3852,9 +4801,6 @@ typedef enum VkChromaLocation { VK_CHROMA_LOCATION_MIDPOINT = 1, VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN, VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT, - VK_CHROMA_LOCATION_BEGIN_RANGE = VK_CHROMA_LOCATION_COSITED_EVEN, - VK_CHROMA_LOCATION_END_RANGE = VK_CHROMA_LOCATION_MIDPOINT, - VK_CHROMA_LOCATION_RANGE_SIZE = (VK_CHROMA_LOCATION_MIDPOINT - VK_CHROMA_LOCATION_COSITED_EVEN + 1), VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF } VkChromaLocation; @@ -3862,13 +4808,9 @@ typedef enum VkDescriptorUpdateTemplateType { VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0, VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET + 1), VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDescriptorUpdateTemplateType; - typedef enum VkSubgroupFeatureFlagBits { VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, @@ -3898,7 +4840,11 @@ typedef VkFlags VkPeerMemoryFeatureFlags; typedef enum VkMemoryAllocateFlagBits { VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001, + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002, + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004, VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT, + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkMemoryAllocateFlagBits; typedef VkFlags VkMemoryAllocateFlags; @@ -3917,6 +4863,8 @@ typedef enum VkExternalMemoryHandleTypeFlagBits { VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400, VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, @@ -3981,6 +4929,8 @@ typedef enum VkExternalSemaphoreHandleTypeFlagBits { VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, @@ -3998,7 +4948,6 @@ typedef enum VkExternalSemaphoreFeatureFlagBits { VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkExternalSemaphoreFeatureFlagBits; typedef VkFlags VkExternalSemaphoreFeatureFlags; - typedef struct VkPhysicalDeviceSubgroupProperties { VkStructureType sType; void* pNext; @@ -4141,8 +5090,6 @@ typedef struct VkMemoryRequirements2 { VkMemoryRequirements memoryRequirements; } VkMemoryRequirements2; -typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; - typedef struct VkSparseImageMemoryRequirements2 { VkStructureType sType; void* pNext; @@ -4268,12 +5215,14 @@ typedef struct VkPhysicalDeviceMultiviewProperties { uint32_t maxMultiviewInstanceIndex; } VkPhysicalDeviceMultiviewProperties; -typedef struct VkPhysicalDeviceVariablePointerFeatures { +typedef struct VkPhysicalDeviceVariablePointersFeatures { VkStructureType sType; void* pNext; VkBool32 variablePointersStorageBuffer; VkBool32 variablePointers; -} VkPhysicalDeviceVariablePointerFeatures; +} VkPhysicalDeviceVariablePointersFeatures; + +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures; typedef struct VkPhysicalDeviceProtectedMemoryFeatures { VkStructureType sType; @@ -4355,7 +5304,7 @@ typedef struct VkDescriptorUpdateTemplateEntry { typedef struct VkDescriptorUpdateTemplateCreateInfo { VkStructureType sType; - void* pNext; + const void* pNext; VkDescriptorUpdateTemplateCreateFlags flags; uint32_t descriptorUpdateEntryCount; const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries; @@ -4479,12 +5428,13 @@ typedef struct VkDescriptorSetLayoutSupport { VkBool32 supported; } VkDescriptorSetLayoutSupport; -typedef struct VkPhysicalDeviceShaderDrawParameterFeatures { +typedef struct VkPhysicalDeviceShaderDrawParametersFeatures { VkStructureType sType; void* pNext; VkBool32 shaderDrawParameters; -} VkPhysicalDeviceShaderDrawParameterFeatures; +} VkPhysicalDeviceShaderDrawParametersFeatures; +typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures; typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion); typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); @@ -4662,4100 +5612,11317 @@ VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport* pSupport); #endif -#define VK_KHR_surface 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) -#define VK_KHR_SURFACE_SPEC_VERSION 25 -#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" +#define VK_VERSION_1_2 1 +// Vulkan 1.2 version number +#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0 + +#define VK_MAX_DRIVER_NAME_SIZE 256U +#define VK_MAX_DRIVER_INFO_SIZE 256U + +typedef enum VkDriverId { + VK_DRIVER_ID_AMD_PROPRIETARY = 1, + VK_DRIVER_ID_AMD_OPEN_SOURCE = 2, + VK_DRIVER_ID_MESA_RADV = 3, + VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4, + VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5, + VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6, + VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7, + VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8, + VK_DRIVER_ID_ARM_PROPRIETARY = 9, + VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10, + VK_DRIVER_ID_GGP_PROPRIETARY = 11, + VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12, + VK_DRIVER_ID_MESA_LLVMPIPE = 13, + VK_DRIVER_ID_MOLTENVK = 14, + VK_DRIVER_ID_COREAVI_PROPRIETARY = 15, + VK_DRIVER_ID_JUICE_PROPRIETARY = 16, + VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17, + VK_DRIVER_ID_MESA_TURNIP = 18, + VK_DRIVER_ID_MESA_V3DV = 19, + 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 = VK_DRIVER_ID_AMD_PROPRIETARY, + VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE, + VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV, + VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY, + VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, + VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA, + VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY, + VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY, + VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY, + VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER, + VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY, + VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY, + VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF +} VkDriverId; + +typedef enum VkShaderFloatControlsIndependence { + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF +} VkShaderFloatControlsIndependence; + +typedef enum VkSamplerReductionMode { + VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0, + VK_SAMPLER_REDUCTION_MODE_MIN = 1, + VK_SAMPLER_REDUCTION_MODE_MAX = 2, + VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, + VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN, + VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX, + VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF +} VkSamplerReductionMode; + +typedef enum VkSemaphoreType { + VK_SEMAPHORE_TYPE_BINARY = 0, + VK_SEMAPHORE_TYPE_TIMELINE = 1, + VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY, + VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE, + VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkSemaphoreType; + +typedef enum VkResolveModeFlagBits { + VK_RESOLVE_MODE_NONE = 0, + VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001, + VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002, + VK_RESOLVE_MODE_MIN_BIT = 0x00000004, + VK_RESOLVE_MODE_MAX_BIT = 0x00000008, + VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE, + VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, + VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT, + VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT, + VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT, + VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkResolveModeFlagBits; +typedef VkFlags VkResolveModeFlags; + +typedef enum VkDescriptorBindingFlagBits { + VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001, + VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002, + VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004, + VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008, + VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, + VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, + VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT, + VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, + VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkDescriptorBindingFlagBits; +typedef VkFlags VkDescriptorBindingFlags; + +typedef enum VkSemaphoreWaitFlagBits { + VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001, + VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT, + VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSemaphoreWaitFlagBits; +typedef VkFlags VkSemaphoreWaitFlags; +typedef struct VkPhysicalDeviceVulkan11Features { + VkStructureType sType; + void* pNext; + VkBool32 storageBuffer16BitAccess; + VkBool32 uniformAndStorageBuffer16BitAccess; + VkBool32 storagePushConstant16; + VkBool32 storageInputOutput16; + VkBool32 multiview; + VkBool32 multiviewGeometryShader; + VkBool32 multiviewTessellationShader; + VkBool32 variablePointersStorageBuffer; + VkBool32 variablePointers; + VkBool32 protectedMemory; + VkBool32 samplerYcbcrConversion; + VkBool32 shaderDrawParameters; +} VkPhysicalDeviceVulkan11Features; +typedef struct VkPhysicalDeviceVulkan11Properties { + VkStructureType sType; + void* pNext; + uint8_t deviceUUID[VK_UUID_SIZE]; + uint8_t driverUUID[VK_UUID_SIZE]; + uint8_t deviceLUID[VK_LUID_SIZE]; + uint32_t deviceNodeMask; + VkBool32 deviceLUIDValid; + uint32_t subgroupSize; + VkShaderStageFlags subgroupSupportedStages; + VkSubgroupFeatureFlags subgroupSupportedOperations; + VkBool32 subgroupQuadOperationsInAllStages; + VkPointClippingBehavior pointClippingBehavior; + uint32_t maxMultiviewViewCount; + uint32_t maxMultiviewInstanceIndex; + VkBool32 protectedNoFault; + uint32_t maxPerSetDescriptors; + VkDeviceSize maxMemoryAllocationSize; +} VkPhysicalDeviceVulkan11Properties; + +typedef struct VkPhysicalDeviceVulkan12Features { + VkStructureType sType; + void* pNext; + VkBool32 samplerMirrorClampToEdge; + VkBool32 drawIndirectCount; + VkBool32 storageBuffer8BitAccess; + VkBool32 uniformAndStorageBuffer8BitAccess; + VkBool32 storagePushConstant8; + VkBool32 shaderBufferInt64Atomics; + VkBool32 shaderSharedInt64Atomics; + VkBool32 shaderFloat16; + VkBool32 shaderInt8; + VkBool32 descriptorIndexing; + VkBool32 shaderInputAttachmentArrayDynamicIndexing; + VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; + VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; + VkBool32 shaderUniformBufferArrayNonUniformIndexing; + VkBool32 shaderSampledImageArrayNonUniformIndexing; + VkBool32 shaderStorageBufferArrayNonUniformIndexing; + VkBool32 shaderStorageImageArrayNonUniformIndexing; + VkBool32 shaderInputAttachmentArrayNonUniformIndexing; + VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; + VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; + VkBool32 descriptorBindingUniformBufferUpdateAfterBind; + VkBool32 descriptorBindingSampledImageUpdateAfterBind; + VkBool32 descriptorBindingStorageImageUpdateAfterBind; + VkBool32 descriptorBindingStorageBufferUpdateAfterBind; + VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingUpdateUnusedWhilePending; + VkBool32 descriptorBindingPartiallyBound; + VkBool32 descriptorBindingVariableDescriptorCount; + VkBool32 runtimeDescriptorArray; + VkBool32 samplerFilterMinmax; + VkBool32 scalarBlockLayout; + VkBool32 imagelessFramebuffer; + VkBool32 uniformBufferStandardLayout; + VkBool32 shaderSubgroupExtendedTypes; + VkBool32 separateDepthStencilLayouts; + VkBool32 hostQueryReset; + VkBool32 timelineSemaphore; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; + VkBool32 vulkanMemoryModel; + VkBool32 vulkanMemoryModelDeviceScope; + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; + VkBool32 shaderOutputViewportIndex; + VkBool32 shaderOutputLayer; + VkBool32 subgroupBroadcastDynamicId; +} VkPhysicalDeviceVulkan12Features; -typedef enum VkColorSpaceKHR { - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, - VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, - VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, - VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003, - VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, - VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, - VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, - VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, - VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, - VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, - VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, - VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, - VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, - VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, - VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, - VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, - VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, - VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, - VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1), - VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkColorSpaceKHR; +typedef struct VkConformanceVersion { + uint8_t major; + uint8_t minor; + uint8_t subminor; + uint8_t patch; +} VkConformanceVersion; -typedef enum VkPresentModeKHR { - VK_PRESENT_MODE_IMMEDIATE_KHR = 0, - VK_PRESENT_MODE_MAILBOX_KHR = 1, - VK_PRESENT_MODE_FIFO_KHR = 2, - VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, - VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, - VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, - VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR, - VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR, - VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1), - VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkPresentModeKHR; +typedef struct VkPhysicalDeviceVulkan12Properties { + VkStructureType sType; + void* pNext; + VkDriverId driverID; + char driverName[VK_MAX_DRIVER_NAME_SIZE]; + char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; + VkConformanceVersion conformanceVersion; + VkShaderFloatControlsIndependence denormBehaviorIndependence; + VkShaderFloatControlsIndependence roundingModeIndependence; + VkBool32 shaderSignedZeroInfNanPreserveFloat16; + VkBool32 shaderSignedZeroInfNanPreserveFloat32; + VkBool32 shaderSignedZeroInfNanPreserveFloat64; + VkBool32 shaderDenormPreserveFloat16; + VkBool32 shaderDenormPreserveFloat32; + VkBool32 shaderDenormPreserveFloat64; + VkBool32 shaderDenormFlushToZeroFloat16; + VkBool32 shaderDenormFlushToZeroFloat32; + VkBool32 shaderDenormFlushToZeroFloat64; + VkBool32 shaderRoundingModeRTEFloat16; + VkBool32 shaderRoundingModeRTEFloat32; + VkBool32 shaderRoundingModeRTEFloat64; + VkBool32 shaderRoundingModeRTZFloat16; + VkBool32 shaderRoundingModeRTZFloat32; + VkBool32 shaderRoundingModeRTZFloat64; + uint32_t maxUpdateAfterBindDescriptorsInAllPools; + VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; + VkBool32 shaderSampledImageArrayNonUniformIndexingNative; + VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; + VkBool32 shaderStorageImageArrayNonUniformIndexingNative; + VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; + VkBool32 robustBufferAccessUpdateAfterBind; + VkBool32 quadDivergentImplicitLod; + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; + uint32_t maxPerStageUpdateAfterBindResources; + uint32_t maxDescriptorSetUpdateAfterBindSamplers; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; + uint32_t maxDescriptorSetUpdateAfterBindSampledImages; + uint32_t maxDescriptorSetUpdateAfterBindStorageImages; + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; + VkResolveModeFlags supportedDepthResolveModes; + VkResolveModeFlags supportedStencilResolveModes; + VkBool32 independentResolveNone; + VkBool32 independentResolve; + VkBool32 filterMinmaxSingleComponentFormats; + VkBool32 filterMinmaxImageComponentMapping; + uint64_t maxTimelineSemaphoreValueDifference; + VkSampleCountFlags framebufferIntegerColorSampleCounts; +} VkPhysicalDeviceVulkan12Properties; + +typedef struct VkImageFormatListCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t viewFormatCount; + const VkFormat* pViewFormats; +} VkImageFormatListCreateInfo; +typedef struct VkAttachmentDescription2 { + VkStructureType sType; + const void* pNext; + VkAttachmentDescriptionFlags flags; + VkFormat format; + VkSampleCountFlagBits samples; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkAttachmentLoadOp stencilLoadOp; + VkAttachmentStoreOp stencilStoreOp; + VkImageLayout initialLayout; + VkImageLayout finalLayout; +} VkAttachmentDescription2; -typedef enum VkSurfaceTransformFlagBitsKHR { - VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, - VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, - VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, - VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, - VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, - VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkSurfaceTransformFlagBitsKHR; -typedef VkFlags VkSurfaceTransformFlagsKHR; +typedef struct VkAttachmentReference2 { + VkStructureType sType; + const void* pNext; + uint32_t attachment; + VkImageLayout layout; + VkImageAspectFlags aspectMask; +} VkAttachmentReference2; -typedef enum VkCompositeAlphaFlagBitsKHR { - VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, - VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, - VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, - VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, - VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkCompositeAlphaFlagBitsKHR; -typedef VkFlags VkCompositeAlphaFlagsKHR; +typedef struct VkSubpassDescription2 { + VkStructureType sType; + const void* pNext; + VkSubpassDescriptionFlags flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t viewMask; + uint32_t inputAttachmentCount; + const VkAttachmentReference2* pInputAttachments; + uint32_t colorAttachmentCount; + const VkAttachmentReference2* pColorAttachments; + const VkAttachmentReference2* pResolveAttachments; + const VkAttachmentReference2* pDepthStencilAttachment; + uint32_t preserveAttachmentCount; + const uint32_t* pPreserveAttachments; +} VkSubpassDescription2; + +typedef struct VkSubpassDependency2 { + VkStructureType sType; + const void* pNext; + uint32_t srcSubpass; + uint32_t dstSubpass; + VkPipelineStageFlags srcStageMask; + VkPipelineStageFlags dstStageMask; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkDependencyFlags dependencyFlags; + int32_t viewOffset; +} VkSubpassDependency2; -typedef struct VkSurfaceCapabilitiesKHR { - uint32_t minImageCount; - uint32_t maxImageCount; - VkExtent2D currentExtent; - VkExtent2D minImageExtent; - VkExtent2D maxImageExtent; - uint32_t maxImageArrayLayers; - VkSurfaceTransformFlagsKHR supportedTransforms; - VkSurfaceTransformFlagBitsKHR currentTransform; - VkCompositeAlphaFlagsKHR supportedCompositeAlpha; - VkImageUsageFlags supportedUsageFlags; -} VkSurfaceCapabilitiesKHR; +typedef struct VkRenderPassCreateInfo2 { + VkStructureType sType; + const void* pNext; + VkRenderPassCreateFlags flags; + uint32_t attachmentCount; + const VkAttachmentDescription2* pAttachments; + uint32_t subpassCount; + const VkSubpassDescription2* pSubpasses; + uint32_t dependencyCount; + const VkSubpassDependency2* pDependencies; + uint32_t correlatedViewMaskCount; + const uint32_t* pCorrelatedViewMasks; +} VkRenderPassCreateInfo2; + +typedef struct VkSubpassBeginInfo { + VkStructureType sType; + const void* pNext; + VkSubpassContents contents; +} VkSubpassBeginInfo; -typedef struct VkSurfaceFormatKHR { - VkFormat format; - VkColorSpaceKHR colorSpace; -} VkSurfaceFormatKHR; +typedef struct VkSubpassEndInfo { + VkStructureType sType; + const void* pNext; +} VkSubpassEndInfo; +typedef struct VkPhysicalDevice8BitStorageFeatures { + VkStructureType sType; + void* pNext; + VkBool32 storageBuffer8BitAccess; + VkBool32 uniformAndStorageBuffer8BitAccess; + VkBool32 storagePushConstant8; +} VkPhysicalDevice8BitStorageFeatures; -typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); +typedef struct VkPhysicalDeviceDriverProperties { + VkStructureType sType; + void* pNext; + VkDriverId driverID; + char driverName[VK_MAX_DRIVER_NAME_SIZE]; + char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; + VkConformanceVersion conformanceVersion; +} VkPhysicalDeviceDriverProperties; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( - VkInstance instance, - VkSurfaceKHR surface, - const VkAllocationCallbacks* pAllocator); +typedef struct VkPhysicalDeviceShaderAtomicInt64Features { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferInt64Atomics; + VkBool32 shaderSharedInt64Atomics; +} VkPhysicalDeviceShaderAtomicInt64Features; -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR( - VkPhysicalDevice physicalDevice, - uint32_t queueFamilyIndex, - VkSurfaceKHR surface, - VkBool32* pSupported); +typedef struct VkPhysicalDeviceShaderFloat16Int8Features { + VkStructureType sType; + void* pNext; + VkBool32 shaderFloat16; + VkBool32 shaderInt8; +} VkPhysicalDeviceShaderFloat16Int8Features; -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); +typedef struct VkPhysicalDeviceFloatControlsProperties { + VkStructureType sType; + void* pNext; + VkShaderFloatControlsIndependence denormBehaviorIndependence; + VkShaderFloatControlsIndependence roundingModeIndependence; + VkBool32 shaderSignedZeroInfNanPreserveFloat16; + VkBool32 shaderSignedZeroInfNanPreserveFloat32; + VkBool32 shaderSignedZeroInfNanPreserveFloat64; + VkBool32 shaderDenormPreserveFloat16; + VkBool32 shaderDenormPreserveFloat32; + VkBool32 shaderDenormPreserveFloat64; + VkBool32 shaderDenormFlushToZeroFloat16; + VkBool32 shaderDenormFlushToZeroFloat32; + VkBool32 shaderDenormFlushToZeroFloat64; + VkBool32 shaderRoundingModeRTEFloat16; + VkBool32 shaderRoundingModeRTEFloat32; + VkBool32 shaderRoundingModeRTEFloat64; + VkBool32 shaderRoundingModeRTZFloat16; + VkBool32 shaderRoundingModeRTZFloat32; + VkBool32 shaderRoundingModeRTZFloat64; +} VkPhysicalDeviceFloatControlsProperties; + +typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t bindingCount; + const VkDescriptorBindingFlags* pBindingFlags; +} VkDescriptorSetLayoutBindingFlagsCreateInfo; -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - uint32_t* pSurfaceFormatCount, - VkSurfaceFormatKHR* pSurfaceFormats); +typedef struct VkPhysicalDeviceDescriptorIndexingFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderInputAttachmentArrayDynamicIndexing; + VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; + VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; + VkBool32 shaderUniformBufferArrayNonUniformIndexing; + VkBool32 shaderSampledImageArrayNonUniformIndexing; + VkBool32 shaderStorageBufferArrayNonUniformIndexing; + VkBool32 shaderStorageImageArrayNonUniformIndexing; + VkBool32 shaderInputAttachmentArrayNonUniformIndexing; + VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; + VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; + VkBool32 descriptorBindingUniformBufferUpdateAfterBind; + VkBool32 descriptorBindingSampledImageUpdateAfterBind; + VkBool32 descriptorBindingStorageImageUpdateAfterBind; + VkBool32 descriptorBindingStorageBufferUpdateAfterBind; + VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingUpdateUnusedWhilePending; + VkBool32 descriptorBindingPartiallyBound; + VkBool32 descriptorBindingVariableDescriptorCount; + VkBool32 runtimeDescriptorArray; +} VkPhysicalDeviceDescriptorIndexingFeatures; -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - uint32_t* pPresentModeCount, - VkPresentModeKHR* pPresentModes); -#endif +typedef struct VkPhysicalDeviceDescriptorIndexingProperties { + VkStructureType sType; + void* pNext; + uint32_t maxUpdateAfterBindDescriptorsInAllPools; + VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; + VkBool32 shaderSampledImageArrayNonUniformIndexingNative; + VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; + VkBool32 shaderStorageImageArrayNonUniformIndexingNative; + VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; + VkBool32 robustBufferAccessUpdateAfterBind; + VkBool32 quadDivergentImplicitLod; + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; + uint32_t maxPerStageUpdateAfterBindResources; + uint32_t maxDescriptorSetUpdateAfterBindSamplers; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; + uint32_t maxDescriptorSetUpdateAfterBindSampledImages; + uint32_t maxDescriptorSetUpdateAfterBindStorageImages; + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; +} VkPhysicalDeviceDescriptorIndexingProperties; -#define VK_KHR_swapchain 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) +typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo { + VkStructureType sType; + const void* pNext; + uint32_t descriptorSetCount; + const uint32_t* pDescriptorCounts; +} VkDescriptorSetVariableDescriptorCountAllocateInfo; -#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 -#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" +typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport { + VkStructureType sType; + void* pNext; + uint32_t maxVariableDescriptorCount; +} VkDescriptorSetVariableDescriptorCountLayoutSupport; +typedef struct VkSubpassDescriptionDepthStencilResolve { + VkStructureType sType; + const void* pNext; + VkResolveModeFlagBits depthResolveMode; + VkResolveModeFlagBits stencilResolveMode; + const VkAttachmentReference2* pDepthStencilResolveAttachment; +} VkSubpassDescriptionDepthStencilResolve; -typedef enum VkSwapchainCreateFlagBitsKHR { - VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, - VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, - VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkSwapchainCreateFlagBitsKHR; -typedef VkFlags VkSwapchainCreateFlagsKHR; +typedef struct VkPhysicalDeviceDepthStencilResolveProperties { + VkStructureType sType; + void* pNext; + VkResolveModeFlags supportedDepthResolveModes; + VkResolveModeFlags supportedStencilResolveModes; + VkBool32 independentResolveNone; + VkBool32 independentResolve; +} VkPhysicalDeviceDepthStencilResolveProperties; -typedef enum VkDeviceGroupPresentModeFlagBitsKHR { - VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, - VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, - VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, - VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, - VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkDeviceGroupPresentModeFlagBitsKHR; -typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; +typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures { + VkStructureType sType; + void* pNext; + VkBool32 scalarBlockLayout; +} VkPhysicalDeviceScalarBlockLayoutFeatures; -typedef struct VkSwapchainCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkSwapchainCreateFlagsKHR flags; - VkSurfaceKHR surface; - uint32_t minImageCount; - VkFormat imageFormat; - VkColorSpaceKHR imageColorSpace; - VkExtent2D imageExtent; - uint32_t imageArrayLayers; - VkImageUsageFlags imageUsage; - VkSharingMode imageSharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t* pQueueFamilyIndices; - VkSurfaceTransformFlagBitsKHR preTransform; - VkCompositeAlphaFlagBitsKHR compositeAlpha; - VkPresentModeKHR presentMode; - VkBool32 clipped; - VkSwapchainKHR oldSwapchain; -} VkSwapchainCreateInfoKHR; +typedef struct VkImageStencilUsageCreateInfo { + VkStructureType sType; + const void* pNext; + VkImageUsageFlags stencilUsage; +} VkImageStencilUsageCreateInfo; -typedef struct VkPresentInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t waitSemaphoreCount; - const VkSemaphore* pWaitSemaphores; - uint32_t swapchainCount; - const VkSwapchainKHR* pSwapchains; - const uint32_t* pImageIndices; - VkResult* pResults; -} VkPresentInfoKHR; +typedef struct VkSamplerReductionModeCreateInfo { + VkStructureType sType; + const void* pNext; + VkSamplerReductionMode reductionMode; +} VkSamplerReductionModeCreateInfo; -typedef struct VkImageSwapchainCreateInfoKHR { +typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties { + VkStructureType sType; + void* pNext; + VkBool32 filterMinmaxSingleComponentFormats; + VkBool32 filterMinmaxImageComponentMapping; +} VkPhysicalDeviceSamplerFilterMinmaxProperties; + +typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures { + VkStructureType sType; + void* pNext; + VkBool32 vulkanMemoryModel; + VkBool32 vulkanMemoryModelDeviceScope; + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; +} VkPhysicalDeviceVulkanMemoryModelFeatures; + +typedef struct VkPhysicalDeviceImagelessFramebufferFeatures { + VkStructureType sType; + void* pNext; + VkBool32 imagelessFramebuffer; +} VkPhysicalDeviceImagelessFramebufferFeatures; + +typedef struct VkFramebufferAttachmentImageInfo { + VkStructureType sType; + const void* pNext; + VkImageCreateFlags flags; + VkImageUsageFlags usage; + uint32_t width; + uint32_t height; + uint32_t layerCount; + uint32_t viewFormatCount; + const VkFormat* pViewFormats; +} VkFramebufferAttachmentImageInfo; + +typedef struct VkFramebufferAttachmentsCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t attachmentImageInfoCount; + const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos; +} VkFramebufferAttachmentsCreateInfo; + +typedef struct VkRenderPassAttachmentBeginInfo { + VkStructureType sType; + const void* pNext; + uint32_t attachmentCount; + const VkImageView* pAttachments; +} VkRenderPassAttachmentBeginInfo; + +typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures { + VkStructureType sType; + void* pNext; + VkBool32 uniformBufferStandardLayout; +} VkPhysicalDeviceUniformBufferStandardLayoutFeatures; + +typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupExtendedTypes; +} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures; + +typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures { + VkStructureType sType; + void* pNext; + VkBool32 separateDepthStencilLayouts; +} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures; + +typedef struct VkAttachmentReferenceStencilLayout { + VkStructureType sType; + void* pNext; + VkImageLayout stencilLayout; +} VkAttachmentReferenceStencilLayout; + +typedef struct VkAttachmentDescriptionStencilLayout { + VkStructureType sType; + void* pNext; + VkImageLayout stencilInitialLayout; + VkImageLayout stencilFinalLayout; +} VkAttachmentDescriptionStencilLayout; + +typedef struct VkPhysicalDeviceHostQueryResetFeatures { + VkStructureType sType; + void* pNext; + VkBool32 hostQueryReset; +} VkPhysicalDeviceHostQueryResetFeatures; + +typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures { + VkStructureType sType; + void* pNext; + VkBool32 timelineSemaphore; +} VkPhysicalDeviceTimelineSemaphoreFeatures; + +typedef struct VkPhysicalDeviceTimelineSemaphoreProperties { + VkStructureType sType; + void* pNext; + uint64_t maxTimelineSemaphoreValueDifference; +} VkPhysicalDeviceTimelineSemaphoreProperties; + +typedef struct VkSemaphoreTypeCreateInfo { VkStructureType sType; const void* pNext; - VkSwapchainKHR swapchain; -} VkImageSwapchainCreateInfoKHR; + VkSemaphoreType semaphoreType; + uint64_t initialValue; +} VkSemaphoreTypeCreateInfo; -typedef struct VkBindImageMemorySwapchainInfoKHR { +typedef struct VkTimelineSemaphoreSubmitInfo { VkStructureType sType; const void* pNext; - VkSwapchainKHR swapchain; - uint32_t imageIndex; -} VkBindImageMemorySwapchainInfoKHR; + uint32_t waitSemaphoreValueCount; + const uint64_t* pWaitSemaphoreValues; + uint32_t signalSemaphoreValueCount; + const uint64_t* pSignalSemaphoreValues; +} VkTimelineSemaphoreSubmitInfo; -typedef struct VkAcquireNextImageInfoKHR { +typedef struct VkSemaphoreWaitInfo { + VkStructureType sType; + const void* pNext; + VkSemaphoreWaitFlags flags; + uint32_t semaphoreCount; + const VkSemaphore* pSemaphores; + const uint64_t* pValues; +} VkSemaphoreWaitInfo; + +typedef struct VkSemaphoreSignalInfo { VkStructureType sType; const void* pNext; - VkSwapchainKHR swapchain; - uint64_t timeout; VkSemaphore semaphore; - VkFence fence; - uint32_t deviceMask; -} VkAcquireNextImageInfoKHR; + uint64_t value; +} VkSemaphoreSignalInfo; -typedef struct VkDeviceGroupPresentCapabilitiesKHR { - VkStructureType sType; - const void* pNext; - uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; - VkDeviceGroupPresentModeFlagsKHR modes; -} VkDeviceGroupPresentCapabilitiesKHR; +typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures { + VkStructureType sType; + void* pNext; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; +} VkPhysicalDeviceBufferDeviceAddressFeatures; -typedef struct VkDeviceGroupPresentInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t swapchainCount; - const uint32_t* pDeviceMasks; - VkDeviceGroupPresentModeFlagBitsKHR mode; -} VkDeviceGroupPresentInfoKHR; +typedef struct VkBufferDeviceAddressInfo { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; +} VkBufferDeviceAddressInfo; -typedef struct VkDeviceGroupSwapchainCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkDeviceGroupPresentModeFlagsKHR modes; -} VkDeviceGroupSwapchainCreateInfoKHR; +typedef struct VkBufferOpaqueCaptureAddressCreateInfo { + VkStructureType sType; + const void* pNext; + uint64_t opaqueCaptureAddress; +} VkBufferOpaqueCaptureAddressCreateInfo; +typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo { + VkStructureType sType; + const void* pNext; + uint64_t opaqueCaptureAddress; +} VkMemoryOpaqueCaptureAddressAllocateInfo; -typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); -typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); -typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex); -typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); -typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); -typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex); +typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; +} VkDeviceMemoryOpaqueCaptureAddressInfo; + +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo); +typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo); +typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue); +typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout); +typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo); +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); +typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); +typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR( +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2( VkDevice device, - const VkSwapchainCreateInfoKHR* pCreateInfo, + const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, - VkSwapchainKHR* pSwapchain); + VkRenderPass* pRenderPass); -VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR( - VkDevice device, - VkSwapchainKHR swapchain, - const VkAllocationCallbacks* pAllocator); +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2( + VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo* pRenderPassBegin, + const VkSubpassBeginInfo* pSubpassBeginInfo); -VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR( +VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2( + VkCommandBuffer commandBuffer, + const VkSubpassBeginInfo* pSubpassBeginInfo, + const VkSubpassEndInfo* pSubpassEndInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2( + VkCommandBuffer commandBuffer, + const VkSubpassEndInfo* pSubpassEndInfo); + +VKAPI_ATTR void VKAPI_CALL vkResetQueryPool( VkDevice device, - VkSwapchainKHR swapchain, - uint32_t* pSwapchainImageCount, - VkImage* pSwapchainImages); + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount); -VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR( +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue( VkDevice device, - VkSwapchainKHR swapchain, - uint64_t timeout, VkSemaphore semaphore, - VkFence fence, - uint32_t* pImageIndex); + uint64_t* pValue); -VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR( - VkQueue queue, - const VkPresentInfoKHR* pPresentInfo); +VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores( + VkDevice device, + const VkSemaphoreWaitInfo* pWaitInfo, + uint64_t timeout); -VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR( +VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore( VkDevice device, - VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); + const VkSemaphoreSignalInfo* pSignalInfo); -VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR( +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress( VkDevice device, - VkSurfaceKHR surface, - VkDeviceGroupPresentModeFlagsKHR* pModes); + const VkBufferDeviceAddressInfo* pInfo); -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - uint32_t* pRectCount, - VkRect2D* pRects); +VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); -VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( +VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, - const VkAcquireNextImageInfoKHR* pAcquireInfo, - uint32_t* pImageIndex); + const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); #endif -#define VK_KHR_display 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) -#define VK_KHR_DISPLAY_SPEC_VERSION 21 -#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" +#define VK_VERSION_1_3 1 +// Vulkan 1.3 version number +#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0 + +typedef uint64_t VkFlags64; +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot) + +typedef enum VkPipelineCreationFeedbackFlagBits { + VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001, + VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002, + VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004, + VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT, + VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT, + VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT, + VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCreationFeedbackFlagBits; +typedef VkFlags VkPipelineCreationFeedbackFlags; + +typedef enum VkToolPurposeFlagBits { + VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001, + VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002, + VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004, + VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008, + VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010, + VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020, + VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040, + VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT, + VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT, + VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT, + VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT, + VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT, + VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkToolPurposeFlagBits; +typedef VkFlags VkToolPurposeFlags; +typedef VkFlags VkPrivateDataSlotCreateFlags; +typedef VkFlags64 VkPipelineStageFlags2; + +// Flag bits for VkPipelineStageFlagBits2 +typedef VkFlags64 VkPipelineStageFlagBits2; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL; +#endif +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL; + +typedef VkFlags64 VkAccessFlags2; + +// Flag bits for VkAccessFlagBits2 +typedef VkFlags64 VkAccessFlagBits2; +static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL; +#endif +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL; + + +typedef enum VkSubmitFlagBits { + VK_SUBMIT_PROTECTED_BIT = 0x00000001, + VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT, + VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSubmitFlagBits; +typedef VkFlags VkSubmitFlags; + +typedef enum VkRenderingFlagBits { + VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001, + VK_RENDERING_SUSPENDING_BIT = 0x00000002, + VK_RENDERING_RESUMING_BIT = 0x00000004, + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008, + VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT, + VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT, + VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT, + VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkRenderingFlagBits; +typedef VkFlags VkRenderingFlags; +typedef VkFlags64 VkFormatFeatureFlags2; + +// Flag bits for VkFormatFeatureFlagBits2 +typedef VkFlags64 VkFormatFeatureFlagBits2; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL; +#endif +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL; + +typedef struct VkPhysicalDeviceVulkan13Features { + VkStructureType sType; + void* pNext; + VkBool32 robustImageAccess; + VkBool32 inlineUniformBlock; + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; + VkBool32 pipelineCreationCacheControl; + VkBool32 privateData; + VkBool32 shaderDemoteToHelperInvocation; + VkBool32 shaderTerminateInvocation; + VkBool32 subgroupSizeControl; + VkBool32 computeFullSubgroups; + VkBool32 synchronization2; + VkBool32 textureCompressionASTC_HDR; + VkBool32 shaderZeroInitializeWorkgroupMemory; + VkBool32 dynamicRendering; + VkBool32 shaderIntegerDotProduct; + VkBool32 maintenance4; +} VkPhysicalDeviceVulkan13Features; + +typedef struct VkPhysicalDeviceVulkan13Properties { + VkStructureType sType; + void* pNext; + uint32_t minSubgroupSize; + uint32_t maxSubgroupSize; + uint32_t maxComputeWorkgroupSubgroups; + VkShaderStageFlags requiredSubgroupSizeStages; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; + uint32_t maxInlineUniformTotalSize; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; + VkDeviceSize storageTexelBufferOffsetAlignmentBytes; + VkBool32 storageTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize maxBufferSize; +} VkPhysicalDeviceVulkan13Properties; + +typedef struct VkPipelineCreationFeedback { + VkPipelineCreationFeedbackFlags flags; + uint64_t duration; +} VkPipelineCreationFeedback; + +typedef struct VkPipelineCreationFeedbackCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineCreationFeedback* pPipelineCreationFeedback; + uint32_t pipelineStageCreationFeedbackCount; + VkPipelineCreationFeedback* pPipelineStageCreationFeedbacks; +} VkPipelineCreationFeedbackCreateInfo; +typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderTerminateInvocation; +} VkPhysicalDeviceShaderTerminateInvocationFeatures; -typedef enum VkDisplayPlaneAlphaFlagBitsKHR { - VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, - VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, - VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, - VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, - VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkDisplayPlaneAlphaFlagBitsKHR; -typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; -typedef VkFlags VkDisplayModeCreateFlagsKHR; -typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; +typedef struct VkPhysicalDeviceToolProperties { + VkStructureType sType; + void* pNext; + char name[VK_MAX_EXTENSION_NAME_SIZE]; + char version[VK_MAX_EXTENSION_NAME_SIZE]; + VkToolPurposeFlags purposes; + char description[VK_MAX_DESCRIPTION_SIZE]; + char layer[VK_MAX_EXTENSION_NAME_SIZE]; +} VkPhysicalDeviceToolProperties; + +typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderDemoteToHelperInvocation; +} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures; -typedef struct VkDisplayPropertiesKHR { - VkDisplayKHR display; - const char* displayName; - VkExtent2D physicalDimensions; - VkExtent2D physicalResolution; - VkSurfaceTransformFlagsKHR supportedTransforms; - VkBool32 planeReorderPossible; - VkBool32 persistentContent; -} VkDisplayPropertiesKHR; +typedef struct VkPhysicalDevicePrivateDataFeatures { + VkStructureType sType; + void* pNext; + VkBool32 privateData; +} VkPhysicalDevicePrivateDataFeatures; -typedef struct VkDisplayModeParametersKHR { - VkExtent2D visibleRegion; - uint32_t refreshRate; -} VkDisplayModeParametersKHR; +typedef struct VkDevicePrivateDataCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t privateDataSlotRequestCount; +} VkDevicePrivateDataCreateInfo; -typedef struct VkDisplayModePropertiesKHR { - VkDisplayModeKHR displayMode; - VkDisplayModeParametersKHR parameters; -} VkDisplayModePropertiesKHR; +typedef struct VkPrivateDataSlotCreateInfo { + VkStructureType sType; + const void* pNext; + VkPrivateDataSlotCreateFlags flags; +} VkPrivateDataSlotCreateInfo; -typedef struct VkDisplayModeCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkDisplayModeCreateFlagsKHR flags; - VkDisplayModeParametersKHR parameters; -} VkDisplayModeCreateInfoKHR; +typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures { + VkStructureType sType; + void* pNext; + VkBool32 pipelineCreationCacheControl; +} VkPhysicalDevicePipelineCreationCacheControlFeatures; -typedef struct VkDisplayPlaneCapabilitiesKHR { - VkDisplayPlaneAlphaFlagsKHR supportedAlpha; - VkOffset2D minSrcPosition; - VkOffset2D maxSrcPosition; - VkExtent2D minSrcExtent; - VkExtent2D maxSrcExtent; - VkOffset2D minDstPosition; - VkOffset2D maxDstPosition; - VkExtent2D minDstExtent; - VkExtent2D maxDstExtent; -} VkDisplayPlaneCapabilitiesKHR; +typedef struct VkMemoryBarrier2 { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; +} VkMemoryBarrier2; -typedef struct VkDisplayPlanePropertiesKHR { - VkDisplayKHR currentDisplay; - uint32_t currentStackIndex; -} VkDisplayPlanePropertiesKHR; +typedef struct VkBufferMemoryBarrier2 { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; +} VkBufferMemoryBarrier2; + +typedef struct VkImageMemoryBarrier2 { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; + VkImageLayout oldLayout; + VkImageLayout newLayout; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkImage image; + VkImageSubresourceRange subresourceRange; +} VkImageMemoryBarrier2; -typedef struct VkDisplaySurfaceCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkDisplaySurfaceCreateFlagsKHR flags; - VkDisplayModeKHR displayMode; - uint32_t planeIndex; - uint32_t planeStackIndex; - VkSurfaceTransformFlagBitsKHR transform; - float globalAlpha; - VkDisplayPlaneAlphaFlagBitsKHR alphaMode; - VkExtent2D imageExtent; -} VkDisplaySurfaceCreateInfoKHR; +typedef struct VkDependencyInfo { + VkStructureType sType; + const void* pNext; + VkDependencyFlags dependencyFlags; + uint32_t memoryBarrierCount; + const VkMemoryBarrier2* pMemoryBarriers; + uint32_t bufferMemoryBarrierCount; + const VkBufferMemoryBarrier2* pBufferMemoryBarriers; + uint32_t imageMemoryBarrierCount; + const VkImageMemoryBarrier2* pImageMemoryBarriers; +} VkDependencyInfo; + +typedef struct VkSemaphoreSubmitInfo { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + uint64_t value; + VkPipelineStageFlags2 stageMask; + uint32_t deviceIndex; +} VkSemaphoreSubmitInfo; +typedef struct VkCommandBufferSubmitInfo { + VkStructureType sType; + const void* pNext; + VkCommandBuffer commandBuffer; + uint32_t deviceMask; +} VkCommandBufferSubmitInfo; -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); -typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode); -typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities); -typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef struct VkSubmitInfo2 { + VkStructureType sType; + const void* pNext; + VkSubmitFlags flags; + uint32_t waitSemaphoreInfoCount; + const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos; + uint32_t commandBufferInfoCount; + const VkCommandBufferSubmitInfo* pCommandBufferInfos; + uint32_t signalSemaphoreInfoCount; + const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos; +} VkSubmitInfo2; + +typedef struct VkPhysicalDeviceSynchronization2Features { + VkStructureType sType; + void* pNext; + VkBool32 synchronization2; +} VkPhysicalDeviceSynchronization2Features; + +typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderZeroInitializeWorkgroupMemory; +} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures; + +typedef struct VkPhysicalDeviceImageRobustnessFeatures { + VkStructureType sType; + void* pNext; + VkBool32 robustImageAccess; +} VkPhysicalDeviceImageRobustnessFeatures; + +typedef struct VkBufferCopy2 { + VkStructureType sType; + const void* pNext; + VkDeviceSize srcOffset; + VkDeviceSize dstOffset; + VkDeviceSize size; +} VkBufferCopy2; + +typedef struct VkCopyBufferInfo2 { + VkStructureType sType; + const void* pNext; + VkBuffer srcBuffer; + VkBuffer dstBuffer; + uint32_t regionCount; + const VkBufferCopy2* pRegions; +} VkCopyBufferInfo2; + +typedef struct VkImageCopy2 { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy2; + +typedef struct VkCopyImageInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageCopy2* pRegions; +} VkCopyImageInfo2; + +typedef struct VkBufferImageCopy2 { + VkStructureType sType; + const void* pNext; + VkDeviceSize bufferOffset; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkBufferImageCopy2; + +typedef struct VkCopyBufferToImageInfo2 { + VkStructureType sType; + const void* pNext; + VkBuffer srcBuffer; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkBufferImageCopy2* pRegions; +} VkCopyBufferToImageInfo2; + +typedef struct VkCopyImageToBufferInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkBuffer dstBuffer; + uint32_t regionCount; + const VkBufferImageCopy2* pRegions; +} VkCopyImageToBufferInfo2; + +typedef struct VkImageBlit2 { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit2; + +typedef struct VkBlitImageInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageBlit2* pRegions; + VkFilter filter; +} VkBlitImageInfo2; + +typedef struct VkImageResolve2 { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageResolve2; + +typedef struct VkResolveImageInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageResolve2* pRegions; +} VkResolveImageInfo2; + +typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures { + VkStructureType sType; + void* pNext; + VkBool32 subgroupSizeControl; + VkBool32 computeFullSubgroups; +} VkPhysicalDeviceSubgroupSizeControlFeatures; + +typedef struct VkPhysicalDeviceSubgroupSizeControlProperties { + VkStructureType sType; + void* pNext; + uint32_t minSubgroupSize; + uint32_t maxSubgroupSize; + uint32_t maxComputeWorkgroupSubgroups; + VkShaderStageFlags requiredSubgroupSizeStages; +} VkPhysicalDeviceSubgroupSizeControlProperties; + +typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo { + VkStructureType sType; + void* pNext; + uint32_t requiredSubgroupSize; +} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo; + +typedef struct VkPhysicalDeviceInlineUniformBlockFeatures { + VkStructureType sType; + void* pNext; + VkBool32 inlineUniformBlock; + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; +} VkPhysicalDeviceInlineUniformBlockFeatures; + +typedef struct VkPhysicalDeviceInlineUniformBlockProperties { + VkStructureType sType; + void* pNext; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; +} VkPhysicalDeviceInlineUniformBlockProperties; + +typedef struct VkWriteDescriptorSetInlineUniformBlock { + VkStructureType sType; + const void* pNext; + uint32_t dataSize; + const void* pData; +} VkWriteDescriptorSetInlineUniformBlock; + +typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t maxInlineUniformBlockBindings; +} VkDescriptorPoolInlineUniformBlockCreateInfo; + +typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures { + VkStructureType sType; + void* pNext; + VkBool32 textureCompressionASTC_HDR; +} VkPhysicalDeviceTextureCompressionASTCHDRFeatures; + +typedef struct VkRenderingAttachmentInfo { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; + VkResolveModeFlagBits resolveMode; + VkImageView resolveImageView; + VkImageLayout resolveImageLayout; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkClearValue clearValue; +} VkRenderingAttachmentInfo; + +typedef struct VkRenderingInfo { + VkStructureType sType; + const void* pNext; + VkRenderingFlags flags; + VkRect2D renderArea; + uint32_t layerCount; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkRenderingAttachmentInfo* pColorAttachments; + const VkRenderingAttachmentInfo* pDepthAttachment; + const VkRenderingAttachmentInfo* pStencilAttachment; +} VkRenderingInfo; + +typedef struct VkPipelineRenderingCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat* pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; +} VkPipelineRenderingCreateInfo; + +typedef struct VkPhysicalDeviceDynamicRenderingFeatures { + VkStructureType sType; + void* pNext; + VkBool32 dynamicRendering; +} VkPhysicalDeviceDynamicRenderingFeatures; + +typedef struct VkCommandBufferInheritanceRenderingInfo { + VkStructureType sType; + const void* pNext; + VkRenderingFlags flags; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat* pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; + VkSampleCountFlagBits rasterizationSamples; +} VkCommandBufferInheritanceRenderingInfo; + +typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerDotProduct; +} VkPhysicalDeviceShaderIntegerDotProductFeatures; + +typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties { + VkStructureType sType; + void* pNext; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; +} VkPhysicalDeviceShaderIntegerDotProductProperties; + +typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties { + VkStructureType sType; + void* pNext; + VkDeviceSize storageTexelBufferOffsetAlignmentBytes; + VkBool32 storageTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; +} VkPhysicalDeviceTexelBufferAlignmentProperties; + +typedef struct VkFormatProperties3 { + VkStructureType sType; + void* pNext; + VkFormatFeatureFlags2 linearTilingFeatures; + VkFormatFeatureFlags2 optimalTilingFeatures; + VkFormatFeatureFlags2 bufferFeatures; +} VkFormatProperties3; + +typedef struct VkPhysicalDeviceMaintenance4Features { + VkStructureType sType; + void* pNext; + VkBool32 maintenance4; +} VkPhysicalDeviceMaintenance4Features; + +typedef struct VkPhysicalDeviceMaintenance4Properties { + VkStructureType sType; + void* pNext; + VkDeviceSize maxBufferSize; +} VkPhysicalDeviceMaintenance4Properties; + +typedef struct VkDeviceBufferMemoryRequirements { + VkStructureType sType; + const void* pNext; + const VkBufferCreateInfo* pCreateInfo; +} VkDeviceBufferMemoryRequirements; + +typedef struct VkDeviceImageMemoryRequirements { + VkStructureType sType; + const void* pNext; + const VkImageCreateInfo* pCreateInfo; + VkImageAspectFlagBits planeAspect; +} VkDeviceImageMemoryRequirements; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties); +typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot); +typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data); +typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData); +typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask); +typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos); +typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer); +typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports); +typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors); +typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable); +typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR( +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties( VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkDisplayPropertiesKHR* pProperties); + uint32_t* pToolCount, + VkPhysicalDeviceToolProperties* pToolProperties); -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR( - VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkDisplayPlanePropertiesKHR* pProperties); +VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot( + VkDevice device, + const VkPrivateDataSlotCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPrivateDataSlot* pPrivateDataSlot); -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR( - VkPhysicalDevice physicalDevice, - uint32_t planeIndex, - uint32_t* pDisplayCount, - VkDisplayKHR* pDisplays); +VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot( + VkDevice device, + VkPrivateDataSlot privateDataSlot, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t data); + +VKAPI_ATTR void VKAPI_CALL vkGetPrivateData( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2( + VkCommandBuffer commandBuffer, + VkEvent event, + const VkDependencyInfo* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2( + VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags2 stageMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2( + VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent* pEvents, + const VkDependencyInfo* pDependencyInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2( + VkCommandBuffer commandBuffer, + const VkDependencyInfo* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2 stage, + VkQueryPool queryPool, + uint32_t query); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2( + VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo2* pSubmits, + VkFence fence); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2( + VkCommandBuffer commandBuffer, + const VkCopyBufferInfo2* pCopyBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2( + VkCommandBuffer commandBuffer, + const VkCopyImageInfo2* pCopyImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2( + VkCommandBuffer commandBuffer, + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2( + VkCommandBuffer commandBuffer, + const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2( + VkCommandBuffer commandBuffer, + const VkBlitImageInfo2* pBlitImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2( + VkCommandBuffer commandBuffer, + const VkResolveImageInfo2* pResolveImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering( + VkCommandBuffer commandBuffer, + const VkRenderingInfo* pRenderingInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering( + VkCommandBuffer commandBuffer); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode( + VkCommandBuffer commandBuffer, + VkCullModeFlags cullMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace( + VkCommandBuffer commandBuffer, + VkFrontFace frontFace); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology( + VkCommandBuffer commandBuffer, + VkPrimitiveTopology primitiveTopology); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount( + VkCommandBuffer commandBuffer, + uint32_t viewportCount, + const VkViewport* pViewports); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount( + VkCommandBuffer commandBuffer, + uint32_t scissorCount, + const VkRect2D* pScissors); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes, + const VkDeviceSize* pStrides); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthWriteEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp( + VkCommandBuffer commandBuffer, + VkCompareOp depthCompareOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthBoundsTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable( + VkCommandBuffer commandBuffer, + VkBool32 stencilTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp( + VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + VkStencilOp failOp, + VkStencilOp passOp, + VkStencilOp depthFailOp, + VkCompareOp compareOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable( + VkCommandBuffer commandBuffer, + VkBool32 rasterizerDiscardEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthBiasEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable( + VkCommandBuffer commandBuffer, + VkBool32 primitiveRestartEnable); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements( + VkDevice device, + const VkDeviceBufferMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); +#endif + + +#define VK_KHR_surface 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) +#define VK_KHR_SURFACE_SPEC_VERSION 25 +#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" + +typedef enum VkPresentModeKHR { + VK_PRESENT_MODE_IMMEDIATE_KHR = 0, + VK_PRESENT_MODE_MAILBOX_KHR = 1, + VK_PRESENT_MODE_FIFO_KHR = 2, + VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, + VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, + VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, + VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPresentModeKHR; + +typedef enum VkColorSpaceKHR { + VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, + VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, + VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, + VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003, + VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, + VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, + VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, + VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, + VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, + VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, + VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, + VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, + VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, + VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, + VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, + VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000, + VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, + VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, + VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkColorSpaceKHR; + +typedef enum VkSurfaceTransformFlagBitsKHR { + VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, + VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, + VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, + VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, + VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, + VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSurfaceTransformFlagBitsKHR; + +typedef enum VkCompositeAlphaFlagBitsKHR { + VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, + VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, + VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, + VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, + VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkCompositeAlphaFlagBitsKHR; +typedef VkFlags VkCompositeAlphaFlagsKHR; +typedef VkFlags VkSurfaceTransformFlagsKHR; +typedef struct VkSurfaceCapabilitiesKHR { + uint32_t minImageCount; + uint32_t maxImageCount; + VkExtent2D currentExtent; + VkExtent2D minImageExtent; + VkExtent2D maxImageExtent; + uint32_t maxImageArrayLayers; + VkSurfaceTransformFlagsKHR supportedTransforms; + VkSurfaceTransformFlagBitsKHR currentTransform; + VkCompositeAlphaFlagsKHR supportedCompositeAlpha; + VkImageUsageFlags supportedUsageFlags; +} VkSurfaceCapabilitiesKHR; + +typedef struct VkSurfaceFormatKHR { + VkFormat format; + VkColorSpaceKHR colorSpace; +} VkSurfaceFormatKHR; + +typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( + VkInstance instance, + VkSurfaceKHR surface, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + VkSurfaceKHR surface, + VkBool32* pSupported); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t* pSurfaceFormatCount, + VkSurfaceFormatKHR* pSurfaceFormats); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t* pPresentModeCount, + VkPresentModeKHR* pPresentModes); +#endif + + +#define VK_KHR_swapchain 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) +#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 +#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" + +typedef enum VkSwapchainCreateFlagBitsKHR { + VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, + VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, + VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008, + VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSwapchainCreateFlagBitsKHR; +typedef VkFlags VkSwapchainCreateFlagsKHR; + +typedef enum VkDeviceGroupPresentModeFlagBitsKHR { + VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, + VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, + VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, + VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, + VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkDeviceGroupPresentModeFlagBitsKHR; +typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; +typedef struct VkSwapchainCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkSwapchainCreateFlagsKHR flags; + VkSurfaceKHR surface; + uint32_t minImageCount; + VkFormat imageFormat; + VkColorSpaceKHR imageColorSpace; + VkExtent2D imageExtent; + uint32_t imageArrayLayers; + VkImageUsageFlags imageUsage; + VkSharingMode imageSharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t* pQueueFamilyIndices; + VkSurfaceTransformFlagBitsKHR preTransform; + VkCompositeAlphaFlagBitsKHR compositeAlpha; + VkPresentModeKHR presentMode; + VkBool32 clipped; + VkSwapchainKHR oldSwapchain; +} VkSwapchainCreateInfoKHR; + +typedef struct VkPresentInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t waitSemaphoreCount; + const VkSemaphore* pWaitSemaphores; + uint32_t swapchainCount; + const VkSwapchainKHR* pSwapchains; + const uint32_t* pImageIndices; + VkResult* pResults; +} VkPresentInfoKHR; + +typedef struct VkImageSwapchainCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkSwapchainKHR swapchain; +} VkImageSwapchainCreateInfoKHR; + +typedef struct VkBindImageMemorySwapchainInfoKHR { + VkStructureType sType; + const void* pNext; + VkSwapchainKHR swapchain; + uint32_t imageIndex; +} VkBindImageMemorySwapchainInfoKHR; + +typedef struct VkAcquireNextImageInfoKHR { + VkStructureType sType; + const void* pNext; + VkSwapchainKHR swapchain; + uint64_t timeout; + VkSemaphore semaphore; + VkFence fence; + uint32_t deviceMask; +} VkAcquireNextImageInfoKHR; + +typedef struct VkDeviceGroupPresentCapabilitiesKHR { + VkStructureType sType; + void* pNext; + uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; + VkDeviceGroupPresentModeFlagsKHR modes; +} VkDeviceGroupPresentCapabilitiesKHR; + +typedef struct VkDeviceGroupPresentInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const uint32_t* pDeviceMasks; + VkDeviceGroupPresentModeFlagBitsKHR mode; +} VkDeviceGroupPresentInfoKHR; + +typedef struct VkDeviceGroupSwapchainCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceGroupPresentModeFlagsKHR modes; +} VkDeviceGroupSwapchainCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); +typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex); +typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR( + VkDevice device, + const VkSwapchainCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSwapchainKHR* pSwapchain); + +VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR( + VkDevice device, + VkSwapchainKHR swapchain, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR( + VkDevice device, + VkSwapchainKHR swapchain, + uint32_t* pSwapchainImageCount, + VkImage* pSwapchainImages); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR( + VkDevice device, + VkSwapchainKHR swapchain, + uint64_t timeout, + VkSemaphore semaphore, + VkFence fence, + uint32_t* pImageIndex); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR( + VkQueue queue, + const VkPresentInfoKHR* pPresentInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR( + VkDevice device, + VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR( + VkDevice device, + VkSurfaceKHR surface, + VkDeviceGroupPresentModeFlagsKHR* pModes); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t* pRectCount, + VkRect2D* pRects); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( + VkDevice device, + const VkAcquireNextImageInfoKHR* pAcquireInfo, + uint32_t* pImageIndex); +#endif + + +#define VK_KHR_display 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) +#define VK_KHR_DISPLAY_SPEC_VERSION 23 +#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" +typedef VkFlags VkDisplayModeCreateFlagsKHR; + +typedef enum VkDisplayPlaneAlphaFlagBitsKHR { + VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, + VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, + VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, + VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, + VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkDisplayPlaneAlphaFlagBitsKHR; +typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; +typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; +typedef struct VkDisplayModeParametersKHR { + VkExtent2D visibleRegion; + uint32_t refreshRate; +} VkDisplayModeParametersKHR; + +typedef struct VkDisplayModeCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkDisplayModeCreateFlagsKHR flags; + VkDisplayModeParametersKHR parameters; +} VkDisplayModeCreateInfoKHR; + +typedef struct VkDisplayModePropertiesKHR { + VkDisplayModeKHR displayMode; + VkDisplayModeParametersKHR parameters; +} VkDisplayModePropertiesKHR; + +typedef struct VkDisplayPlaneCapabilitiesKHR { + VkDisplayPlaneAlphaFlagsKHR supportedAlpha; + VkOffset2D minSrcPosition; + VkOffset2D maxSrcPosition; + VkExtent2D minSrcExtent; + VkExtent2D maxSrcExtent; + VkOffset2D minDstPosition; + VkOffset2D maxDstPosition; + VkExtent2D minDstExtent; + VkExtent2D maxDstExtent; +} VkDisplayPlaneCapabilitiesKHR; + +typedef struct VkDisplayPlanePropertiesKHR { + VkDisplayKHR currentDisplay; + uint32_t currentStackIndex; +} VkDisplayPlanePropertiesKHR; + +typedef struct VkDisplayPropertiesKHR { + VkDisplayKHR display; + const char* displayName; + VkExtent2D physicalDimensions; + VkExtent2D physicalResolution; + VkSurfaceTransformFlagsKHR supportedTransforms; + VkBool32 planeReorderPossible; + VkBool32 persistentContent; +} VkDisplayPropertiesKHR; + +typedef struct VkDisplaySurfaceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkDisplaySurfaceCreateFlagsKHR flags; + VkDisplayModeKHR displayMode; + uint32_t planeIndex; + uint32_t planeStackIndex; + VkSurfaceTransformFlagBitsKHR transform; + float globalAlpha; + VkDisplayPlaneAlphaFlagBitsKHR alphaMode; + VkExtent2D imageExtent; +} VkDisplaySurfaceCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); +typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode); +typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkDisplayPropertiesKHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkDisplayPlanePropertiesKHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR( + VkPhysicalDevice physicalDevice, + uint32_t planeIndex, + uint32_t* pDisplayCount, + VkDisplayKHR* pDisplays); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + uint32_t* pPropertyCount, + VkDisplayModePropertiesKHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + const VkDisplayModeCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDisplayModeKHR* pMode); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR( + VkPhysicalDevice physicalDevice, + VkDisplayModeKHR mode, + uint32_t planeIndex, + VkDisplayPlaneCapabilitiesKHR* pCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( + VkInstance instance, + const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +#define VK_KHR_display_swapchain 1 +#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10 +#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" +typedef struct VkDisplayPresentInfoKHR { + VkStructureType sType; + const void* pNext; + VkRect2D srcRect; + VkRect2D dstRect; + VkBool32 persistent; +} VkDisplayPresentInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( + VkDevice device, + uint32_t swapchainCount, + const VkSwapchainCreateInfoKHR* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkSwapchainKHR* pSwapchains); +#endif + + +#define VK_KHR_sampler_mirror_clamp_to_edge 1 +#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3 +#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" + + +#define VK_KHR_video_queue 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR) +#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 8 +#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue" + +typedef enum VkQueryResultStatusKHR { + 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 = 0x7FFFFFFF +} VkQueryResultStatusKHR; + +typedef enum VkVideoCodecOperationFlagBitsKHR { + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0x00010000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT = 0x00020000, +#endif + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001, + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002, + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCodecOperationFlagBitsKHR; +typedef VkFlags VkVideoCodecOperationFlagsKHR; + +typedef enum VkVideoChromaSubsamplingFlagBitsKHR { + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0, + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001, + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002, + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004, + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008, + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoChromaSubsamplingFlagBitsKHR; +typedef VkFlags VkVideoChromaSubsamplingFlagsKHR; + +typedef enum VkVideoComponentBitDepthFlagBitsKHR { + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0, + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001, + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004, + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010, + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoComponentBitDepthFlagBitsKHR; +typedef VkFlags VkVideoComponentBitDepthFlagsKHR; + +typedef enum VkVideoCapabilityFlagBitsKHR { + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001, + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002, + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCapabilityFlagBitsKHR; +typedef VkFlags VkVideoCapabilityFlagsKHR; + +typedef enum VkVideoSessionCreateFlagBitsKHR { + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001, + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoSessionCreateFlagBitsKHR; +typedef VkFlags VkVideoSessionCreateFlagsKHR; +typedef VkFlags VkVideoSessionParametersCreateFlagsKHR; +typedef VkFlags VkVideoBeginCodingFlagsKHR; +typedef VkFlags VkVideoEndCodingFlagsKHR; + +typedef enum VkVideoCodingControlFlagBitsKHR { + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR = 0x00000004, +#endif + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCodingControlFlagBitsKHR; +typedef VkFlags VkVideoCodingControlFlagsKHR; +typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 queryResultStatusSupport; +} VkQueueFamilyQueryResultStatusPropertiesKHR; + +typedef struct VkQueueFamilyVideoPropertiesKHR { + VkStructureType sType; + void* pNext; + VkVideoCodecOperationFlagsKHR videoCodecOperations; +} VkQueueFamilyVideoPropertiesKHR; + +typedef struct VkVideoProfileInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoCodecOperationFlagBitsKHR videoCodecOperation; + VkVideoChromaSubsamplingFlagsKHR chromaSubsampling; + VkVideoComponentBitDepthFlagsKHR lumaBitDepth; + VkVideoComponentBitDepthFlagsKHR chromaBitDepth; +} VkVideoProfileInfoKHR; + +typedef struct VkVideoProfileListInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t profileCount; + const VkVideoProfileInfoKHR* pProfiles; +} VkVideoProfileListInfoKHR; + +typedef struct VkVideoCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoCapabilityFlagsKHR flags; + VkDeviceSize minBitstreamBufferOffsetAlignment; + VkDeviceSize minBitstreamBufferSizeAlignment; + VkExtent2D pictureAccessGranularity; + VkExtent2D minCodedExtent; + VkExtent2D maxCodedExtent; + uint32_t maxDpbSlots; + uint32_t maxActiveReferencePictures; + VkExtensionProperties stdHeaderVersion; +} VkVideoCapabilitiesKHR; + +typedef struct VkPhysicalDeviceVideoFormatInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageUsageFlags imageUsage; +} VkPhysicalDeviceVideoFormatInfoKHR; + +typedef struct VkVideoFormatPropertiesKHR { + VkStructureType sType; + void* pNext; + VkFormat format; + VkComponentMapping componentMapping; + VkImageCreateFlags imageCreateFlags; + VkImageType imageType; + VkImageTiling imageTiling; + VkImageUsageFlags imageUsageFlags; +} VkVideoFormatPropertiesKHR; + +typedef struct VkVideoPictureResourceInfoKHR { + VkStructureType sType; + const void* pNext; + VkOffset2D codedOffset; + VkExtent2D codedExtent; + uint32_t baseArrayLayer; + VkImageView imageViewBinding; +} VkVideoPictureResourceInfoKHR; + +typedef struct VkVideoReferenceSlotInfoKHR { + VkStructureType sType; + const void* pNext; + int32_t slotIndex; + const VkVideoPictureResourceInfoKHR* pPictureResource; +} VkVideoReferenceSlotInfoKHR; + +typedef struct VkVideoSessionMemoryRequirementsKHR { + VkStructureType sType; + void* pNext; + uint32_t memoryBindIndex; + VkMemoryRequirements memoryRequirements; +} VkVideoSessionMemoryRequirementsKHR; + +typedef struct VkBindVideoSessionMemoryInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t memoryBindIndex; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; + VkDeviceSize memorySize; +} VkBindVideoSessionMemoryInfoKHR; + +typedef struct VkVideoSessionCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t queueFamilyIndex; + VkVideoSessionCreateFlagsKHR flags; + const VkVideoProfileInfoKHR* pVideoProfile; + VkFormat pictureFormat; + VkExtent2D maxCodedExtent; + VkFormat referencePictureFormat; + uint32_t maxDpbSlots; + uint32_t maxActiveReferencePictures; + const VkExtensionProperties* pStdHeaderVersion; +} VkVideoSessionCreateInfoKHR; + +typedef struct VkVideoSessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoSessionParametersCreateFlagsKHR flags; + VkVideoSessionParametersKHR videoSessionParametersTemplate; + VkVideoSessionKHR videoSession; +} VkVideoSessionParametersCreateInfoKHR; + +typedef struct VkVideoSessionParametersUpdateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t updateSequenceCount; +} VkVideoSessionParametersUpdateInfoKHR; + +typedef struct VkVideoBeginCodingInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoBeginCodingFlagsKHR flags; + VkVideoSessionKHR videoSession; + VkVideoSessionParametersKHR videoSessionParameters; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotInfoKHR* pReferenceSlots; +} VkVideoBeginCodingInfoKHR; + +typedef struct VkVideoEndCodingInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEndCodingFlagsKHR flags; +} VkVideoEndCodingInfoKHR; + +typedef struct VkVideoCodingControlInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoCodingControlFlagsKHR flags; +} VkVideoCodingControlInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties); +typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession); +typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements); +typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos); +typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters); +typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo); +typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo); +typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR( + VkPhysicalDevice physicalDevice, + const VkVideoProfileInfoKHR* pVideoProfile, + VkVideoCapabilitiesKHR* pCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, + uint32_t* pVideoFormatPropertyCount, + VkVideoFormatPropertiesKHR* pVideoFormatProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR( + VkDevice device, + const VkVideoSessionCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkVideoSessionKHR* pVideoSession); + +VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t* pMemoryRequirementsCount, + VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t bindSessionMemoryInfoCount, + const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR( + VkDevice device, + const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkVideoSessionParametersKHR* pVideoSessionParameters); + +VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR( + VkDevice device, + VkVideoSessionParametersKHR videoSessionParameters, + const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo); + +VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR( + VkDevice device, + VkVideoSessionParametersKHR videoSessionParameters, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR( + VkCommandBuffer commandBuffer, + const VkVideoBeginCodingInfoKHR* pBeginInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR( + VkCommandBuffer commandBuffer, + const VkVideoEndCodingInfoKHR* pEndCodingInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR( + VkCommandBuffer commandBuffer, + const VkVideoCodingControlInfoKHR* pCodingControlInfo); +#endif + + +#define VK_KHR_video_decode_queue 1 +#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 7 +#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue" + +typedef enum VkVideoDecodeCapabilityFlagBitsKHR { + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001, + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002, + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoDecodeCapabilityFlagBitsKHR; +typedef VkFlags VkVideoDecodeCapabilityFlagsKHR; + +typedef enum VkVideoDecodeUsageFlagBitsKHR { + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0, + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001, + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002, + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004, + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoDecodeUsageFlagBitsKHR; +typedef VkFlags VkVideoDecodeUsageFlagsKHR; +typedef VkFlags VkVideoDecodeFlagsKHR; +typedef struct VkVideoDecodeCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoDecodeCapabilityFlagsKHR flags; +} VkVideoDecodeCapabilitiesKHR; + +typedef struct VkVideoDecodeUsageInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoDecodeUsageFlagsKHR videoUsageHints; +} VkVideoDecodeUsageInfoKHR; + +typedef struct VkVideoDecodeInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoDecodeFlagsKHR flags; + VkBuffer srcBuffer; + VkDeviceSize srcBufferOffset; + VkDeviceSize srcBufferRange; + VkVideoPictureResourceInfoKHR dstPictureResource; + const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotInfoKHR* pReferenceSlots; +} VkVideoDecodeInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR( + VkCommandBuffer commandBuffer, + const VkVideoDecodeInfoKHR* pDecodeInfo); +#endif + +#ifdef GO_INCLUDE_video_decode + +#define VK_KHR_video_decode_h264 1 +#include "vk_video/vulkan_video_codec_h264std.h" +#include "vk_video/vulkan_video_codec_h264std_decode.h" +#define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 8 +#define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264" + +typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR { + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0, + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001, + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002, + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoDecodeH264PictureLayoutFlagBitsKHR; +typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR; +typedef struct VkVideoDecodeH264ProfileInfoKHR { + VkStructureType sType; + const void* pNext; + StdVideoH264ProfileIdc stdProfileIdc; + VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout; +} VkVideoDecodeH264ProfileInfoKHR; + +typedef struct VkVideoDecodeH264CapabilitiesKHR { + VkStructureType sType; + void* pNext; + StdVideoH264LevelIdc maxLevelIdc; + VkOffset2D fieldOffsetGranularity; +} VkVideoDecodeH264CapabilitiesKHR; + +typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t stdSPSCount; + const StdVideoH264SequenceParameterSet* pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH264PictureParameterSet* pStdPPSs; +} VkVideoDecodeH264SessionParametersAddInfoKHR; + +typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; + const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo; +} VkVideoDecodeH264SessionParametersCreateInfoKHR; + +typedef struct VkVideoDecodeH264PictureInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH264PictureInfo* pStdPictureInfo; + uint32_t sliceCount; + const uint32_t* pSliceOffsets; +} VkVideoDecodeH264PictureInfoKHR; + +typedef struct VkVideoDecodeH264DpbSlotInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo; +} VkVideoDecodeH264DpbSlotInfoKHR; + +#endif // GO_INCLUDE_video_decode + +#define VK_KHR_dynamic_rendering 1 +#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1 +#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering" +typedef VkRenderingFlags VkRenderingFlagsKHR; + +typedef VkRenderingFlagBits VkRenderingFlagBitsKHR; + +typedef VkRenderingInfo VkRenderingInfoKHR; + +typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR; + +typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR; + +typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR; + +typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR; + +typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; + VkExtent2D shadingRateAttachmentTexelSize; +} VkRenderingFragmentShadingRateAttachmentInfoKHR; + +typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; +} VkRenderingFragmentDensityMapAttachmentInfoEXT; + +typedef struct VkAttachmentSampleCountInfoAMD { + VkStructureType sType; + const void* pNext; + uint32_t colorAttachmentCount; + const VkSampleCountFlagBits* pColorAttachmentSamples; + VkSampleCountFlagBits depthStencilAttachmentSamples; +} VkAttachmentSampleCountInfoAMD; + +typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV; + +typedef struct VkMultiviewPerViewAttributesInfoNVX { + VkStructureType sType; + const void* pNext; + VkBool32 perViewAttributes; + VkBool32 perViewAttributesPositionXOnly; +} VkMultiviewPerViewAttributesInfoNVX; + +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR( + VkCommandBuffer commandBuffer, + const VkRenderingInfo* pRenderingInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR( + VkCommandBuffer commandBuffer); +#endif + + +#define VK_KHR_multiview 1 +#define VK_KHR_MULTIVIEW_SPEC_VERSION 1 +#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" +typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; + +typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; + +typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR; + + + +#define VK_KHR_get_physical_device_properties2 1 +#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2 +#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" +typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; + +typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; + +typedef VkFormatProperties2 VkFormatProperties2KHR; + +typedef VkImageFormatProperties2 VkImageFormatProperties2KHR; + +typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; + +typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR; + +typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; + +typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; + +typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures2* pFeatures); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceProperties2* pProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR( + VkPhysicalDevice physicalDevice, + VkFormat format, + VkFormatProperties2* pFormatProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, + VkImageFormatProperties2* pImageFormatProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR( + VkPhysicalDevice physicalDevice, + uint32_t* pQueueFamilyPropertyCount, + VkQueueFamilyProperties2* pQueueFamilyProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceMemoryProperties2* pMemoryProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, + uint32_t* pPropertyCount, + VkSparseImageFormatProperties2* pProperties); +#endif + + +#define VK_KHR_device_group 1 +#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4 +#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" +typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; + +typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR; + +typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR; + +typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR; + +typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; + +typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; + +typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR; + +typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR; + +typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR; + +typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; + +typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); +typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask); +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); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR( + VkDevice device, + uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR( + VkCommandBuffer commandBuffer, + uint32_t deviceMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( + VkCommandBuffer commandBuffer, + uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ); +#endif + + +#define VK_KHR_shader_draw_parameters 1 +#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 +#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" + + +#define VK_KHR_maintenance1 1 +#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2 +#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1" +#define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION +#define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME +typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; + +typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( + VkDevice device, + VkCommandPool commandPool, + VkCommandPoolTrimFlags flags); +#endif + + +#define VK_KHR_device_group_creation 1 +#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 +#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" +#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE +typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR; + +typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR( + VkInstance instance, + uint32_t* pPhysicalDeviceGroupCount, + VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); +#endif + + +#define VK_KHR_external_memory_capabilities 1 +#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" +#define VK_LUID_SIZE_KHR VK_LUID_SIZE +typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR; + +typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR; + +typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR; + +typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR; + +typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; + +typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; + +typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; + +typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR; + +typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; + +typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, + VkExternalBufferProperties* pExternalBufferProperties); +#endif + + +#define VK_KHR_external_memory 1 +#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" +#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL +typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR; + +typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR; + +typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; + + + +#define VK_KHR_external_memory_fd 1 +#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" +typedef struct VkImportMemoryFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBits handleType; + int fd; +} VkImportMemoryFdInfoKHR; + +typedef struct VkMemoryFdPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; +} VkMemoryFdPropertiesKHR; + +typedef struct VkMemoryGetFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetFdInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR( + VkDevice device, + const VkMemoryGetFdInfoKHR* pGetFdInfo, + int* pFd); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + int fd, + VkMemoryFdPropertiesKHR* pMemoryFdProperties); +#endif + + +#define VK_KHR_external_semaphore_capabilities 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" +typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR; + +typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR; + +typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR; + +typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR; + +typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR; + +typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR; + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, + VkExternalSemaphoreProperties* pExternalSemaphoreProperties); +#endif + + +#define VK_KHR_external_semaphore 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" +typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR; + +typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR; + +typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; + + + +#define VK_KHR_external_semaphore_fd 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" +typedef struct VkImportSemaphoreFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkSemaphoreImportFlags flags; + VkExternalSemaphoreHandleTypeFlagBits handleType; + int fd; +} VkImportSemaphoreFdInfoKHR; + +typedef struct VkSemaphoreGetFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkExternalSemaphoreHandleTypeFlagBits handleType; +} VkSemaphoreGetFdInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR( + VkDevice device, + const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( + VkDevice device, + const VkSemaphoreGetFdInfoKHR* pGetFdInfo, + int* pFd); +#endif + + +#define VK_KHR_push_descriptor 1 +#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2 +#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" +typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t maxPushDescriptors; +} VkPhysicalDevicePushDescriptorPropertiesKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); +typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t set, + uint32_t descriptorWriteCount, + const VkWriteDescriptorSet* pDescriptorWrites); + +VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( + VkCommandBuffer commandBuffer, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + VkPipelineLayout layout, + uint32_t set, + const void* pData); +#endif + + +#define VK_KHR_shader_float16_int8 1 +#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1 +#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8" +typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR; + +typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR; + + + +#define VK_KHR_16bit_storage 1 +#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 +#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" +typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; + + + +#define VK_KHR_incremental_present 1 +#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2 +#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" +typedef struct VkRectLayerKHR { + VkOffset2D offset; + VkExtent2D extent; + uint32_t layer; +} VkRectLayerKHR; + +typedef struct VkPresentRegionKHR { + uint32_t rectangleCount; + const VkRectLayerKHR* pRectangles; +} VkPresentRegionKHR; + +typedef struct VkPresentRegionsKHR { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const VkPresentRegionKHR* pRegions; +} VkPresentRegionsKHR; + + + +#define VK_KHR_descriptor_update_template 1 +typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR; + +#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 +#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" +typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR; + +typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR; + +typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; + +typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); +typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR( + VkDevice device, + const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR( + VkDevice device, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( + VkDevice device, + VkDescriptorSet descriptorSet, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const void* pData); +#endif + + +#define VK_KHR_imageless_framebuffer 1 +#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1 +#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer" +typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR; + +typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR; + +typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR; + +typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR; + + + +#define VK_KHR_create_renderpass2 1 +#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1 +#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2" +typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR; + +typedef VkAttachmentDescription2 VkAttachmentDescription2KHR; + +typedef VkAttachmentReference2 VkAttachmentReference2KHR; + +typedef VkSubpassDescription2 VkSubpassDescription2KHR; + +typedef VkSubpassDependency2 VkSubpassDependency2KHR; + +typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR; + +typedef VkSubpassEndInfo VkSubpassEndInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo); +typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR( + VkDevice device, + const VkRenderPassCreateInfo2* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkRenderPass* pRenderPass); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR( + VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo* pRenderPassBegin, + const VkSubpassBeginInfo* pSubpassBeginInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR( + VkCommandBuffer commandBuffer, + const VkSubpassBeginInfo* pSubpassBeginInfo, + const VkSubpassEndInfo* pSubpassEndInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR( + VkCommandBuffer commandBuffer, + const VkSubpassEndInfo* pSubpassEndInfo); +#endif + + +#define VK_KHR_shared_presentable_image 1 +#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 +#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" +typedef struct VkSharedPresentSurfaceCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkImageUsageFlags sharedPresentSupportedUsageFlags; +} VkSharedPresentSurfaceCapabilitiesKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( + VkDevice device, + VkSwapchainKHR swapchain); +#endif + + +#define VK_KHR_external_fence_capabilities 1 +#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" +typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR; + +typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR; + +typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR; + +typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR; + +typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; + +typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, + VkExternalFenceProperties* pExternalFenceProperties); +#endif + + +#define VK_KHR_external_fence 1 +#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" +typedef VkFenceImportFlags VkFenceImportFlagsKHR; + +typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR; + +typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; + + + +#define VK_KHR_external_fence_fd 1 +#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" +typedef struct VkImportFenceFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkFence fence; + VkFenceImportFlags flags; + VkExternalFenceHandleTypeFlagBits handleType; + int fd; +} VkImportFenceFdInfoKHR; + +typedef struct VkFenceGetFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkFence fence; + VkExternalFenceHandleTypeFlagBits handleType; +} VkFenceGetFdInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR( + VkDevice device, + const VkImportFenceFdInfoKHR* pImportFenceFdInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( + VkDevice device, + const VkFenceGetFdInfoKHR* pGetFdInfo, + int* pFd); +#endif + + +#define VK_KHR_performance_query 1 +#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1 +#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query" + +typedef enum VkPerformanceCounterUnitKHR { + 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 = 0x7FFFFFFF +} VkPerformanceCounterUnitKHR; + +typedef enum VkPerformanceCounterScopeKHR { + 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 = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, + VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, + VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR, + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterScopeKHR; + +typedef enum VkPerformanceCounterStorageKHR { + 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 = 0x7FFFFFFF +} VkPerformanceCounterStorageKHR; + +typedef enum VkPerformanceCounterDescriptionFlagBitsKHR { + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001, + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002, + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR, + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR, + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterDescriptionFlagBitsKHR; +typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; + +typedef enum VkAcquireProfilingLockFlagBitsKHR { + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAcquireProfilingLockFlagBitsKHR; +typedef VkFlags VkAcquireProfilingLockFlagsKHR; +typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 performanceCounterQueryPools; + VkBool32 performanceCounterMultipleQueryPools; +} VkPhysicalDevicePerformanceQueryFeaturesKHR; + +typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 allowCommandBufferQueryCopies; +} VkPhysicalDevicePerformanceQueryPropertiesKHR; + +typedef struct VkPerformanceCounterKHR { + VkStructureType sType; + void* pNext; + VkPerformanceCounterUnitKHR unit; + VkPerformanceCounterScopeKHR scope; + VkPerformanceCounterStorageKHR storage; + uint8_t uuid[VK_UUID_SIZE]; +} VkPerformanceCounterKHR; + +typedef struct VkPerformanceCounterDescriptionKHR { + VkStructureType sType; + void* pNext; + VkPerformanceCounterDescriptionFlagsKHR flags; + char name[VK_MAX_DESCRIPTION_SIZE]; + char category[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; +} VkPerformanceCounterDescriptionKHR; + +typedef struct VkQueryPoolPerformanceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t queueFamilyIndex; + uint32_t counterIndexCount; + const uint32_t* pCounterIndices; +} VkQueryPoolPerformanceCreateInfoKHR; + +typedef union VkPerformanceCounterResultKHR { + int32_t int32; + int64_t int64; + uint32_t uint32; + uint64_t uint64; + float float32; + double float64; +} VkPerformanceCounterResultKHR; + +typedef struct VkAcquireProfilingLockInfoKHR { + VkStructureType sType; + const void* pNext; + VkAcquireProfilingLockFlagsKHR flags; + uint64_t timeout; +} VkAcquireProfilingLockInfoKHR; + +typedef struct VkPerformanceQuerySubmitInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t counterPassIndex; +} VkPerformanceQuerySubmitInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + uint32_t* pCounterCount, + VkPerformanceCounterKHR* pCounters, + VkPerformanceCounterDescriptionKHR* pCounterDescriptions); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + VkPhysicalDevice physicalDevice, + const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, + uint32_t* pNumPasses); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR( + VkDevice device, + const VkAcquireProfilingLockInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR( + VkDevice device); +#endif + + +#define VK_KHR_maintenance2 1 +#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2" +#define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION +#define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME +typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; + +typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; + +typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; + +typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; + +typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; + +typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; + +typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR; + + + +#define VK_KHR_get_surface_capabilities2 1 +#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 +#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" +typedef struct VkPhysicalDeviceSurfaceInfo2KHR { + VkStructureType sType; + const void* pNext; + VkSurfaceKHR surface; +} VkPhysicalDeviceSurfaceInfo2KHR; + +typedef struct VkSurfaceCapabilities2KHR { + VkStructureType sType; + void* pNext; + VkSurfaceCapabilitiesKHR surfaceCapabilities; +} VkSurfaceCapabilities2KHR; + +typedef struct VkSurfaceFormat2KHR { + VkStructureType sType; + void* pNext; + VkSurfaceFormatKHR surfaceFormat; +} VkSurfaceFormat2KHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + VkSurfaceCapabilities2KHR* pSurfaceCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + uint32_t* pSurfaceFormatCount, + VkSurfaceFormat2KHR* pSurfaceFormats); +#endif + + +#define VK_KHR_variable_pointers 1 +#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 +#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; + +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR; + + + +#define VK_KHR_get_display_properties2 1 +#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1 +#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2" +typedef struct VkDisplayProperties2KHR { + VkStructureType sType; + void* pNext; + VkDisplayPropertiesKHR displayProperties; +} VkDisplayProperties2KHR; + +typedef struct VkDisplayPlaneProperties2KHR { + VkStructureType sType; + void* pNext; + VkDisplayPlanePropertiesKHR displayPlaneProperties; +} VkDisplayPlaneProperties2KHR; + +typedef struct VkDisplayModeProperties2KHR { + VkStructureType sType; + void* pNext; + VkDisplayModePropertiesKHR displayModeProperties; +} VkDisplayModeProperties2KHR; + +typedef struct VkDisplayPlaneInfo2KHR { + VkStructureType sType; + const void* pNext; + VkDisplayModeKHR mode; + uint32_t planeIndex; +} VkDisplayPlaneInfo2KHR; + +typedef struct VkDisplayPlaneCapabilities2KHR { + VkStructureType sType; + void* pNext; + VkDisplayPlaneCapabilitiesKHR capabilities; +} VkDisplayPlaneCapabilities2KHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkDisplayProperties2KHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkDisplayPlaneProperties2KHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + uint32_t* pPropertyCount, + VkDisplayModeProperties2KHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR( + VkPhysicalDevice physicalDevice, + const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, + VkDisplayPlaneCapabilities2KHR* pCapabilities); +#endif + + +#define VK_KHR_dedicated_allocation 1 +#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 +#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" +typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; + +typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; + + + +#define VK_KHR_storage_buffer_storage_class 1 +#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1 +#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class" + + +#define VK_KHR_relaxed_block_layout 1 +#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1 +#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout" + + +#define VK_KHR_get_memory_requirements2 1 +#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1 +#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" +typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; + +typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; + +typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; + +typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; + +typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; + +typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR( + VkDevice device, + const VkImageMemoryRequirementsInfo2* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR( + VkDevice device, + const VkBufferMemoryRequirementsInfo2* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( + VkDevice device, + const VkImageSparseMemoryRequirementsInfo2* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); +#endif + + +#define VK_KHR_image_format_list 1 +#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 +#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" +typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR; + + + +#define VK_KHR_sampler_ycbcr_conversion 1 +typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR; + +#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14 +#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" +typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR; + +typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR; + +typedef VkChromaLocation VkChromaLocationKHR; + +typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; + +typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; + +typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR; + +typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR; + +typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; + +typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); +typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR( + VkDevice device, + const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSamplerYcbcrConversion* pYcbcrConversion); + +VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( + VkDevice device, + VkSamplerYcbcrConversion ycbcrConversion, + const VkAllocationCallbacks* pAllocator); +#endif + + +#define VK_KHR_bind_memory2 1 +#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1 +#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2" +typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR; + +typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); +typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR( + VkDevice device, + uint32_t bindInfoCount, + const VkBindBufferMemoryInfo* pBindInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( + VkDevice device, + uint32_t bindInfoCount, + const VkBindImageMemoryInfo* pBindInfos); +#endif + + +#define VK_KHR_maintenance3 1 +#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3" +#define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION +#define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME +typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; + +typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; + +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR( + VkDevice device, + const VkDescriptorSetLayoutCreateInfo* pCreateInfo, + VkDescriptorSetLayoutSupport* pSupport); +#endif + + +#define VK_KHR_draw_indirect_count 1 +#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 +#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count" +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif + + +#define VK_KHR_shader_subgroup_extended_types 1 +#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1 +#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types" +typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR; + + + +#define VK_KHR_8bit_storage 1 +#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1 +#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage" +typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR; + + + +#define VK_KHR_shader_atomic_int64 1 +#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1 +#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64" +typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; + + + +#define VK_KHR_shader_clock 1 +#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1 +#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock" +typedef struct VkPhysicalDeviceShaderClockFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupClock; + VkBool32 shaderDeviceClock; +} VkPhysicalDeviceShaderClockFeaturesKHR; + + +#ifdef GO_INCLUDE_video_decode + +#define VK_KHR_video_decode_h265 1 +#include "vk_video/vulkan_video_codec_h265std.h" +#include "vk_video/vulkan_video_codec_h265std_decode.h" +#define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 7 +#define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265" +typedef struct VkVideoDecodeH265ProfileInfoKHR { + VkStructureType sType; + const void* pNext; + StdVideoH265ProfileIdc stdProfileIdc; +} VkVideoDecodeH265ProfileInfoKHR; + +typedef struct VkVideoDecodeH265CapabilitiesKHR { + VkStructureType sType; + void* pNext; + StdVideoH265LevelIdc maxLevelIdc; +} VkVideoDecodeH265CapabilitiesKHR; + +typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t stdVPSCount; + const StdVideoH265VideoParameterSet* pStdVPSs; + uint32_t stdSPSCount; + const StdVideoH265SequenceParameterSet* pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH265PictureParameterSet* pStdPPSs; +} VkVideoDecodeH265SessionParametersAddInfoKHR; + +typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t maxStdVPSCount; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; + const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo; +} VkVideoDecodeH265SessionParametersCreateInfoKHR; + +typedef struct VkVideoDecodeH265PictureInfoKHR { + VkStructureType sType; + const void* pNext; + StdVideoDecodeH265PictureInfo* pStdPictureInfo; + uint32_t sliceSegmentCount; + const uint32_t* pSliceSegmentOffsets; +} VkVideoDecodeH265PictureInfoKHR; + +typedef struct VkVideoDecodeH265DpbSlotInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo; +} VkVideoDecodeH265DpbSlotInfoKHR; + +#endif // GO_INCLUDE_video_decode + +#define VK_KHR_global_priority 1 +#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR 16U +#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1 +#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority" + +typedef enum VkQueueGlobalPriorityKHR { + 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 = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR, + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR, + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR, + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR, + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 0x7FFFFFFF +} VkQueueGlobalPriorityKHR; +typedef struct VkDeviceQueueGlobalPriorityCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkQueueGlobalPriorityKHR globalPriority; +} VkDeviceQueueGlobalPriorityCreateInfoKHR; + +typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 globalPriorityQuery; +} VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR; + +typedef struct VkQueueFamilyGlobalPriorityPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t priorityCount; + VkQueueGlobalPriorityKHR priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR]; +} VkQueueFamilyGlobalPriorityPropertiesKHR; + + + +#define VK_KHR_driver_properties 1 +#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 +#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" +#define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE +#define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE +typedef VkDriverId VkDriverIdKHR; + +typedef VkConformanceVersion VkConformanceVersionKHR; + +typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR; + + + +#define VK_KHR_shader_float_controls 1 +#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4 +#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls" +typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR; + +typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR; + + + +#define VK_KHR_depth_stencil_resolve 1 +#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1 +#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve" +typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR; + +typedef VkResolveModeFlags VkResolveModeFlagsKHR; + +typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR; + +typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR; + + + +#define VK_KHR_swapchain_mutable_format 1 +#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1 +#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format" + + +#define VK_KHR_timeline_semaphore 1 +#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2 +#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore" +typedef VkSemaphoreType VkSemaphoreTypeKHR; + +typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR; + +typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR; + +typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR; + +typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR; + +typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR; + +typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR; + +typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR; + +typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue); +typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout); +typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR( + VkDevice device, + VkSemaphore semaphore, + uint64_t* pValue); + +VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR( + VkDevice device, + const VkSemaphoreWaitInfo* pWaitInfo, + uint64_t timeout); + +VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR( + VkDevice device, + const VkSemaphoreSignalInfo* pSignalInfo); +#endif + + +#define VK_KHR_vulkan_memory_model 1 +#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3 +#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" +typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; + + + +#define VK_KHR_shader_terminate_invocation 1 +#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1 +#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation" +typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR; + + + +#define VK_KHR_fragment_shading_rate 1 +#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2 +#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate" + +typedef enum VkFragmentShadingRateCombinerOpKHR { + 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 = 0x7FFFFFFF +} VkFragmentShadingRateCombinerOpKHR; +typedef struct VkFragmentShadingRateAttachmentInfoKHR { + VkStructureType sType; + const void* pNext; + const VkAttachmentReference2* pFragmentShadingRateAttachment; + VkExtent2D shadingRateAttachmentTexelSize; +} VkFragmentShadingRateAttachmentInfoKHR; + +typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkExtent2D fragmentSize; + VkFragmentShadingRateCombinerOpKHR combinerOps[2]; +} VkPipelineFragmentShadingRateStateCreateInfoKHR; + +typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 pipelineFragmentShadingRate; + VkBool32 primitiveFragmentShadingRate; + VkBool32 attachmentFragmentShadingRate; +} VkPhysicalDeviceFragmentShadingRateFeaturesKHR; + +typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR { + VkStructureType sType; + void* pNext; + VkExtent2D minFragmentShadingRateAttachmentTexelSize; + VkExtent2D maxFragmentShadingRateAttachmentTexelSize; + uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio; + VkBool32 primitiveFragmentShadingRateWithMultipleViewports; + VkBool32 layeredShadingRateAttachments; + VkBool32 fragmentShadingRateNonTrivialCombinerOps; + VkExtent2D maxFragmentSize; + uint32_t maxFragmentSizeAspectRatio; + uint32_t maxFragmentShadingRateCoverageSamples; + VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples; + VkBool32 fragmentShadingRateWithShaderDepthStencilWrites; + VkBool32 fragmentShadingRateWithSampleMask; + VkBool32 fragmentShadingRateWithShaderSampleMask; + VkBool32 fragmentShadingRateWithConservativeRasterization; + VkBool32 fragmentShadingRateWithFragmentShaderInterlock; + VkBool32 fragmentShadingRateWithCustomSampleLocations; + VkBool32 fragmentShadingRateStrictMultiplyCombiner; +} VkPhysicalDeviceFragmentShadingRatePropertiesKHR; + +typedef struct VkPhysicalDeviceFragmentShadingRateKHR { + VkStructureType sType; + void* pNext; + VkSampleCountFlags sampleCounts; + VkExtent2D fragmentSize; +} VkPhysicalDeviceFragmentShadingRateKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); +typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR( + VkPhysicalDevice physicalDevice, + uint32_t* pFragmentShadingRateCount, + VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR( + VkCommandBuffer commandBuffer, + const VkExtent2D* pFragmentSize, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); +#endif + + +#define VK_KHR_spirv_1_4 1 +#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1 +#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4" + + +#define VK_KHR_surface_protected_capabilities 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities" +typedef struct VkSurfaceProtectedCapabilitiesKHR { + VkStructureType sType; + const void* pNext; + VkBool32 supportsProtected; +} VkSurfaceProtectedCapabilitiesKHR; + + + +#define VK_KHR_separate_depth_stencil_layouts 1 +#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1 +#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts" +typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR; + +typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR; + +typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR; + + + +#define VK_KHR_present_wait 1 +#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1 +#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait" +typedef struct VkPhysicalDevicePresentWaitFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentWait; +} VkPhysicalDevicePresentWaitFeaturesKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR( + VkDevice device, + VkSwapchainKHR swapchain, + uint64_t presentId, + uint64_t timeout); +#endif + + +#define VK_KHR_uniform_buffer_standard_layout 1 +#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1 +#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout" +typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR; + + + +#define VK_KHR_buffer_device_address 1 +#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1 +#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address" +typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR; + +typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR; + +typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR; + +typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR; + +typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR; + +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); +typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); +typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); + +VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); + +VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR( + VkDevice device, + const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); +#endif + + +#define VK_KHR_deferred_host_operations 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR) +#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4 +#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations" +typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation); +typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator); +typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation); +typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR( + VkDevice device, + const VkAllocationCallbacks* pAllocator, + VkDeferredOperationKHR* pDeferredOperation); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR( + VkDevice device, + VkDeferredOperationKHR operation, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR( + VkDevice device, + VkDeferredOperationKHR operation); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR( + VkDevice device, + VkDeferredOperationKHR operation); + +VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR( + VkDevice device, + VkDeferredOperationKHR operation); +#endif + + +#define VK_KHR_pipeline_executable_properties 1 +#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1 +#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties" + +typedef enum VkPipelineExecutableStatisticFormatKHR { + 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 = 0x7FFFFFFF +} VkPipelineExecutableStatisticFormatKHR; +typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 pipelineExecutableInfo; +} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR; + +typedef struct VkPipelineInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipeline pipeline; +} VkPipelineInfoKHR; + +typedef struct VkPipelineExecutablePropertiesKHR { + VkStructureType sType; + void* pNext; + VkShaderStageFlags stages; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + uint32_t subgroupSize; +} VkPipelineExecutablePropertiesKHR; + +typedef struct VkPipelineExecutableInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipeline pipeline; + uint32_t executableIndex; +} VkPipelineExecutableInfoKHR; + +typedef union VkPipelineExecutableStatisticValueKHR { + VkBool32 b32; + int64_t i64; + uint64_t u64; + double f64; +} VkPipelineExecutableStatisticValueKHR; + +typedef struct VkPipelineExecutableStatisticKHR { + VkStructureType sType; + void* pNext; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkPipelineExecutableStatisticFormatKHR format; + VkPipelineExecutableStatisticValueKHR value; +} VkPipelineExecutableStatisticKHR; + +typedef struct VkPipelineExecutableInternalRepresentationKHR { + VkStructureType sType; + void* pNext; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkBool32 isText; + size_t dataSize; + void* pData; +} VkPipelineExecutableInternalRepresentationKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics); +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR( + VkDevice device, + const VkPipelineInfoKHR* pPipelineInfo, + uint32_t* pExecutableCount, + VkPipelineExecutablePropertiesKHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR( + VkDevice device, + const VkPipelineExecutableInfoKHR* pExecutableInfo, + uint32_t* pStatisticCount, + VkPipelineExecutableStatisticKHR* pStatistics); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR( + VkDevice device, + const VkPipelineExecutableInfoKHR* pExecutableInfo, + uint32_t* pInternalRepresentationCount, + VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); +#endif + + +#define VK_KHR_shader_integer_dot_product 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product" +typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR; + +typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR; + + + +#define VK_KHR_pipeline_library 1 +#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1 +#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library" +typedef struct VkPipelineLibraryCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t libraryCount; + const VkPipeline* pLibraries; +} VkPipelineLibraryCreateInfoKHR; + + + +#define VK_KHR_shader_non_semantic_info 1 +#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1 +#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info" + + +#define VK_KHR_present_id 1 +#define VK_KHR_PRESENT_ID_SPEC_VERSION 1 +#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id" +typedef struct VkPresentIdKHR { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const uint64_t* pPresentIds; +} VkPresentIdKHR; + +typedef struct VkPhysicalDevicePresentIdFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentId; +} VkPhysicalDevicePresentIdFeaturesKHR; + + + +#define VK_KHR_synchronization2 1 +#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1 +#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2" +typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR; + +typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR; + +typedef VkAccessFlags2 VkAccessFlags2KHR; + +typedef VkAccessFlagBits2 VkAccessFlagBits2KHR; + +typedef VkSubmitFlagBits VkSubmitFlagBitsKHR; + +typedef VkSubmitFlags VkSubmitFlagsKHR; + +typedef VkMemoryBarrier2 VkMemoryBarrier2KHR; + +typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR; + +typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR; + +typedef VkDependencyInfo VkDependencyInfoKHR; + +typedef VkSubmitInfo2 VkSubmitInfo2KHR; + +typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR; + +typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR; + +typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR; + +typedef struct VkQueueFamilyCheckpointProperties2NV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2 checkpointExecutionStageMask; +} VkQueueFamilyCheckpointProperties2NV; + +typedef struct VkCheckpointData2NV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2 stage; + void* pCheckpointMarker; +} VkCheckpointData2NV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask); +typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos); +typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence); +typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); +typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR( + VkCommandBuffer commandBuffer, + VkEvent event, + const VkDependencyInfo* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR( + VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags2 stageMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR( + VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent* pEvents, + const VkDependencyInfo* pDependencyInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR( + VkCommandBuffer commandBuffer, + const VkDependencyInfo* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2 stage, + VkQueryPool queryPool, + uint32_t query); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR( + VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo2* pSubmits, + VkFence fence); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2 stage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker); + +VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV( + VkQueue queue, + uint32_t* pCheckpointDataCount, + VkCheckpointData2NV* pCheckpointData); +#endif + + +#define VK_KHR_fragment_shader_barycentric 1 +#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 +#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric" +typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShaderBarycentric; +} VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR; + +typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 triStripVertexOrderIndependentOfProvokingVertex; +} VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR; + + + +#define VK_KHR_shader_subgroup_uniform_control_flow 1 +#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1 +#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow" +typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupUniformControlFlow; +} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR; + + + +#define VK_KHR_zero_initialize_workgroup_memory 1 +#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1 +#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory" +typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; + + + +#define VK_KHR_workgroup_memory_explicit_layout 1 +#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1 +#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout" +typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 workgroupMemoryExplicitLayout; + VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout; + VkBool32 workgroupMemoryExplicitLayout8BitAccess; + VkBool32 workgroupMemoryExplicitLayout16BitAccess; +} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; + + + +#define VK_KHR_copy_commands2 1 +#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1 +#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2" +typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR; + +typedef VkCopyImageInfo2 VkCopyImageInfo2KHR; + +typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR; + +typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR; + +typedef VkBlitImageInfo2 VkBlitImageInfo2KHR; + +typedef VkResolveImageInfo2 VkResolveImageInfo2KHR; + +typedef VkBufferCopy2 VkBufferCopy2KHR; + +typedef VkImageCopy2 VkImageCopy2KHR; + +typedef VkImageBlit2 VkImageBlit2KHR; + +typedef VkBufferImageCopy2 VkBufferImageCopy2KHR; + +typedef VkImageResolve2 VkImageResolve2KHR; + +typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR( + VkCommandBuffer commandBuffer, + const VkCopyBufferInfo2* pCopyBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR( + VkCommandBuffer commandBuffer, + const VkCopyImageInfo2* pCopyImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR( + VkCommandBuffer commandBuffer, + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR( + VkCommandBuffer commandBuffer, + const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR( + VkCommandBuffer commandBuffer, + const VkBlitImageInfo2* pBlitImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR( + VkCommandBuffer commandBuffer, + const VkResolveImageInfo2* pResolveImageInfo); +#endif + + +#define VK_KHR_format_feature_flags2 1 +#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2 +#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2" +typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR; + +typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR; + +typedef VkFormatProperties3 VkFormatProperties3KHR; + + + +#define VK_KHR_ray_tracing_maintenance1 1 +#define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1 +#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1" +typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 rayTracingMaintenance1; + VkBool32 rayTracingPipelineTraceRaysIndirect2; +} VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR; + +typedef struct VkTraceRaysIndirectCommand2KHR { + VkDeviceAddress raygenShaderRecordAddress; + VkDeviceSize raygenShaderRecordSize; + VkDeviceAddress missShaderBindingTableAddress; + VkDeviceSize missShaderBindingTableSize; + VkDeviceSize missShaderBindingTableStride; + VkDeviceAddress hitShaderBindingTableAddress; + VkDeviceSize hitShaderBindingTableSize; + VkDeviceSize hitShaderBindingTableStride; + VkDeviceAddress callableShaderBindingTableAddress; + VkDeviceSize callableShaderBindingTableSize; + VkDeviceSize callableShaderBindingTableStride; + uint32_t width; + uint32_t height; + uint32_t depth; +} VkTraceRaysIndirectCommand2KHR; + +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR( + VkCommandBuffer commandBuffer, + VkDeviceAddress indirectDeviceAddress); +#endif + + +#define VK_KHR_portability_enumeration 1 +#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1 +#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration" + + +#define VK_KHR_maintenance4 1 +#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2 +#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4" +typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR; + +typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR; + +typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR; + +typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR; + +typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR( + VkDevice device, + const VkDeviceBufferMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); +#endif + + +#define VK_EXT_debug_report 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) +#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10 +#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" + +typedef enum VkDebugReportObjectTypeEXT { + 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 = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDebugReportObjectTypeEXT; + +typedef enum VkDebugReportFlagBitsEXT { + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, + VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004, + VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008, + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010, + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDebugReportFlagBitsEXT; +typedef VkFlags VkDebugReportFlagsEXT; +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); + +typedef struct VkDebugReportCallbackCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDebugReportFlagsEXT flags; + PFN_vkDebugReportCallbackEXT pfnCallback; + void* pUserData; +} VkDebugReportCallbackCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); +typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator); +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); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT( + VkInstance instance, + const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDebugReportCallbackEXT* pCallback); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT( + VkInstance instance, + VkDebugReportCallbackEXT callback, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( + VkInstance instance, + VkDebugReportFlagsEXT flags, + VkDebugReportObjectTypeEXT objectType, + uint64_t object, + size_t location, + int32_t messageCode, + const char* pLayerPrefix, + const char* pMessage); +#endif + + +#define VK_NV_glsl_shader 1 +#define VK_NV_GLSL_SHADER_SPEC_VERSION 1 +#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader" + + +#define VK_EXT_depth_range_unrestricted 1 +#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 +#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted" + + +#define VK_IMG_filter_cubic 1 +#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1 +#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic" + + +#define VK_AMD_rasterization_order 1 +#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 +#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order" + +typedef enum VkRasterizationOrderAMD { + VK_RASTERIZATION_ORDER_STRICT_AMD = 0, + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF +} VkRasterizationOrderAMD; +typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { + VkStructureType sType; + const void* pNext; + VkRasterizationOrderAMD rasterizationOrder; +} VkPipelineRasterizationStateRasterizationOrderAMD; + + + +#define VK_AMD_shader_trinary_minmax 1 +#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1 +#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax" + + +#define VK_AMD_shader_explicit_vertex_parameter 1 +#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1 +#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter" + + +#define VK_EXT_debug_marker 1 +#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4 +#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker" +typedef struct VkDebugMarkerObjectNameInfoEXT { + VkStructureType sType; + const void* pNext; + VkDebugReportObjectTypeEXT objectType; + uint64_t object; + const char* pObjectName; +} VkDebugMarkerObjectNameInfoEXT; + +typedef struct VkDebugMarkerObjectTagInfoEXT { + VkStructureType sType; + const void* pNext; + VkDebugReportObjectTypeEXT objectType; + uint64_t object; + uint64_t tagName; + size_t tagSize; + const void* pTag; +} VkDebugMarkerObjectTagInfoEXT; + +typedef struct VkDebugMarkerMarkerInfoEXT { + VkStructureType sType; + const void* pNext; + const char* pMarkerName; + float color[4]; +} VkDebugMarkerMarkerInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); +typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer); +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT( + VkDevice device, + const VkDebugMarkerObjectTagInfoEXT* pTagInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT( + VkDevice device, + const VkDebugMarkerObjectNameInfoEXT* pNameInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT( + VkCommandBuffer commandBuffer, + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( + VkCommandBuffer commandBuffer); + +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( + VkCommandBuffer commandBuffer, + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); +#endif + + +#define VK_AMD_gcn_shader 1 +#define VK_AMD_GCN_SHADER_SPEC_VERSION 1 +#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader" + + +#define VK_NV_dedicated_allocation 1 +#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 +#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" +typedef struct VkDedicatedAllocationImageCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 dedicatedAllocation; +} VkDedicatedAllocationImageCreateInfoNV; + +typedef struct VkDedicatedAllocationBufferCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 dedicatedAllocation; +} VkDedicatedAllocationBufferCreateInfoNV; + +typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { + VkStructureType sType; + const void* pNext; + VkImage image; + VkBuffer buffer; +} VkDedicatedAllocationMemoryAllocateInfoNV; + + + +#define VK_EXT_transform_feedback 1 +#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 +#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" +typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; +typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 transformFeedback; + VkBool32 geometryStreams; +} VkPhysicalDeviceTransformFeedbackFeaturesEXT; + +typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxTransformFeedbackStreams; + uint32_t maxTransformFeedbackBuffers; + VkDeviceSize maxTransformFeedbackBufferSize; + uint32_t maxTransformFeedbackStreamDataSize; + uint32_t maxTransformFeedbackBufferDataSize; + uint32_t maxTransformFeedbackBufferDataStride; + VkBool32 transformFeedbackQueries; + VkBool32 transformFeedbackStreamsLinesTriangles; + VkBool32 transformFeedbackRasterizationStreamSelect; + VkBool32 transformFeedbackDraw; +} VkPhysicalDeviceTransformFeedbackPropertiesEXT; + +typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationStateStreamCreateFlagsEXT flags; + uint32_t rasterizationStream; +} VkPipelineRasterizationStateStreamCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes); +typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index); +typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + VkQueryControlFlags flags, + uint32_t index); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + uint32_t index); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( + VkCommandBuffer commandBuffer, + uint32_t instanceCount, + uint32_t firstInstance, + VkBuffer counterBuffer, + VkDeviceSize counterBufferOffset, + uint32_t counterOffset, + uint32_t vertexStride); +#endif + +/* +#define VK_NVX_binary_import 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX) +#define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1 +#define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import" +typedef struct VkCuModuleCreateInfoNVX { + VkStructureType sType; + const void* pNext; + size_t dataSize; + const void* pData; +} VkCuModuleCreateInfoNVX; + +typedef struct VkCuFunctionCreateInfoNVX { + VkStructureType sType; + const void* pNext; + VkCuModuleNVX module; + const char* pName; +} VkCuFunctionCreateInfoNVX; + +typedef struct VkCuLaunchInfoNVX { + VkStructureType sType; + const void* pNext; + VkCuFunctionNVX function; + uint32_t gridDimX; + uint32_t gridDimY; + uint32_t gridDimZ; + uint32_t blockDimX; + uint32_t blockDimY; + uint32_t blockDimZ; + uint32_t sharedMemBytes; + size_t paramCount; + const void* const * pParams; + size_t extraCount; + const void* const * pExtras; +} VkCuLaunchInfoNVX; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule); +typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction); +typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX( + VkDevice device, + const VkCuModuleCreateInfoNVX* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkCuModuleNVX* pModule); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX( + VkDevice device, + const VkCuFunctionCreateInfoNVX* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkCuFunctionNVX* pFunction); + +VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX( + VkDevice device, + VkCuModuleNVX module, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX( + VkDevice device, + VkCuFunctionNVX function, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX( + VkCommandBuffer commandBuffer, + const VkCuLaunchInfoNVX* pLaunchInfo); +#endif +*/ + +#define VK_NVX_image_view_handle 1 +#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2 +#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" +typedef struct VkImageViewHandleInfoNVX { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkDescriptorType descriptorType; + VkSampler sampler; +} VkImageViewHandleInfoNVX; + +typedef struct VkImageViewAddressPropertiesNVX { + VkStructureType sType; + void* pNext; + VkDeviceAddress deviceAddress; + VkDeviceSize size; +} VkImageViewAddressPropertiesNVX; + +typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX( + VkDevice device, + const VkImageViewHandleInfoNVX* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX( + VkDevice device, + VkImageView imageView, + VkImageViewAddressPropertiesNVX* pProperties); +#endif + + +#define VK_AMD_draw_indirect_count 1 +#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2 +#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif + + +#define VK_AMD_negative_viewport_height 1 +#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 +#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" + + +#define VK_AMD_gpu_shader_half_float 1 +#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2 +#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" + + +#define VK_AMD_shader_ballot 1 +#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1 +#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot" + + +#define VK_AMD_texture_gather_bias_lod 1 +#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 +#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" +typedef struct VkTextureLODGatherFormatPropertiesAMD { + VkStructureType sType; + void* pNext; + VkBool32 supportsTextureGatherLODBiasAMD; +} VkTextureLODGatherFormatPropertiesAMD; + + + +#define VK_AMD_shader_info 1 +#define VK_AMD_SHADER_INFO_SPEC_VERSION 1 +#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" + +typedef enum VkShaderInfoTypeAMD { + 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 = 0x7FFFFFFF +} VkShaderInfoTypeAMD; +typedef struct VkShaderResourceUsageAMD { + uint32_t numUsedVgprs; + uint32_t numUsedSgprs; + uint32_t ldsSizePerLocalWorkGroup; + size_t ldsUsageSizeInBytes; + size_t scratchMemUsageInBytes; +} VkShaderResourceUsageAMD; + +typedef struct VkShaderStatisticsInfoAMD { + VkShaderStageFlags shaderStageMask; + VkShaderResourceUsageAMD resourceUsage; + uint32_t numPhysicalVgprs; + uint32_t numPhysicalSgprs; + uint32_t numAvailableVgprs; + uint32_t numAvailableSgprs; + uint32_t computeWorkGroupSize[3]; +} VkShaderStatisticsInfoAMD; + +typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( + VkDevice device, + VkPipeline pipeline, + VkShaderStageFlagBits shaderStage, + VkShaderInfoTypeAMD infoType, + size_t* pInfoSize, + void* pInfo); +#endif + + +#define VK_AMD_shader_image_load_store_lod 1 +#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 +#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" + + +#define VK_NV_corner_sampled_image 1 +#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2 +#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image" +typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 cornerSampledImage; +} VkPhysicalDeviceCornerSampledImageFeaturesNV; + + + +#define VK_IMG_format_pvrtc 1 +#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 +#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" + + +#define VK_NV_external_memory_capabilities 1 +#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 +#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" + +typedef enum VkExternalMemoryHandleTypeFlagBitsNV { + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkExternalMemoryHandleTypeFlagBitsNV; +typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; + +typedef enum VkExternalMemoryFeatureFlagBitsNV { + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001, + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002, + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004, + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkExternalMemoryFeatureFlagBitsNV; +typedef VkFlags VkExternalMemoryFeatureFlagsNV; +typedef struct VkExternalImageFormatPropertiesNV { + VkImageFormatProperties imageFormatProperties; + VkExternalMemoryFeatureFlagsNV externalMemoryFeatures; + VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes; + VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes; +} VkExternalImageFormatPropertiesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV( + VkPhysicalDevice physicalDevice, + VkFormat format, + VkImageType type, + VkImageTiling tiling, + VkImageUsageFlags usage, + VkImageCreateFlags flags, + VkExternalMemoryHandleTypeFlagsNV externalHandleType, + VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); +#endif + + +#define VK_NV_external_memory 1 +#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 +#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" +typedef struct VkExternalMemoryImageCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagsNV handleTypes; +} VkExternalMemoryImageCreateInfoNV; + +typedef struct VkExportMemoryAllocateInfoNV { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagsNV handleTypes; +} VkExportMemoryAllocateInfoNV; + + + +#define VK_EXT_validation_flags 1 +#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2 +#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" + +typedef enum VkValidationCheckEXT { + VK_VALIDATION_CHECK_ALL_EXT = 0, + VK_VALIDATION_CHECK_SHADERS_EXT = 1, + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationCheckEXT; +typedef struct VkValidationFlagsEXT { + VkStructureType sType; + const void* pNext; + uint32_t disabledValidationCheckCount; + const VkValidationCheckEXT* pDisabledValidationChecks; +} VkValidationFlagsEXT; + + + +#define VK_EXT_shader_subgroup_ballot 1 +#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1 +#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot" + + +#define VK_EXT_shader_subgroup_vote 1 +#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1 +#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" + + +#define VK_EXT_texture_compression_astc_hdr 1 +#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1 +#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr" +typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; + + + +#define VK_EXT_astc_decode_mode 1 +#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1 +#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode" +typedef struct VkImageViewASTCDecodeModeEXT { + VkStructureType sType; + const void* pNext; + VkFormat decodeMode; +} VkImageViewASTCDecodeModeEXT; + +typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 decodeModeSharedExponent; +} VkPhysicalDeviceASTCDecodeFeaturesEXT; + + + +#define VK_EXT_pipeline_robustness 1 +#define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness" + +typedef enum VkPipelineRobustnessBufferBehaviorEXT { + 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 = 0x7FFFFFFF +} VkPipelineRobustnessBufferBehaviorEXT; + +typedef enum VkPipelineRobustnessImageBehaviorEXT { + 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 = 0x7FFFFFFF +} VkPipelineRobustnessImageBehaviorEXT; +typedef struct VkPhysicalDevicePipelineRobustnessFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pipelineRobustness; +} VkPhysicalDevicePipelineRobustnessFeaturesEXT; + +typedef struct VkPhysicalDevicePipelineRobustnessPropertiesEXT { + VkStructureType sType; + void* pNext; + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers; + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers; + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs; + VkPipelineRobustnessImageBehaviorEXT defaultRobustnessImages; +} VkPhysicalDevicePipelineRobustnessPropertiesEXT; + +typedef struct VkPipelineRobustnessCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRobustnessBufferBehaviorEXT storageBuffers; + VkPipelineRobustnessBufferBehaviorEXT uniformBuffers; + VkPipelineRobustnessBufferBehaviorEXT vertexInputs; + VkPipelineRobustnessImageBehaviorEXT images; +} VkPipelineRobustnessCreateInfoEXT; + + + +#define VK_EXT_conditional_rendering 1 +#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2 +#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" + +typedef enum VkConditionalRenderingFlagBitsEXT { + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkConditionalRenderingFlagBitsEXT; +typedef VkFlags VkConditionalRenderingFlagsEXT; +typedef struct VkConditionalRenderingBeginInfoEXT { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; + VkDeviceSize offset; + VkConditionalRenderingFlagsEXT flags; +} VkConditionalRenderingBeginInfoEXT; + +typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 conditionalRendering; + VkBool32 inheritedConditionalRendering; +} VkPhysicalDeviceConditionalRenderingFeaturesEXT; + +typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 conditionalRenderingEnable; +} VkCommandBufferInheritanceConditionalRenderingInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); +typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT( + VkCommandBuffer commandBuffer, + const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( + VkCommandBuffer commandBuffer); +#endif + + +#define VK_NV_clip_space_w_scaling 1 +#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 +#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" +typedef struct VkViewportWScalingNV { + float xcoeff; + float ycoeff; +} VkViewportWScalingNV; + +typedef struct VkPipelineViewportWScalingStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 viewportWScalingEnable; + uint32_t viewportCount; + const VkViewportWScalingNV* pViewportWScalings; +} VkPipelineViewportWScalingStateCreateInfoNV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV( + VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkViewportWScalingNV* pViewportWScalings); +#endif + + +#define VK_EXT_direct_mode_display 1 +#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 +#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" +typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display); +#endif + + +#define VK_EXT_display_surface_counter 1 +#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 +#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" + +typedef enum VkSurfaceCounterFlagBitsEXT { + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001, + VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT, + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkSurfaceCounterFlagBitsEXT; +typedef VkFlags VkSurfaceCounterFlagsEXT; +typedef struct VkSurfaceCapabilities2EXT { + VkStructureType sType; + void* pNext; + uint32_t minImageCount; + uint32_t maxImageCount; + VkExtent2D currentExtent; + VkExtent2D minImageExtent; + VkExtent2D maxImageExtent; + uint32_t maxImageArrayLayers; + VkSurfaceTransformFlagsKHR supportedTransforms; + VkSurfaceTransformFlagBitsKHR currentTransform; + VkCompositeAlphaFlagsKHR supportedCompositeAlpha; + VkImageUsageFlags supportedUsageFlags; + VkSurfaceCounterFlagsEXT supportedSurfaceCounters; +} VkSurfaceCapabilities2EXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + VkSurfaceCapabilities2EXT* pSurfaceCapabilities); +#endif + + +#define VK_EXT_display_control 1 +#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 +#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control" + +typedef enum VkDisplayPowerStateEXT { + 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 = 0x7FFFFFFF +} VkDisplayPowerStateEXT; + +typedef enum VkDeviceEventTypeEXT { + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceEventTypeEXT; + +typedef enum VkDisplayEventTypeEXT { + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDisplayEventTypeEXT; +typedef struct VkDisplayPowerInfoEXT { + VkStructureType sType; + const void* pNext; + VkDisplayPowerStateEXT powerState; +} VkDisplayPowerInfoEXT; + +typedef struct VkDeviceEventInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceEventTypeEXT deviceEvent; +} VkDeviceEventInfoEXT; + +typedef struct VkDisplayEventInfoEXT { + VkStructureType sType; + const void* pNext; + VkDisplayEventTypeEXT displayEvent; +} VkDisplayEventInfoEXT; + +typedef struct VkSwapchainCounterCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkSurfaceCounterFlagsEXT surfaceCounters; +} VkSwapchainCounterCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); +typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); +typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT( + VkDevice device, + VkDisplayKHR display, + const VkDisplayPowerInfoEXT* pDisplayPowerInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT( + VkDevice device, + const VkDeviceEventInfoEXT* pDeviceEventInfo, + const VkAllocationCallbacks* pAllocator, + VkFence* pFence); + +VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT( + VkDevice device, + VkDisplayKHR display, + const VkDisplayEventInfoEXT* pDisplayEventInfo, + const VkAllocationCallbacks* pAllocator, + VkFence* pFence); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( + VkDevice device, + VkSwapchainKHR swapchain, + VkSurfaceCounterFlagBitsEXT counter, + uint64_t* pCounterValue); +#endif + + +#define VK_GOOGLE_display_timing 1 +#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 +#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" +typedef struct VkRefreshCycleDurationGOOGLE { + uint64_t refreshDuration; +} VkRefreshCycleDurationGOOGLE; + +typedef struct VkPastPresentationTimingGOOGLE { + uint32_t presentID; + uint64_t desiredPresentTime; + uint64_t actualPresentTime; + uint64_t earliestPresentTime; + uint64_t presentMargin; +} VkPastPresentationTimingGOOGLE; + +typedef struct VkPresentTimeGOOGLE { + uint32_t presentID; + uint64_t desiredPresentTime; +} VkPresentTimeGOOGLE; + +typedef struct VkPresentTimesInfoGOOGLE { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const VkPresentTimeGOOGLE* pTimes; +} VkPresentTimesInfoGOOGLE; + +typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE( + VkDevice device, + VkSwapchainKHR swapchain, + VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( + VkDevice device, + VkSwapchainKHR swapchain, + uint32_t* pPresentationTimingCount, + VkPastPresentationTimingGOOGLE* pPresentationTimings); +#endif + + +#define VK_NV_sample_mask_override_coverage 1 +#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 +#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" + + +#define VK_NV_geometry_shader_passthrough 1 +#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1 +#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough" + + +#define VK_NV_viewport_array2 1 +#define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1 +#define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2" +#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION +#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME + + +#define VK_NVX_multiview_per_view_attributes 1 +#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 +#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" +typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { + VkStructureType sType; + void* pNext; + VkBool32 perViewPositionAllComponents; +} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; + + + +#define VK_NV_viewport_swizzle 1 +#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 +#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" + +typedef enum VkViewportCoordinateSwizzleNV { + 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 = 0x7FFFFFFF +} VkViewportCoordinateSwizzleNV; +typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; +typedef struct VkViewportSwizzleNV { + VkViewportCoordinateSwizzleNV x; + VkViewportCoordinateSwizzleNV y; + VkViewportCoordinateSwizzleNV z; + VkViewportCoordinateSwizzleNV w; +} VkViewportSwizzleNV; + +typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineViewportSwizzleStateCreateFlagsNV flags; + uint32_t viewportCount; + const VkViewportSwizzleNV* pViewportSwizzles; +} VkPipelineViewportSwizzleStateCreateInfoNV; + + + +#define VK_EXT_discard_rectangles 1 +#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 +#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" + +typedef enum VkDiscardRectangleModeEXT { + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDiscardRectangleModeEXT; +typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; +typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxDiscardRectangles; +} VkPhysicalDeviceDiscardRectanglePropertiesEXT; + +typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineDiscardRectangleStateCreateFlagsEXT flags; + VkDiscardRectangleModeEXT discardRectangleMode; + uint32_t discardRectangleCount; + const VkRect2D* pDiscardRectangles; +} VkPipelineDiscardRectangleStateCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( + VkCommandBuffer commandBuffer, + uint32_t firstDiscardRectangle, + uint32_t discardRectangleCount, + const VkRect2D* pDiscardRectangles); +#endif + + +#define VK_EXT_conservative_rasterization 1 +#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 +#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" + +typedef enum VkConservativeRasterizationModeEXT { + 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 = 0x7FFFFFFF +} VkConservativeRasterizationModeEXT; +typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; +typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { + VkStructureType sType; + void* pNext; + float primitiveOverestimationSize; + float maxExtraPrimitiveOverestimationSize; + float extraPrimitiveOverestimationSizeGranularity; + VkBool32 primitiveUnderestimation; + VkBool32 conservativePointAndLineRasterization; + VkBool32 degenerateTrianglesRasterized; + VkBool32 degenerateLinesRasterized; + VkBool32 fullyCoveredFragmentShaderInputVariable; + VkBool32 conservativeRasterizationPostDepthCoverage; +} VkPhysicalDeviceConservativeRasterizationPropertiesEXT; + +typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationConservativeStateCreateFlagsEXT flags; + VkConservativeRasterizationModeEXT conservativeRasterizationMode; + float extraPrimitiveOverestimationSize; +} VkPipelineRasterizationConservativeStateCreateInfoEXT; + + + +#define VK_EXT_depth_clip_enable 1 +#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1 +#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable" +typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT; +typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 depthClipEnable; +} VkPhysicalDeviceDepthClipEnableFeaturesEXT; + +typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags; + VkBool32 depthClipEnable; +} VkPipelineRasterizationDepthClipStateCreateInfoEXT; -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR( - VkPhysicalDevice physicalDevice, - VkDisplayKHR display, - uint32_t* pPropertyCount, - VkDisplayModePropertiesKHR* pProperties); -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR( - VkPhysicalDevice physicalDevice, - VkDisplayKHR display, - const VkDisplayModeCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDisplayModeKHR* pMode); -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR( - VkPhysicalDevice physicalDevice, - VkDisplayModeKHR mode, - uint32_t planeIndex, - VkDisplayPlaneCapabilitiesKHR* pCapabilities); +#define VK_EXT_swapchain_colorspace 1 +#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4 +#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( - VkInstance instance, - const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); -#endif -#define VK_KHR_display_swapchain 1 -#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9 -#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" +#define VK_EXT_hdr_metadata 1 +#define VK_EXT_HDR_METADATA_SPEC_VERSION 2 +#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" +typedef struct VkXYColorEXT { + float x; + float y; +} VkXYColorEXT; -typedef struct VkDisplayPresentInfoKHR { +typedef struct VkHdrMetadataEXT { VkStructureType sType; const void* pNext; - VkRect2D srcRect; - VkRect2D dstRect; - VkBool32 persistent; -} VkDisplayPresentInfoKHR; - + VkXYColorEXT displayPrimaryRed; + VkXYColorEXT displayPrimaryGreen; + VkXYColorEXT displayPrimaryBlue; + VkXYColorEXT whitePoint; + float maxLuminance; + float minLuminance; + float maxContentLightLevel; + float maxFrameAverageLightLevel; +} VkHdrMetadataEXT; -typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); +typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( +VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, - const VkSwapchainCreateInfoKHR* pCreateInfos, - const VkAllocationCallbacks* pAllocator, - VkSwapchainKHR* pSwapchains); + const VkSwapchainKHR* pSwapchains, + const VkHdrMetadataEXT* pMetadata); #endif -#define VK_KHR_sampler_mirror_clamp_to_edge 1 -#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1 -#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" +#define VK_EXT_external_memory_dma_buf 1 +#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 +#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" -#define VK_KHR_multiview 1 -#define VK_KHR_MULTIVIEW_SPEC_VERSION 1 -#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" -typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; +#define VK_EXT_queue_family_foreign 1 +#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 +#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" +#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U) -typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; -typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR; +#define VK_EXT_debug_utils 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) +#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2 +#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" +typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; +typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT { + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDebugUtilsMessageSeverityFlagBitsEXT; +typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001, + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002, + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004, + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008, + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDebugUtilsMessageTypeFlagBitsEXT; +typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; +typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; +typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; +typedef struct VkDebugUtilsLabelEXT { + VkStructureType sType; + const void* pNext; + const char* pLabelName; + float color[4]; +} VkDebugUtilsLabelEXT; -#define VK_KHR_get_physical_device_properties2 1 -#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1 -#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" +typedef struct VkDebugUtilsObjectNameInfoEXT { + VkStructureType sType; + const void* pNext; + VkObjectType objectType; + uint64_t objectHandle; + const char* pObjectName; +} VkDebugUtilsObjectNameInfoEXT; -typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; +typedef struct VkDebugUtilsMessengerCallbackDataEXT { + VkStructureType sType; + const void* pNext; + VkDebugUtilsMessengerCallbackDataFlagsEXT flags; + const char* pMessageIdName; + int32_t messageIdNumber; + const char* pMessage; + uint32_t queueLabelCount; + const VkDebugUtilsLabelEXT* pQueueLabels; + uint32_t cmdBufLabelCount; + const VkDebugUtilsLabelEXT* pCmdBufLabels; + uint32_t objectCount; + const VkDebugUtilsObjectNameInfoEXT* pObjects; +} VkDebugUtilsMessengerCallbackDataEXT; -typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; +typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, + void* pUserData); -typedef VkFormatProperties2 VkFormatProperties2KHR; +typedef struct VkDebugUtilsMessengerCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDebugUtilsMessengerCreateFlagsEXT flags; + VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; + VkDebugUtilsMessageTypeFlagsEXT messageType; + PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; + void* pUserData; +} VkDebugUtilsMessengerCreateInfoEXT; -typedef VkImageFormatProperties2 VkImageFormatProperties2KHR; +typedef struct VkDebugUtilsObjectTagInfoEXT { + VkStructureType sType; + const void* pNext; + VkObjectType objectType; + uint64_t objectHandle; + uint64_t tagName; + size_t tagSize; + const void* pTag; +} VkDebugUtilsObjectTagInfoEXT; -typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; +typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo); +typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo); +typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); +typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue); +typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer); +typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger); +typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); -typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT( + VkDevice device, + const VkDebugUtilsObjectNameInfoEXT* pNameInfo); -typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; +VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT( + VkDevice device, + const VkDebugUtilsObjectTagInfoEXT* pTagInfo); -typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; +VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT( + VkQueue queue, + const VkDebugUtilsLabelEXT* pLabelInfo); -typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; +VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT( + VkQueue queue); +VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT( + VkQueue queue, + const VkDebugUtilsLabelEXT* pLabelInfo); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); +VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT( + VkCommandBuffer commandBuffer, + const VkDebugUtilsLabelEXT* pLabelInfo); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceFeatures2* pFeatures); +VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT( + VkCommandBuffer commandBuffer); -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceProperties2* pProperties); +VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT( + VkCommandBuffer commandBuffer, + const VkDebugUtilsLabelEXT* pLabelInfo); -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR( - VkPhysicalDevice physicalDevice, - VkFormat format, - VkFormatProperties2* pFormatProperties); +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT( + VkInstance instance, + const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDebugUtilsMessengerEXT* pMessenger); -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, - VkImageFormatProperties2* pImageFormatProperties); +VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT( + VkInstance instance, + VkDebugUtilsMessengerEXT messenger, + const VkAllocationCallbacks* pAllocator); -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR( - VkPhysicalDevice physicalDevice, - uint32_t* pQueueFamilyPropertyCount, - VkQueueFamilyProperties2* pQueueFamilyProperties); +VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( + VkInstance instance, + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); +#endif -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceMemoryProperties2* pMemoryProperties); -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, - uint32_t* pPropertyCount, - VkSparseImageFormatProperties2* pProperties); -#endif +#define VK_EXT_sampler_filter_minmax 1 +#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2 +#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" +typedef VkSamplerReductionMode VkSamplerReductionModeEXT; -#define VK_KHR_device_group 1 -#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3 -#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" +typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT; -typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; +typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; -typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR; -typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR; -typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR; +#define VK_AMD_gpu_shader_int16 1 +#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2 +#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" -typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; +#define VK_AMD_mixed_attachment_samples 1 +#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 +#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" -typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; -typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR; +#define VK_AMD_shader_fragment_mask 1 +#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1 +#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" -typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR; -typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR; +#define VK_EXT_inline_uniform_block 1 +#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1 +#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block" +typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT; + +typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT; + +typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT; + +typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT; -typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; -typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; +#define VK_EXT_shader_stencil_export 1 +#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 +#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" -typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); -typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask); -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); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR( - VkDevice device, - uint32_t heapIndex, - uint32_t localDeviceIndex, - uint32_t remoteDeviceIndex, - VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); +#define VK_EXT_sample_locations 1 +#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 +#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" +typedef struct VkSampleLocationEXT { + float x; + float y; +} VkSampleLocationEXT; -VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR( - VkCommandBuffer commandBuffer, - uint32_t deviceMask); +typedef struct VkSampleLocationsInfoEXT { + VkStructureType sType; + const void* pNext; + VkSampleCountFlagBits sampleLocationsPerPixel; + VkExtent2D sampleLocationGridSize; + uint32_t sampleLocationsCount; + const VkSampleLocationEXT* pSampleLocations; +} VkSampleLocationsInfoEXT; -VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( - VkCommandBuffer commandBuffer, - uint32_t baseGroupX, - uint32_t baseGroupY, - uint32_t baseGroupZ, - uint32_t groupCountX, - uint32_t groupCountY, - uint32_t groupCountZ); -#endif +typedef struct VkAttachmentSampleLocationsEXT { + uint32_t attachmentIndex; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkAttachmentSampleLocationsEXT; -#define VK_KHR_shader_draw_parameters 1 -#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 -#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" +typedef struct VkSubpassSampleLocationsEXT { + uint32_t subpassIndex; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkSubpassSampleLocationsEXT; +typedef struct VkRenderPassSampleLocationsBeginInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t attachmentInitialSampleLocationsCount; + const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations; + uint32_t postSubpassSampleLocationsCount; + const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations; +} VkRenderPassSampleLocationsBeginInfoEXT; -#define VK_KHR_maintenance1 1 -#define VK_KHR_MAINTENANCE1_SPEC_VERSION 2 -#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" +typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 sampleLocationsEnable; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkPipelineSampleLocationsStateCreateInfoEXT; -typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; +typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { + VkStructureType sType; + void* pNext; + VkSampleCountFlags sampleLocationSampleCounts; + VkExtent2D maxSampleLocationGridSize; + float sampleLocationCoordinateRange[2]; + uint32_t sampleLocationSubPixelBits; + VkBool32 variableSampleLocations; +} VkPhysicalDeviceSampleLocationsPropertiesEXT; +typedef struct VkMultisamplePropertiesEXT { + VkStructureType sType; + void* pNext; + VkExtent2D maxSampleLocationGridSize; +} VkMultisamplePropertiesEXT; -typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); +typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( - VkDevice device, - VkCommandPool commandPool, - VkCommandPoolTrimFlags flags); -#endif - -#define VK_KHR_device_group_creation 1 -#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 -#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" -#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE +VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( + VkCommandBuffer commandBuffer, + const VkSampleLocationsInfoEXT* pSampleLocationsInfo); -typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR; +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( + VkPhysicalDevice physicalDevice, + VkSampleCountFlagBits samples, + VkMultisamplePropertiesEXT* pMultisampleProperties); +#endif -typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; +#define VK_EXT_blend_operation_advanced 1 +#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 +#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" -typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); +typedef enum VkBlendOverlapEXT { + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, + VK_BLEND_OVERLAP_DISJOINT_EXT = 1, + VK_BLEND_OVERLAP_CONJOINT_EXT = 2, + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF +} VkBlendOverlapEXT; +typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 advancedBlendCoherentOperations; +} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR( - VkInstance instance, - uint32_t* pPhysicalDeviceGroupCount, - VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); -#endif +typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t advancedBlendMaxColorAttachments; + VkBool32 advancedBlendIndependentBlend; + VkBool32 advancedBlendNonPremultipliedSrcColor; + VkBool32 advancedBlendNonPremultipliedDstColor; + VkBool32 advancedBlendCorrelatedOverlap; + VkBool32 advancedBlendAllOperations; +} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; -#define VK_KHR_external_memory_capabilities 1 -#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" -#define VK_LUID_SIZE_KHR VK_LUID_SIZE +typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 srcPremultiplied; + VkBool32 dstPremultiplied; + VkBlendOverlapEXT blendOverlap; +} VkPipelineColorBlendAdvancedStateCreateInfoEXT; -typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR; -typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR; -typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR; +#define VK_NV_fragment_coverage_to_color 1 +#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 +#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" +typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; +typedef struct VkPipelineCoverageToColorStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageToColorStateCreateFlagsNV flags; + VkBool32 coverageToColorEnable; + uint32_t coverageToColorLocation; +} VkPipelineCoverageToColorStateCreateInfoNV; -typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR; -typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; +#define VK_NV_framebuffer_mixed_samples 1 +#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 +#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" -typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; +typedef enum VkCoverageModulationModeNV { + 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 = 0x7FFFFFFF +} VkCoverageModulationModeNV; +typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; +typedef struct VkPipelineCoverageModulationStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageModulationStateCreateFlagsNV flags; + VkCoverageModulationModeNV coverageModulationMode; + VkBool32 coverageModulationTableEnable; + uint32_t coverageModulationTableCount; + const float* pCoverageModulationTable; +} VkPipelineCoverageModulationStateCreateInfoNV; -typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; -typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR; -typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; +#define VK_NV_fill_rectangle 1 +#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1 +#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" -typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; +#define VK_NV_shader_sm_builtins 1 +#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1 +#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins" +typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t shaderSMCount; + uint32_t shaderWarpsPerSM; +} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV; -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); +typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 shaderSMBuiltins; +} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, - VkExternalBufferProperties* pExternalBufferProperties); -#endif -#define VK_KHR_external_memory 1 -#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" -#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL -typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR; +#define VK_EXT_post_depth_coverage 1 +#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 +#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" -typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR; -typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; +#define VK_EXT_image_drm_format_modifier 1 +#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2 +#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" +typedef struct VkDrmFormatModifierPropertiesEXT { + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + VkFormatFeatureFlags drmFormatModifierTilingFeatures; +} VkDrmFormatModifierPropertiesEXT; +typedef struct VkDrmFormatModifierPropertiesListEXT { + VkStructureType sType; + void* pNext; + uint32_t drmFormatModifierCount; + VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties; +} VkDrmFormatModifierPropertiesListEXT; +typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT { + VkStructureType sType; + const void* pNext; + uint64_t drmFormatModifier; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t* pQueueFamilyIndices; +} VkPhysicalDeviceImageDrmFormatModifierInfoEXT; -#define VK_KHR_external_memory_fd 1 -#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" +typedef struct VkImageDrmFormatModifierListCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t drmFormatModifierCount; + const uint64_t* pDrmFormatModifiers; +} VkImageDrmFormatModifierListCreateInfoEXT; -typedef struct VkImportMemoryFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagBits handleType; - int fd; -} VkImportMemoryFdInfoKHR; +typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + const VkSubresourceLayout* pPlaneLayouts; +} VkImageDrmFormatModifierExplicitCreateInfoEXT; -typedef struct VkMemoryFdPropertiesKHR { +typedef struct VkImageDrmFormatModifierPropertiesEXT { VkStructureType sType; void* pNext; - uint32_t memoryTypeBits; -} VkMemoryFdPropertiesKHR; + uint64_t drmFormatModifier; +} VkImageDrmFormatModifierPropertiesEXT; -typedef struct VkMemoryGetFdInfoKHR { +typedef struct VkDrmFormatModifierProperties2EXT { + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + VkFormatFeatureFlags2 drmFormatModifierTilingFeatures; +} VkDrmFormatModifierProperties2EXT; + +typedef struct VkDrmFormatModifierPropertiesList2EXT { VkStructureType sType; - const void* pNext; - VkDeviceMemory memory; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkMemoryGetFdInfoKHR; + void* pNext; + uint32_t drmFormatModifierCount; + VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties; +} VkDrmFormatModifierPropertiesList2EXT; +typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( + VkDevice device, + VkImage image, + VkImageDrmFormatModifierPropertiesEXT* pProperties); +#endif + + +#define VK_EXT_validation_cache 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) +#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 +#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" + +typedef enum VkValidationCacheHeaderVersionEXT { + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationCacheHeaderVersionEXT; +typedef VkFlags VkValidationCacheCreateFlagsEXT; +typedef struct VkValidationCacheCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkValidationCacheCreateFlagsEXT flags; + size_t initialDataSize; + const void* pInitialData; +} VkValidationCacheCreateInfoEXT; + +typedef struct VkShaderModuleValidationCacheCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkValidationCacheEXT validationCache; +} VkShaderModuleValidationCacheCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache); +typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches); +typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR( +VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT( VkDevice device, - const VkMemoryGetFdInfoKHR* pGetFdInfo, - int* pFd); + const VkValidationCacheCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkValidationCacheEXT* pValidationCache); -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( +VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT( VkDevice device, - VkExternalMemoryHandleTypeFlagBits handleType, - int fd, - VkMemoryFdPropertiesKHR* pMemoryFdProperties); -#endif + VkValidationCacheEXT validationCache, + const VkAllocationCallbacks* pAllocator); -#define VK_KHR_external_semaphore_capabilities 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" +VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT( + VkDevice device, + VkValidationCacheEXT dstCache, + uint32_t srcCacheCount, + const VkValidationCacheEXT* pSrcCaches); -typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR; +VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( + VkDevice device, + VkValidationCacheEXT validationCache, + size_t* pDataSize, + void* pData); +#endif -typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR; -typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR; +#define VK_EXT_descriptor_indexing 1 +#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2 +#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing" +typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT; -typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR; +typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT; +typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT; -typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR; +typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT; -typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR; +typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT; +typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT; -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); +typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, - VkExternalSemaphoreProperties* pExternalSemaphoreProperties); -#endif -#define VK_KHR_external_semaphore 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" -typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR; +#define VK_EXT_shader_viewport_index_layer 1 +#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1 +#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" -typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR; +#define VK_NV_shading_rate_image 1 +#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3 +#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image" -typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; +typedef enum VkShadingRatePaletteEntryNV { + 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 = 0x7FFFFFFF +} VkShadingRatePaletteEntryNV; + +typedef enum VkCoarseSampleOrderTypeNV { + 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 = 0x7FFFFFFF +} VkCoarseSampleOrderTypeNV; +typedef struct VkShadingRatePaletteNV { + uint32_t shadingRatePaletteEntryCount; + const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries; +} VkShadingRatePaletteNV; +typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 shadingRateImageEnable; + uint32_t viewportCount; + const VkShadingRatePaletteNV* pShadingRatePalettes; +} VkPipelineViewportShadingRateImageStateCreateInfoNV; +typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 shadingRateImage; + VkBool32 shadingRateCoarseSampleOrder; +} VkPhysicalDeviceShadingRateImageFeaturesNV; -#define VK_KHR_external_semaphore_fd 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" +typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { + VkStructureType sType; + void* pNext; + VkExtent2D shadingRateTexelSize; + uint32_t shadingRatePaletteSize; + uint32_t shadingRateMaxCoarseSamples; +} VkPhysicalDeviceShadingRateImagePropertiesNV; -typedef struct VkImportSemaphoreFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkSemaphore semaphore; - VkSemaphoreImportFlags flags; - VkExternalSemaphoreHandleTypeFlagBits handleType; - int fd; -} VkImportSemaphoreFdInfoKHR; +typedef struct VkCoarseSampleLocationNV { + uint32_t pixelX; + uint32_t pixelY; + uint32_t sample; +} VkCoarseSampleLocationNV; -typedef struct VkSemaphoreGetFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkSemaphore semaphore; - VkExternalSemaphoreHandleTypeFlagBits handleType; -} VkSemaphoreGetFdInfoKHR; +typedef struct VkCoarseSampleOrderCustomNV { + VkShadingRatePaletteEntryNV shadingRate; + uint32_t sampleCount; + uint32_t sampleLocationCount; + const VkCoarseSampleLocationNV* pSampleLocations; +} VkCoarseSampleOrderCustomNV; +typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkCoarseSampleOrderTypeNV sampleOrderType; + uint32_t customSampleOrderCount; + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders; +} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; -typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); +typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR( - VkDevice device, - const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); +VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV( + VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout); -VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( - VkDevice device, - const VkSemaphoreGetFdInfoKHR* pGetFdInfo, - int* pFd); +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV( + VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkShadingRatePaletteNV* pShadingRatePalettes); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV( + VkCommandBuffer commandBuffer, + VkCoarseSampleOrderTypeNV sampleOrderType, + uint32_t customSampleOrderCount, + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); #endif -#define VK_KHR_push_descriptor 1 -#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2 -#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" +// ray tracing not working on mac.. +#ifdef GO_INCLUDE_NV_ray_tracing + +#define VK_NV_ray_tracing 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) +#define VK_NV_RAY_TRACING_SPEC_VERSION 3 +#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing" +#define VK_SHADER_UNUSED_KHR (~0U) +#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR + +typedef enum VkRayTracingShaderGroupTypeKHR { + 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 = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR, + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR, + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkRayTracingShaderGroupTypeKHR; +typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV; + + +typedef enum VkGeometryTypeKHR { + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0, + VK_GEOMETRY_TYPE_AABBS_KHR = 1, + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2, + VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR, + VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR, + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkGeometryTypeKHR; +typedef VkGeometryTypeKHR VkGeometryTypeNV; + + +typedef enum VkAccelerationStructureTypeKHR { + 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 = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureTypeKHR; +typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV; + + +typedef enum VkCopyAccelerationStructureModeKHR { + 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 = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR, + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkCopyAccelerationStructureModeKHR; +typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV; + + +typedef enum VkAccelerationStructureMemoryRequirementsTypeNV { + 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 = 0x7FFFFFFF +} VkAccelerationStructureMemoryRequirementsTypeNV; + +typedef enum VkGeometryFlagBitsKHR { + VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001, + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002, + VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR, + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR, + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkGeometryFlagBitsKHR; +typedef VkFlags VkGeometryFlagsKHR; +typedef VkGeometryFlagsKHR VkGeometryFlagsNV; + +typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV; + + +typedef enum VkGeometryInstanceFlagBitsKHR { + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001, + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002, + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004, + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008, + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010, + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020, + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR, + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR, + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkGeometryInstanceFlagBitsKHR; +typedef VkFlags VkGeometryInstanceFlagsKHR; +typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV; + +typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV; + + +typedef enum VkBuildAccelerationStructureFlagBitsKHR { + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008, + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010, + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkBuildAccelerationStructureFlagBitsKHR; +typedef VkFlags VkBuildAccelerationStructureFlagsKHR; +typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV; + +typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV; + +typedef struct VkRayTracingShaderGroupCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkRayTracingShaderGroupTypeKHR type; + uint32_t generalShader; + uint32_t closestHitShader; + uint32_t anyHitShader; + uint32_t intersectionShader; +} VkRayTracingShaderGroupCreateInfoNV; + +typedef struct VkRayTracingPipelineCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + uint32_t groupCount; + const VkRayTracingShaderGroupCreateInfoNV* pGroups; + uint32_t maxRecursionDepth; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkRayTracingPipelineCreateInfoNV; + +typedef struct VkGeometryTrianglesNV { + VkStructureType sType; + const void* pNext; + VkBuffer vertexData; + VkDeviceSize vertexOffset; + uint32_t vertexCount; + VkDeviceSize vertexStride; + VkFormat vertexFormat; + VkBuffer indexData; + VkDeviceSize indexOffset; + uint32_t indexCount; + VkIndexType indexType; + VkBuffer transformData; + VkDeviceSize transformOffset; +} VkGeometryTrianglesNV; -typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR { +typedef struct VkGeometryAABBNV { + VkStructureType sType; + const void* pNext; + VkBuffer aabbData; + uint32_t numAABBs; + uint32_t stride; + VkDeviceSize offset; +} VkGeometryAABBNV; + +typedef struct VkGeometryDataNV { + VkGeometryTrianglesNV triangles; + VkGeometryAABBNV aabbs; +} VkGeometryDataNV; + +typedef struct VkGeometryNV { + VkStructureType sType; + const void* pNext; + VkGeometryTypeKHR geometryType; + VkGeometryDataNV geometry; + VkGeometryFlagsKHR flags; +} VkGeometryNV; + +typedef struct VkAccelerationStructureInfoNV { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureTypeNV type; + VkBuildAccelerationStructureFlagsNV flags; + uint32_t instanceCount; + uint32_t geometryCount; + const VkGeometryNV* pGeometries; +} VkAccelerationStructureInfoNV; + +typedef struct VkAccelerationStructureCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceSize compactedSize; + VkAccelerationStructureInfoNV info; +} VkAccelerationStructureCreateInfoNV; + +typedef struct VkBindAccelerationStructureMemoryInfoNV { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureNV accelerationStructure; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; + uint32_t deviceIndexCount; + const uint32_t* pDeviceIndices; +} VkBindAccelerationStructureMemoryInfoNV; + +typedef struct VkWriteDescriptorSetAccelerationStructureNV { + VkStructureType sType; + const void* pNext; + uint32_t accelerationStructureCount; + const VkAccelerationStructureNV* pAccelerationStructures; +} VkWriteDescriptorSetAccelerationStructureNV; + +typedef struct VkAccelerationStructureMemoryRequirementsInfoNV { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureMemoryRequirementsTypeNV type; + VkAccelerationStructureNV accelerationStructure; +} VkAccelerationStructureMemoryRequirementsInfoNV; + +typedef struct VkPhysicalDeviceRayTracingPropertiesNV { VkStructureType sType; void* pNext; - uint32_t maxPushDescriptors; -} VkPhysicalDevicePushDescriptorPropertiesKHR; - - -typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); -typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData); + uint32_t shaderGroupHandleSize; + uint32_t maxRecursionDepth; + uint32_t maxShaderGroupStride; + uint32_t shaderGroupBaseAlignment; + uint64_t maxGeometryCount; + uint64_t maxInstanceCount; + uint64_t maxTriangleCount; + uint32_t maxDescriptorSetAccelerationStructures; +} VkPhysicalDeviceRayTracingPropertiesNV; + +typedef struct VkTransformMatrixKHR { + float matrix[3][4]; +} VkTransformMatrixKHR; + +typedef VkTransformMatrixKHR VkTransformMatrixNV; + +typedef struct VkAabbPositionsKHR { + float minX; + float minY; + float minZ; + float maxX; + float maxY; + float maxZ; +} VkAabbPositionsKHR; + +typedef VkAabbPositionsKHR VkAabbPositionsNV; + +typedef struct VkAccelerationStructureInstanceKHR { + VkTransformMatrixKHR transform; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t accelerationStructureReference; +} VkAccelerationStructureInstanceKHR; + +typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure); +typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); +typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); +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); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode); +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); +typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData); +typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); +typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR( - VkCommandBuffer commandBuffer, - VkPipelineBindPoint pipelineBindPoint, - VkPipelineLayout layout, - uint32_t set, - uint32_t descriptorWriteCount, - const VkWriteDescriptorSet* pDescriptorWrites); - -VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( - VkCommandBuffer commandBuffer, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - VkPipelineLayout layout, - uint32_t set, - const void* pData); -#endif - -#define VK_KHR_16bit_storage 1 -#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 -#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV( + VkDevice device, + const VkAccelerationStructureCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkAccelerationStructureNV* pAccelerationStructure); -typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; +VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV( + VkDevice device, + VkAccelerationStructureNV accelerationStructure, + const VkAllocationCallbacks* pAllocator); +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV( + VkDevice device, + const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, + VkMemoryRequirements2KHR* pMemoryRequirements); +VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV( + VkDevice device, + uint32_t bindInfoCount, + const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); -#define VK_KHR_incremental_present 1 -#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 -#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV( + VkCommandBuffer commandBuffer, + const VkAccelerationStructureInfoNV* pInfo, + VkBuffer instanceData, + VkDeviceSize instanceOffset, + VkBool32 update, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkBuffer scratch, + VkDeviceSize scratchOffset); -typedef struct VkRectLayerKHR { - VkOffset2D offset; - VkExtent2D extent; - uint32_t layer; -} VkRectLayerKHR; +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV( + VkCommandBuffer commandBuffer, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkCopyAccelerationStructureModeKHR mode); -typedef struct VkPresentRegionKHR { - uint32_t rectangleCount; - const VkRectLayerKHR* pRectangles; -} VkPresentRegionKHR; +VKAPI_ATTR void VKAPI_CALL 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); -typedef struct VkPresentRegionsKHR { - VkStructureType sType; - const void* pNext; - uint32_t swapchainCount; - const VkPresentRegionKHR* pRegions; -} VkPresentRegionsKHR; +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV( + VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoNV* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); -#define VK_KHR_descriptor_update_template 1 -typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR; +VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV( + VkDevice device, + VkAccelerationStructureNV accelerationStructure, + size_t dataSize, + void* pData); +VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV( + VkCommandBuffer commandBuffer, + uint32_t accelerationStructureCount, + const VkAccelerationStructureNV* pAccelerationStructures, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery); -#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 -#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" +VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV( + VkDevice device, + VkPipeline pipeline, + uint32_t shader); +#endif -typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR; +#endif // GO_INCLUDE_NV_ray_tracing +#define VK_NV_representative_fragment_test 1 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" +typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 representativeFragmentTest; +} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; -typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR; +typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 representativeFragmentTestEnable; +} VkPipelineRepresentativeFragmentTestStateCreateInfoNV; -typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; -typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; +#define VK_EXT_filter_cubic 1 +#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3 +#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic" +typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT { + VkStructureType sType; + void* pNext; + VkImageViewType imageViewType; +} VkPhysicalDeviceImageViewImageFormatInfoEXT; +typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 filterCubic; + VkBool32 filterCubicMinmax; +} VkFilterCubicImageViewImageFormatPropertiesEXT; -typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); -typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR( - VkDevice device, - const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); -VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR( - VkDevice device, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - const VkAllocationCallbacks* pAllocator); +#define VK_QCOM_render_pass_shader_resolve 1 +#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4 +#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve" -VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( - VkDevice device, - VkDescriptorSet descriptorSet, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - const void* pData); -#endif -#define VK_KHR_create_renderpass2 1 -#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1 -#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2" +#define VK_EXT_global_priority 1 +#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 +#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" +typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT; -typedef struct VkAttachmentDescription2KHR { - VkStructureType sType; - const void* pNext; - VkAttachmentDescriptionFlags flags; - VkFormat format; - VkSampleCountFlagBits samples; - VkAttachmentLoadOp loadOp; - VkAttachmentStoreOp storeOp; - VkAttachmentLoadOp stencilLoadOp; - VkAttachmentStoreOp stencilStoreOp; - VkImageLayout initialLayout; - VkImageLayout finalLayout; -} VkAttachmentDescription2KHR; +typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT; -typedef struct VkAttachmentReference2KHR { - VkStructureType sType; - const void* pNext; - uint32_t attachment; - VkImageLayout layout; - VkImageAspectFlags aspectMask; -} VkAttachmentReference2KHR; -typedef struct VkSubpassDescription2KHR { - VkStructureType sType; - const void* pNext; - VkSubpassDescriptionFlags flags; - VkPipelineBindPoint pipelineBindPoint; - uint32_t viewMask; - uint32_t inputAttachmentCount; - const VkAttachmentReference2KHR* pInputAttachments; - uint32_t colorAttachmentCount; - const VkAttachmentReference2KHR* pColorAttachments; - const VkAttachmentReference2KHR* pResolveAttachments; - const VkAttachmentReference2KHR* pDepthStencilAttachment; - uint32_t preserveAttachmentCount; - const uint32_t* pPreserveAttachments; -} VkSubpassDescription2KHR; - -typedef struct VkSubpassDependency2KHR { - VkStructureType sType; - const void* pNext; - uint32_t srcSubpass; - uint32_t dstSubpass; - VkPipelineStageFlags srcStageMask; - VkPipelineStageFlags dstStageMask; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - VkDependencyFlags dependencyFlags; - int32_t viewOffset; -} VkSubpassDependency2KHR; -typedef struct VkRenderPassCreateInfo2KHR { +#define VK_EXT_external_memory_host 1 +#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 +#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" +typedef struct VkImportMemoryHostPointerInfoEXT { VkStructureType sType; const void* pNext; - VkRenderPassCreateFlags flags; - uint32_t attachmentCount; - const VkAttachmentDescription2KHR* pAttachments; - uint32_t subpassCount; - const VkSubpassDescription2KHR* pSubpasses; - uint32_t dependencyCount; - const VkSubpassDependency2KHR* pDependencies; - uint32_t correlatedViewMaskCount; - const uint32_t* pCorrelatedViewMasks; -} VkRenderPassCreateInfo2KHR; - -typedef struct VkSubpassBeginInfoKHR { - VkStructureType sType; - const void* pNext; - VkSubpassContents contents; -} VkSubpassBeginInfoKHR; + VkExternalMemoryHandleTypeFlagBits handleType; + void* pHostPointer; +} VkImportMemoryHostPointerInfoEXT; -typedef struct VkSubpassEndInfoKHR { +typedef struct VkMemoryHostPointerPropertiesEXT { VkStructureType sType; - const void* pNext; -} VkSubpassEndInfoKHR; + void* pNext; + uint32_t memoryTypeBits; +} VkMemoryHostPointerPropertiesEXT; +typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize minImportedHostPointerAlignment; +} VkPhysicalDeviceExternalMemoryHostPropertiesEXT; -typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); -typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo); -typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo); -typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR( +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( VkDevice device, - const VkRenderPassCreateInfo2KHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkRenderPass* pRenderPass); + VkExternalMemoryHandleTypeFlagBits handleType, + const void* pHostPointer, + VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); +#endif -VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR( - VkCommandBuffer commandBuffer, - const VkRenderPassBeginInfo* pRenderPassBegin, - const VkSubpassBeginInfoKHR* pSubpassBeginInfo); -VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR( - VkCommandBuffer commandBuffer, - const VkSubpassBeginInfoKHR* pSubpassBeginInfo, - const VkSubpassEndInfoKHR* pSubpassEndInfo); +#define VK_AMD_buffer_marker 1 +#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1 +#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker" +typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); -VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR( +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, - const VkSubpassEndInfoKHR* pSubpassEndInfo); + VkPipelineStageFlagBits pipelineStage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker); #endif -#define VK_KHR_shared_presentable_image 1 -#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 -#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" -typedef struct VkSharedPresentSurfaceCapabilitiesKHR { - VkStructureType sType; - void* pNext; - VkImageUsageFlags sharedPresentSupportedUsageFlags; -} VkSharedPresentSurfaceCapabilitiesKHR; +#define VK_AMD_pipeline_compiler_control 1 +#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1 +#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control" + +typedef enum VkPipelineCompilerControlFlagBitsAMD { + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF +} VkPipelineCompilerControlFlagBitsAMD; +typedef VkFlags VkPipelineCompilerControlFlagsAMD; +typedef struct VkPipelineCompilerControlCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkPipelineCompilerControlFlagsAMD compilerControlFlags; +} VkPipelineCompilerControlCreateInfoAMD; -typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( +#define VK_EXT_calibrated_timestamps 1 +#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2 +#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" + +typedef enum VkTimeDomainEXT { + 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 = 0x7FFFFFFF +} VkTimeDomainEXT; +typedef struct VkCalibratedTimestampInfoEXT { + VkStructureType sType; + const void* pNext; + VkTimeDomainEXT timeDomain; +} VkCalibratedTimestampInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains); +typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainEXT* pTimeDomains); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( VkDevice device, - VkSwapchainKHR swapchain); + uint32_t timestampCount, + const VkCalibratedTimestampInfoEXT* pTimestampInfos, + uint64_t* pTimestamps, + uint64_t* pMaxDeviation); #endif -#define VK_KHR_external_fence_capabilities 1 -#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" - -typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR; -typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR; +#define VK_AMD_shader_core_properties 1 +#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2 +#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" +typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { + VkStructureType sType; + void* pNext; + uint32_t shaderEngineCount; + uint32_t shaderArraysPerEngineCount; + uint32_t computeUnitsPerShaderArray; + uint32_t simdPerComputeUnit; + uint32_t wavefrontsPerSimd; + uint32_t wavefrontSize; + uint32_t sgprsPerSimd; + uint32_t minSgprAllocation; + uint32_t maxSgprAllocation; + uint32_t sgprAllocationGranularity; + uint32_t vgprsPerSimd; + uint32_t minVgprAllocation; + uint32_t maxVgprAllocation; + uint32_t vgprAllocationGranularity; +} VkPhysicalDeviceShaderCorePropertiesAMD; -typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR; -typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR; +#define VK_AMD_memory_overallocation_behavior 1 +#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1 +#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior" -typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; +typedef enum VkMemoryOverallocationBehaviorAMD { + 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 = 0x7FFFFFFF +} VkMemoryOverallocationBehaviorAMD; +typedef struct VkDeviceMemoryOverallocationCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkMemoryOverallocationBehaviorAMD overallocationBehavior; +} VkDeviceMemoryOverallocationCreateInfoAMD; -typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); +#define VK_EXT_vertex_attribute_divisor 1 +#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3 +#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" +typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxVertexAttribDivisor; +} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, - VkExternalFenceProperties* pExternalFenceProperties); -#endif +typedef struct VkVertexInputBindingDivisorDescriptionEXT { + uint32_t binding; + uint32_t divisor; +} VkVertexInputBindingDivisorDescriptionEXT; -#define VK_KHR_external_fence 1 -#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" +typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t vertexBindingDivisorCount; + const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors; +} VkPipelineVertexInputDivisorStateCreateInfoEXT; -typedef VkFenceImportFlags VkFenceImportFlagsKHR; +typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 vertexAttributeInstanceRateDivisor; + VkBool32 vertexAttributeInstanceRateZeroDivisor; +} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; -typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR; -typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; +#define VK_EXT_pipeline_creation_feedback 1 +#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback" +typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT; +typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT; +typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT; -#define VK_KHR_external_fence_fd 1 -#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" +typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT; -typedef struct VkImportFenceFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkFence fence; - VkFenceImportFlags flags; - VkExternalFenceHandleTypeFlagBits handleType; - int fd; -} VkImportFenceFdInfoKHR; -typedef struct VkFenceGetFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkFence fence; - VkExternalFenceHandleTypeFlagBits handleType; -} VkFenceGetFdInfoKHR; +#define VK_NV_shader_subgroup_partitioned 1 +#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1 +#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" -typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR( - VkDevice device, - const VkImportFenceFdInfoKHR* pImportFenceFdInfo); +#define VK_NV_compute_shader_derivatives 1 +#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1 +#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives" +typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 computeDerivativeGroupQuads; + VkBool32 computeDerivativeGroupLinear; +} VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; -VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( - VkDevice device, - const VkFenceGetFdInfoKHR* pGetFdInfo, - int* pFd); -#endif -#define VK_KHR_maintenance2 1 -#define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 -#define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" -typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; +#define VK_NV_mesh_shader 1 +#define VK_NV_MESH_SHADER_SPEC_VERSION 1 +#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader" +typedef struct VkPhysicalDeviceMeshShaderFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 taskShader; + VkBool32 meshShader; +} VkPhysicalDeviceMeshShaderFeaturesNV; -typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; +typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t maxDrawMeshTasksCount; + uint32_t maxTaskWorkGroupInvocations; + uint32_t maxTaskWorkGroupSize[3]; + uint32_t maxTaskTotalMemorySize; + uint32_t maxTaskOutputCount; + uint32_t maxMeshWorkGroupInvocations; + uint32_t maxMeshWorkGroupSize[3]; + uint32_t maxMeshTotalMemorySize; + uint32_t maxMeshOutputVertices; + uint32_t maxMeshOutputPrimitives; + uint32_t maxMeshMultiviewViewCount; + uint32_t meshOutputPerVertexGranularity; + uint32_t meshOutputPerPrimitiveGranularity; +} VkPhysicalDeviceMeshShaderPropertiesNV; +typedef struct VkDrawMeshTasksIndirectCommandNV { + uint32_t taskCount; + uint32_t firstTask; +} VkDrawMeshTasksIndirectCommandNV; -typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); -typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV( + VkCommandBuffer commandBuffer, + uint32_t taskCount, + uint32_t firstTask); -typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride); -typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif -typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR; +#define VK_NV_fragment_shader_barycentric 1 +#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 +#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric" +typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; -#define VK_KHR_get_surface_capabilities2 1 -#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 -#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" -typedef struct VkPhysicalDeviceSurfaceInfo2KHR { +#define VK_NV_shader_image_footprint 1 +#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2 +#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" +typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { VkStructureType sType; - const void* pNext; - VkSurfaceKHR surface; -} VkPhysicalDeviceSurfaceInfo2KHR; + void* pNext; + VkBool32 imageFootprint; +} VkPhysicalDeviceShaderImageFootprintFeaturesNV; -typedef struct VkSurfaceCapabilities2KHR { - VkStructureType sType; - void* pNext; - VkSurfaceCapabilitiesKHR surfaceCapabilities; -} VkSurfaceCapabilities2KHR; -typedef struct VkSurfaceFormat2KHR { - VkStructureType sType; - void* pNext; - VkSurfaceFormatKHR surfaceFormat; -} VkSurfaceFormat2KHR; +#define VK_NV_scissor_exclusive 1 +#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1 +#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive" +typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t exclusiveScissorCount; + const VkRect2D* pExclusiveScissors; +} VkPipelineViewportExclusiveScissorStateCreateInfoNV; -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); +typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 exclusiveScissor; +} VkPhysicalDeviceExclusiveScissorFeaturesNV; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, - VkSurfaceCapabilities2KHR* pSurfaceCapabilities); +typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, - uint32_t* pSurfaceFormatCount, - VkSurfaceFormat2KHR* pSurfaceFormats); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV( + VkCommandBuffer commandBuffer, + uint32_t firstExclusiveScissor, + uint32_t exclusiveScissorCount, + const VkRect2D* pExclusiveScissors); #endif -#define VK_KHR_variable_pointers 1 -#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 -#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" -typedef VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; +#define VK_NV_device_diagnostic_checkpoints 1 +#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2 +#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints" +typedef struct VkQueueFamilyCheckpointPropertiesNV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags checkpointExecutionStageMask; +} VkQueueFamilyCheckpointPropertiesNV; + +typedef struct VkCheckpointDataNV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlagBits stage; + void* pCheckpointMarker; +} VkCheckpointDataNV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker); +typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV( + VkCommandBuffer commandBuffer, + const void* pCheckpointMarker); +VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( + VkQueue queue, + uint32_t* pCheckpointDataCount, + VkCheckpointDataNV* pCheckpointData); +#endif -#define VK_KHR_get_display_properties2 1 -#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1 -#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2" -typedef struct VkDisplayProperties2KHR { - VkStructureType sType; - void* pNext; - VkDisplayPropertiesKHR displayProperties; -} VkDisplayProperties2KHR; +#define VK_INTEL_shader_integer_functions2 1 +#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1 +#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2" +typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerFunctions2; +} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; + + + +#define VK_INTEL_performance_query 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL) +#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2 +#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query" + +typedef enum VkPerformanceConfigurationTypeINTEL { + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0, + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceConfigurationTypeINTEL; + +typedef enum VkQueryPoolSamplingModeINTEL { + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0, + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkQueryPoolSamplingModeINTEL; + +typedef enum VkPerformanceOverrideTypeINTEL { + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0, + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1, + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceOverrideTypeINTEL; + +typedef enum VkPerformanceParameterTypeINTEL { + 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 = 0x7FFFFFFF +} VkPerformanceParameterTypeINTEL; + +typedef enum VkPerformanceValueTypeINTEL { + 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 = 0x7FFFFFFF +} VkPerformanceValueTypeINTEL; +typedef union VkPerformanceValueDataINTEL { + uint32_t value32; + uint64_t value64; + float valueFloat; + VkBool32 valueBool; + const char* valueString; +} VkPerformanceValueDataINTEL; + +typedef struct VkPerformanceValueINTEL { + VkPerformanceValueTypeINTEL type; + VkPerformanceValueDataINTEL data; +} VkPerformanceValueINTEL; + +typedef struct VkInitializePerformanceApiInfoINTEL { + VkStructureType sType; + const void* pNext; + void* pUserData; +} VkInitializePerformanceApiInfoINTEL; -typedef struct VkDisplayPlaneProperties2KHR { - VkStructureType sType; - void* pNext; - VkDisplayPlanePropertiesKHR displayPlaneProperties; -} VkDisplayPlaneProperties2KHR; +typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL { + VkStructureType sType; + const void* pNext; + VkQueryPoolSamplingModeINTEL performanceCountersSampling; +} VkQueryPoolPerformanceQueryCreateInfoINTEL; -typedef struct VkDisplayModeProperties2KHR { - VkStructureType sType; - void* pNext; - VkDisplayModePropertiesKHR displayModeProperties; -} VkDisplayModeProperties2KHR; +typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL; -typedef struct VkDisplayPlaneInfo2KHR { - VkStructureType sType; - const void* pNext; - VkDisplayModeKHR mode; - uint32_t planeIndex; -} VkDisplayPlaneInfo2KHR; +typedef struct VkPerformanceMarkerInfoINTEL { + VkStructureType sType; + const void* pNext; + uint64_t marker; +} VkPerformanceMarkerInfoINTEL; -typedef struct VkDisplayPlaneCapabilities2KHR { - VkStructureType sType; - void* pNext; - VkDisplayPlaneCapabilitiesKHR capabilities; -} VkDisplayPlaneCapabilities2KHR; +typedef struct VkPerformanceStreamMarkerInfoINTEL { + VkStructureType sType; + const void* pNext; + uint32_t marker; +} VkPerformanceStreamMarkerInfoINTEL; +typedef struct VkPerformanceOverrideInfoINTEL { + VkStructureType sType; + const void* pNext; + VkPerformanceOverrideTypeINTEL type; + VkBool32 enable; + uint64_t parameter; +} VkPerformanceOverrideInfoINTEL; -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities); +typedef struct VkPerformanceConfigurationAcquireInfoINTEL { + VkStructureType sType; + const void* pNext; + VkPerformanceConfigurationTypeINTEL type; +} VkPerformanceConfigurationAcquireInfoINTEL; + +typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); +typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo); +typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration); +typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration); +typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR( - VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkDisplayProperties2KHR* pProperties); +VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL( + VkDevice device, + const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR( - VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkDisplayPlaneProperties2KHR* pProperties); +VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL( + VkDevice device); -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR( - VkPhysicalDevice physicalDevice, - VkDisplayKHR display, - uint32_t* pPropertyCount, - VkDisplayModeProperties2KHR* pProperties); +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceMarkerInfoINTEL* pMarkerInfo); -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR( - VkPhysicalDevice physicalDevice, - const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, - VkDisplayPlaneCapabilities2KHR* pCapabilities); -#endif +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); -#define VK_KHR_dedicated_allocation 1 -#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 -#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceOverrideInfoINTEL* pOverrideInfo); -typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; +VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL( + VkDevice device, + const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, + VkPerformanceConfigurationINTEL* pConfiguration); -typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; +VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL( + VkDevice device, + VkPerformanceConfigurationINTEL configuration); +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL( + VkQueue queue, + VkPerformanceConfigurationINTEL configuration); +VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL( + VkDevice device, + VkPerformanceParameterTypeINTEL parameter, + VkPerformanceValueINTEL* pValue); +#endif -#define VK_KHR_storage_buffer_storage_class 1 -#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1 -#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class" +#define VK_EXT_pci_bus_info 1 +#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2 +#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" +typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t pciDomain; + uint32_t pciBus; + uint32_t pciDevice; + uint32_t pciFunction; +} VkPhysicalDevicePCIBusInfoPropertiesEXT; -#define VK_KHR_relaxed_block_layout 1 -#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1 -#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout" -#define VK_KHR_get_memory_requirements2 1 -#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1 -#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" +#define VK_AMD_display_native_hdr 1 +#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1 +#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr" +typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD { + VkStructureType sType; + void* pNext; + VkBool32 localDimmingSupport; +} VkDisplayNativeHdrSurfaceCapabilitiesAMD; -typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; +typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkBool32 localDimmingEnable; +} VkSwapchainDisplayNativeHdrCreateInfoAMD; -typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; +typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable); -typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD( + VkDevice device, + VkSwapchainKHR swapChain, + VkBool32 localDimmingEnable); +#endif -typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; +#define VK_EXT_fragment_density_map 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2 +#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map" +typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 fragmentDensityMap; + VkBool32 fragmentDensityMapDynamic; + VkBool32 fragmentDensityMapNonSubsampledImages; +} VkPhysicalDeviceFragmentDensityMapFeaturesEXT; -typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); +typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT { + VkStructureType sType; + void* pNext; + VkExtent2D minFragmentDensityTexelSize; + VkExtent2D maxFragmentDensityTexelSize; + VkBool32 fragmentDensityInvocations; +} VkPhysicalDeviceFragmentDensityMapPropertiesEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR( - VkDevice device, - const VkImageMemoryRequirementsInfo2* pInfo, - VkMemoryRequirements2* pMemoryRequirements); +typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkAttachmentReference fragmentDensityMapAttachment; +} VkRenderPassFragmentDensityMapCreateInfoEXT; -VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR( - VkDevice device, - const VkBufferMemoryRequirementsInfo2* pInfo, - VkMemoryRequirements2* pMemoryRequirements); -VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( - VkDevice device, - const VkImageSparseMemoryRequirementsInfo2* pInfo, - uint32_t* pSparseMemoryRequirementCount, - VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); -#endif -#define VK_KHR_image_format_list 1 -#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 -#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" +#define VK_EXT_scalar_block_layout 1 +#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1 +#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout" +typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT; -typedef struct VkImageFormatListCreateInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t viewFormatCount; - const VkFormat* pViewFormats; -} VkImageFormatListCreateInfoKHR; +#define VK_GOOGLE_hlsl_functionality1 1 +#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1 +#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME -#define VK_KHR_sampler_ycbcr_conversion 1 -typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR; +#define VK_GOOGLE_decorate_string 1 +#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1 +#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" -#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 -#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" -typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR; +#define VK_EXT_subgroup_size_control 1 +#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2 +#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control" +typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT; -typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR; +typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT; -typedef VkChromaLocation VkChromaLocationKHR; +typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; -typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; -typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; +#define VK_AMD_shader_core_properties2 1 +#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1 +#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2" -typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR; +typedef enum VkShaderCorePropertiesFlagBitsAMD { + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF +} VkShaderCorePropertiesFlagBitsAMD; +typedef VkFlags VkShaderCorePropertiesFlagsAMD; +typedef struct VkPhysicalDeviceShaderCoreProperties2AMD { + VkStructureType sType; + void* pNext; + VkShaderCorePropertiesFlagsAMD shaderCoreFeatures; + uint32_t activeComputeUnitCount; +} VkPhysicalDeviceShaderCoreProperties2AMD; -typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR; -typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; -typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; +#define VK_AMD_device_coherent_memory 1 +#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1 +#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory" +typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD { + VkStructureType sType; + void* pNext; + VkBool32 deviceCoherentMemory; +} VkPhysicalDeviceCoherentMemoryFeaturesAMD; -typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); -typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR( - VkDevice device, - const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSamplerYcbcrConversion* pYcbcrConversion); +#define VK_EXT_shader_image_atomic_int64 1 +#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1 +#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64" +typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderImageInt64Atomics; + VkBool32 sparseImageInt64Atomics; +} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT; -VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( - VkDevice device, - VkSamplerYcbcrConversion ycbcrConversion, - const VkAllocationCallbacks* pAllocator); -#endif -#define VK_KHR_bind_memory2 1 -#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1 -#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2" -typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR; +#define VK_EXT_memory_budget 1 +#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 +#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" +typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS]; + VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS]; +} VkPhysicalDeviceMemoryBudgetPropertiesEXT; -typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; -typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); -typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); +#define VK_EXT_memory_priority 1 +#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1 +#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority" +typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 memoryPriority; +} VkPhysicalDeviceMemoryPriorityFeaturesEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR( - VkDevice device, - uint32_t bindInfoCount, - const VkBindBufferMemoryInfo* pBindInfos); +typedef struct VkMemoryPriorityAllocateInfoEXT { + VkStructureType sType; + const void* pNext; + float priority; +} VkMemoryPriorityAllocateInfoEXT; -VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( - VkDevice device, - uint32_t bindInfoCount, - const VkBindImageMemoryInfo* pBindInfos); -#endif -#define VK_KHR_maintenance3 1 -#define VK_KHR_MAINTENANCE3_SPEC_VERSION 1 -#define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" -typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; +#define VK_NV_dedicated_allocation_image_aliasing 1 +#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1 +#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing" +typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 dedicatedAllocationImageAliasing; +} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; -typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; -typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); +#define VK_EXT_buffer_device_address 1 +#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2 +#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address" +typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; +} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR( - VkDevice device, - const VkDescriptorSetLayoutCreateInfo* pCreateInfo, - VkDescriptorSetLayoutSupport* pSupport); -#endif +typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT; -#define VK_KHR_draw_indirect_count 1 -#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 -#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count" +typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT; -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +typedef struct VkBufferDeviceAddressCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceAddress deviceAddress; +} VkBufferDeviceAddressCreateInfoEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); #endif -#define VK_KHR_8bit_storage 1 -#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1 -#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage" -typedef struct VkPhysicalDevice8BitStorageFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 storageBuffer8BitAccess; - VkBool32 uniformAndStorageBuffer8BitAccess; - VkBool32 storagePushConstant8; -} VkPhysicalDevice8BitStorageFeaturesKHR; +#define VK_EXT_tooling_info 1 +#define VK_EXT_TOOLING_INFO_SPEC_VERSION 1 +#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info" +typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT; +typedef VkToolPurposeFlags VkToolPurposeFlagsEXT; +typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pToolCount, + VkPhysicalDeviceToolProperties* pToolProperties); +#endif -#define VK_KHR_shader_atomic_int64 1 -#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1 -#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64" -typedef struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { +#define VK_EXT_separate_stencil_usage 1 +#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1 +#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage" +typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT; + + + +#define VK_EXT_validation_features 1 +#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 5 +#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features" + +typedef enum VkValidationFeatureEnableEXT { + 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 = 0x7FFFFFFF +} VkValidationFeatureEnableEXT; + +typedef enum VkValidationFeatureDisableEXT { + 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 = 0x7FFFFFFF +} VkValidationFeatureDisableEXT; +typedef struct VkValidationFeaturesEXT { + VkStructureType sType; + const void* pNext; + uint32_t enabledValidationFeatureCount; + const VkValidationFeatureEnableEXT* pEnabledValidationFeatures; + uint32_t disabledValidationFeatureCount; + const VkValidationFeatureDisableEXT* pDisabledValidationFeatures; +} VkValidationFeaturesEXT; + + + +#define VK_NV_cooperative_matrix 1 +#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1 +#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix" + +typedef enum VkComponentTypeNV { + 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 = 0x7FFFFFFF +} VkComponentTypeNV; + +typedef enum VkScopeNV { + 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 = 0x7FFFFFFF +} VkScopeNV; +typedef struct VkCooperativeMatrixPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t MSize; + uint32_t NSize; + uint32_t KSize; + VkComponentTypeNV AType; + VkComponentTypeNV BType; + VkComponentTypeNV CType; + VkComponentTypeNV DType; + VkScopeNV scope; +} VkCooperativeMatrixPropertiesNV; + +typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV { VkStructureType sType; void* pNext; - VkBool32 shaderBufferInt64Atomics; - VkBool32 shaderSharedInt64Atomics; -} VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; + VkBool32 cooperativeMatrix; + VkBool32 cooperativeMatrixRobustBufferAccess; +} VkPhysicalDeviceCooperativeMatrixFeaturesNV; + +typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV { + VkStructureType sType; + void* pNext; + VkShaderStageFlags cooperativeMatrixSupportedStages; +} VkPhysicalDeviceCooperativeMatrixPropertiesNV; +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeMatrixPropertiesNV* pProperties); +#endif -#define VK_KHR_driver_properties 1 -#define VK_MAX_DRIVER_NAME_SIZE_KHR 256 -#define VK_MAX_DRIVER_INFO_SIZE_KHR 256 -#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 -#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" +#define VK_NV_coverage_reduction_mode 1 +#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1 +#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode" -typedef enum VkDriverIdKHR { - VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1, - VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2, - VK_DRIVER_ID_MESA_RADV_KHR = 3, - VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4, - VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5, - VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6, - VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7, - VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8, - VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9, - VK_DRIVER_ID_BEGIN_RANGE_KHR = VK_DRIVER_ID_AMD_PROPRIETARY_KHR, - VK_DRIVER_ID_END_RANGE_KHR = VK_DRIVER_ID_ARM_PROPRIETARY_KHR, - VK_DRIVER_ID_RANGE_SIZE_KHR = (VK_DRIVER_ID_ARM_PROPRIETARY_KHR - VK_DRIVER_ID_AMD_PROPRIETARY_KHR + 1), - VK_DRIVER_ID_MAX_ENUM_KHR = 0x7FFFFFFF -} VkDriverIdKHR; - -typedef struct VkConformanceVersionKHR { - uint8_t major; - uint8_t minor; - uint8_t subminor; - uint8_t patch; -} VkConformanceVersionKHR; +typedef enum VkCoverageReductionModeNV { + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0, + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1, + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF +} VkCoverageReductionModeNV; +typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV; +typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 coverageReductionMode; +} VkPhysicalDeviceCoverageReductionModeFeaturesNV; -typedef struct VkPhysicalDeviceDriverPropertiesKHR { - VkStructureType sType; - void* pNext; - VkDriverIdKHR driverID; - char driverName[VK_MAX_DRIVER_NAME_SIZE_KHR]; - char driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR]; - VkConformanceVersionKHR conformanceVersion; -} VkPhysicalDeviceDriverPropertiesKHR; +typedef struct VkPipelineCoverageReductionStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageReductionStateCreateFlagsNV flags; + VkCoverageReductionModeNV coverageReductionMode; +} VkPipelineCoverageReductionStateCreateInfoNV; +typedef struct VkFramebufferMixedSamplesCombinationNV { + VkStructureType sType; + void* pNext; + VkCoverageReductionModeNV coverageReductionMode; + VkSampleCountFlagBits rasterizationSamples; + VkSampleCountFlags depthStencilSamples; + VkSampleCountFlags colorSamples; +} VkFramebufferMixedSamplesCombinationNV; +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations); -#define VK_KHR_vulkan_memory_model 1 -#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2 -#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + VkPhysicalDevice physicalDevice, + uint32_t* pCombinationCount, + VkFramebufferMixedSamplesCombinationNV* pCombinations); +#endif -typedef struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { + +#define VK_EXT_fragment_shader_interlock 1 +#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1 +#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock" +typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { VkStructureType sType; void* pNext; - VkBool32 vulkanMemoryModel; - VkBool32 vulkanMemoryModelDeviceScope; -} VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; + VkBool32 fragmentShaderSampleInterlock; + VkBool32 fragmentShaderPixelInterlock; + VkBool32 fragmentShaderShadingRateInterlock; +} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT; -#define VK_EXT_debug_report 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) +#define VK_EXT_ycbcr_image_arrays 1 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays" +typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 ycbcrImageArrays; +} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; -#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 -#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" -typedef enum VkDebugReportObjectTypeEXT { - 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_OBJECT_TABLE_NVX_EXT = 31, - VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32, - 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_ACCELERATION_STRUCTURE_NVX_EXT = 1000165000, - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1), - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDebugReportObjectTypeEXT; +#define VK_EXT_provoking_vertex 1 +#define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1 +#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex" +typedef enum VkProvokingVertexModeEXT { + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0, + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1, + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkProvokingVertexModeEXT; +typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 provokingVertexLast; + VkBool32 transformFeedbackPreservesProvokingVertex; +} VkPhysicalDeviceProvokingVertexFeaturesEXT; -typedef enum VkDebugReportFlagBitsEXT { - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, - VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004, - VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008, - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010, - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDebugReportFlagBitsEXT; -typedef VkFlags VkDebugReportFlagsEXT; +typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 provokingVertexModePerPipeline; + VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex; +} VkPhysicalDeviceProvokingVertexPropertiesEXT; -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); +typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkProvokingVertexModeEXT provokingVertexMode; +} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT; -typedef struct VkDebugReportCallbackCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkDebugReportFlagsEXT flags; - PFN_vkDebugReportCallbackEXT pfnCallback; - void* pUserData; -} VkDebugReportCallbackCreateInfoEXT; -typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); -typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator); -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); +#define VK_EXT_headless_surface 1 +#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1 +#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface" +typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; +typedef struct VkHeadlessSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkHeadlessSurfaceCreateFlagsEXT flags; +} VkHeadlessSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT( +VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT( VkInstance instance, - const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, + const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, - VkDebugReportCallbackEXT* pCallback); + VkSurfaceKHR* pSurface); +#endif -VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT( - VkInstance instance, - VkDebugReportCallbackEXT callback, - const VkAllocationCallbacks* pAllocator); -VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( - VkInstance instance, - VkDebugReportFlagsEXT flags, - VkDebugReportObjectTypeEXT objectType, - uint64_t object, - size_t location, - int32_t messageCode, - const char* pLayerPrefix, - const char* pMessage); -#endif +#define VK_EXT_line_rasterization 1 +#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1 +#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization" -#define VK_NV_glsl_shader 1 -#define VK_NV_GLSL_SHADER_SPEC_VERSION 1 -#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader" +typedef enum VkLineRasterizationModeEXT { + 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 = 0x7FFFFFFF +} VkLineRasterizationModeEXT; +typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 rectangularLines; + VkBool32 bresenhamLines; + VkBool32 smoothLines; + VkBool32 stippledRectangularLines; + VkBool32 stippledBresenhamLines; + VkBool32 stippledSmoothLines; +} VkPhysicalDeviceLineRasterizationFeaturesEXT; + +typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t lineSubPixelPrecisionBits; +} VkPhysicalDeviceLineRasterizationPropertiesEXT; +typedef struct VkPipelineRasterizationLineStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkLineRasterizationModeEXT lineRasterizationMode; + VkBool32 stippledLineEnable; + uint32_t lineStippleFactor; + uint16_t lineStipplePattern; +} VkPipelineRasterizationLineStateCreateInfoEXT; -#define VK_EXT_depth_range_unrestricted 1 -#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 -#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted" +typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT( + VkCommandBuffer commandBuffer, + uint32_t lineStippleFactor, + uint16_t lineStipplePattern); +#endif -#define VK_IMG_filter_cubic 1 -#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1 -#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic" +#define VK_EXT_shader_atomic_float 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float" +typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferFloat32Atomics; + VkBool32 shaderBufferFloat32AtomicAdd; + VkBool32 shaderBufferFloat64Atomics; + VkBool32 shaderBufferFloat64AtomicAdd; + VkBool32 shaderSharedFloat32Atomics; + VkBool32 shaderSharedFloat32AtomicAdd; + VkBool32 shaderSharedFloat64Atomics; + VkBool32 shaderSharedFloat64AtomicAdd; + VkBool32 shaderImageFloat32Atomics; + VkBool32 shaderImageFloat32AtomicAdd; + VkBool32 sparseImageFloat32Atomics; + VkBool32 sparseImageFloat32AtomicAdd; +} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT; -#define VK_AMD_rasterization_order 1 -#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 -#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order" -typedef enum VkRasterizationOrderAMD { - VK_RASTERIZATION_ORDER_STRICT_AMD = 0, - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, - VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD, - VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD, - VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1), - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF -} VkRasterizationOrderAMD; +#define VK_EXT_host_query_reset 1 +#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1 +#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset" +typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT; -typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { - VkStructureType sType; - const void* pNext; - VkRasterizationOrderAMD rasterizationOrder; -} VkPipelineRasterizationStateRasterizationOrderAMD; +typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT( + VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount); +#endif -#define VK_AMD_shader_trinary_minmax 1 -#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1 -#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax" +#define VK_EXT_index_type_uint8 1 +#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1 +#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8" +typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 indexTypeUint8; +} VkPhysicalDeviceIndexTypeUint8FeaturesEXT; -#define VK_AMD_shader_explicit_vertex_parameter 1 -#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1 -#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter" +#define VK_EXT_extended_dynamic_state 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state" +typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 extendedDynamicState; +} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports); +typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors); +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); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp); -#define VK_EXT_debug_marker 1 -#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4 -#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker" +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT( + VkCommandBuffer commandBuffer, + VkCullModeFlags cullMode); -typedef struct VkDebugMarkerObjectNameInfoEXT { - VkStructureType sType; - const void* pNext; - VkDebugReportObjectTypeEXT objectType; - uint64_t object; - const char* pObjectName; -} VkDebugMarkerObjectNameInfoEXT; +VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT( + VkCommandBuffer commandBuffer, + VkFrontFace frontFace); -typedef struct VkDebugMarkerObjectTagInfoEXT { - VkStructureType sType; - const void* pNext; - VkDebugReportObjectTypeEXT objectType; - uint64_t object; - uint64_t tagName; - size_t tagSize; - const void* pTag; -} VkDebugMarkerObjectTagInfoEXT; +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT( + VkCommandBuffer commandBuffer, + VkPrimitiveTopology primitiveTopology); -typedef struct VkDebugMarkerMarkerInfoEXT { - VkStructureType sType; - const void* pNext; - const char* pMarkerName; - float color[4]; -} VkDebugMarkerMarkerInfoEXT; +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT( + VkCommandBuffer commandBuffer, + uint32_t viewportCount, + const VkViewport* pViewports); +VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT( + VkCommandBuffer commandBuffer, + uint32_t scissorCount, + const VkRect2D* pScissors); -typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); -typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); -typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); -typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer); -typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); +VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes, + const VkDeviceSize* pStrides); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT( - VkDevice device, - const VkDebugMarkerObjectTagInfoEXT* pTagInfo); +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthTestEnable); -VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT( - VkDevice device, - const VkDebugMarkerObjectNameInfoEXT* pNameInfo); +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthWriteEnable); -VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT( +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, - const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + VkCompareOp depthCompareOp); -VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( - VkCommandBuffer commandBuffer); +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthBoundsTestEnable); -VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 stencilTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT( VkCommandBuffer commandBuffer, - const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + VkStencilFaceFlags faceMask, + VkStencilOp failOp, + VkStencilOp passOp, + VkStencilOp depthFailOp, + VkCompareOp compareOp); #endif -#define VK_AMD_gcn_shader 1 -#define VK_AMD_GCN_SHADER_SPEC_VERSION 1 -#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader" +#define VK_EXT_shader_atomic_float2 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2" +typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferFloat16Atomics; + VkBool32 shaderBufferFloat16AtomicAdd; + VkBool32 shaderBufferFloat16AtomicMinMax; + VkBool32 shaderBufferFloat32AtomicMinMax; + VkBool32 shaderBufferFloat64AtomicMinMax; + VkBool32 shaderSharedFloat16Atomics; + VkBool32 shaderSharedFloat16AtomicAdd; + VkBool32 shaderSharedFloat16AtomicMinMax; + VkBool32 shaderSharedFloat32AtomicMinMax; + VkBool32 shaderSharedFloat64AtomicMinMax; + VkBool32 shaderImageFloat32AtomicMinMax; + VkBool32 sparseImageFloat32AtomicMinMax; +} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT; + + + +#define VK_EXT_surface_maintenance1 1 +#define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1 +#define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1" + +typedef enum VkPresentScalingFlagBitsEXT { + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0x00000001, + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0x00000002, + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0x00000004, + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkPresentScalingFlagBitsEXT; +typedef VkFlags VkPresentScalingFlagsEXT; + +typedef enum VkPresentGravityFlagBitsEXT { + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0x00000001, + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0x00000002, + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0x00000004, + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkPresentGravityFlagBitsEXT; +typedef VkFlags VkPresentGravityFlagsEXT; +typedef struct VkSurfacePresentModeEXT { + VkStructureType sType; + void* pNext; + VkPresentModeKHR presentMode; +} VkSurfacePresentModeEXT; -#define VK_NV_dedicated_allocation 1 -#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 -#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" +typedef struct VkSurfacePresentScalingCapabilitiesEXT { + VkStructureType sType; + void* pNext; + VkPresentScalingFlagsEXT supportedPresentScaling; + VkPresentGravityFlagsEXT supportedPresentGravityX; + VkPresentGravityFlagsEXT supportedPresentGravityY; + VkExtent2D minScaledImageExtent; + VkExtent2D maxScaledImageExtent; +} VkSurfacePresentScalingCapabilitiesEXT; + +typedef struct VkSurfacePresentModeCompatibilityEXT { + VkStructureType sType; + void* pNext; + uint32_t presentModeCount; + VkPresentModeKHR* pPresentModes; +} VkSurfacePresentModeCompatibilityEXT; -typedef struct VkDedicatedAllocationImageCreateInfoNV { + + +#define VK_EXT_swapchain_maintenance1 1 +#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1 +#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1" +typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT { VkStructureType sType; - const void* pNext; - VkBool32 dedicatedAllocation; -} VkDedicatedAllocationImageCreateInfoNV; + void* pNext; + VkBool32 swapchainMaintenance1; +} VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT; -typedef struct VkDedicatedAllocationBufferCreateInfoNV { +typedef struct VkSwapchainPresentFenceInfoEXT { VkStructureType sType; - const void* pNext; - VkBool32 dedicatedAllocation; -} VkDedicatedAllocationBufferCreateInfoNV; + void* pNext; + uint32_t swapchainCount; + const VkFence* pFences; +} VkSwapchainPresentFenceInfoEXT; -typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { +typedef struct VkSwapchainPresentModesCreateInfoEXT { + VkStructureType sType; + void* pNext; + uint32_t presentModeCount; + const VkPresentModeKHR* pPresentModes; +} VkSwapchainPresentModesCreateInfoEXT; + +typedef struct VkSwapchainPresentModeInfoEXT { + VkStructureType sType; + void* pNext; + uint32_t swapchainCount; + const VkPresentModeKHR* pPresentModes; +} VkSwapchainPresentModeInfoEXT; + +typedef struct VkSwapchainPresentScalingCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPresentScalingFlagsEXT scalingBehavior; + VkPresentGravityFlagsEXT presentGravityX; + VkPresentGravityFlagsEXT presentGravityY; +} VkSwapchainPresentScalingCreateInfoEXT; + +typedef struct VkReleaseSwapchainImagesInfoEXT { VkStructureType sType; const void* pNext; - VkImage image; - VkBuffer buffer; -} VkDedicatedAllocationMemoryAllocateInfoNV; - + VkSwapchainKHR swapchain; + uint32_t imageIndexCount; + const uint32_t* pImageIndices; +} VkReleaseSwapchainImagesInfoEXT; +typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo); -#define VK_EXT_transform_feedback 1 -#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 -#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT( + VkDevice device, + const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo); +#endif -typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; -typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { +#define VK_EXT_shader_demote_to_helper_invocation 1 +#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1 +#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation" +typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; + + + +#define VK_NV_device_generated_commands 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV) +#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 +#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands" + +typedef enum VkIndirectCommandsTokenTypeNV { + 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 = 0x7FFFFFFF +} VkIndirectCommandsTokenTypeNV; + +typedef enum VkIndirectStateFlagBitsNV { + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001, + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkIndirectStateFlagBitsNV; +typedef VkFlags VkIndirectStateFlagsNV; + +typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV { + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001, + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002, + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004, + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkIndirectCommandsLayoutUsageFlagBitsNV; +typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV; +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV { VkStructureType sType; void* pNext; - VkBool32 transformFeedback; - VkBool32 geometryStreams; -} VkPhysicalDeviceTransformFeedbackFeaturesEXT; - -typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { + uint32_t maxGraphicsShaderGroupCount; + uint32_t maxIndirectSequenceCount; + uint32_t maxIndirectCommandsTokenCount; + uint32_t maxIndirectCommandsStreamCount; + uint32_t maxIndirectCommandsTokenOffset; + uint32_t maxIndirectCommandsStreamStride; + uint32_t minSequencesCountBufferOffsetAlignment; + uint32_t minSequencesIndexBufferOffsetAlignment; + uint32_t minIndirectCommandsBufferOffsetAlignment; +} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV; + +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV { VkStructureType sType; void* pNext; - uint32_t maxTransformFeedbackStreams; - uint32_t maxTransformFeedbackBuffers; - VkDeviceSize maxTransformFeedbackBufferSize; - uint32_t maxTransformFeedbackStreamDataSize; - uint32_t maxTransformFeedbackBufferDataSize; - uint32_t maxTransformFeedbackBufferDataStride; - VkBool32 transformFeedbackQueries; - VkBool32 transformFeedbackStreamsLinesTriangles; - VkBool32 transformFeedbackRasterizationStreamSelect; - VkBool32 transformFeedbackDraw; -} VkPhysicalDeviceTransformFeedbackPropertiesEXT; + VkBool32 deviceGeneratedCommands; +} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV; + +typedef struct VkGraphicsShaderGroupCreateInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + const VkPipelineVertexInputStateCreateInfo* pVertexInputState; + const VkPipelineTessellationStateCreateInfo* pTessellationState; +} VkGraphicsShaderGroupCreateInfoNV; + +typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t groupCount; + const VkGraphicsShaderGroupCreateInfoNV* pGroups; + uint32_t pipelineCount; + const VkPipeline* pPipelines; +} VkGraphicsPipelineShaderGroupsCreateInfoNV; + +typedef struct VkBindShaderGroupIndirectCommandNV { + uint32_t groupIndex; +} VkBindShaderGroupIndirectCommandNV; + +typedef struct VkBindIndexBufferIndirectCommandNV { + VkDeviceAddress bufferAddress; + uint32_t size; + VkIndexType indexType; +} VkBindIndexBufferIndirectCommandNV; -typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPipelineRasterizationStateStreamCreateFlagsEXT flags; - uint32_t rasterizationStream; -} VkPipelineRasterizationStateStreamCreateInfoEXT; +typedef struct VkBindVertexBufferIndirectCommandNV { + VkDeviceAddress bufferAddress; + uint32_t size; + uint32_t stride; +} VkBindVertexBufferIndirectCommandNV; +typedef struct VkSetStateFlagsIndirectCommandNV { + uint32_t data; +} VkSetStateFlagsIndirectCommandNV; -typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes); -typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); -typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); -typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index); -typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride); +typedef struct VkIndirectCommandsStreamNV { + VkBuffer buffer; + VkDeviceSize offset; +} VkIndirectCommandsStreamNV; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT( - VkCommandBuffer commandBuffer, - uint32_t firstBinding, - uint32_t bindingCount, - const VkBuffer* pBuffers, - const VkDeviceSize* pOffsets, - const VkDeviceSize* pSizes); +typedef struct VkIndirectCommandsLayoutTokenNV { + VkStructureType sType; + const void* pNext; + VkIndirectCommandsTokenTypeNV tokenType; + uint32_t stream; + uint32_t offset; + uint32_t vertexBindingUnit; + VkBool32 vertexDynamicStride; + VkPipelineLayout pushconstantPipelineLayout; + VkShaderStageFlags pushconstantShaderStageFlags; + uint32_t pushconstantOffset; + uint32_t pushconstantSize; + VkIndirectStateFlagsNV indirectStateFlags; + uint32_t indexTypeCount; + const VkIndexType* pIndexTypes; + const uint32_t* pIndexTypeValues; +} VkIndirectCommandsLayoutTokenNV; + +typedef struct VkIndirectCommandsLayoutCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkIndirectCommandsLayoutUsageFlagsNV flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t tokenCount; + const VkIndirectCommandsLayoutTokenNV* pTokens; + uint32_t streamCount; + const uint32_t* pStreamStrides; +} VkIndirectCommandsLayoutCreateInfoNV; -VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT( - VkCommandBuffer commandBuffer, - uint32_t firstCounterBuffer, - uint32_t counterBufferCount, - const VkBuffer* pCounterBuffers, - const VkDeviceSize* pCounterBufferOffsets); +typedef struct VkGeneratedCommandsInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline pipeline; + VkIndirectCommandsLayoutNV indirectCommandsLayout; + uint32_t streamCount; + const VkIndirectCommandsStreamNV* pStreams; + uint32_t sequencesCount; + VkBuffer preprocessBuffer; + VkDeviceSize preprocessOffset; + VkDeviceSize preprocessSize; + VkBuffer sequencesCountBuffer; + VkDeviceSize sequencesCountOffset; + VkBuffer sequencesIndexBuffer; + VkDeviceSize sequencesIndexOffset; +} VkGeneratedCommandsInfoNV; -VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT( - VkCommandBuffer commandBuffer, - uint32_t firstCounterBuffer, - uint32_t counterBufferCount, - const VkBuffer* pCounterBuffers, - const VkDeviceSize* pCounterBufferOffsets); +typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline pipeline; + VkIndirectCommandsLayoutNV indirectCommandsLayout; + uint32_t maxSequencesCount; +} VkGeneratedCommandsMemoryRequirementsInfoNV; -VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT( - VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query, - VkQueryControlFlags flags, - uint32_t index); +typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); +typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex); +typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout); +typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator); -VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT( - VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query, - uint32_t index); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV( + VkDevice device, + const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, + VkMemoryRequirements2* pMemoryRequirements); -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( +VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, - uint32_t instanceCount, - uint32_t firstInstance, - VkBuffer counterBuffer, - VkDeviceSize counterBufferOffset, - uint32_t counterOffset, - uint32_t vertexStride); -#endif - -#define VK_AMD_draw_indirect_count 1 -#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 -#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD( +VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); + VkBool32 isPreprocessed, + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( +VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); -#endif + VkPipelineBindPoint pipelineBindPoint, + VkPipeline pipeline, + uint32_t groupIndex); -#define VK_AMD_negative_viewport_height 1 -#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 -#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" +VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV( + VkDevice device, + const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkIndirectCommandsLayoutNV* pIndirectCommandsLayout); +VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV( + VkDevice device, + VkIndirectCommandsLayoutNV indirectCommandsLayout, + const VkAllocationCallbacks* pAllocator); +#endif -#define VK_AMD_gpu_shader_half_float 1 -#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1 -#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" +#define VK_NV_inherited_viewport_scissor 1 +#define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1 +#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor" +typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 inheritedViewportScissor2D; +} VkPhysicalDeviceInheritedViewportScissorFeaturesNV; -#define VK_AMD_shader_ballot 1 -#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1 -#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot" +typedef struct VkCommandBufferInheritanceViewportScissorInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 viewportScissor2D; + uint32_t viewportDepthCount; + const VkViewport* pViewportDepths; +} VkCommandBufferInheritanceViewportScissorInfoNV; -#define VK_AMD_texture_gather_bias_lod 1 -#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 -#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" -typedef struct VkTextureLODGatherFormatPropertiesAMD { +#define VK_EXT_texel_buffer_alignment 1 +#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1 +#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment" +typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { VkStructureType sType; void* pNext; - VkBool32 supportsTextureGatherLODBiasAMD; -} VkTextureLODGatherFormatPropertiesAMD; + VkBool32 texelBufferAlignment; +} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; +typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; -#define VK_AMD_shader_info 1 -#define VK_AMD_SHADER_INFO_SPEC_VERSION 1 -#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" +#define VK_QCOM_render_pass_transform 1 +#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 3 +#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform" +typedef struct VkRenderPassTransformBeginInfoQCOM { + VkStructureType sType; + void* pNext; + VkSurfaceTransformFlagBitsKHR transform; +} VkRenderPassTransformBeginInfoQCOM; + +typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM { + VkStructureType sType; + void* pNext; + VkSurfaceTransformFlagBitsKHR transform; + VkRect2D renderArea; +} VkCommandBufferInheritanceRenderPassTransformInfoQCOM; + + + +#define VK_EXT_device_memory_report 1 +#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2 +#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report" + +typedef enum VkDeviceMemoryReportEventTypeEXT { + 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 = 0x7FFFFFFF +} VkDeviceMemoryReportEventTypeEXT; +typedef VkFlags VkDeviceMemoryReportFlagsEXT; +typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 deviceMemoryReport; +} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT; -typedef enum VkShaderInfoTypeAMD { - 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_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD, - VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD, - VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1), - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF -} VkShaderInfoTypeAMD; +typedef struct VkDeviceMemoryReportCallbackDataEXT { + VkStructureType sType; + void* pNext; + VkDeviceMemoryReportFlagsEXT flags; + VkDeviceMemoryReportEventTypeEXT type; + uint64_t memoryObjectId; + VkDeviceSize size; + VkObjectType objectType; + uint64_t objectHandle; + uint32_t heapIndex; +} VkDeviceMemoryReportCallbackDataEXT; + +typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)( + const VkDeviceMemoryReportCallbackDataEXT* pCallbackData, + void* pUserData); -typedef struct VkShaderResourceUsageAMD { - uint32_t numUsedVgprs; - uint32_t numUsedSgprs; - uint32_t ldsSizePerLocalWorkGroup; - size_t ldsUsageSizeInBytes; - size_t scratchMemUsageInBytes; -} VkShaderResourceUsageAMD; +typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceMemoryReportFlagsEXT flags; + PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback; + void* pUserData; +} VkDeviceDeviceMemoryReportCreateInfoEXT; -typedef struct VkShaderStatisticsInfoAMD { - VkShaderStageFlags shaderStageMask; - VkShaderResourceUsageAMD resourceUsage; - uint32_t numPhysicalVgprs; - uint32_t numPhysicalSgprs; - uint32_t numAvailableVgprs; - uint32_t numAvailableSgprs; - uint32_t computeWorkGroupSize[3]; -} VkShaderStatisticsInfoAMD; -typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); +#define VK_EXT_acquire_drm_display 1 +#define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1 +#define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display" +typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display); +typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( - VkDevice device, - VkPipeline pipeline, - VkShaderStageFlagBits shaderStage, - VkShaderInfoTypeAMD infoType, - size_t* pInfoSize, - void* pInfo); -#endif +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT( + VkPhysicalDevice physicalDevice, + int32_t drmFd, + VkDisplayKHR display); -#define VK_AMD_shader_image_load_store_lod 1 -#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 -#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" +VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT( + VkPhysicalDevice physicalDevice, + int32_t drmFd, + uint32_t connectorId, + VkDisplayKHR* display); +#endif -#define VK_NV_corner_sampled_image 1 -#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2 -#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image" +#define VK_EXT_robustness2 1 +#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1 +#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2" +typedef struct VkPhysicalDeviceRobustness2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 robustBufferAccess2; + VkBool32 robustImageAccess2; + VkBool32 nullDescriptor; +} VkPhysicalDeviceRobustness2FeaturesEXT; -typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { +typedef struct VkPhysicalDeviceRobustness2PropertiesEXT { VkStructureType sType; void* pNext; - VkBool32 cornerSampledImage; -} VkPhysicalDeviceCornerSampledImageFeaturesNV; + VkDeviceSize robustStorageBufferAccessSizeAlignment; + VkDeviceSize robustUniformBufferAccessSizeAlignment; +} VkPhysicalDeviceRobustness2PropertiesEXT; -#define VK_IMG_format_pvrtc 1 -#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 -#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" +#define VK_EXT_custom_border_color 1 +#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12 +#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color" +typedef struct VkSamplerCustomBorderColorCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkClearColorValue customBorderColor; + VkFormat format; +} VkSamplerCustomBorderColorCreateInfoEXT; +typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxCustomBorderColorSamplers; +} VkPhysicalDeviceCustomBorderColorPropertiesEXT; -#define VK_NV_external_memory_capabilities 1 -#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 -#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" +typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 customBorderColors; + VkBool32 customBorderColorWithoutFormat; +} VkPhysicalDeviceCustomBorderColorFeaturesEXT; -typedef enum VkExternalMemoryHandleTypeFlagBitsNV { - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF -} VkExternalMemoryHandleTypeFlagBitsNV; -typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; -typedef enum VkExternalMemoryFeatureFlagBitsNV { - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001, - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002, - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004, - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF -} VkExternalMemoryFeatureFlagBitsNV; -typedef VkFlags VkExternalMemoryFeatureFlagsNV; +#define VK_GOOGLE_user_type 1 +#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1 +#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type" -typedef struct VkExternalImageFormatPropertiesNV { - VkImageFormatProperties imageFormatProperties; - VkExternalMemoryFeatureFlagsNV externalMemoryFeatures; - VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes; - VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes; -} VkExternalImageFormatPropertiesNV; +#define VK_NV_present_barrier 1 +#define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1 +#define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier" +typedef struct VkPhysicalDevicePresentBarrierFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 presentBarrier; +} VkPhysicalDevicePresentBarrierFeaturesNV; -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); +typedef struct VkSurfaceCapabilitiesPresentBarrierNV { + VkStructureType sType; + void* pNext; + VkBool32 presentBarrierSupported; +} VkSurfaceCapabilitiesPresentBarrierNV; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV( - VkPhysicalDevice physicalDevice, - VkFormat format, - VkImageType type, - VkImageTiling tiling, - VkImageUsageFlags usage, - VkImageCreateFlags flags, - VkExternalMemoryHandleTypeFlagsNV externalHandleType, - VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); -#endif +typedef struct VkSwapchainPresentBarrierCreateInfoNV { + VkStructureType sType; + void* pNext; + VkBool32 presentBarrierEnable; +} VkSwapchainPresentBarrierCreateInfoNV; -#define VK_NV_external_memory 1 -#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 -#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" -typedef struct VkExternalMemoryImageCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagsNV handleTypes; -} VkExternalMemoryImageCreateInfoNV; -typedef struct VkExportMemoryAllocateInfoNV { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagsNV handleTypes; -} VkExportMemoryAllocateInfoNV; +#define VK_EXT_private_data 1 +typedef VkPrivateDataSlot VkPrivateDataSlotEXT; +#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1 +#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data" +typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT; +typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT; -#define VK_EXT_validation_flags 1 -#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1 -#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" +typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT; +typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT; -typedef enum VkValidationCheckEXT { - VK_VALIDATION_CHECK_ALL_EXT = 0, - VK_VALIDATION_CHECK_SHADERS_EXT = 1, - VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT, - VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT, - VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1), - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF -} VkValidationCheckEXT; +typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot); +typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data); +typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData); -typedef struct VkValidationFlagsEXT { - VkStructureType sType; - const void* pNext; - uint32_t disabledValidationCheckCount; - const VkValidationCheckEXT* pDisabledValidationChecks; -} VkValidationFlagsEXT; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT( + VkDevice device, + const VkPrivateDataSlotCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPrivateDataSlot* pPrivateDataSlot); +VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT( + VkDevice device, + VkPrivateDataSlot privateDataSlot, + const VkAllocationCallbacks* pAllocator); +VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t data); -#define VK_EXT_shader_subgroup_ballot 1 -#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1 -#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot" +VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t* pData); +#endif -#define VK_EXT_shader_subgroup_vote 1 -#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1 -#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" +#define VK_EXT_pipeline_creation_cache_control 1 +#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3 +#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control" +typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT; -#define VK_EXT_astc_decode_mode 1 -#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1 -#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode" -typedef struct VkImageViewASTCDecodeModeEXT { - VkStructureType sType; - const void* pNext; - VkFormat decodeMode; -} VkImageViewASTCDecodeModeEXT; +#define VK_NV_device_diagnostics_config 1 +#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2 +#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config" -typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { +typedef enum VkDeviceDiagnosticsConfigFlagBitsNV { + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001, + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002, + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004, + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008, + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkDeviceDiagnosticsConfigFlagBitsNV; +typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; +typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV { VkStructureType sType; void* pNext; - VkBool32 decodeModeSharedExponent; -} VkPhysicalDeviceASTCDecodeFeaturesEXT; + VkBool32 diagnosticsConfig; +} VkPhysicalDeviceDiagnosticsConfigFeaturesNV; +typedef struct VkDeviceDiagnosticsConfigCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceDiagnosticsConfigFlagsNV flags; +} VkDeviceDiagnosticsConfigCreateInfoNV; -#define VK_EXT_conditional_rendering 1 -#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1 -#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" +#define VK_QCOM_render_pass_store_ops 1 +#define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2 +#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops" -typedef enum VkConditionalRenderingFlagBitsEXT { - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkConditionalRenderingFlagBitsEXT; -typedef VkFlags VkConditionalRenderingFlagsEXT; -typedef struct VkConditionalRenderingBeginInfoEXT { - VkStructureType sType; - const void* pNext; - VkBuffer buffer; - VkDeviceSize offset; - VkConditionalRenderingFlagsEXT flags; -} VkConditionalRenderingBeginInfoEXT; +#define VK_EXT_descriptor_buffer 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) +#define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1 +#define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer" +typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 combinedImageSamplerDescriptorSingleArray; + VkBool32 bufferlessPushDescriptors; + VkBool32 allowSamplerImageViewPostSubmitCreation; + VkDeviceSize descriptorBufferOffsetAlignment; + uint32_t maxDescriptorBufferBindings; + uint32_t maxResourceDescriptorBufferBindings; + uint32_t maxSamplerDescriptorBufferBindings; + uint32_t maxEmbeddedImmutableSamplerBindings; + uint32_t maxEmbeddedImmutableSamplers; + size_t bufferCaptureReplayDescriptorDataSize; + size_t imageCaptureReplayDescriptorDataSize; + size_t imageViewCaptureReplayDescriptorDataSize; + size_t samplerCaptureReplayDescriptorDataSize; + size_t accelerationStructureCaptureReplayDescriptorDataSize; + size_t samplerDescriptorSize; + size_t combinedImageSamplerDescriptorSize; + size_t sampledImageDescriptorSize; + size_t storageImageDescriptorSize; + size_t uniformTexelBufferDescriptorSize; + size_t robustUniformTexelBufferDescriptorSize; + size_t storageTexelBufferDescriptorSize; + size_t robustStorageTexelBufferDescriptorSize; + size_t uniformBufferDescriptorSize; + size_t robustUniformBufferDescriptorSize; + size_t storageBufferDescriptorSize; + size_t robustStorageBufferDescriptorSize; + size_t inputAttachmentDescriptorSize; + size_t accelerationStructureDescriptorSize; + VkDeviceSize maxSamplerDescriptorBufferRange; + VkDeviceSize maxResourceDescriptorBufferRange; + VkDeviceSize samplerDescriptorBufferAddressSpaceSize; + VkDeviceSize resourceDescriptorBufferAddressSpaceSize; + VkDeviceSize descriptorBufferAddressSpaceSize; +} VkPhysicalDeviceDescriptorBufferPropertiesEXT; + +typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT { + VkStructureType sType; + void* pNext; + size_t combinedImageSamplerDensityMapDescriptorSize; +} VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT; -typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT { +typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT { VkStructureType sType; void* pNext; - VkBool32 conditionalRendering; - VkBool32 inheritedConditionalRendering; -} VkPhysicalDeviceConditionalRenderingFeaturesEXT; + VkBool32 descriptorBuffer; + VkBool32 descriptorBufferCaptureReplay; + VkBool32 descriptorBufferImageLayoutIgnored; + VkBool32 descriptorBufferPushDescriptors; +} VkPhysicalDeviceDescriptorBufferFeaturesEXT; -typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { +typedef struct VkDescriptorAddressInfoEXT { VkStructureType sType; - const void* pNext; - VkBool32 conditionalRenderingEnable; -} VkCommandBufferInheritanceConditionalRenderingInfoEXT; + void* pNext; + VkDeviceAddress address; + VkDeviceSize range; + VkFormat format; +} VkDescriptorAddressInfoEXT; +typedef struct VkDescriptorBufferBindingInfoEXT { + VkStructureType sType; + void* pNext; + VkDeviceAddress address; + VkBufferUsageFlags usage; +} VkDescriptorBufferBindingInfoEXT; -typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); -typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer); +typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT { + VkStructureType sType; + void* pNext; + VkBuffer buffer; +} VkDescriptorBufferBindingPushDescriptorBufferHandleEXT; + +typedef union VkDescriptorDataEXT { + const VkSampler* pSampler; + const VkDescriptorImageInfo* pCombinedImageSampler; + const VkDescriptorImageInfo* pInputAttachmentImage; + const VkDescriptorImageInfo* pSampledImage; + const VkDescriptorImageInfo* pStorageImage; + const VkDescriptorAddressInfoEXT* pUniformTexelBuffer; + const VkDescriptorAddressInfoEXT* pStorageTexelBuffer; + const VkDescriptorAddressInfoEXT* pUniformBuffer; + const VkDescriptorAddressInfoEXT* pStorageBuffer; + VkDeviceAddress accelerationStructure; +} VkDescriptorDataEXT; + +typedef struct VkDescriptorGetInfoEXT { + VkStructureType sType; + const void* pNext; + VkDescriptorType type; + VkDescriptorDataEXT data; +} VkDescriptorGetInfoEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT( - VkCommandBuffer commandBuffer, - const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); +typedef struct VkBufferCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; +} VkBufferCaptureDescriptorDataInfoEXT; -VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( - VkCommandBuffer commandBuffer); -#endif +typedef struct VkImageCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkImage image; +} VkImageCaptureDescriptorDataInfoEXT; -#define VK_NVX_device_generated_commands 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) - -#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 -#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands" - - -typedef enum VkIndirectCommandsTokenTypeNVX { - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1), - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF -} VkIndirectCommandsTokenTypeNVX; - -typedef enum VkObjectEntryTypeNVX { - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0, - VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1, - VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2, - VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3, - VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4, - VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX, - VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX, - VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1), - VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF -} VkObjectEntryTypeNVX; - - -typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX { - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF -} VkIndirectCommandsLayoutUsageFlagBitsNVX; -typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX; - -typedef enum VkObjectEntryUsageFlagBitsNVX { - VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001, - VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002, - VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF -} VkObjectEntryUsageFlagBitsNVX; -typedef VkFlags VkObjectEntryUsageFlagsNVX; - -typedef struct VkDeviceGeneratedCommandsFeaturesNVX { +typedef struct VkImageViewCaptureDescriptorDataInfoEXT { VkStructureType sType; const void* pNext; - VkBool32 computeBindingPointSupport; -} VkDeviceGeneratedCommandsFeaturesNVX; + VkImageView imageView; +} VkImageViewCaptureDescriptorDataInfoEXT; -typedef struct VkDeviceGeneratedCommandsLimitsNVX { +typedef struct VkSamplerCaptureDescriptorDataInfoEXT { VkStructureType sType; const void* pNext; - uint32_t maxIndirectCommandsLayoutTokenCount; - uint32_t maxObjectEntryCounts; - uint32_t minSequenceCountBufferOffsetAlignment; - uint32_t minSequenceIndexBufferOffsetAlignment; - uint32_t minCommandsTokenBufferOffsetAlignment; -} VkDeviceGeneratedCommandsLimitsNVX; - -typedef struct VkIndirectCommandsTokenNVX { - VkIndirectCommandsTokenTypeNVX tokenType; - VkBuffer buffer; - VkDeviceSize offset; -} VkIndirectCommandsTokenNVX; + VkSampler sampler; +} VkSamplerCaptureDescriptorDataInfoEXT; -typedef struct VkIndirectCommandsLayoutTokenNVX { - VkIndirectCommandsTokenTypeNVX tokenType; - uint32_t bindingUnit; - uint32_t dynamicCount; - uint32_t divisor; -} VkIndirectCommandsLayoutTokenNVX; +typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT { + VkStructureType sType; + const void* pNext; + const void* opaqueCaptureDescriptorData; +} VkOpaqueCaptureDescriptorDataCreateInfoEXT; -typedef struct VkIndirectCommandsLayoutCreateInfoNVX { - VkStructureType sType; - const void* pNext; - VkPipelineBindPoint pipelineBindPoint; - VkIndirectCommandsLayoutUsageFlagsNVX flags; - uint32_t tokenCount; - const VkIndirectCommandsLayoutTokenNVX* pTokens; -} VkIndirectCommandsLayoutCreateInfoNVX; +#ifdef GO_INCLUDE_NV_ray_tracing -typedef struct VkCmdProcessCommandsInfoNVX { - VkStructureType sType; - const void* pNext; - VkObjectTableNVX objectTable; - VkIndirectCommandsLayoutNVX indirectCommandsLayout; - uint32_t indirectCommandsTokenCount; - const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens; - uint32_t maxSequencesCount; - VkCommandBuffer targetCommandBuffer; - VkBuffer sequencesCountBuffer; - VkDeviceSize sequencesCountOffset; - VkBuffer sequencesIndexBuffer; - VkDeviceSize sequencesIndexOffset; -} VkCmdProcessCommandsInfoNVX; +typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR accelerationStructure; + VkAccelerationStructureNV accelerationStructureNV; +} VkAccelerationStructureCaptureDescriptorDataInfoEXT; + +#endif // GO_INCLUDE_NV_ray_tracing + +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes); +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset); +typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor); +typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos); +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); +typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set); +typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData); + +#ifdef GO_INCLUDE_NV_ray_tracing +typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData); +#endif // GO_INCLUDE_NV_ray_tracing -typedef struct VkCmdReserveSpaceForCommandsInfoNVX { - VkStructureType sType; - const void* pNext; - VkObjectTableNVX objectTable; - VkIndirectCommandsLayoutNVX indirectCommandsLayout; - uint32_t maxSequencesCount; -} VkCmdReserveSpaceForCommandsInfoNVX; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT( + VkDevice device, + VkDescriptorSetLayout layout, + VkDeviceSize* pLayoutSizeInBytes); -typedef struct VkObjectTableCreateInfoNVX { - VkStructureType sType; - const void* pNext; - uint32_t objectCount; - const VkObjectEntryTypeNVX* pObjectEntryTypes; - const uint32_t* pObjectEntryCounts; - const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags; - uint32_t maxUniformBuffersPerDescriptor; - uint32_t maxStorageBuffersPerDescriptor; - uint32_t maxStorageImagesPerDescriptor; - uint32_t maxSampledImagesPerDescriptor; - uint32_t maxPipelineLayouts; -} VkObjectTableCreateInfoNVX; - -typedef struct VkObjectTableEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; -} VkObjectTableEntryNVX; - -typedef struct VkObjectTablePipelineEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; - VkPipeline pipeline; -} VkObjectTablePipelineEntryNVX; - -typedef struct VkObjectTableDescriptorSetEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; - VkPipelineLayout pipelineLayout; - VkDescriptorSet descriptorSet; -} VkObjectTableDescriptorSetEntryNVX; - -typedef struct VkObjectTableVertexBufferEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; - VkBuffer buffer; -} VkObjectTableVertexBufferEntryNVX; - -typedef struct VkObjectTableIndexBufferEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; - VkBuffer buffer; - VkIndexType indexType; -} VkObjectTableIndexBufferEntryNVX; - -typedef struct VkObjectTablePushConstantEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; - VkPipelineLayout pipelineLayout; - VkShaderStageFlags stageFlags; -} VkObjectTablePushConstantEntryNVX; - - -typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); -typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); -typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); -typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable); -typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices); -typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits); +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT( + VkDevice device, + VkDescriptorSetLayout layout, + uint32_t binding, + VkDeviceSize* pOffset); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX( +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT( + VkDevice device, + const VkDescriptorGetInfoEXT* pDescriptorInfo, + size_t dataSize, + void* pDescriptor); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT( VkCommandBuffer commandBuffer, - const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); + uint32_t bufferCount, + const VkDescriptorBufferBindingInfoEXT* pBindingInfos); -VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX( +VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT( VkCommandBuffer commandBuffer, - const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t firstSet, + uint32_t setCount, + const uint32_t* pBufferIndices, + const VkDeviceSize* pOffsets); -VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX( - VkDevice device, - const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); +VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t set); -VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX( +VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT( VkDevice device, - VkIndirectCommandsLayoutNVX indirectCommandsLayout, - const VkAllocationCallbacks* pAllocator); + const VkBufferCaptureDescriptorDataInfoEXT* pInfo, + void* pData); -VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX( +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT( VkDevice device, - const VkObjectTableCreateInfoNVX* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkObjectTableNVX* pObjectTable); + const VkImageCaptureDescriptorDataInfoEXT* pInfo, + void* pData); -VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX( +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT( VkDevice device, - VkObjectTableNVX objectTable, - const VkAllocationCallbacks* pAllocator); + const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, + void* pData); -VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX( +VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT( VkDevice device, - VkObjectTableNVX objectTable, - uint32_t objectCount, - const VkObjectTableEntryNVX* const* ppObjectTableEntries, - const uint32_t* pObjectIndices); + const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, + void* pData); -VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX( +VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( VkDevice device, - VkObjectTableNVX objectTable, - uint32_t objectCount, - const VkObjectEntryTypeNVX* pObjectEntryTypes, - const uint32_t* pObjectIndices); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( - VkPhysicalDevice physicalDevice, - VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, - VkDeviceGeneratedCommandsLimitsNVX* pLimits); -#endif - -#define VK_NV_clip_space_w_scaling 1 -#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 -#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" - -typedef struct VkViewportWScalingNV { - float xcoeff; - float ycoeff; -} VkViewportWScalingNV; - -typedef struct VkPipelineViewportWScalingStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkBool32 viewportWScalingEnable; - uint32_t viewportCount; - const VkViewportWScalingNV* pViewportWScalings; -} VkPipelineViewportWScalingStateCreateInfoNV; - - -typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV( - VkCommandBuffer commandBuffer, - uint32_t firstViewport, - uint32_t viewportCount, - const VkViewportWScalingNV* pViewportWScalings); -#endif - -#define VK_EXT_direct_mode_display 1 -#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 -#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" - -typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( - VkPhysicalDevice physicalDevice, - VkDisplayKHR display); + const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, + void* pData); #endif -#define VK_EXT_display_surface_counter 1 -#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 -#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" - - -typedef enum VkSurfaceCounterFlagBitsEXT { - VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001, - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkSurfaceCounterFlagBitsEXT; -typedef VkFlags VkSurfaceCounterFlagsEXT; -typedef struct VkSurfaceCapabilities2EXT { - VkStructureType sType; - void* pNext; - uint32_t minImageCount; - uint32_t maxImageCount; - VkExtent2D currentExtent; - VkExtent2D minImageExtent; - VkExtent2D maxImageExtent; - uint32_t maxImageArrayLayers; - VkSurfaceTransformFlagsKHR supportedTransforms; - VkSurfaceTransformFlagBitsKHR currentTransform; - VkCompositeAlphaFlagsKHR supportedCompositeAlpha; - VkImageUsageFlags supportedUsageFlags; - VkSurfaceCounterFlagsEXT supportedSurfaceCounters; -} VkSurfaceCapabilities2EXT; +#define VK_EXT_graphics_pipeline_library 1 +#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1 +#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library" +typedef enum VkGraphicsPipelineLibraryFlagBitsEXT { + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001, + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002, + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004, + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008, + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkGraphicsPipelineLibraryFlagBitsEXT; +typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT; +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 graphicsPipelineLibrary; +} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT; -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 graphicsPipelineLibraryFastLinking; + VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration; +} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - VkSurfaceCapabilities2EXT* pSurfaceCapabilities); -#endif +typedef struct VkGraphicsPipelineLibraryCreateInfoEXT { + VkStructureType sType; + void* pNext; + VkGraphicsPipelineLibraryFlagsEXT flags; +} VkGraphicsPipelineLibraryCreateInfoEXT; -#define VK_EXT_display_control 1 -#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 -#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control" -typedef enum VkDisplayPowerStateEXT { - 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_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT, - VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT, - VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1), - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDisplayPowerStateEXT; +#define VK_AMD_shader_early_and_late_fragment_tests 1 +#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1 +#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests" +typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD { + VkStructureType sType; + void* pNext; + VkBool32 shaderEarlyAndLateFragmentTests; +} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD; + + + +#define VK_NV_fragment_shading_rate_enums 1 +#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1 +#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums" + +typedef enum VkFragmentShadingRateTypeNV { + 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 = 0x7FFFFFFF +} VkFragmentShadingRateTypeNV; + +typedef enum VkFragmentShadingRateNV { + 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 = 0x7FFFFFFF +} VkFragmentShadingRateNV; +typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShadingRateEnums; + VkBool32 supersampleFragmentShadingRates; + VkBool32 noInvocationFragmentShadingRates; +} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV; -typedef enum VkDeviceEventTypeEXT { - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, - VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, - VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, - VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1), - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDeviceEventTypeEXT; +typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV { + VkStructureType sType; + void* pNext; + VkSampleCountFlagBits maxFragmentShadingRateInvocationCount; +} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV; -typedef enum VkDisplayEventTypeEXT { - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, - VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, - VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, - VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1), - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDisplayEventTypeEXT; +typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkFragmentShadingRateTypeNV shadingRateType; + VkFragmentShadingRateNV shadingRate; + VkFragmentShadingRateCombinerOpKHR combinerOps[2]; +} VkPipelineFragmentShadingRateEnumStateCreateInfoNV; -typedef struct VkDisplayPowerInfoEXT { - VkStructureType sType; - const void* pNext; - VkDisplayPowerStateEXT powerState; -} VkDisplayPowerInfoEXT; +typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); -typedef struct VkDeviceEventInfoEXT { - VkStructureType sType; - const void* pNext; - VkDeviceEventTypeEXT deviceEvent; -} VkDeviceEventInfoEXT; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV( + VkCommandBuffer commandBuffer, + VkFragmentShadingRateNV shadingRate, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); +#endif -typedef struct VkDisplayEventInfoEXT { - VkStructureType sType; - const void* pNext; - VkDisplayEventTypeEXT displayEvent; -} VkDisplayEventInfoEXT; +#ifdef GO_INCLUDE_NV_ray_tracing + +#define VK_NV_ray_tracing_motion_blur 1 +#define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1 +#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur" + +typedef enum VkAccelerationStructureMotionInstanceTypeNV { + 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 = 0x7FFFFFFF +} VkAccelerationStructureMotionInstanceTypeNV; +typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV; +typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV; +typedef union VkDeviceOrHostAddressConstKHR { + VkDeviceAddress deviceAddress; + const void* hostAddress; +} VkDeviceOrHostAddressConstKHR; + +typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR vertexData; +} VkAccelerationStructureGeometryMotionTrianglesDataNV; -typedef struct VkSwapchainCounterCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkSurfaceCounterFlagsEXT surfaceCounters; -} VkSwapchainCounterCreateInfoEXT; +typedef struct VkAccelerationStructureMotionInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t maxInstances; + VkAccelerationStructureMotionInfoFlagsNV flags; +} VkAccelerationStructureMotionInfoNV; + +typedef struct VkAccelerationStructureMatrixMotionInstanceNV { + VkTransformMatrixKHR transformT0; + VkTransformMatrixKHR transformT1; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t accelerationStructureReference; +} VkAccelerationStructureMatrixMotionInstanceNV; + +typedef struct VkSRTDataNV { + float sx; + float a; + float b; + float pvx; + float sy; + float c; + float pvy; + float sz; + float pvz; + float qx; + float qy; + float qz; + float qw; + float tx; + float ty; + float tz; +} VkSRTDataNV; + +typedef struct VkAccelerationStructureSRTMotionInstanceNV { + VkSRTDataNV transformT0; + VkSRTDataNV transformT1; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t accelerationStructureReference; +} VkAccelerationStructureSRTMotionInstanceNV; + +typedef union VkAccelerationStructureMotionInstanceDataNV { + VkAccelerationStructureInstanceKHR staticInstance; + VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance; + VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance; +} VkAccelerationStructureMotionInstanceDataNV; + +typedef struct VkAccelerationStructureMotionInstanceNV { + VkAccelerationStructureMotionInstanceTypeNV type; + VkAccelerationStructureMotionInstanceFlagsNV flags; + VkAccelerationStructureMotionInstanceDataNV data; +} VkAccelerationStructureMotionInstanceNV; + +typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 rayTracingMotionBlur; + VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect; +} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV; +#endif // GO_INCLUDE_NV_ray_tracing -typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); -typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); -typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); -typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue); +#define VK_EXT_ycbcr_2plane_444_formats 1 +#define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1 +#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats" +typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 ycbcr2plane444Formats; +} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT( - VkDevice device, - VkDisplayKHR display, - const VkDisplayPowerInfoEXT* pDisplayPowerInfo); -VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT( - VkDevice device, - const VkDeviceEventInfoEXT* pDeviceEventInfo, - const VkAllocationCallbacks* pAllocator, - VkFence* pFence); -VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT( - VkDevice device, - VkDisplayKHR display, - const VkDisplayEventInfoEXT* pDisplayEventInfo, - const VkAllocationCallbacks* pAllocator, - VkFence* pFence); +#define VK_EXT_fragment_density_map2 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2" +typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 fragmentDensityMapDeferred; +} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT; -VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( - VkDevice device, - VkSwapchainKHR swapchain, - VkSurfaceCounterFlagBitsEXT counter, - uint64_t* pCounterValue); -#endif +typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 subsampledLoads; + VkBool32 subsampledCoarseReconstructionEarlyAccess; + uint32_t maxSubsampledArrayLayers; + uint32_t maxDescriptorSetSubsampledSamplers; +} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT; -#define VK_GOOGLE_display_timing 1 -#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 -#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" -typedef struct VkRefreshCycleDurationGOOGLE { - uint64_t refreshDuration; -} VkRefreshCycleDurationGOOGLE; -typedef struct VkPastPresentationTimingGOOGLE { - uint32_t presentID; - uint64_t desiredPresentTime; - uint64_t actualPresentTime; - uint64_t earliestPresentTime; - uint64_t presentMargin; -} VkPastPresentationTimingGOOGLE; +#define VK_QCOM_rotated_copy_commands 1 +#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 1 +#define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands" +typedef struct VkCopyCommandTransformInfoQCOM { + VkStructureType sType; + const void* pNext; + VkSurfaceTransformFlagBitsKHR transform; +} VkCopyCommandTransformInfoQCOM; + + + +#define VK_EXT_image_robustness 1 +#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1 +#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness" +typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT; + + + +#define VK_EXT_image_compression_control 1 +#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1 +#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control" + +typedef enum VkImageCompressionFlagBitsEXT { + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0, + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001, + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002, + VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004, + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkImageCompressionFlagBitsEXT; +typedef VkFlags VkImageCompressionFlagsEXT; + +typedef enum VkImageCompressionFixedRateFlagBitsEXT { + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0, + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001, + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002, + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004, + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008, + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010, + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020, + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040, + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080, + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100, + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200, + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400, + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800, + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000, + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000, + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000, + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000, + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000, + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000, + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000, + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000, + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000, + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000, + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000, + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000, + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkImageCompressionFixedRateFlagBitsEXT; +typedef VkFlags VkImageCompressionFixedRateFlagsEXT; +typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 imageCompressionControl; +} VkPhysicalDeviceImageCompressionControlFeaturesEXT; -typedef struct VkPresentTimeGOOGLE { - uint32_t presentID; - uint64_t desiredPresentTime; -} VkPresentTimeGOOGLE; +typedef struct VkImageCompressionControlEXT { + VkStructureType sType; + const void* pNext; + VkImageCompressionFlagsEXT flags; + uint32_t compressionControlPlaneCount; + VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags; +} VkImageCompressionControlEXT; -typedef struct VkPresentTimesInfoGOOGLE { - VkStructureType sType; - const void* pNext; - uint32_t swapchainCount; - const VkPresentTimeGOOGLE* pTimes; -} VkPresentTimesInfoGOOGLE; +typedef struct VkSubresourceLayout2EXT { + VkStructureType sType; + void* pNext; + VkSubresourceLayout subresourceLayout; +} VkSubresourceLayout2EXT; +typedef struct VkImageSubresource2EXT { + VkStructureType sType; + void* pNext; + VkImageSubresource imageSubresource; +} VkImageSubresource2EXT; -typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); +typedef struct VkImageCompressionPropertiesEXT { + VkStructureType sType; + void* pNext; + VkImageCompressionFlagsEXT imageCompressionFlags; + VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags; +} VkImageCompressionPropertiesEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE( - VkDevice device, - VkSwapchainKHR swapchain, - VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); +typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout); -VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT( VkDevice device, - VkSwapchainKHR swapchain, - uint32_t* pPresentationTimingCount, - VkPastPresentationTimingGOOGLE* pPresentationTimings); + VkImage image, + const VkImageSubresource2EXT* pSubresource, + VkSubresourceLayout2EXT* pLayout); #endif -#define VK_NV_sample_mask_override_coverage 1 -#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 -#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" +#define VK_EXT_attachment_feedback_loop_layout 1 +#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2 +#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout" +typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 attachmentFeedbackLoopLayout; +} VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT; -#define VK_NV_geometry_shader_passthrough 1 -#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1 -#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough" -#define VK_NV_viewport_array2 1 -#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1 -#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2" +#define VK_EXT_4444_formats 1 +#define VK_EXT_4444_FORMATS_SPEC_VERSION 1 +#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats" +typedef struct VkPhysicalDevice4444FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 formatA4R4G4B4; + VkBool32 formatA4B4G4R4; +} VkPhysicalDevice4444FormatsFeaturesEXT; + + +#ifdef GO_INCLUDE_NV_ray_tracing + +#define VK_EXT_device_fault 1 +#define VK_EXT_DEVICE_FAULT_SPEC_VERSION 1 +#define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault" + +typedef enum VkDeviceFaultAddressTypeEXT { + 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 = 0x7FFFFFFF +} VkDeviceFaultAddressTypeEXT; + +typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT { + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1, + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceFaultVendorBinaryHeaderVersionEXT; +typedef struct VkPhysicalDeviceFaultFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 deviceFault; + VkBool32 deviceFaultVendorBinary; +} VkPhysicalDeviceFaultFeaturesEXT; + +typedef struct VkDeviceFaultCountsEXT { + VkStructureType sType; + void* pNext; + uint32_t addressInfoCount; + uint32_t vendorInfoCount; + VkDeviceSize vendorBinarySize; +} VkDeviceFaultCountsEXT; + +typedef struct VkDeviceFaultAddressInfoEXT { + VkDeviceFaultAddressTypeEXT addressType; + VkDeviceAddress reportedAddress; + VkDeviceSize addressPrecision; +} VkDeviceFaultAddressInfoEXT; + +typedef struct VkDeviceFaultVendorInfoEXT { + char description[VK_MAX_DESCRIPTION_SIZE]; + uint64_t vendorFaultCode; + uint64_t vendorFaultData; +} VkDeviceFaultVendorInfoEXT; +typedef struct VkDeviceFaultInfoEXT { + VkStructureType sType; + void* pNext; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkDeviceFaultAddressInfoEXT* pAddressInfos; + VkDeviceFaultVendorInfoEXT* pVendorInfos; + void* pVendorBinaryData; +} VkDeviceFaultInfoEXT; + +typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT { + uint32_t headerSize; + VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion; + uint32_t vendorID; + uint32_t deviceID; + uint32_t driverVersion; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; + uint32_t applicationNameOffset; + uint32_t applicationVersion; + uint32_t engineNameOffset; +} VkDeviceFaultVendorBinaryHeaderVersionOneEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo); -#define VK_NVX_multiview_per_view_attributes 1 -#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 -#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT( + VkDevice device, + VkDeviceFaultCountsEXT* pFaultCounts, + VkDeviceFaultInfoEXT* pFaultInfo); +#endif -typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { + +#define VK_ARM_rasterization_order_attachment_access 1 +#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1 +#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access" +typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT { VkStructureType sType; void* pNext; - VkBool32 perViewPositionAllComponents; -} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; + VkBool32 rasterizationOrderColorAttachmentAccess; + VkBool32 rasterizationOrderDepthAttachmentAccess; + VkBool32 rasterizationOrderStencilAttachmentAccess; +} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT; +typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM; -#define VK_NV_viewport_swizzle 1 -#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 -#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" +#define VK_EXT_rgba10x6_formats 1 +#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1 +#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats" +typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 formatRgba10x6WithoutYCbCrSampler; +} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT; -typedef enum VkViewportCoordinateSwizzleNV { - 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_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV, - VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV, - VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1), - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF -} VkViewportCoordinateSwizzleNV; -typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; -typedef struct VkViewportSwizzleNV { - VkViewportCoordinateSwizzleNV x; - VkViewportCoordinateSwizzleNV y; - VkViewportCoordinateSwizzleNV z; - VkViewportCoordinateSwizzleNV w; -} VkViewportSwizzleNV; +#define VK_VALVE_mutable_descriptor_type 1 +#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1 +#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type" +typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 mutableDescriptorType; +} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT; -typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineViewportSwizzleStateCreateFlagsNV flags; - uint32_t viewportCount; - const VkViewportSwizzleNV* pViewportSwizzles; -} VkPipelineViewportSwizzleStateCreateInfoNV; +typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE; +typedef struct VkMutableDescriptorTypeListEXT { + uint32_t descriptorTypeCount; + const VkDescriptorType* pDescriptorTypes; +} VkMutableDescriptorTypeListEXT; +typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE; -#define VK_EXT_discard_rectangles 1 -#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 -#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" +typedef struct VkMutableDescriptorTypeCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t mutableDescriptorTypeListCount; + const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists; +} VkMutableDescriptorTypeCreateInfoEXT; +typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE; -typedef enum VkDiscardRectangleModeEXT { - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, - VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT, - VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT, - VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1), - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDiscardRectangleModeEXT; -typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; -typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { +#define VK_EXT_vertex_input_dynamic_state 1 +#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2 +#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state" +typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT { VkStructureType sType; void* pNext; - uint32_t maxDiscardRectangles; -} VkPhysicalDeviceDiscardRectanglePropertiesEXT; + VkBool32 vertexInputDynamicState; +} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT; -typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPipelineDiscardRectangleStateCreateFlagsEXT flags; - VkDiscardRectangleModeEXT discardRectangleMode; - uint32_t discardRectangleCount; - const VkRect2D* pDiscardRectangles; -} VkPipelineDiscardRectangleStateCreateInfoEXT; +typedef struct VkVertexInputBindingDescription2EXT { + VkStructureType sType; + void* pNext; + uint32_t binding; + uint32_t stride; + VkVertexInputRate inputRate; + uint32_t divisor; +} VkVertexInputBindingDescription2EXT; +typedef struct VkVertexInputAttributeDescription2EXT { + VkStructureType sType; + void* pNext; + uint32_t location; + uint32_t binding; + VkFormat format; + uint32_t offset; +} VkVertexInputAttributeDescription2EXT; -typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); +typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( +VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT( VkCommandBuffer commandBuffer, - uint32_t firstDiscardRectangle, - uint32_t discardRectangleCount, - const VkRect2D* pDiscardRectangles); + uint32_t vertexBindingDescriptionCount, + const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, + uint32_t vertexAttributeDescriptionCount, + const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); #endif -#define VK_EXT_conservative_rasterization 1 -#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 -#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" +#define VK_EXT_physical_device_drm 1 +#define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1 +#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm" +typedef struct VkPhysicalDeviceDrmPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 hasPrimary; + VkBool32 hasRender; + int64_t primaryMajor; + int64_t primaryMinor; + int64_t renderMajor; + int64_t renderMinor; +} VkPhysicalDeviceDrmPropertiesEXT; + + + +#define VK_EXT_device_address_binding_report 1 +#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1 +#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report" + +typedef enum VkDeviceAddressBindingTypeEXT { + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0, + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1, + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceAddressBindingTypeEXT; + +typedef enum VkDeviceAddressBindingFlagBitsEXT { + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001, + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceAddressBindingFlagBitsEXT; +typedef VkFlags VkDeviceAddressBindingFlagsEXT; +typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 reportAddressBinding; +} VkPhysicalDeviceAddressBindingReportFeaturesEXT; + +typedef struct VkDeviceAddressBindingCallbackDataEXT { + VkStructureType sType; + void* pNext; + VkDeviceAddressBindingFlagsEXT flags; + VkDeviceAddress baseAddress; + VkDeviceSize size; + VkDeviceAddressBindingTypeEXT bindingType; +} VkDeviceAddressBindingCallbackDataEXT; -typedef enum VkConservativeRasterizationModeEXT { - 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_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT, - VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT, - VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1), - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkConservativeRasterizationModeEXT; -typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; -typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { +#define VK_EXT_depth_clip_control 1 +#define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1 +#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control" +typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT { VkStructureType sType; void* pNext; - float primitiveOverestimationSize; - float maxExtraPrimitiveOverestimationSize; - float extraPrimitiveOverestimationSizeGranularity; - VkBool32 primitiveUnderestimation; - VkBool32 conservativePointAndLineRasterization; - VkBool32 degenerateTrianglesRasterized; - VkBool32 degenerateLinesRasterized; - VkBool32 fullyCoveredFragmentShaderInputVariable; - VkBool32 conservativeRasterizationPostDepthCoverage; -} VkPhysicalDeviceConservativeRasterizationPropertiesEXT; + VkBool32 depthClipControl; +} VkPhysicalDeviceDepthClipControlFeaturesEXT; -typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPipelineRasterizationConservativeStateCreateFlagsEXT flags; - VkConservativeRasterizationModeEXT conservativeRasterizationMode; - float extraPrimitiveOverestimationSize; -} VkPipelineRasterizationConservativeStateCreateInfoEXT; +typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 negativeOneToOne; +} VkPipelineViewportDepthClipControlCreateInfoEXT; -#define VK_EXT_swapchain_colorspace 1 -#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3 -#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" +#define VK_EXT_primitive_topology_list_restart 1 +#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1 +#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart" +typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 primitiveTopologyListRestart; + VkBool32 primitiveTopologyPatchListRestart; +} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT; -#define VK_EXT_hdr_metadata 1 -#define VK_EXT_HDR_METADATA_SPEC_VERSION 1 -#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" -typedef struct VkXYColorEXT { - float x; - float y; -} VkXYColorEXT; +#define VK_HUAWEI_subpass_shading 1 +#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2 +#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading" +typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI { + VkStructureType sType; + void* pNext; + VkRenderPass renderPass; + uint32_t subpass; +} VkSubpassShadingPipelineCreateInfoHUAWEI; -typedef struct VkHdrMetadataEXT { +typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI { VkStructureType sType; - const void* pNext; - VkXYColorEXT displayPrimaryRed; - VkXYColorEXT displayPrimaryGreen; - VkXYColorEXT displayPrimaryBlue; - VkXYColorEXT whitePoint; - float maxLuminance; - float minLuminance; - float maxContentLightLevel; - float maxFrameAverageLightLevel; -} VkHdrMetadataEXT; + void* pNext; + VkBool32 subpassShading; +} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI; +typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI { + VkStructureType sType; + void* pNext; + uint32_t maxSubpassShadingWorkgroupSizeAspectRatio; +} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI; -typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize); +typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( VkDevice device, - uint32_t swapchainCount, - const VkSwapchainKHR* pSwapchains, - const VkHdrMetadataEXT* pMetadata); + VkRenderPass renderpass, + VkExtent2D* pMaxWorkgroupSize); + +VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI( + VkCommandBuffer commandBuffer); #endif -#define VK_EXT_external_memory_dma_buf 1 -#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 -#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" +#define VK_HUAWEI_invocation_mask 1 +#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1 +#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask" +typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI { + VkStructureType sType; + void* pNext; + VkBool32 invocationMask; +} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI; -#define VK_EXT_queue_family_foreign 1 -#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 -#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" -#define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2) +typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI( + VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout); +#endif -#define VK_EXT_debug_utils 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) +#define VK_NV_external_memory_rdma 1 +typedef void* VkRemoteAddressNV; +#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1 +#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma" +typedef struct VkMemoryGetRemoteAddressInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetRemoteAddressInfoNV; -#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1 -#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" +typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 externalMemoryRDMA; +} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV; -typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; -typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress); -typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT { - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDebugUtilsMessageSeverityFlagBitsEXT; -typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV( + VkDevice device, + const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, + VkRemoteAddressNV* pAddress); +#endif -typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001, - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002, - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004, - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDebugUtilsMessageTypeFlagBitsEXT; -typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; -typedef struct VkDebugUtilsObjectNameInfoEXT { - VkStructureType sType; - const void* pNext; - VkObjectType objectType; - uint64_t objectHandle; - const char* pObjectName; -} VkDebugUtilsObjectNameInfoEXT; +#define VK_EXT_pipeline_properties 1 +#define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties" +typedef VkPipelineInfoKHR VkPipelineInfoEXT; -typedef struct VkDebugUtilsObjectTagInfoEXT { +typedef struct VkPipelinePropertiesIdentifierEXT { VkStructureType sType; - const void* pNext; - VkObjectType objectType; - uint64_t objectHandle; - uint64_t tagName; - size_t tagSize; - const void* pTag; -} VkDebugUtilsObjectTagInfoEXT; + void* pNext; + uint8_t pipelineIdentifier[VK_UUID_SIZE]; +} VkPipelinePropertiesIdentifierEXT; -typedef struct VkDebugUtilsLabelEXT { +typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT { VkStructureType sType; - const void* pNext; - const char* pLabelName; - float color[4]; -} VkDebugUtilsLabelEXT; + void* pNext; + VkBool32 pipelinePropertiesIdentifier; +} VkPhysicalDevicePipelinePropertiesFeaturesEXT; -typedef struct VkDebugUtilsMessengerCallbackDataEXT { - VkStructureType sType; - const void* pNext; - VkDebugUtilsMessengerCallbackDataFlagsEXT flags; - const char* pMessageIdName; - int32_t messageIdNumber; - const char* pMessage; - uint32_t queueLabelCount; - VkDebugUtilsLabelEXT* pQueueLabels; - uint32_t cmdBufLabelCount; - VkDebugUtilsLabelEXT* pCmdBufLabels; - uint32_t objectCount; - VkDebugUtilsObjectNameInfoEXT* pObjects; -} VkDebugUtilsMessengerCallbackDataEXT; +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties); -typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, - void* pUserData); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT( + VkDevice device, + const VkPipelineInfoEXT* pPipelineInfo, + VkBaseOutStructure* pPipelineProperties); +#endif -typedef struct VkDebugUtilsMessengerCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkDebugUtilsMessengerCreateFlagsEXT flags; - VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; - VkDebugUtilsMessageTypeFlagsEXT messageType; - PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; - void* pUserData; -} VkDebugUtilsMessengerCreateInfoEXT; +#define VK_EXT_multisampled_render_to_single_sampled 1 +#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1 +#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled" +typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 multisampledRenderToSingleSampled; +} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT; -typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo); -typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo); -typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); -typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue); -typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); -typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); -typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer); -typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); -typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger); -typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); +typedef struct VkSubpassResolvePerformanceQueryEXT { + VkStructureType sType; + void* pNext; + VkBool32 optimal; +} VkSubpassResolvePerformanceQueryEXT; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT( - VkDevice device, - const VkDebugUtilsObjectNameInfoEXT* pNameInfo); +typedef struct VkMultisampledRenderToSingleSampledInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 multisampledRenderToSingleSampledEnable; + VkSampleCountFlagBits rasterizationSamples; +} VkMultisampledRenderToSingleSampledInfoEXT; -VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT( - VkDevice device, - const VkDebugUtilsObjectTagInfoEXT* pTagInfo); -VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT( - VkQueue queue, - const VkDebugUtilsLabelEXT* pLabelInfo); -VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT( - VkQueue queue); +#define VK_EXT_extended_dynamic_state2 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2" +typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 extendedDynamicState2; + VkBool32 extendedDynamicState2LogicOp; + VkBool32 extendedDynamicState2PatchControlPoints; +} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT; -VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT( - VkQueue queue, - const VkDebugUtilsLabelEXT* pLabelInfo); +typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable); -VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT( +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT( VkCommandBuffer commandBuffer, - const VkDebugUtilsLabelEXT* pLabelInfo); + uint32_t patchControlPoints); -VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT( - VkCommandBuffer commandBuffer); +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 rasterizerDiscardEnable); -VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT( +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT( VkCommandBuffer commandBuffer, - const VkDebugUtilsLabelEXT* pLabelInfo); + VkBool32 depthBiasEnable); -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT( - VkInstance instance, - const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDebugUtilsMessengerEXT* pMessenger); +VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT( + VkCommandBuffer commandBuffer, + VkLogicOp logicOp); -VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT( - VkInstance instance, - VkDebugUtilsMessengerEXT messenger, - const VkAllocationCallbacks* pAllocator); +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 primitiveRestartEnable); +#endif -VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( - VkInstance instance, - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); + +#define VK_EXT_color_write_enable 1 +#define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1 +#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable" +typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 colorWriteEnable; +} VkPhysicalDeviceColorWriteEnableFeaturesEXT; + +typedef struct VkPipelineColorWriteCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t attachmentCount; + const VkBool32* pColorWriteEnables; +} VkPipelineColorWriteCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT( + VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkBool32* pColorWriteEnables); #endif -#define VK_EXT_sampler_filter_minmax 1 -#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1 -#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" + +#define VK_EXT_primitives_generated_query 1 +#define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1 +#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query" +typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 primitivesGeneratedQuery; + VkBool32 primitivesGeneratedQueryWithRasterizerDiscard; + VkBool32 primitivesGeneratedQueryWithNonZeroStreams; +} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT; -typedef enum VkSamplerReductionModeEXT { - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0, - VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1, - VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2, - VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT, - VK_SAMPLER_REDUCTION_MODE_END_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_MAX_EXT, - VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1), - VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkSamplerReductionModeEXT; -typedef struct VkSamplerReductionModeCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkSamplerReductionModeEXT reductionMode; -} VkSamplerReductionModeCreateInfoEXT; +#define VK_EXT_global_priority_query 1 +#define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1 +#define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query" +#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE_KHR +typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT; + +typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT; -typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { + + +#define VK_EXT_image_view_min_lod 1 +#define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1 +#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod" +typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT { VkStructureType sType; void* pNext; - VkBool32 filterMinmaxSingleComponentFormats; - VkBool32 filterMinmaxImageComponentMapping; -} VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; + VkBool32 minLod; +} VkPhysicalDeviceImageViewMinLodFeaturesEXT; +typedef struct VkImageViewMinLodCreateInfoEXT { + VkStructureType sType; + const void* pNext; + float minLod; +} VkImageViewMinLodCreateInfoEXT; -#define VK_AMD_gpu_shader_int16 1 -#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1 -#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" +#define VK_EXT_multi_draw 1 +#define VK_EXT_MULTI_DRAW_SPEC_VERSION 1 +#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw" +typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 multiDraw; +} VkPhysicalDeviceMultiDrawFeaturesEXT; -#define VK_AMD_mixed_attachment_samples 1 -#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 -#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" +typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxMultiDrawCount; +} VkPhysicalDeviceMultiDrawPropertiesEXT; + +typedef struct VkMultiDrawInfoEXT { + uint32_t firstVertex; + uint32_t vertexCount; +} VkMultiDrawInfoEXT; +typedef struct VkMultiDrawIndexedInfoEXT { + uint32_t firstIndex; + uint32_t indexCount; + int32_t vertexOffset; +} VkMultiDrawIndexedInfoEXT; -#define VK_AMD_shader_fragment_mask 1 -#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1 -#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" +typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride); +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); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT( + VkCommandBuffer commandBuffer, + uint32_t drawCount, + const VkMultiDrawInfoEXT* pVertexInfo, + uint32_t instanceCount, + uint32_t firstInstance, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT( + VkCommandBuffer commandBuffer, + uint32_t drawCount, + const VkMultiDrawIndexedInfoEXT* pIndexInfo, + uint32_t instanceCount, + uint32_t firstInstance, + uint32_t stride, + const int32_t* pVertexOffset); +#endif -#define VK_EXT_inline_uniform_block 1 -#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1 -#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block" -typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT { +#define VK_EXT_image_2d_view_of_3d 1 +#define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1 +#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d" +typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT { VkStructureType sType; void* pNext; - VkBool32 inlineUniformBlock; - VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; -} VkPhysicalDeviceInlineUniformBlockFeaturesEXT; - -typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT { + VkBool32 image2DViewOf3D; + VkBool32 sampler2DViewOf3D; +} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT; + + + +#define VK_EXT_opacity_micromap 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT) +#define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2 +#define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap" + +typedef enum VkMicromapTypeEXT { + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0, + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkMicromapTypeEXT; + +typedef enum VkBuildMicromapModeEXT { + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0, + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkBuildMicromapModeEXT; + +typedef enum VkCopyMicromapModeEXT { + 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 = 0x7FFFFFFF +} VkCopyMicromapModeEXT; + +typedef enum VkOpacityMicromapFormatEXT { + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1, + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2, + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF +} VkOpacityMicromapFormatEXT; + +typedef enum VkOpacityMicromapSpecialIndexEXT { + 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 = 0x7FFFFFFF +} VkOpacityMicromapSpecialIndexEXT; + +typedef enum VkAccelerationStructureCompatibilityKHR { + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0, + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1, + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureCompatibilityKHR; + +typedef enum VkAccelerationStructureBuildTypeKHR { + 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 = 0x7FFFFFFF +} VkAccelerationStructureBuildTypeKHR; + +typedef enum VkBuildMicromapFlagBitsEXT { + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001, + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002, + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004, + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkBuildMicromapFlagBitsEXT; +typedef VkFlags VkBuildMicromapFlagsEXT; + +typedef enum VkMicromapCreateFlagBitsEXT { + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001, + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkMicromapCreateFlagBitsEXT; +typedef VkFlags VkMicromapCreateFlagsEXT; +typedef struct VkMicromapUsageEXT { + uint32_t count; + uint32_t subdivisionLevel; + uint32_t format; +} VkMicromapUsageEXT; + +typedef union VkDeviceOrHostAddressKHR { + VkDeviceAddress deviceAddress; + void* hostAddress; +} VkDeviceOrHostAddressKHR; + +typedef struct VkMicromapBuildInfoEXT { + VkStructureType sType; + const void* pNext; + VkMicromapTypeEXT type; + VkBuildMicromapFlagsEXT flags; + VkBuildMicromapModeEXT mode; + VkMicromapEXT dstMicromap; + uint32_t usageCountsCount; + const VkMicromapUsageEXT* pUsageCounts; + const VkMicromapUsageEXT* const* ppUsageCounts; + VkDeviceOrHostAddressConstKHR data; + VkDeviceOrHostAddressKHR scratchData; + VkDeviceOrHostAddressConstKHR triangleArray; + VkDeviceSize triangleArrayStride; +} VkMicromapBuildInfoEXT; + +typedef struct VkMicromapCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkMicromapCreateFlagsEXT createFlags; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; + VkMicromapTypeEXT type; + VkDeviceAddress deviceAddress; +} VkMicromapCreateInfoEXT; + +typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT { VkStructureType sType; void* pNext; - uint32_t maxInlineUniformBlockSize; - uint32_t maxPerStageDescriptorInlineUniformBlocks; - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; - uint32_t maxDescriptorSetInlineUniformBlocks; - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; -} VkPhysicalDeviceInlineUniformBlockPropertiesEXT; + VkBool32 micromap; + VkBool32 micromapCaptureReplay; + VkBool32 micromapHostCommands; +} VkPhysicalDeviceOpacityMicromapFeaturesEXT; -typedef struct VkWriteDescriptorSetInlineUniformBlockEXT { +typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT { VkStructureType sType; - const void* pNext; - uint32_t dataSize; - const void* pData; -} VkWriteDescriptorSetInlineUniformBlockEXT; + void* pNext; + uint32_t maxOpacity2StateSubdivisionLevel; + uint32_t maxOpacity4StateSubdivisionLevel; +} VkPhysicalDeviceOpacityMicromapPropertiesEXT; -typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT { +typedef struct VkMicromapVersionInfoEXT { VkStructureType sType; const void* pNext; - uint32_t maxInlineUniformBlockBindings; -} VkDescriptorPoolInlineUniformBlockCreateInfoEXT; + const uint8_t* pVersionData; +} VkMicromapVersionInfoEXT; +typedef struct VkCopyMicromapToMemoryInfoEXT { + VkStructureType sType; + const void* pNext; + VkMicromapEXT src; + VkDeviceOrHostAddressKHR dst; + VkCopyMicromapModeEXT mode; +} VkCopyMicromapToMemoryInfoEXT; +typedef struct VkCopyMemoryToMicromapInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR src; + VkMicromapEXT dst; + VkCopyMicromapModeEXT mode; +} VkCopyMemoryToMicromapInfoEXT; -#define VK_EXT_shader_stencil_export 1 -#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 -#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" +typedef struct VkCopyMicromapInfoEXT { + VkStructureType sType; + const void* pNext; + VkMicromapEXT src; + VkMicromapEXT dst; + VkCopyMicromapModeEXT mode; +} VkCopyMicromapInfoEXT; +typedef struct VkMicromapBuildSizesInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceSize micromapSize; + VkDeviceSize buildScratchSize; + VkBool32 discardable; +} VkMicromapBuildSizesInfoEXT; -#define VK_EXT_sample_locations 1 -#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 -#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" +typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT { + VkStructureType sType; + void* pNext; + VkIndexType indexType; + VkDeviceOrHostAddressConstKHR indexBuffer; + VkDeviceSize indexStride; + uint32_t baseTriangle; + uint32_t usageCountsCount; + const VkMicromapUsageEXT* pUsageCounts; + const VkMicromapUsageEXT* const* ppUsageCounts; + VkMicromapEXT micromap; +} VkAccelerationStructureTrianglesOpacityMicromapEXT; + +typedef struct VkMicromapTriangleEXT { + uint32_t dataOffset; + uint16_t subdivisionLevel; + uint16_t format; +} VkMicromapTriangleEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap); +typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos); +typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); +typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility); +typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo); -typedef struct VkSampleLocationEXT { - float x; - float y; -} VkSampleLocationEXT; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT( + VkDevice device, + const VkMicromapCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkMicromapEXT* pMicromap); -typedef struct VkSampleLocationsInfoEXT { - VkStructureType sType; - const void* pNext; - VkSampleCountFlagBits sampleLocationsPerPixel; - VkExtent2D sampleLocationGridSize; - uint32_t sampleLocationsCount; - const VkSampleLocationEXT* pSampleLocations; -} VkSampleLocationsInfoEXT; +VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT( + VkDevice device, + VkMicromapEXT micromap, + const VkAllocationCallbacks* pAllocator); -typedef struct VkAttachmentSampleLocationsEXT { - uint32_t attachmentIndex; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkAttachmentSampleLocationsEXT; +VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT( + VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkMicromapBuildInfoEXT* pInfos); -typedef struct VkSubpassSampleLocationsEXT { - uint32_t subpassIndex; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkSubpassSampleLocationsEXT; +VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VkMicromapBuildInfoEXT* pInfos); -typedef struct VkRenderPassSampleLocationsBeginInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t attachmentInitialSampleLocationsCount; - const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations; - uint32_t postSubpassSampleLocationsCount; - const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations; -} VkRenderPassSampleLocationsBeginInfoEXT; +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMicromapInfoEXT* pInfo); -typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkBool32 sampleLocationsEnable; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkPipelineSampleLocationsStateCreateInfoEXT; +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMicromapToMemoryInfoEXT* pInfo); -typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { - VkStructureType sType; - void* pNext; - VkSampleCountFlags sampleLocationSampleCounts; - VkExtent2D maxSampleLocationGridSize; - float sampleLocationCoordinateRange[2]; - uint32_t sampleLocationSubPixelBits; - VkBool32 variableSampleLocations; -} VkPhysicalDeviceSampleLocationsPropertiesEXT; +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMemoryToMicromapInfoEXT* pInfo); -typedef struct VkMultisamplePropertiesEXT { - VkStructureType sType; - void* pNext; - VkExtent2D maxSampleLocationGridSize; -} VkMultisamplePropertiesEXT; +VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT( + VkDevice device, + uint32_t micromapCount, + const VkMicromapEXT* pMicromaps, + VkQueryType queryType, + size_t dataSize, + void* pData, + size_t stride); +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT( + VkCommandBuffer commandBuffer, + const VkCopyMicromapInfoEXT* pInfo); -typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT( + VkCommandBuffer commandBuffer, + const VkCopyMicromapToMemoryInfoEXT* pInfo); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT( VkCommandBuffer commandBuffer, - const VkSampleLocationsInfoEXT* pSampleLocationsInfo); + const VkCopyMemoryToMicromapInfoEXT* pInfo); -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( - VkPhysicalDevice physicalDevice, - VkSampleCountFlagBits samples, - VkMultisamplePropertiesEXT* pMultisampleProperties); +VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT( + VkCommandBuffer commandBuffer, + uint32_t micromapCount, + const VkMicromapEXT* pMicromaps, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT( + VkDevice device, + const VkMicromapVersionInfoEXT* pVersionInfo, + VkAccelerationStructureCompatibilityKHR* pCompatibility); + +VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT( + VkDevice device, + VkAccelerationStructureBuildTypeKHR buildType, + const VkMicromapBuildInfoEXT* pBuildInfo, + VkMicromapBuildSizesInfoEXT* pSizeInfo); #endif -#define VK_EXT_blend_operation_advanced 1 -#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 -#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" +#define VK_EXT_load_store_op_none 1 +#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1 +#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none" -typedef enum VkBlendOverlapEXT { - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, - VK_BLEND_OVERLAP_DISJOINT_EXT = 1, - VK_BLEND_OVERLAP_CONJOINT_EXT = 2, - VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT, - VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT, - VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1), - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF -} VkBlendOverlapEXT; -typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { +#define VK_HUAWEI_cluster_culling_shader 1 +#define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 1 +#define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader" +typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI { VkStructureType sType; void* pNext; - VkBool32 advancedBlendCoherentOperations; -} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; + VkBool32 clustercullingShader; + VkBool32 multiviewClusterCullingShader; +} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI; -typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { +typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI { VkStructureType sType; void* pNext; - uint32_t advancedBlendMaxColorAttachments; - VkBool32 advancedBlendIndependentBlend; - VkBool32 advancedBlendNonPremultipliedSrcColor; - VkBool32 advancedBlendNonPremultipliedDstColor; - VkBool32 advancedBlendCorrelatedOverlap; - VkBool32 advancedBlendAllOperations; -} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; - -typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkBool32 srcPremultiplied; - VkBool32 dstPremultiplied; - VkBlendOverlapEXT blendOverlap; -} VkPipelineColorBlendAdvancedStateCreateInfoEXT; - - - -#define VK_NV_fragment_coverage_to_color 1 -#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 -#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" - -typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; - -typedef struct VkPipelineCoverageToColorStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineCoverageToColorStateCreateFlagsNV flags; - VkBool32 coverageToColorEnable; - uint32_t coverageToColorLocation; -} VkPipelineCoverageToColorStateCreateInfoNV; + uint32_t maxWorkGroupCount[3]; + uint32_t maxWorkGroupSize[3]; + uint32_t maxOutputClusterCount; +} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI; +typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); +typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI( + VkCommandBuffer commandBuffer, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ); -#define VK_NV_framebuffer_mixed_samples 1 -#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 -#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" - - -typedef enum VkCoverageModulationModeNV { - 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_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV, - VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV, - VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1), - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF -} VkCoverageModulationModeNV; +VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset); +#endif -typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; -typedef struct VkPipelineCoverageModulationStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineCoverageModulationStateCreateFlagsNV flags; - VkCoverageModulationModeNV coverageModulationMode; - VkBool32 coverageModulationTableEnable; - uint32_t coverageModulationTableCount; - const float* pCoverageModulationTable; -} VkPipelineCoverageModulationStateCreateInfoNV; +#define VK_EXT_border_color_swizzle 1 +#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1 +#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle" +typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 borderColorSwizzle; + VkBool32 borderColorSwizzleFromImage; +} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT; +typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkComponentMapping components; + VkBool32 srgb; +} VkSamplerBorderColorComponentMappingCreateInfoEXT; -#define VK_NV_fill_rectangle 1 -#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1 -#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" +#define VK_EXT_pageable_device_local_memory 1 +#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1 +#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory" +typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pageableDeviceLocalMemory; +} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT; -#define VK_EXT_post_depth_coverage 1 -#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 -#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" +typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT( + VkDevice device, + VkDeviceMemory memory, + float priority); +#endif -#define VK_EXT_image_drm_format_modifier 1 -#define VK_EXT_EXTENSION_159_SPEC_VERSION 0 -#define VK_EXT_EXTENSION_159_EXTENSION_NAME "VK_EXT_extension_159" -#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 -#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" -typedef struct VkDrmFormatModifierPropertiesEXT { - uint64_t drmFormatModifier; - uint32_t drmFormatModifierPlaneCount; - VkFormatFeatureFlags drmFormatModifierTilingFeatures; -} VkDrmFormatModifierPropertiesEXT; +#define VK_VALVE_descriptor_set_host_mapping 1 +#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1 +#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping" +typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { + VkStructureType sType; + void* pNext; + VkBool32 descriptorSetHostMapping; +} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE; -typedef struct VkDrmFormatModifierPropertiesListEXT { - VkStructureType sType; - void* pNext; - uint32_t drmFormatModifierCount; - VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties; -} VkDrmFormatModifierPropertiesListEXT; +typedef struct VkDescriptorSetBindingReferenceVALVE { + VkStructureType sType; + const void* pNext; + VkDescriptorSetLayout descriptorSetLayout; + uint32_t binding; +} VkDescriptorSetBindingReferenceVALVE; -typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT { +typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE { VkStructureType sType; - const void* pNext; - uint64_t drmFormatModifier; - VkSharingMode sharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t* pQueueFamilyIndices; -} VkPhysicalDeviceImageDrmFormatModifierInfoEXT; + void* pNext; + size_t descriptorOffset; + uint32_t descriptorSize; +} VkDescriptorSetLayoutHostMappingInfoVALVE; -typedef struct VkImageDrmFormatModifierListCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t drmFormatModifierCount; - const uint64_t* pDrmFormatModifiers; -} VkImageDrmFormatModifierListCreateInfoEXT; +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData); -typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint64_t drmFormatModifier; - uint32_t drmFormatModifierPlaneCount; - const VkSubresourceLayout* pPlaneLayouts; -} VkImageDrmFormatModifierExplicitCreateInfoEXT; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE( + VkDevice device, + const VkDescriptorSetBindingReferenceVALVE* pBindingReference, + VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); + +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE( + VkDevice device, + VkDescriptorSet descriptorSet, + void** ppData); +#endif -typedef struct VkImageDrmFormatModifierPropertiesEXT { + +#define VK_EXT_depth_clamp_zero_one 1 +#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1 +#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one" +typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT { VkStructureType sType; void* pNext; - uint64_t drmFormatModifier; -} VkImageDrmFormatModifierPropertiesEXT; + VkBool32 depthClampZeroOne; +} VkPhysicalDeviceDepthClampZeroOneFeaturesEXT; -typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( - VkDevice device, - VkImage image, - VkImageDrmFormatModifierPropertiesEXT* pProperties); -#endif +#define VK_EXT_non_seamless_cube_map 1 +#define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1 +#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map" +typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 nonSeamlessCubeMap; +} VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT; -#define VK_EXT_validation_cache 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) -#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 -#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" +#define VK_QCOM_fragment_density_map_offset 1 +#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1 +#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset" +typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 fragmentDensityMapOffset; +} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM; -typedef enum VkValidationCacheHeaderVersionEXT { - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, - VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, - VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, - VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1), - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF -} VkValidationCacheHeaderVersionEXT; +typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { + VkStructureType sType; + void* pNext; + VkExtent2D fragmentDensityOffsetGranularity; +} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM; -typedef VkFlags VkValidationCacheCreateFlagsEXT; +typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM { + VkStructureType sType; + const void* pNext; + uint32_t fragmentDensityOffsetCount; + const VkOffset2D* pFragmentDensityOffsets; +} VkSubpassFragmentDensityMapOffsetEndInfoQCOM; -typedef struct VkValidationCacheCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkValidationCacheCreateFlagsEXT flags; - size_t initialDataSize; - const void* pInitialData; -} VkValidationCacheCreateInfoEXT; -typedef struct VkShaderModuleValidationCacheCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkValidationCacheEXT validationCache; -} VkShaderModuleValidationCacheCreateInfoEXT; +#define VK_NV_copy_memory_indirect 1 +#define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1 +#define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect" +typedef struct VkCopyMemoryIndirectCommandNV { + VkDeviceAddress srcAddress; + VkDeviceAddress dstAddress; + VkDeviceSize size; +} VkCopyMemoryIndirectCommandNV; -typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache); -typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches); -typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData); +typedef struct VkCopyMemoryToImageIndirectCommandNV { + VkDeviceAddress srcAddress; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkCopyMemoryToImageIndirectCommandNV; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT( - VkDevice device, - const VkValidationCacheCreateInfoEXT* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkValidationCacheEXT* pValidationCache); +typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 indirectCopy; +} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV; -VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT( - VkDevice device, - VkValidationCacheEXT validationCache, - const VkAllocationCallbacks* pAllocator); +typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV { + VkStructureType sType; + void* pNext; + VkQueueFlags supportedQueues; +} VkPhysicalDeviceCopyMemoryIndirectPropertiesNV; -VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT( - VkDevice device, - VkValidationCacheEXT dstCache, - uint32_t srcCacheCount, - const VkValidationCacheEXT* pSrcCaches); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources); -VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( - VkDevice device, - VkValidationCacheEXT validationCache, - size_t* pDataSize, - void* pData); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV( + VkCommandBuffer commandBuffer, + VkDeviceAddress copyBufferAddress, + uint32_t copyCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV( + VkCommandBuffer commandBuffer, + VkDeviceAddress copyBufferAddress, + uint32_t copyCount, + uint32_t stride, + VkImage dstImage, + VkImageLayout dstImageLayout, + const VkImageSubresourceLayers* pImageSubresources); #endif -#define VK_EXT_descriptor_indexing 1 -#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2 -#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing" +#define VK_NV_memory_decompression 1 +#define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1 +#define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression" -typedef enum VkDescriptorBindingFlagBitsEXT { - VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001, - VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002, - VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004, - VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008, - VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDescriptorBindingFlagBitsEXT; -typedef VkFlags VkDescriptorBindingFlagsEXT; +// Flag bits for VkMemoryDecompressionMethodFlagBitsNV +typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV; +static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL; -typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t bindingCount; - const VkDescriptorBindingFlagsEXT* pBindingFlags; -} VkDescriptorSetLayoutBindingFlagsCreateInfoEXT; +typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV; +typedef struct VkDecompressMemoryRegionNV { + VkDeviceAddress srcAddress; + VkDeviceAddress dstAddress; + VkDeviceSize compressedSize; + VkDeviceSize decompressedSize; + VkMemoryDecompressionMethodFlagsNV decompressionMethod; +} VkDecompressMemoryRegionNV; -typedef struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT { +typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV { VkStructureType sType; void* pNext; - VkBool32 shaderInputAttachmentArrayDynamicIndexing; - VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; - VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; - VkBool32 shaderUniformBufferArrayNonUniformIndexing; - VkBool32 shaderSampledImageArrayNonUniformIndexing; - VkBool32 shaderStorageBufferArrayNonUniformIndexing; - VkBool32 shaderStorageImageArrayNonUniformIndexing; - VkBool32 shaderInputAttachmentArrayNonUniformIndexing; - VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; - VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; - VkBool32 descriptorBindingUniformBufferUpdateAfterBind; - VkBool32 descriptorBindingSampledImageUpdateAfterBind; - VkBool32 descriptorBindingStorageImageUpdateAfterBind; - VkBool32 descriptorBindingStorageBufferUpdateAfterBind; - VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; - VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; - VkBool32 descriptorBindingUpdateUnusedWhilePending; - VkBool32 descriptorBindingPartiallyBound; - VkBool32 descriptorBindingVariableDescriptorCount; - VkBool32 runtimeDescriptorArray; -} VkPhysicalDeviceDescriptorIndexingFeaturesEXT; + VkBool32 memoryDecompression; +} VkPhysicalDeviceMemoryDecompressionFeaturesNV; -typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t maxUpdateAfterBindDescriptorsInAllPools; - VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; - VkBool32 shaderSampledImageArrayNonUniformIndexingNative; - VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; - VkBool32 shaderStorageImageArrayNonUniformIndexingNative; - VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; - VkBool32 robustBufferAccessUpdateAfterBind; - VkBool32 quadDivergentImplicitLod; - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; - uint32_t maxPerStageUpdateAfterBindResources; - uint32_t maxDescriptorSetUpdateAfterBindSamplers; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; - uint32_t maxDescriptorSetUpdateAfterBindSampledImages; - uint32_t maxDescriptorSetUpdateAfterBindStorageImages; - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; -} VkPhysicalDeviceDescriptorIndexingPropertiesEXT; +typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV { + VkStructureType sType; + void* pNext; + VkMemoryDecompressionMethodFlagsNV decompressionMethods; + uint64_t maxDecompressionIndirectCount; +} VkPhysicalDeviceMemoryDecompressionPropertiesNV; -typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t descriptorSetCount; - const uint32_t* pDescriptorCounts; -} VkDescriptorSetVariableDescriptorCountAllocateInfoEXT; +typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions); +typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV( + VkCommandBuffer commandBuffer, + uint32_t decompressRegionCount, + const VkDecompressMemoryRegionNV* pDecompressMemoryRegions); + +VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV( + VkCommandBuffer commandBuffer, + VkDeviceAddress indirectCommandsAddress, + VkDeviceAddress indirectCommandsCountAddress, + uint32_t stride); +#endif -typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT { + +#define VK_NV_linear_color_attachment 1 +#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1 +#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment" +typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV { VkStructureType sType; void* pNext; - uint32_t maxVariableDescriptorCount; -} VkDescriptorSetVariableDescriptorCountLayoutSupportEXT; + VkBool32 linearColorAttachment; +} VkPhysicalDeviceLinearColorAttachmentFeaturesNV; -#define VK_EXT_shader_viewport_index_layer 1 -#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1 -#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" - +#define VK_GOOGLE_surfaceless_query 1 +#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2 +#define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query" -#define VK_NV_shading_rate_image 1 -#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3 -#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image" +#define VK_EXT_image_compression_control_swapchain 1 +#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1 +#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain" +typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 imageCompressionControlSwapchain; +} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT; -typedef enum VkShadingRatePaletteEntryNV { - 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_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, - VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV, - VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1), - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF -} VkShadingRatePaletteEntryNV; -typedef enum VkCoarseSampleOrderTypeNV { - 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_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV, - VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV, - VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1), - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkCoarseSampleOrderTypeNV; -typedef struct VkShadingRatePaletteNV { - uint32_t shadingRatePaletteEntryCount; - const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries; -} VkShadingRatePaletteNV; +#define VK_QCOM_image_processing 1 +#define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1 +#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing" +typedef struct VkImageViewSampleWeightCreateInfoQCOM { + VkStructureType sType; + const void* pNext; + VkOffset2D filterCenter; + VkExtent2D filterSize; + uint32_t numPhases; +} VkImageViewSampleWeightCreateInfoQCOM; -typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkBool32 shadingRateImageEnable; - uint32_t viewportCount; - const VkShadingRatePaletteNV* pShadingRatePalettes; -} VkPipelineViewportShadingRateImageStateCreateInfoNV; +typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 textureSampleWeighted; + VkBool32 textureBoxFilter; + VkBool32 textureBlockMatch; +} VkPhysicalDeviceImageProcessingFeaturesQCOM; -typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV { +typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM { VkStructureType sType; void* pNext; - VkBool32 shadingRateImage; - VkBool32 shadingRateCoarseSampleOrder; -} VkPhysicalDeviceShadingRateImageFeaturesNV; + uint32_t maxWeightFilterPhases; + VkExtent2D maxWeightFilterDimension; + VkExtent2D maxBlockMatchRegion; + VkExtent2D maxBoxFilterBlockSize; +} VkPhysicalDeviceImageProcessingPropertiesQCOM; -typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { + + +#define VK_EXT_extended_dynamic_state3 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3" +typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT { VkStructureType sType; void* pNext; - VkExtent2D shadingRateTexelSize; - uint32_t shadingRatePaletteSize; - uint32_t shadingRateMaxCoarseSamples; -} VkPhysicalDeviceShadingRateImagePropertiesNV; + 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; +} VkPhysicalDeviceExtendedDynamicState3FeaturesEXT; + +typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 dynamicPrimitiveTopologyUnrestricted; +} VkPhysicalDeviceExtendedDynamicState3PropertiesEXT; + +typedef struct VkColorBlendEquationEXT { + VkBlendFactor srcColorBlendFactor; + VkBlendFactor dstColorBlendFactor; + VkBlendOp colorBlendOp; + VkBlendFactor srcAlphaBlendFactor; + VkBlendFactor dstAlphaBlendFactor; + VkBlendOp alphaBlendOp; +} VkColorBlendEquationEXT; + +typedef struct VkColorBlendAdvancedEXT { + VkBlendOp advancedBlendOp; + VkBool32 srcPremultiplied; + VkBool32 dstPremultiplied; + VkBlendOverlapEXT blendOverlap; + VkBool32 clampResults; +} VkColorBlendAdvancedEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples); +typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask); +typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables); +typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations); +typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream); +typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced); +typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable); +typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode); -typedef struct VkCoarseSampleLocationNV { - uint32_t pixelX; - uint32_t pixelY; - uint32_t sample; -} VkCoarseSampleLocationNV; +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT( + VkCommandBuffer commandBuffer, + VkTessellationDomainOrigin domainOrigin); -typedef struct VkCoarseSampleOrderCustomNV { - VkShadingRatePaletteEntryNV shadingRate; - uint32_t sampleCount; - uint32_t sampleLocationCount; - const VkCoarseSampleLocationNV* pSampleLocations; -} VkCoarseSampleOrderCustomNV; +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthClampEnable); -typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkCoarseSampleOrderTypeNV sampleOrderType; - uint32_t customSampleOrderCount; - const VkCoarseSampleOrderCustomNV* pCustomSampleOrders; -} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; +VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT( + VkCommandBuffer commandBuffer, + VkPolygonMode polygonMode); +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT( + VkCommandBuffer commandBuffer, + VkSampleCountFlagBits rasterizationSamples); -typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); -typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes); -typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); +VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT( + VkCommandBuffer commandBuffer, + VkSampleCountFlagBits samples, + const VkSampleMask* pSampleMask); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV( +VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT( VkCommandBuffer commandBuffer, - VkImageView imageView, - VkImageLayout imageLayout); + VkBool32 alphaToCoverageEnable); -VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV( +VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT( VkCommandBuffer commandBuffer, - uint32_t firstViewport, - uint32_t viewportCount, - const VkShadingRatePaletteNV* pShadingRatePalettes); + VkBool32 alphaToOneEnable); -VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV( +VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT( VkCommandBuffer commandBuffer, - VkCoarseSampleOrderTypeNV sampleOrderType, - uint32_t customSampleOrderCount, - const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); -#endif + VkBool32 logicOpEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT( + VkCommandBuffer commandBuffer, + uint32_t firstAttachment, + uint32_t attachmentCount, + const VkBool32* pColorBlendEnables); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT( + VkCommandBuffer commandBuffer, + uint32_t firstAttachment, + uint32_t attachmentCount, + const VkColorBlendEquationEXT* pColorBlendEquations); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT( + VkCommandBuffer commandBuffer, + uint32_t firstAttachment, + uint32_t attachmentCount, + const VkColorComponentFlags* pColorWriteMasks); -#define VK_NVX_raytracing 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNVX) - -#define VK_NVX_RAYTRACING_SPEC_VERSION 1 -#define VK_NVX_RAYTRACING_EXTENSION_NAME "VK_NVX_raytracing" - - -typedef enum VkGeometryTypeNVX { - VK_GEOMETRY_TYPE_TRIANGLES_NVX = 0, - VK_GEOMETRY_TYPE_AABBS_NVX = 1, - VK_GEOMETRY_TYPE_BEGIN_RANGE_NVX = VK_GEOMETRY_TYPE_TRIANGLES_NVX, - VK_GEOMETRY_TYPE_END_RANGE_NVX = VK_GEOMETRY_TYPE_AABBS_NVX, - VK_GEOMETRY_TYPE_RANGE_SIZE_NVX = (VK_GEOMETRY_TYPE_AABBS_NVX - VK_GEOMETRY_TYPE_TRIANGLES_NVX + 1), - VK_GEOMETRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF -} VkGeometryTypeNVX; - -typedef enum VkAccelerationStructureTypeNVX { - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX = 0, - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX = 1, - VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NVX = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX, - VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NVX = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX, - VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NVX = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX + 1), - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF -} VkAccelerationStructureTypeNVX; - -typedef enum VkCopyAccelerationStructureModeNVX { - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX = 0, - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX = 1, - VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NVX = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX, - VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NVX = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX, - VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NVX = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX + 1), - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NVX = 0x7FFFFFFF -} VkCopyAccelerationStructureModeNVX; - - -typedef enum VkGeometryFlagBitsNVX { - VK_GEOMETRY_OPAQUE_BIT_NVX = 0x00000001, - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NVX = 0x00000002, - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF -} VkGeometryFlagBitsNVX; -typedef VkFlags VkGeometryFlagsNVX; - -typedef enum VkGeometryInstanceFlagBitsNVX { - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NVX = 0x00000001, - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_FLIP_WINDING_BIT_NVX = 0x00000002, - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NVX = 0x00000004, - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NVX = 0x00000008, - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF -} VkGeometryInstanceFlagBitsNVX; -typedef VkFlags VkGeometryInstanceFlagsNVX; - -typedef enum VkBuildAccelerationStructureFlagBitsNVX { - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NVX = 0x00000001, - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NVX = 0x00000002, - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NVX = 0x00000004, - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NVX = 0x00000008, - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NVX = 0x00000010, - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF -} VkBuildAccelerationStructureFlagBitsNVX; -typedef VkFlags VkBuildAccelerationStructureFlagsNVX; - -typedef struct VkRaytracingPipelineCreateInfoNVX { - VkStructureType sType; - const void* pNext; - VkPipelineCreateFlags flags; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo* pStages; - const uint32_t* pGroupNumbers; - uint32_t maxRecursionDepth; - VkPipelineLayout layout; - VkPipeline basePipelineHandle; - int32_t basePipelineIndex; -} VkRaytracingPipelineCreateInfoNVX; - -typedef struct VkGeometryTrianglesNVX { - VkStructureType sType; - const void* pNext; - VkBuffer vertexData; - VkDeviceSize vertexOffset; - uint32_t vertexCount; - VkDeviceSize vertexStride; - VkFormat vertexFormat; - VkBuffer indexData; - VkDeviceSize indexOffset; - uint32_t indexCount; - VkIndexType indexType; - VkBuffer transformData; - VkDeviceSize transformOffset; -} VkGeometryTrianglesNVX; +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT( + VkCommandBuffer commandBuffer, + uint32_t rasterizationStream); -typedef struct VkGeometryAABBNVX { - VkStructureType sType; - const void* pNext; - VkBuffer aabbData; - uint32_t numAABBs; - uint32_t stride; - VkDeviceSize offset; -} VkGeometryAABBNVX; +VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT( + VkCommandBuffer commandBuffer, + VkConservativeRasterizationModeEXT conservativeRasterizationMode); -typedef struct VkGeometryDataNVX { - VkGeometryTrianglesNVX triangles; - VkGeometryAABBNVX aabbs; -} VkGeometryDataNVX; +VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT( + VkCommandBuffer commandBuffer, + float extraPrimitiveOverestimationSize); -typedef struct VkGeometryNVX { - VkStructureType sType; - const void* pNext; - VkGeometryTypeNVX geometryType; - VkGeometryDataNVX geometry; - VkGeometryFlagsNVX flags; -} VkGeometryNVX; +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthClipEnable); -typedef struct VkAccelerationStructureCreateInfoNVX { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureTypeNVX type; - VkBuildAccelerationStructureFlagsNVX flags; - VkDeviceSize compactedSize; - uint32_t instanceCount; - uint32_t geometryCount; - const VkGeometryNVX* pGeometries; -} VkAccelerationStructureCreateInfoNVX; - -typedef struct VkBindAccelerationStructureMemoryInfoNVX { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureNVX accelerationStructure; - VkDeviceMemory memory; - VkDeviceSize memoryOffset; - uint32_t deviceIndexCount; - const uint32_t* pDeviceIndices; -} VkBindAccelerationStructureMemoryInfoNVX; - -typedef struct VkDescriptorAccelerationStructureInfoNVX { - VkStructureType sType; - const void* pNext; - uint32_t accelerationStructureCount; - const VkAccelerationStructureNVX* pAccelerationStructures; -} VkDescriptorAccelerationStructureInfoNVX; +VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 sampleLocationsEnable); -typedef struct VkAccelerationStructureMemoryRequirementsInfoNVX { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureNVX accelerationStructure; -} VkAccelerationStructureMemoryRequirementsInfoNVX; +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT( + VkCommandBuffer commandBuffer, + uint32_t firstAttachment, + uint32_t attachmentCount, + const VkColorBlendAdvancedEXT* pColorBlendAdvanced); -typedef struct VkPhysicalDeviceRaytracingPropertiesNVX { - VkStructureType sType; - void* pNext; - uint32_t shaderHeaderSize; - uint32_t maxRecursionDepth; - uint32_t maxGeometryCount; -} VkPhysicalDeviceRaytracingPropertiesNVX; - - -typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNVX)(VkDevice device, const VkAccelerationStructureCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNVX* pAccelerationStructure); -typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNVX)(VkDevice device, VkAccelerationStructureNVX accelerationStructure, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNVX)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); -typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNVX)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos); -typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNVX)(VkCommandBuffer commandBuffer, VkAccelerationStructureTypeNVX type, uint32_t instanceCount, VkBuffer instanceData, VkDeviceSize instanceOffset, uint32_t geometryCount, const VkGeometryNVX* pGeometries, VkBuildAccelerationStructureFlagsNVX flags, VkBool32 update, VkAccelerationStructureNVX dst, VkAccelerationStructureNVX src, VkBuffer scratch, VkDeviceSize scratchOffset); -typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNVX)(VkCommandBuffer commandBuffer, VkAccelerationStructureNVX dst, VkAccelerationStructureNVX src, VkCopyAccelerationStructureModeNVX mode); -typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNVX)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, uint32_t width, uint32_t height); -typedef VkResult (VKAPI_PTR *PFN_vkCreateRaytracingPipelinesNVX)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRaytracingPipelineCreateInfoNVX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); -typedef VkResult (VKAPI_PTR *PFN_vkGetRaytracingShaderHandlesNVX)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); -typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNVX)(VkDevice device, VkAccelerationStructureNVX accelerationStructure, size_t dataSize, void* pData); -typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructurePropertiesNVX)(VkCommandBuffer commandBuffer, VkAccelerationStructureNVX accelerationStructure, VkQueryType queryType, VkQueryPool queryPool, uint32_t query); -typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNVX)(VkDevice device, VkPipeline pipeline, uint32_t shader); +VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT( + VkCommandBuffer commandBuffer, + VkProvokingVertexModeEXT provokingVertexMode); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNVX( - VkDevice device, - const VkAccelerationStructureCreateInfoNVX* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkAccelerationStructureNVX* pAccelerationStructure); +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT( + VkCommandBuffer commandBuffer, + VkLineRasterizationModeEXT lineRasterizationMode); -VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNVX( - VkDevice device, - VkAccelerationStructureNVX accelerationStructure, - const VkAllocationCallbacks* pAllocator); +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 stippledLineEnable); -VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNVX( - VkDevice device, - const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, - VkMemoryRequirements2KHR* pMemoryRequirements); +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT( + VkCommandBuffer commandBuffer, + VkBool32 negativeOneToOne); -VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureScratchMemoryRequirementsNVX( - VkDevice device, - const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, - VkMemoryRequirements2KHR* pMemoryRequirements); +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 viewportWScalingEnable); -VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNVX( - VkDevice device, - uint32_t bindInfoCount, - const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos); +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV( + VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkViewportSwizzleNV* pViewportSwizzles); -VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNVX( +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV( VkCommandBuffer commandBuffer, - VkAccelerationStructureTypeNVX type, - uint32_t instanceCount, - VkBuffer instanceData, - VkDeviceSize instanceOffset, - uint32_t geometryCount, - const VkGeometryNVX* pGeometries, - VkBuildAccelerationStructureFlagsNVX flags, - VkBool32 update, - VkAccelerationStructureNVX dst, - VkAccelerationStructureNVX src, - VkBuffer scratch, - VkDeviceSize scratchOffset); + VkBool32 coverageToColorEnable); -VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNVX( +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV( VkCommandBuffer commandBuffer, - VkAccelerationStructureNVX dst, - VkAccelerationStructureNVX src, - VkCopyAccelerationStructureModeNVX mode); + uint32_t coverageToColorLocation); -VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNVX( +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV( VkCommandBuffer commandBuffer, - VkBuffer raygenShaderBindingTableBuffer, - VkDeviceSize raygenShaderBindingOffset, - VkBuffer missShaderBindingTableBuffer, - VkDeviceSize missShaderBindingOffset, - VkDeviceSize missShaderBindingStride, - VkBuffer hitShaderBindingTableBuffer, - VkDeviceSize hitShaderBindingOffset, - VkDeviceSize hitShaderBindingStride, - uint32_t width, - uint32_t height); + VkCoverageModulationModeNV coverageModulationMode); -VKAPI_ATTR VkResult VKAPI_CALL vkCreateRaytracingPipelinesNVX( - VkDevice device, - VkPipelineCache pipelineCache, - uint32_t createInfoCount, - const VkRaytracingPipelineCreateInfoNVX* pCreateInfos, - const VkAllocationCallbacks* pAllocator, - VkPipeline* pPipelines); +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 coverageModulationTableEnable); -VKAPI_ATTR VkResult VKAPI_CALL vkGetRaytracingShaderHandlesNVX( - VkDevice device, - VkPipeline pipeline, - uint32_t firstGroup, - uint32_t groupCount, - size_t dataSize, - void* pData); +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV( + VkCommandBuffer commandBuffer, + uint32_t coverageModulationTableCount, + const float* pCoverageModulationTable); -VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNVX( - VkDevice device, - VkAccelerationStructureNVX accelerationStructure, - size_t dataSize, - void* pData); +VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 shadingRateImageEnable); -VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructurePropertiesNVX( +VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV( VkCommandBuffer commandBuffer, - VkAccelerationStructureNVX accelerationStructure, - VkQueryType queryType, - VkQueryPool queryPool, - uint32_t query); + VkBool32 representativeFragmentTestEnable); -VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNVX( - VkDevice device, - VkPipeline pipeline, - uint32_t shader); +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV( + VkCommandBuffer commandBuffer, + VkCoverageReductionModeNV coverageReductionMode); #endif -#define VK_NV_representative_fragment_test 1 -#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1 -#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" -typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { +#define VK_EXT_subpass_merge_feedback 1 +#define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2 +#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback" + +typedef enum VkSubpassMergeStatusEXT { + 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 = 0x7FFFFFFF +} VkSubpassMergeStatusEXT; +typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT { VkStructureType sType; void* pNext; - VkBool32 representativeFragmentTest; -} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; + VkBool32 subpassMergeFeedback; +} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT; -typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { +typedef struct VkRenderPassCreationControlEXT { VkStructureType sType; const void* pNext; - VkBool32 representativeFragmentTestEnable; -} VkPipelineRepresentativeFragmentTestStateCreateInfoNV; + VkBool32 disallowMerging; +} VkRenderPassCreationControlEXT; +typedef struct VkRenderPassCreationFeedbackInfoEXT { + uint32_t postMergeSubpassCount; +} VkRenderPassCreationFeedbackInfoEXT; +typedef struct VkRenderPassCreationFeedbackCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback; +} VkRenderPassCreationFeedbackCreateInfoEXT; -#define VK_EXT_global_priority 1 -#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 -#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" +typedef struct VkRenderPassSubpassFeedbackInfoEXT { + VkSubpassMergeStatusEXT subpassMergeStatus; + char description[VK_MAX_DESCRIPTION_SIZE]; + uint32_t postMergeIndex; +} VkRenderPassSubpassFeedbackInfoEXT; +typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback; +} VkRenderPassSubpassFeedbackCreateInfoEXT; -typedef enum VkQueueGlobalPriorityEXT { - 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_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT, - VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT, - VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1), - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF -} VkQueueGlobalPriorityEXT; -typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkQueueGlobalPriorityEXT globalPriority; -} VkDeviceQueueGlobalPriorityCreateInfoEXT; +#define VK_LUNARG_direct_driver_loading 1 +#define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1 +#define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading" +typedef enum VkDirectDriverLoadingModeLUNARG { + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0, + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1, + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF +} VkDirectDriverLoadingModeLUNARG; +typedef VkFlags VkDirectDriverLoadingFlagsLUNARG; +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)( + VkInstance instance, const char* pName); -#define VK_EXT_external_memory_host 1 -#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 -#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" +typedef struct VkDirectDriverLoadingInfoLUNARG { + VkStructureType sType; + void* pNext; + VkDirectDriverLoadingFlagsLUNARG flags; + PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr; +} VkDirectDriverLoadingInfoLUNARG; -typedef struct VkImportMemoryHostPointerInfoEXT { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagBits handleType; - void* pHostPointer; -} VkImportMemoryHostPointerInfoEXT; +typedef struct VkDirectDriverLoadingListLUNARG { + VkStructureType sType; + void* pNext; + VkDirectDriverLoadingModeLUNARG mode; + uint32_t driverCount; + const VkDirectDriverLoadingInfoLUNARG* pDrivers; +} VkDirectDriverLoadingListLUNARG; -typedef struct VkMemoryHostPointerPropertiesEXT { + + +#define VK_EXT_shader_module_identifier 1 +#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U +#define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1 +#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier" +typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT { VkStructureType sType; void* pNext; - uint32_t memoryTypeBits; -} VkMemoryHostPointerPropertiesEXT; + VkBool32 shaderModuleIdentifier; +} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT; -typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { +typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT { VkStructureType sType; void* pNext; - VkDeviceSize minImportedHostPointerAlignment; -} VkPhysicalDeviceExternalMemoryHostPropertiesEXT; + uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE]; +} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT; +typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t identifierSize; + const uint8_t* pIdentifier; +} VkPipelineShaderStageModuleIdentifierCreateInfoEXT; -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); +typedef struct VkShaderModuleIdentifierEXT { + VkStructureType sType; + void* pNext; + uint32_t identifierSize; + uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT]; +} VkShaderModuleIdentifierEXT; + +typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier); +typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( +VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT( VkDevice device, - VkExternalMemoryHandleTypeFlagBits handleType, - const void* pHostPointer, - VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); + VkShaderModule shaderModule, + VkShaderModuleIdentifierEXT* pIdentifier); + +VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT( + VkDevice device, + const VkShaderModuleCreateInfo* pCreateInfo, + VkShaderModuleIdentifierEXT* pIdentifier); #endif -#define VK_AMD_buffer_marker 1 -#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1 -#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker" -typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); +#define VK_EXT_rasterization_order_attachment_access 1 +#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1 +#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access" + + +#define VK_NV_optical_flow 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV) +#define VK_NV_OPTICAL_FLOW_SPEC_VERSION 1 +#define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow" + +typedef enum VkOpticalFlowPerformanceLevelNV { + 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 = 0x7FFFFFFF +} VkOpticalFlowPerformanceLevelNV; + +typedef enum VkOpticalFlowSessionBindingPointNV { + 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 = 0x7FFFFFFF +} VkOpticalFlowSessionBindingPointNV; + +typedef enum VkOpticalFlowGridSizeFlagBitsNV { + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0, + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001, + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002, + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004, + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008, + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkOpticalFlowGridSizeFlagBitsNV; +typedef VkFlags VkOpticalFlowGridSizeFlagsNV; + +typedef enum VkOpticalFlowUsageFlagBitsNV { + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0, + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001, + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002, + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004, + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008, + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010, + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkOpticalFlowUsageFlagBitsNV; +typedef VkFlags VkOpticalFlowUsageFlagsNV; + +typedef enum VkOpticalFlowSessionCreateFlagBitsNV { + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001, + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002, + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004, + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008, + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010, + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkOpticalFlowSessionCreateFlagBitsNV; +typedef VkFlags VkOpticalFlowSessionCreateFlagsNV; + +typedef enum VkOpticalFlowExecuteFlagBitsNV { + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001, + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkOpticalFlowExecuteFlagBitsNV; +typedef VkFlags VkOpticalFlowExecuteFlagsNV; +typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 opticalFlow; +} VkPhysicalDeviceOpticalFlowFeaturesNV; + +typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV { + VkStructureType sType; + void* pNext; + VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes; + VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes; + VkBool32 hintSupported; + VkBool32 costSupported; + VkBool32 bidirectionalFlowSupported; + VkBool32 globalFlowSupported; + uint32_t minWidth; + uint32_t minHeight; + uint32_t maxWidth; + uint32_t maxHeight; + uint32_t maxNumRegionsOfInterest; +} VkPhysicalDeviceOpticalFlowPropertiesNV; + +typedef struct VkOpticalFlowImageFormatInfoNV { + VkStructureType sType; + const void* pNext; + VkOpticalFlowUsageFlagsNV usage; +} VkOpticalFlowImageFormatInfoNV; + +typedef struct VkOpticalFlowImageFormatPropertiesNV { + VkStructureType sType; + const void* pNext; + VkFormat format; +} VkOpticalFlowImageFormatPropertiesNV; + +typedef struct VkOpticalFlowSessionCreateInfoNV { + VkStructureType sType; + void* pNext; + uint32_t width; + uint32_t height; + VkFormat imageFormat; + VkFormat flowVectorFormat; + VkFormat costFormat; + VkOpticalFlowGridSizeFlagsNV outputGridSize; + VkOpticalFlowGridSizeFlagsNV hintGridSize; + VkOpticalFlowPerformanceLevelNV performanceLevel; + VkOpticalFlowSessionCreateFlagsNV flags; +} VkOpticalFlowSessionCreateInfoNV; + +typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV { + VkStructureType sType; + void* pNext; + uint32_t id; + uint32_t size; + const void* pPrivateData; +} VkOpticalFlowSessionCreatePrivateDataInfoNV; + +typedef struct VkOpticalFlowExecuteInfoNV { + VkStructureType sType; + void* pNext; + VkOpticalFlowExecuteFlagsNV flags; + uint32_t regionCount; + const VkRect2D* pRegions; +} VkOpticalFlowExecuteInfoNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties); +typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession); +typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout); +typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV( + VkPhysicalDevice physicalDevice, + const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, + uint32_t* pFormatCount, + VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV( + VkDevice device, + const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkOpticalFlowSessionNV* pSession); + +VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV( + VkDevice device, + VkOpticalFlowSessionNV session, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV( + VkDevice device, + VkOpticalFlowSessionNV session, + VkOpticalFlowSessionBindingPointNV bindingPoint, + VkImageView view, + VkImageLayout layout); + +VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV( VkCommandBuffer commandBuffer, - VkPipelineStageFlagBits pipelineStage, - VkBuffer dstBuffer, - VkDeviceSize dstOffset, - uint32_t marker); + VkOpticalFlowSessionNV session, + const VkOpticalFlowExecuteInfoNV* pExecuteInfo); #endif -#define VK_EXT_calibrated_timestamps 1 -#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1 -#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" +#define VK_EXT_legacy_dithering 1 +#define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 1 +#define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering" +typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 legacyDithering; +} VkPhysicalDeviceLegacyDitheringFeaturesEXT; -typedef enum VkTimeDomainEXT { - 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_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT, - VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT, - VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1), - VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF -} VkTimeDomainEXT; -typedef struct VkCalibratedTimestampInfoEXT { + +#define VK_EXT_pipeline_protected_access 1 +#define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access" +typedef struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT { VkStructureType sType; - const void* pNext; - VkTimeDomainEXT timeDomain; -} VkCalibratedTimestampInfoEXT; + void* pNext; + VkBool32 pipelineProtectedAccess; +} VkPhysicalDevicePipelineProtectedAccessFeaturesEXT; -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains); -typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); + +#define VK_QCOM_tile_properties 1 +#define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1 +#define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties" +typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 tileProperties; +} VkPhysicalDeviceTilePropertiesFeaturesQCOM; + +typedef struct VkTilePropertiesQCOM { + VkStructureType sType; + void* pNext; + VkExtent3D tileSize; + VkExtent2D apronSize; + VkOffset2D origin; +} VkTilePropertiesQCOM; + +typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( - VkPhysicalDevice physicalDevice, - uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains); +VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM( + VkDevice device, + VkFramebuffer framebuffer, + uint32_t* pPropertiesCount, + VkTilePropertiesQCOM* pProperties); -VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( +VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM( VkDevice device, - uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, - uint64_t* pTimestamps, - uint64_t* pMaxDeviation); + const VkRenderingInfo* pRenderingInfo, + VkTilePropertiesQCOM* pProperties); #endif -#define VK_AMD_shader_core_properties 1 -#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1 -#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" -typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { +#define VK_SEC_amigo_profiling 1 +#define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1 +#define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling" +typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC { VkStructureType sType; void* pNext; - uint32_t shaderEngineCount; - uint32_t shaderArraysPerEngineCount; - uint32_t computeUnitsPerShaderArray; - uint32_t simdPerComputeUnit; - uint32_t wavefrontsPerSimd; - uint32_t wavefrontSize; - uint32_t sgprsPerSimd; - uint32_t minSgprAllocation; - uint32_t maxSgprAllocation; - uint32_t sgprAllocationGranularity; - uint32_t vgprsPerSimd; - uint32_t minVgprAllocation; - uint32_t maxVgprAllocation; - uint32_t vgprAllocationGranularity; -} VkPhysicalDeviceShaderCorePropertiesAMD; + VkBool32 amigoProfiling; +} VkPhysicalDeviceAmigoProfilingFeaturesSEC; +typedef struct VkAmigoProfilingSubmitInfoSEC { + VkStructureType sType; + const void* pNext; + uint64_t firstDrawTimestamp; + uint64_t swapBufferTimestamp; +} VkAmigoProfilingSubmitInfoSEC; -#define VK_EXT_vertex_attribute_divisor 1 -#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3 -#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" -typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { +#define VK_QCOM_multiview_per_view_viewports 1 +#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1 +#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports" +typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM { VkStructureType sType; void* pNext; - uint32_t maxVertexAttribDivisor; -} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT; + VkBool32 multiviewPerViewViewports; +} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM; + -typedef struct VkVertexInputBindingDivisorDescriptionEXT { - uint32_t binding; - uint32_t divisor; -} VkVertexInputBindingDivisorDescriptionEXT; -typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t vertexBindingDivisorCount; - const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors; -} VkPipelineVertexInputDivisorStateCreateInfoEXT; +#define VK_NV_ray_tracing_invocation_reorder 1 +#define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1 +#define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder" -typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { +typedef enum VkRayTracingInvocationReorderModeNV { + 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 = 0x7FFFFFFF +} VkRayTracingInvocationReorderModeNV; +typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV { + VkStructureType sType; + void* pNext; + VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint; +} VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV; + +typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV { VkStructureType sType; void* pNext; - VkBool32 vertexAttributeInstanceRateDivisor; - VkBool32 vertexAttributeInstanceRateZeroDivisor; -} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; + VkBool32 rayTracingInvocationReorder; +} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV; -#define VK_NV_shader_subgroup_partitioned 1 -#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1 -#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" +#define VK_EXT_mutable_descriptor_type 1 +#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1 +#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type" -#define VK_NV_compute_shader_derivatives 1 -#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1 -#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives" +#define VK_ARM_shader_core_builtins 1 +#define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2 +#define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins" +typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM { + VkStructureType sType; + void* pNext; + VkBool32 shaderCoreBuiltins; +} VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM; -typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { +typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM { VkStructureType sType; void* pNext; - VkBool32 computeDerivativeGroupQuads; - VkBool32 computeDerivativeGroupLinear; -} VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; + uint64_t shaderCoreMask; + uint32_t shaderCoreCount; + uint32_t shaderWarpsPerCore; +} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM; + + + +#define VK_KHR_acceleration_structure 1 +#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13 +#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure" + +typedef enum VkBuildAccelerationStructureModeKHR { + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0, + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1, + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkBuildAccelerationStructureModeKHR; + +typedef enum VkAccelerationStructureCreateFlagBitsKHR { + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001, + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008, + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004, + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureCreateFlagBitsKHR; +typedef VkFlags VkAccelerationStructureCreateFlagsKHR; +typedef struct VkAccelerationStructureBuildRangeInfoKHR { + uint32_t primitiveCount; + uint32_t primitiveOffset; + uint32_t firstVertex; + uint32_t transformOffset; +} VkAccelerationStructureBuildRangeInfoKHR; + +typedef struct VkAccelerationStructureGeometryTrianglesDataKHR { + VkStructureType sType; + const void* pNext; + VkFormat vertexFormat; + VkDeviceOrHostAddressConstKHR vertexData; + VkDeviceSize vertexStride; + uint32_t maxVertex; + VkIndexType indexType; + VkDeviceOrHostAddressConstKHR indexData; + VkDeviceOrHostAddressConstKHR transformData; +} VkAccelerationStructureGeometryTrianglesDataKHR; + +typedef struct VkAccelerationStructureGeometryAabbsDataKHR { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR data; + VkDeviceSize stride; +} VkAccelerationStructureGeometryAabbsDataKHR; +typedef struct VkAccelerationStructureGeometryInstancesDataKHR { + VkStructureType sType; + const void* pNext; + VkBool32 arrayOfPointers; + VkDeviceOrHostAddressConstKHR data; +} VkAccelerationStructureGeometryInstancesDataKHR; +typedef union VkAccelerationStructureGeometryDataKHR { + VkAccelerationStructureGeometryTrianglesDataKHR triangles; + VkAccelerationStructureGeometryAabbsDataKHR aabbs; + VkAccelerationStructureGeometryInstancesDataKHR instances; +} VkAccelerationStructureGeometryDataKHR; -#define VK_NV_mesh_shader 1 -#define VK_NV_MESH_SHADER_SPEC_VERSION 1 -#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader" +typedef struct VkAccelerationStructureGeometryKHR { + VkStructureType sType; + const void* pNext; + VkGeometryTypeKHR geometryType; + VkAccelerationStructureGeometryDataKHR geometry; + VkGeometryFlagsKHR flags; +} VkAccelerationStructureGeometryKHR; -typedef struct VkPhysicalDeviceMeshShaderFeaturesNV { +typedef struct VkAccelerationStructureBuildGeometryInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureTypeKHR type; + VkBuildAccelerationStructureFlagsKHR flags; + VkBuildAccelerationStructureModeKHR mode; + VkAccelerationStructureKHR srcAccelerationStructure; + VkAccelerationStructureKHR dstAccelerationStructure; + uint32_t geometryCount; + const VkAccelerationStructureGeometryKHR* pGeometries; + const VkAccelerationStructureGeometryKHR* const* ppGeometries; + VkDeviceOrHostAddressKHR scratchData; +} VkAccelerationStructureBuildGeometryInfoKHR; + +typedef struct VkAccelerationStructureCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureCreateFlagsKHR createFlags; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; + VkAccelerationStructureTypeKHR type; + VkDeviceAddress deviceAddress; +} VkAccelerationStructureCreateInfoKHR; + +typedef struct VkWriteDescriptorSetAccelerationStructureKHR { + VkStructureType sType; + const void* pNext; + uint32_t accelerationStructureCount; + const VkAccelerationStructureKHR* pAccelerationStructures; +} VkWriteDescriptorSetAccelerationStructureKHR; + +typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR { VkStructureType sType; void* pNext; - VkBool32 taskShader; - VkBool32 meshShader; -} VkPhysicalDeviceMeshShaderFeaturesNV; - -typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { + VkBool32 accelerationStructure; + VkBool32 accelerationStructureCaptureReplay; + VkBool32 accelerationStructureIndirectBuild; + VkBool32 accelerationStructureHostCommands; + VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind; +} VkPhysicalDeviceAccelerationStructureFeaturesKHR; + +typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR { VkStructureType sType; void* pNext; - uint32_t maxDrawMeshTasksCount; - uint32_t maxTaskWorkGroupInvocations; - uint32_t maxTaskWorkGroupSize[3]; - uint32_t maxTaskTotalMemorySize; - uint32_t maxTaskOutputCount; - uint32_t maxMeshWorkGroupInvocations; - uint32_t maxMeshWorkGroupSize[3]; - uint32_t maxMeshTotalMemorySize; - uint32_t maxMeshOutputVertices; - uint32_t maxMeshOutputPrimitives; - uint32_t maxMeshMultiviewViewCount; - uint32_t meshOutputPerVertexGranularity; - uint32_t meshOutputPerPrimitiveGranularity; -} VkPhysicalDeviceMeshShaderPropertiesNV; + uint64_t maxGeometryCount; + uint64_t maxInstanceCount; + uint64_t maxPrimitiveCount; + uint32_t maxPerStageDescriptorAccelerationStructures; + uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures; + uint32_t maxDescriptorSetAccelerationStructures; + uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures; + uint32_t minAccelerationStructureScratchOffsetAlignment; +} VkPhysicalDeviceAccelerationStructurePropertiesKHR; + +typedef struct VkAccelerationStructureDeviceAddressInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR accelerationStructure; +} VkAccelerationStructureDeviceAddressInfoKHR; -typedef struct VkDrawMeshTasksIndirectCommandNV { - uint32_t taskCount; - uint32_t firstTask; -} VkDrawMeshTasksIndirectCommandNV; +typedef struct VkAccelerationStructureVersionInfoKHR { + VkStructureType sType; + const void* pNext; + const uint8_t* pVersionData; +} VkAccelerationStructureVersionInfoKHR; +typedef struct VkCopyAccelerationStructureToMemoryInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR src; + VkDeviceOrHostAddressKHR dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyAccelerationStructureToMemoryInfoKHR; -typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); -typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +typedef struct VkCopyMemoryToAccelerationStructureInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR src; + VkAccelerationStructureKHR dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyMemoryToAccelerationStructureInfoKHR; + +typedef struct VkCopyAccelerationStructureInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR src; + VkAccelerationStructureKHR dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyAccelerationStructureInfoKHR; + +typedef struct VkAccelerationStructureBuildSizesInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceSize accelerationStructureSize; + VkDeviceSize updateScratchSize; + VkDeviceSize buildScratchSize; +} VkAccelerationStructureBuildSizesInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure); +typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts); +typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); +typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); +typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility); +typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV( - VkCommandBuffer commandBuffer, - uint32_t taskCount, - uint32_t firstTask); +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR( + VkDevice device, + const VkAccelerationStructureCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkAccelerationStructureKHR* pAccelerationStructure); -VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV( +VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR( + VkDevice device, + VkAccelerationStructureKHR accelerationStructure, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR( VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - uint32_t drawCount, - uint32_t stride); + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); -VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); -#endif + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkDeviceAddress* pIndirectDeviceAddresses, + const uint32_t* pIndirectStrides, + const uint32_t* const* ppMaxPrimitiveCounts); -#define VK_NV_fragment_shader_barycentric 1 -#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 -#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric" +VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); -typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 fragmentShaderBarycentric; -} VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; +VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyAccelerationStructureInfoKHR* pInfo); +VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); -#define VK_NV_shader_image_footprint 1 -#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1 -#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" +VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR( + VkDevice device, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR* pAccelerationStructures, + VkQueryType queryType, + size_t dataSize, + void* pData, + size_t stride); -typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 imageFootprint; -} VkPhysicalDeviceShaderImageFootprintFeaturesNV; +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR( + VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureInfoKHR* pInfo); +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR( + VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR( + VkCommandBuffer commandBuffer, + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); -#define VK_NV_scissor_exclusive 1 -#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1 -#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive" +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR( + VkDevice device, + const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); -typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { +VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR( + VkCommandBuffer commandBuffer, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR* pAccelerationStructures, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR( + VkDevice device, + const VkAccelerationStructureVersionInfoKHR* pVersionInfo, + VkAccelerationStructureCompatibilityKHR* pCompatibility); + +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR( + VkDevice device, + VkAccelerationStructureBuildTypeKHR buildType, + const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, + const uint32_t* pMaxPrimitiveCounts, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); +#endif + + +#define VK_KHR_ray_tracing_pipeline 1 +#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1 +#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline" + +typedef enum VkShaderGroupShaderKHR { + VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0, + VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1, + VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2, + VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3, + VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF +} VkShaderGroupShaderKHR; +typedef struct VkRayTracingShaderGroupCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkRayTracingShaderGroupTypeKHR type; + uint32_t generalShader; + uint32_t closestHitShader; + uint32_t anyHitShader; + uint32_t intersectionShader; + const void* pShaderGroupCaptureReplayHandle; +} VkRayTracingShaderGroupCreateInfoKHR; + +typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR { VkStructureType sType; const void* pNext; - uint32_t exclusiveScissorCount; - const VkRect2D* pExclusiveScissors; -} VkPipelineViewportExclusiveScissorStateCreateInfoNV; - -typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV { + uint32_t maxPipelineRayPayloadSize; + uint32_t maxPipelineRayHitAttributeSize; +} VkRayTracingPipelineInterfaceCreateInfoKHR; + +typedef struct VkRayTracingPipelineCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + uint32_t groupCount; + const VkRayTracingShaderGroupCreateInfoKHR* pGroups; + uint32_t maxPipelineRayRecursionDepth; + const VkPipelineLibraryCreateInfoKHR* pLibraryInfo; + const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface; + const VkPipelineDynamicStateCreateInfo* pDynamicState; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkRayTracingPipelineCreateInfoKHR; + +typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR { VkStructureType sType; void* pNext; - VkBool32 exclusiveScissor; -} VkPhysicalDeviceExclusiveScissorFeaturesNV; + VkBool32 rayTracingPipeline; + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay; + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed; + VkBool32 rayTracingPipelineTraceRaysIndirect; + VkBool32 rayTraversalPrimitiveCulling; +} VkPhysicalDeviceRayTracingPipelineFeaturesKHR; + +typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t shaderGroupHandleSize; + uint32_t maxRayRecursionDepth; + uint32_t maxShaderGroupStride; + uint32_t shaderGroupBaseAlignment; + uint32_t shaderGroupHandleCaptureReplaySize; + uint32_t maxRayDispatchInvocationCount; + uint32_t shaderGroupHandleAlignment; + uint32_t maxRayHitAttributeSize; +} VkPhysicalDeviceRayTracingPipelinePropertiesKHR; + +typedef struct VkStridedDeviceAddressRegionKHR { + VkDeviceAddress deviceAddress; + VkDeviceSize stride; + VkDeviceSize size; +} VkStridedDeviceAddressRegionKHR; +typedef struct VkTraceRaysIndirectCommandKHR { + uint32_t width; + uint32_t height; + uint32_t depth; +} VkTraceRaysIndirectCommandKHR; -typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth); +typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress); +typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader); +typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV( +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR( VkCommandBuffer commandBuffer, - uint32_t firstExclusiveScissor, - uint32_t exclusiveScissorCount, - const VkRect2D* pExclusiveScissors); -#endif - -#define VK_NV_device_diagnostic_checkpoints 1 -#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2 -#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints" + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, + uint32_t width, + uint32_t height, + uint32_t depth); -typedef struct VkQueueFamilyCheckpointPropertiesNV { - VkStructureType sType; - void* pNext; - VkPipelineStageFlags checkpointExecutionStageMask; -} VkQueueFamilyCheckpointPropertiesNV; +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); -typedef struct VkCheckpointDataNV { - VkStructureType sType; - void* pNext; - VkPipelineStageFlagBits stage; - void* pCheckpointMarker; -} VkCheckpointDataNV; +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR( + VkCommandBuffer commandBuffer, + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, + VkDeviceAddress indirectDeviceAddress); -typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker); -typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); +VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t group, + VkShaderGroupShaderKHR groupShader); -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV( +VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, - const void* pCheckpointMarker); - -VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( - VkQueue queue, - uint32_t* pCheckpointDataCount, - VkCheckpointDataNV* pCheckpointData); + uint32_t pipelineStackSize); #endif -#define VK_EXT_pci_bus_info 1 -#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 1 -#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" -typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { +#define VK_KHR_ray_query 1 +#define VK_KHR_RAY_QUERY_SPEC_VERSION 1 +#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query" +typedef struct VkPhysicalDeviceRayQueryFeaturesKHR { VkStructureType sType; void* pNext; - uint16_t pciDomain; - uint8_t pciBus; - uint8_t pciDevice; - uint8_t pciFunction; -} VkPhysicalDevicePCIBusInfoPropertiesEXT; + VkBool32 rayQuery; +} VkPhysicalDeviceRayQueryFeaturesKHR; -#define VK_GOOGLE_hlsl_functionality1 1 -#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 0 -#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" +#define VK_EXT_mesh_shader 1 +#define VK_EXT_MESH_SHADER_SPEC_VERSION 1 +#define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader" +typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 taskShader; + VkBool32 meshShader; + VkBool32 multiviewMeshShader; + VkBool32 primitiveFragmentShadingRateMeshShader; + VkBool32 meshShaderQueries; +} VkPhysicalDeviceMeshShaderFeaturesEXT; + +typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxTaskWorkGroupTotalCount; + uint32_t maxTaskWorkGroupCount[3]; + uint32_t maxTaskWorkGroupInvocations; + uint32_t maxTaskWorkGroupSize[3]; + uint32_t maxTaskPayloadSize; + uint32_t maxTaskSharedMemorySize; + uint32_t maxTaskPayloadAndSharedMemorySize; + uint32_t maxMeshWorkGroupTotalCount; + uint32_t maxMeshWorkGroupCount[3]; + uint32_t maxMeshWorkGroupInvocations; + uint32_t maxMeshWorkGroupSize[3]; + uint32_t maxMeshSharedMemorySize; + uint32_t maxMeshPayloadAndSharedMemorySize; + uint32_t maxMeshOutputMemorySize; + uint32_t maxMeshPayloadAndOutputMemorySize; + uint32_t maxMeshOutputComponents; + uint32_t maxMeshOutputVertices; + uint32_t maxMeshOutputPrimitives; + uint32_t maxMeshOutputLayers; + uint32_t maxMeshMultiviewViewCount; + uint32_t meshOutputPerVertexGranularity; + uint32_t meshOutputPerPrimitiveGranularity; + uint32_t maxPreferredTaskWorkGroupInvocations; + uint32_t maxPreferredMeshWorkGroupInvocations; + VkBool32 prefersLocalInvocationVertexOutput; + VkBool32 prefersLocalInvocationPrimitiveOutput; + VkBool32 prefersCompactVertexOutput; + VkBool32 prefersCompactPrimitiveOutput; +} VkPhysicalDeviceMeshShaderPropertiesEXT; + +typedef struct VkDrawMeshTasksIndirectCommandEXT { + uint32_t groupCountX; + uint32_t groupCountY; + uint32_t groupCountZ; +} VkDrawMeshTasksIndirectCommandEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT( + VkCommandBuffer commandBuffer, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ); -#define VK_GOOGLE_decorate_string 1 -#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 0 -#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride); +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif #ifdef __cplusplus } #endif #endif + +#endif // GO_INCLUDE_NV_ray_tracing + diff --git a/vulkan/vulkan_core_h.patch b/vulkan/vulkan_core_h.patch new file mode 100644 index 0000000..9608221 --- /dev/null +++ b/vulkan/vulkan_core_h.patch @@ -0,0 +1,136 @@ +--- /usr/local/include/vulkan/vulkan_core.h 2023-01-27 11:55:20 ++++ vulkan_core.h 2023-02-10 11:46:48 +@@ -8180,6 +8180,7 @@ + const VkVideoDecodeInfoKHR* pDecodeInfo); + #endif + ++#ifdef GO_INCLUDE_video_decode + + #define VK_KHR_video_decode_h264 1 + #include "vk_video/vulkan_video_codec_h264std.h" +@@ -8239,8 +8240,8 @@ + const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo; + } VkVideoDecodeH264DpbSlotInfoKHR; + ++#endif // GO_INCLUDE_video_decode + +- + #define VK_KHR_dynamic_rendering 1 + #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1 + #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering" +@@ -9353,6 +9354,7 @@ + } VkPhysicalDeviceShaderClockFeaturesKHR; + + ++#ifdef GO_INCLUDE_video_decode + + #define VK_KHR_video_decode_h265 1 + #include "vk_video/vulkan_video_codec_h265std.h" +@@ -9405,8 +9407,8 @@ + const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo; + } VkVideoDecodeH265DpbSlotInfoKHR; + ++#endif // GO_INCLUDE_video_decode + +- + #define VK_KHR_global_priority 1 + #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR 16U + #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1 +@@ -10488,7 +10490,7 @@ + uint32_t vertexStride); + #endif + +- ++/* + #define VK_NVX_binary_import 1 + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX) +@@ -10558,8 +10560,8 @@ + VkCommandBuffer commandBuffer, + const VkCuLaunchInfoNVX* pLaunchInfo); + #endif ++*/ + +- + #define VK_NVX_image_view_handle 1 + #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2 + #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" +@@ -11911,6 +11913,8 @@ + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); + #endif + ++// ray tracing not working on mac.. ++#ifdef GO_INCLUDE_NV_ray_tracing + + #define VK_NV_ray_tracing 1 + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) +@@ -12285,6 +12289,7 @@ + uint32_t shader); + #endif + ++#endif // GO_INCLUDE_NV_ray_tracing + + #define VK_NV_representative_fragment_test 1 + #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2 +@@ -14168,6 +14173,8 @@ + const void* opaqueCaptureDescriptorData; + } VkOpaqueCaptureDescriptorDataCreateInfoEXT; + ++#ifdef GO_INCLUDE_NV_ray_tracing ++ + typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; +@@ -14175,6 +14182,8 @@ + VkAccelerationStructureNV accelerationStructureNV; + } VkAccelerationStructureCaptureDescriptorDataInfoEXT; + ++#endif // GO_INCLUDE_NV_ray_tracing ++ + typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes); + typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset); + typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor); +@@ -14185,7 +14194,10 @@ + typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData); + typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData); + typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData); ++ ++#ifdef GO_INCLUDE_NV_ray_tracing + typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData); ++#endif // GO_INCLUDE_NV_ray_tracing + + #ifndef VK_NO_PROTOTYPES + VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT( +@@ -14352,6 +14364,7 @@ + const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); + #endif + ++#ifdef GO_INCLUDE_NV_ray_tracing + + #define VK_NV_ray_tracing_motion_blur 1 + #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1 +@@ -14441,8 +14454,8 @@ + VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect; + } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV; + ++#endif // GO_INCLUDE_NV_ray_tracing + +- + #define VK_EXT_ycbcr_2plane_444_formats 1 + #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1 + #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats" +@@ -14600,6 +14613,7 @@ + } VkPhysicalDevice4444FormatsFeaturesEXT; + + ++#ifdef GO_INCLUDE_NV_ray_tracing + + #define VK_EXT_device_fault 1 + #define VK_EXT_DEVICE_FAULT_SPEC_VERSION 1 +@@ -16909,3 +16923,6 @@ + #endif + + #endif ++ ++#endif // GO_INCLUDE_NV_ray_tracing ++ diff --git a/vulkan/vulkan_directfb.h b/vulkan/vulkan_directfb.h new file mode 100644 index 0000000..ab3504e --- /dev/null +++ b/vulkan/vulkan_directfb.h @@ -0,0 +1,54 @@ +#ifndef VULKAN_DIRECTFB_H_ +#define VULKAN_DIRECTFB_H_ 1 + +/* +** Copyright 2015-2022 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_EXT_directfb_surface 1 +#define VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION 1 +#define VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME "VK_EXT_directfb_surface" +typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT; +typedef struct VkDirectFBSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDirectFBSurfaceCreateFlagsEXT flags; + IDirectFB* dfb; + IDirectFBSurface* surface; +} VkDirectFBSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateDirectFBSurfaceEXT)(VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDirectFBSurfaceEXT( + VkInstance instance, + const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); + +VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceDirectFBPresentationSupportEXT( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + IDirectFB* dfb); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan/vulkan_fuchsia.h b/vulkan/vulkan_fuchsia.h new file mode 100644 index 0000000..61774ff --- /dev/null +++ b/vulkan/vulkan_fuchsia.h @@ -0,0 +1,258 @@ +#ifndef VULKAN_FUCHSIA_H_ +#define VULKAN_FUCHSIA_H_ 1 + +/* +** Copyright 2015-2022 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_FUCHSIA_imagepipe_surface 1 +#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 +#define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" +typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; +typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkImagePipeSurfaceCreateFlagsFUCHSIA flags; + zx_handle_t imagePipeHandle; +} VkImagePipeSurfaceCreateInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA( + VkInstance instance, + const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +#define VK_FUCHSIA_external_memory 1 +#define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1 +#define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory" +typedef struct VkImportMemoryZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBits handleType; + zx_handle_t handle; +} VkImportMemoryZirconHandleInfoFUCHSIA; + +typedef struct VkMemoryZirconHandlePropertiesFUCHSIA { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; +} VkMemoryZirconHandlePropertiesFUCHSIA; + +typedef struct VkMemoryGetZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetZirconHandleInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandleFUCHSIA)(VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandleFUCHSIA( + VkDevice device, + const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, + zx_handle_t* pZirconHandle); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + zx_handle_t zirconHandle, + VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); +#endif + + +#define VK_FUCHSIA_external_semaphore 1 +#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 +#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore" +typedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkSemaphoreImportFlags flags; + VkExternalSemaphoreHandleTypeFlagBits handleType; + zx_handle_t zirconHandle; +} VkImportSemaphoreZirconHandleInfoFUCHSIA; + +typedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkExternalSemaphoreHandleTypeFlagBits handleType; +} VkSemaphoreGetZirconHandleInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA( + VkDevice device, + const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreZirconHandleFUCHSIA( + VkDevice device, + const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, + zx_handle_t* pZirconHandle); +#endif + + +#define VK_FUCHSIA_buffer_collection 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA) +#define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2 +#define VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME "VK_FUCHSIA_buffer_collection" +typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA; + +typedef enum VkImageConstraintsInfoFlagBitsFUCHSIA { + VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0x00000001, + VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0x00000002, + VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0x00000004, + VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0x00000008, + VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0x00000010, + VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA = 0x7FFFFFFF +} VkImageConstraintsInfoFlagBitsFUCHSIA; +typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA; +typedef struct VkBufferCollectionCreateInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + zx_handle_t collectionToken; +} VkBufferCollectionCreateInfoFUCHSIA; + +typedef struct VkImportMemoryBufferCollectionFUCHSIA { + VkStructureType sType; + const void* pNext; + VkBufferCollectionFUCHSIA collection; + uint32_t index; +} VkImportMemoryBufferCollectionFUCHSIA; + +typedef struct VkBufferCollectionImageCreateInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkBufferCollectionFUCHSIA collection; + uint32_t index; +} VkBufferCollectionImageCreateInfoFUCHSIA; + +typedef struct VkBufferCollectionConstraintsInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + uint32_t minBufferCount; + uint32_t maxBufferCount; + uint32_t minBufferCountForCamping; + uint32_t minBufferCountForDedicatedSlack; + uint32_t minBufferCountForSharedSlack; +} VkBufferCollectionConstraintsInfoFUCHSIA; + +typedef struct VkBufferConstraintsInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkBufferCreateInfo createInfo; + VkFormatFeatureFlags requiredFormatFeatures; + VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints; +} VkBufferConstraintsInfoFUCHSIA; + +typedef struct VkBufferCollectionBufferCreateInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkBufferCollectionFUCHSIA collection; + uint32_t index; +} VkBufferCollectionBufferCreateInfoFUCHSIA; + +typedef struct VkSysmemColorSpaceFUCHSIA { + VkStructureType sType; + const void* pNext; + uint32_t colorSpace; +} VkSysmemColorSpaceFUCHSIA; + +typedef struct VkBufferCollectionPropertiesFUCHSIA { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; + uint32_t bufferCount; + uint32_t createInfoIndex; + uint64_t sysmemPixelFormat; + VkFormatFeatureFlags formatFeatures; + VkSysmemColorSpaceFUCHSIA sysmemColorSpaceIndex; + VkComponentMapping samplerYcbcrConversionComponents; + VkSamplerYcbcrModelConversion suggestedYcbcrModel; + VkSamplerYcbcrRange suggestedYcbcrRange; + VkChromaLocation suggestedXChromaOffset; + VkChromaLocation suggestedYChromaOffset; +} VkBufferCollectionPropertiesFUCHSIA; + +typedef struct VkImageFormatConstraintsInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkImageCreateInfo imageCreateInfo; + VkFormatFeatureFlags requiredFormatFeatures; + VkImageFormatConstraintsFlagsFUCHSIA flags; + uint64_t sysmemPixelFormat; + uint32_t colorSpaceCount; + const VkSysmemColorSpaceFUCHSIA* pColorSpaces; +} VkImageFormatConstraintsInfoFUCHSIA; + +typedef struct VkImageConstraintsInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + uint32_t formatConstraintsCount; + const VkImageFormatConstraintsInfoFUCHSIA* pFormatConstraints; + VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints; + VkImageConstraintsInfoFlagsFUCHSIA flags; +} VkImageConstraintsInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferCollectionFUCHSIA)(VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection); +typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo); +typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo); +typedef void (VKAPI_PTR *PFN_vkDestroyBufferCollectionFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetBufferCollectionPropertiesFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferCollectionFUCHSIA( + VkDevice device, + const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkBufferCollectionFUCHSIA* pCollection); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionImageConstraintsFUCHSIA( + VkDevice device, + VkBufferCollectionFUCHSIA collection, + const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionBufferConstraintsFUCHSIA( + VkDevice device, + VkBufferCollectionFUCHSIA collection, + const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo); + +VKAPI_ATTR void VKAPI_CALL vkDestroyBufferCollectionFUCHSIA( + VkDevice device, + VkBufferCollectionFUCHSIA collection, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferCollectionPropertiesFUCHSIA( + VkDevice device, + VkBufferCollectionFUCHSIA collection, + VkBufferCollectionPropertiesFUCHSIA* pProperties); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan/vulkan_ggp.h b/vulkan/vulkan_ggp.h new file mode 100644 index 0000000..19dfd22 --- /dev/null +++ b/vulkan/vulkan_ggp.h @@ -0,0 +1,58 @@ +#ifndef VULKAN_GGP_H_ +#define VULKAN_GGP_H_ 1 + +/* +** Copyright 2015-2022 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_GGP_stream_descriptor_surface 1 +#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1 +#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME "VK_GGP_stream_descriptor_surface" +typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP; +typedef struct VkStreamDescriptorSurfaceCreateInfoGGP { + VkStructureType sType; + const void* pNext; + VkStreamDescriptorSurfaceCreateFlagsGGP flags; + GgpStreamDescriptor streamDescriptor; +} VkStreamDescriptorSurfaceCreateInfoGGP; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateStreamDescriptorSurfaceGGP)(VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateStreamDescriptorSurfaceGGP( + VkInstance instance, + const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +#define VK_GGP_frame_token 1 +#define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1 +#define VK_GGP_FRAME_TOKEN_EXTENSION_NAME "VK_GGP_frame_token" +typedef struct VkPresentFrameTokenGGP { + VkStructureType sType; + const void* pNext; + GgpFrameToken frameToken; +} VkPresentFrameTokenGGP; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan/vulkan_ios.h b/vulkan/vulkan_ios.h index a092481..5792205 100644 --- a/vulkan/vulkan_ios.h +++ b/vulkan/vulkan_ios.h @@ -1,24 +1,10 @@ #ifndef VULKAN_IOS_H_ #define VULKAN_IOS_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -27,12 +13,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_MVK_ios_surface 1 -#define VK_MVK_IOS_SURFACE_SPEC_VERSION 2 +#define VK_MVK_IOS_SURFACE_SPEC_VERSION 3 #define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" - typedef VkFlags VkIOSSurfaceCreateFlagsMVK; - typedef struct VkIOSSurfaceCreateInfoMVK { VkStructureType sType; const void* pNext; @@ -40,7 +30,6 @@ typedef struct VkIOSSurfaceCreateInfoMVK { const void* pView; } VkIOSSurfaceCreateInfoMVK; - typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES diff --git a/vulkan/vulkan_macos.h b/vulkan/vulkan_macos.h index ff0b701..8e197c7 100644 --- a/vulkan/vulkan_macos.h +++ b/vulkan/vulkan_macos.h @@ -1,24 +1,10 @@ #ifndef VULKAN_MACOS_H_ #define VULKAN_MACOS_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -27,12 +13,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_MVK_macos_surface 1 -#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2 +#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 3 #define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" - typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; - typedef struct VkMacOSSurfaceCreateInfoMVK { VkStructureType sType; const void* pNext; @@ -40,7 +30,6 @@ typedef struct VkMacOSSurfaceCreateInfoMVK { const void* pView; } VkMacOSSurfaceCreateInfoMVK; - typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES diff --git a/vulkan/vulkan_metal.h b/vulkan/vulkan_metal.h new file mode 100644 index 0000000..11b9640 --- /dev/null +++ b/vulkan/vulkan_metal.h @@ -0,0 +1,193 @@ +#ifndef VULKAN_METAL_H_ +#define VULKAN_METAL_H_ 1 + +/* +** Copyright 2015-2022 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_EXT_metal_surface 1 +#ifdef __OBJC__ +@class CAMetalLayer; +#else +typedef void CAMetalLayer; +#endif + +#define VK_EXT_METAL_SURFACE_SPEC_VERSION 1 +#define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface" +typedef VkFlags VkMetalSurfaceCreateFlagsEXT; +typedef struct VkMetalSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkMetalSurfaceCreateFlagsEXT flags; + const CAMetalLayer* pLayer; +} VkMetalSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateMetalSurfaceEXT)(VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT( + VkInstance instance, + const VkMetalSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +#define VK_EXT_metal_objects 1 +#ifdef __OBJC__ +@protocol MTLDevice; +typedef id MTLDevice_id; +#else +typedef void* MTLDevice_id; +#endif + +#ifdef __OBJC__ +@protocol MTLCommandQueue; +typedef id MTLCommandQueue_id; +#else +typedef void* MTLCommandQueue_id; +#endif + +#ifdef __OBJC__ +@protocol MTLBuffer; +typedef id MTLBuffer_id; +#else +typedef void* MTLBuffer_id; +#endif + +#ifdef __OBJC__ +@protocol MTLTexture; +typedef id MTLTexture_id; +#else +typedef void* MTLTexture_id; +#endif + +typedef struct __IOSurface* IOSurfaceRef; +#ifdef __OBJC__ +@protocol MTLSharedEvent; +typedef id MTLSharedEvent_id; +#else +typedef void* MTLSharedEvent_id; +#endif + +#define VK_EXT_METAL_OBJECTS_SPEC_VERSION 1 +#define VK_EXT_METAL_OBJECTS_EXTENSION_NAME "VK_EXT_metal_objects" + +typedef enum VkExportMetalObjectTypeFlagBitsEXT { + VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 0x00000001, + VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0x00000002, + VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 0x00000004, + VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 0x00000008, + VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 0x00000010, + VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 0x00000020, + VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkExportMetalObjectTypeFlagBitsEXT; +typedef VkFlags VkExportMetalObjectTypeFlagsEXT; +typedef struct VkExportMetalObjectCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkExportMetalObjectTypeFlagBitsEXT exportObjectType; +} VkExportMetalObjectCreateInfoEXT; + +typedef struct VkExportMetalObjectsInfoEXT { + VkStructureType sType; + const void* pNext; +} VkExportMetalObjectsInfoEXT; + +typedef struct VkExportMetalDeviceInfoEXT { + VkStructureType sType; + const void* pNext; + MTLDevice_id mtlDevice; +} VkExportMetalDeviceInfoEXT; + +typedef struct VkExportMetalCommandQueueInfoEXT { + VkStructureType sType; + const void* pNext; + VkQueue queue; + MTLCommandQueue_id mtlCommandQueue; +} VkExportMetalCommandQueueInfoEXT; + +typedef struct VkExportMetalBufferInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + MTLBuffer_id mtlBuffer; +} VkExportMetalBufferInfoEXT; + +typedef struct VkImportMetalBufferInfoEXT { + VkStructureType sType; + const void* pNext; + MTLBuffer_id mtlBuffer; +} VkImportMetalBufferInfoEXT; + +typedef struct VkExportMetalTextureInfoEXT { + VkStructureType sType; + const void* pNext; + VkImage image; + VkImageView imageView; + VkBufferView bufferView; + VkImageAspectFlagBits plane; + MTLTexture_id mtlTexture; +} VkExportMetalTextureInfoEXT; + +typedef struct VkImportMetalTextureInfoEXT { + VkStructureType sType; + const void* pNext; + VkImageAspectFlagBits plane; + MTLTexture_id mtlTexture; +} VkImportMetalTextureInfoEXT; + +typedef struct VkExportMetalIOSurfaceInfoEXT { + VkStructureType sType; + const void* pNext; + VkImage image; + IOSurfaceRef ioSurface; +} VkExportMetalIOSurfaceInfoEXT; + +typedef struct VkImportMetalIOSurfaceInfoEXT { + VkStructureType sType; + const void* pNext; + IOSurfaceRef ioSurface; +} VkImportMetalIOSurfaceInfoEXT; + +typedef struct VkExportMetalSharedEventInfoEXT { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkEvent event; + MTLSharedEvent_id mtlSharedEvent; +} VkExportMetalSharedEventInfoEXT; + +typedef struct VkImportMetalSharedEventInfoEXT { + VkStructureType sType; + const void* pNext; + MTLSharedEvent_id mtlSharedEvent; +} VkImportMetalSharedEventInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkExportMetalObjectsEXT)(VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkExportMetalObjectsEXT( + VkDevice device, + VkExportMetalObjectsInfoEXT* pMetalObjectsInfo); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan/vulkan_screen.h b/vulkan/vulkan_screen.h new file mode 100644 index 0000000..f0ef40a --- /dev/null +++ b/vulkan/vulkan_screen.h @@ -0,0 +1,54 @@ +#ifndef VULKAN_SCREEN_H_ +#define VULKAN_SCREEN_H_ 1 + +/* +** Copyright 2015-2022 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_QNX_screen_surface 1 +#define VK_QNX_SCREEN_SURFACE_SPEC_VERSION 1 +#define VK_QNX_SCREEN_SURFACE_EXTENSION_NAME "VK_QNX_screen_surface" +typedef VkFlags VkScreenSurfaceCreateFlagsQNX; +typedef struct VkScreenSurfaceCreateInfoQNX { + VkStructureType sType; + const void* pNext; + VkScreenSurfaceCreateFlagsQNX flags; + struct _screen_context* context; + struct _screen_window* window; +} VkScreenSurfaceCreateInfoQNX; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateScreenSurfaceQNX)(VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateScreenSurfaceQNX( + VkInstance instance, + const VkScreenSurfaceCreateInfoQNX* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); + +VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceScreenPresentationSupportQNX( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + struct _screen_window* window); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan/vulkan_vi.h b/vulkan/vulkan_vi.h new file mode 100644 index 0000000..0355e7a --- /dev/null +++ b/vulkan/vulkan_vi.h @@ -0,0 +1,47 @@ +#ifndef VULKAN_VI_H_ +#define VULKAN_VI_H_ 1 + +/* +** Copyright 2015-2022 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_NN_vi_surface 1 +#define VK_NN_VI_SURFACE_SPEC_VERSION 1 +#define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface" +typedef VkFlags VkViSurfaceCreateFlagsNN; +typedef struct VkViSurfaceCreateInfoNN { + VkStructureType sType; + const void* pNext; + VkViSurfaceCreateFlagsNN flags; + void* window; +} VkViSurfaceCreateInfoNN; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN( + VkInstance instance, + const VkViSurfaceCreateInfoNN* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan/vulkan_wayland.h b/vulkan/vulkan_wayland.h index 5ba0827..9afd0b7 100644 --- a/vulkan/vulkan_wayland.h +++ b/vulkan/vulkan_wayland.h @@ -1,24 +1,10 @@ #ifndef VULKAN_WAYLAND_H_ #define VULKAN_WAYLAND_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -27,12 +13,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_KHR_wayland_surface 1 #define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 #define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" - typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; - typedef struct VkWaylandSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +31,6 @@ typedef struct VkWaylandSurfaceCreateInfoKHR { struct wl_surface* surface; } VkWaylandSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display); diff --git a/vulkan/vulkan_win32.h b/vulkan/vulkan_win32.h index 6a85409..a8e46c8 100644 --- a/vulkan/vulkan_win32.h +++ b/vulkan/vulkan_win32.h @@ -1,24 +1,10 @@ #ifndef VULKAN_WIN32_H_ #define VULKAN_WIN32_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -27,12 +13,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_KHR_win32_surface 1 #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" - typedef VkFlags VkWin32SurfaceCreateFlagsKHR; - typedef struct VkWin32SurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +31,6 @@ typedef struct VkWin32SurfaceCreateInfoKHR { HWND hwnd; } VkWin32SurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); @@ -57,10 +46,10 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( uint32_t queueFamilyIndex); #endif + #define VK_KHR_external_memory_win32 1 #define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" - typedef struct VkImportMemoryWin32HandleInfoKHR { VkStructureType sType; const void* pNext; @@ -90,7 +79,6 @@ typedef struct VkMemoryGetWin32HandleInfoKHR { VkExternalMemoryHandleTypeFlagBits handleType; } VkMemoryGetWin32HandleInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); @@ -107,10 +95,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); #endif + #define VK_KHR_win32_keyed_mutex 1 #define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 #define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" - typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { VkStructureType sType; const void* pNext; @@ -128,7 +116,6 @@ typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { #define VK_KHR_external_semaphore_win32 1 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" - typedef struct VkImportSemaphoreWin32HandleInfoKHR { VkStructureType sType; const void* pNext; @@ -163,7 +150,6 @@ typedef struct VkSemaphoreGetWin32HandleInfoKHR { VkExternalSemaphoreHandleTypeFlagBits handleType; } VkSemaphoreGetWin32HandleInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); @@ -178,10 +164,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( HANDLE* pHandle); #endif + #define VK_KHR_external_fence_win32 1 #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" - typedef struct VkImportFenceWin32HandleInfoKHR { VkStructureType sType; const void* pNext; @@ -207,7 +193,6 @@ typedef struct VkFenceGetWin32HandleInfoKHR { VkExternalFenceHandleTypeFlagBits handleType; } VkFenceGetWin32HandleInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); @@ -222,10 +207,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( HANDLE* pHandle); #endif + #define VK_NV_external_memory_win32 1 #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" - typedef struct VkImportMemoryWin32HandleInfoNV { VkStructureType sType; const void* pNext; @@ -240,7 +225,6 @@ typedef struct VkExportMemoryWin32HandleInfoNV { DWORD dwAccess; } VkExportMemoryWin32HandleInfoNV; - typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); #ifndef VK_NO_PROTOTYPES @@ -251,10 +235,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV( HANDLE* pHandle); #endif + #define VK_NV_win32_keyed_mutex 1 -#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1 +#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2 #define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" - typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { VkStructureType sType; const void* pNext; @@ -269,6 +253,79 @@ typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { +#define VK_EXT_full_screen_exclusive 1 +#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4 +#define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive" + +typedef enum VkFullScreenExclusiveEXT { + VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0, + VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1, + VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2, + VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3, + VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkFullScreenExclusiveEXT; +typedef struct VkSurfaceFullScreenExclusiveInfoEXT { + VkStructureType sType; + void* pNext; + VkFullScreenExclusiveEXT fullScreenExclusive; +} VkSurfaceFullScreenExclusiveInfoEXT; + +typedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT { + VkStructureType sType; + void* pNext; + VkBool32 fullScreenExclusiveSupported; +} VkSurfaceCapabilitiesFullScreenExclusiveEXT; + +typedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT { + VkStructureType sType; + const void* pNext; + HMONITOR hmonitor; +} VkSurfaceFullScreenExclusiveWin32InfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); +typedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + uint32_t* pPresentModeCount, + VkPresentModeKHR* pPresentModes); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT( + VkDevice device, + VkSwapchainKHR swapchain); + +VKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT( + VkDevice device, + VkSwapchainKHR swapchain); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT( + VkDevice device, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + VkDeviceGroupPresentModeFlagsKHR* pModes); +#endif + + +#define VK_NV_acquire_winrt_display 1 +#define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1 +#define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display" +typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); +typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireWinrtDisplayNV( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetWinrtDisplayNV( + VkPhysicalDevice physicalDevice, + uint32_t deviceRelativeId, + VkDisplayKHR* pDisplay); +#endif + #ifdef __cplusplus } #endif diff --git a/vulkan/vulkan_xcb.h b/vulkan/vulkan_xcb.h index ba03600..68e61b8 100644 --- a/vulkan/vulkan_xcb.h +++ b/vulkan/vulkan_xcb.h @@ -1,24 +1,10 @@ #ifndef VULKAN_XCB_H_ #define VULKAN_XCB_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -27,12 +13,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_KHR_xcb_surface 1 #define VK_KHR_XCB_SURFACE_SPEC_VERSION 6 #define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface" - typedef VkFlags VkXcbSurfaceCreateFlagsKHR; - typedef struct VkXcbSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +31,6 @@ typedef struct VkXcbSurfaceCreateInfoKHR { xcb_window_t window; } VkXcbSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id); diff --git a/vulkan/vulkan_xlib.h b/vulkan/vulkan_xlib.h index e1d967e..ea5360a 100644 --- a/vulkan/vulkan_xlib.h +++ b/vulkan/vulkan_xlib.h @@ -1,24 +1,10 @@ #ifndef VULKAN_XLIB_H_ #define VULKAN_XLIB_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -27,12 +13,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_KHR_xlib_surface 1 #define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6 #define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface" - typedef VkFlags VkXlibSurfaceCreateFlagsKHR; - typedef struct VkXlibSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +31,6 @@ typedef struct VkXlibSurfaceCreateInfoKHR { Window window; } VkXlibSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID); diff --git a/vulkan/vulkan_xlib_xrandr.h b/vulkan/vulkan_xlib_xrandr.h index 117d017..8fc35cf 100644 --- a/vulkan/vulkan_xlib_xrandr.h +++ b/vulkan/vulkan_xlib_xrandr.h @@ -1,24 +1,10 @@ #ifndef VULKAN_XLIB_XRANDR_H_ #define VULKAN_XLIB_XRANDR_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -27,10 +13,15 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_EXT_acquire_xlib_display 1 #define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1 #define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display" - typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display); typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay); diff --git a/vulkan_android.go b/vulkan_android.go index 2a19cb0..13ffe18 100644 --- a/vulkan_android.go +++ b/vulkan_android.go @@ -1,10 +1,11 @@ +//go:build android // +build android package vulkan /* -#cgo android LDFLAGS: -Wl,--no-warn-mismatch -lm_hard -#cgo android CFLAGS: -DVK_USE_PLATFORM_ANDROID_KHR -D__ARM_ARCH_7A__ -D_NDK_MATH_NO_SOFTFP=1 -mfpu=vfp -mfloat-abi=hard -march=armv7-a +#cgo android LDFLAGS: -Wl,--no-warn-mismatch +#cgo android CFLAGS: -DVK_USE_PLATFORM_ANDROID_KHR -arch arm64 #include diff --git a/vulkan_darwin.go b/vulkan_darwin.go index ce3a319..0076dae 100644 --- a/vulkan_darwin.go +++ b/vulkan_darwin.go @@ -1,3 +1,4 @@ +//go:build darwin && !ios // +build darwin,!ios package vulkan diff --git a/vulkan_freebsd.go b/vulkan_freebsd.go index dd1769a..52ab450 100644 --- a/vulkan_freebsd.go +++ b/vulkan_freebsd.go @@ -1,3 +1,4 @@ +//go:build freebsd // +build freebsd package vulkan diff --git a/vulkan_ios.go b/vulkan_ios.go index 0eb4e5f..326aa6a 100644 --- a/vulkan_ios.go +++ b/vulkan_ios.go @@ -1,11 +1,11 @@ -// +build darwin -// +build arm arm64 +//go:build darwin && ios +// +build darwin,ios package vulkan /* -#cgo LDFLAGS: -framework Foundation -framework Metal -framework QuartzCore -framework MoltenVK -lc++ -#cgo CFLAGS: -x objective-c -DVK_USE_PLATFORM_IOS_MVK +#cgo LDFLAGS: -F/Users/kaioreilly/devFrameworks -framework Foundation -framework Metal -framework QuartzCore -framework IOSurface -framework MoltenVK -lc++ +#cgo CFLAGS: -x objective-c -DVK_USE_PLATFORM_IOS_MVK -v #include "vulkan/vulkan.h" #include "vk_wrapper.h" @@ -51,7 +51,7 @@ type MVKDeviceConfiguration struct { ShaderConversionLogging Bool32 PerformanceTracking Bool32 PerformanceLoggingFrameCount uint32 - ref1c21f673 *C.MVKDeviceConfiguration + ref1c21f673 *C.MVKConfiguration allocs1c21f673 interface{} } @@ -70,14 +70,14 @@ type MVKPhysicalDeviceMetalFeatures struct { allocsb64ae6e7 interface{} } -// MVKSwapchainPerformance as declared in moltenVK/vk_mvk_moltenvk.h:59 -type MVKSwapchainPerformance struct { - LastFrameInterval float64 - AverageFrameInterval float64 - AverageFramesPerSecond float64 - refd8d60565 *C.MVKSwapchainPerformance - allocsd8d60565 interface{} -} +// // MVKSwapchainPerformance as declared in moltenVK/vk_mvk_moltenvk.h:59 +// type MVKSwapchainPerformance struct { +// LastFrameInterval float64 +// AverageFrameInterval float64 +// AverageFramesPerSecond float64 +// refd8d60565 *C.MVKSwapchainPerformance +// allocsd8d60565 interface{} +// } // CreateWindowSurface creates a Vulkan surface (VK_MVK_ios_surface) for an UIView from iOS SDK's UIKit. func CreateWindowSurface(instance Instance, uiView uintptr, pAllocator *AllocationCallbacks, pSurface *Surface) Result { @@ -113,22 +113,22 @@ func CreateIOSSurfaceMVK(instance Instance, pCreateInfo *IOSSurfaceCreateInfoMVK return __v } -// ActivateMoltenVKLicenseMVK function as declared in vulkan/vk_bridge.h:978 -func ActivateMoltenVKLicenseMVK(licenseID string, licenseKey string, acceptLicenseTermsAndConditions Bool32) Result { - clicenseID, _ := unpackPCharString(licenseID) - clicenseKey, _ := unpackPCharString(licenseKey) - cacceptLicenseTermsAndConditions, _ := (C.VkBool32)(acceptLicenseTermsAndConditions), cgoAllocsUnknown - __ret := C.callVkActivateMoltenVKLicenseMVK(clicenseID, clicenseKey, cacceptLicenseTermsAndConditions) - __v := (Result)(__ret) - return __v -} +// // ActivateMoltenVKLicenseMVK function as declared in vulkan/vk_bridge.h:978 +// func ActivateMoltenVKLicenseMVK(licenseID string, licenseKey string, acceptLicenseTermsAndConditions Bool32) Result { +// clicenseID, _ := unpackPCharString(licenseID) +// clicenseKey, _ := unpackPCharString(licenseKey) +// cacceptLicenseTermsAndConditions, _ := (C.VkBool32)(acceptLicenseTermsAndConditions), cgoAllocsUnknown +// __ret := C.callVkActivateMoltenVKLicenseMVK(clicenseID, clicenseKey, cacceptLicenseTermsAndConditions) +// __v := (Result)(__ret) +// return __v +// } -// ActivateMoltenVKLicensesMVK function as declared in vulkan/vk_bridge.h:983 -func ActivateMoltenVKLicensesMVK() Result { - __ret := C.callVkActivateMoltenVKLicensesMVK() - __v := (Result)(__ret) - return __v -} +// // ActivateMoltenVKLicensesMVK function as declared in vulkan/vk_bridge.h:983 +// func ActivateMoltenVKLicensesMVK() Result { +// __ret := C.callVkActivateMoltenVKLicensesMVK() +// __v := (Result)(__ret) +// return __v +// } // GetMoltenVKDeviceConfigurationMVK function as declared in vulkan/vk_bridge.h:985 func GetMoltenVKDeviceConfigurationMVK(device Device, pConfiguration *MVKDeviceConfiguration) Result { @@ -157,15 +157,15 @@ func GetPhysicalDeviceMetalFeaturesMVK(physicalDevice PhysicalDevice, pMetalFeat return __v } -// GetSwapchainPerformanceMVK function as declared in vulkan/vk_bridge.h:997 -func GetSwapchainPerformanceMVK(device Device, swapchain Swapchain, pSwapchainPerf *MVKSwapchainPerformance) Result { - cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown - cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown - cpSwapchainPerf, _ := pSwapchainPerf.PassRef() - __ret := C.callVkGetSwapchainPerformanceMVK(cdevice, cswapchain, cpSwapchainPerf) - __v := (Result)(__ret) - return __v -} +// // GetSwapchainPerformanceMVK function as declared in vulkan/vk_bridge.h:997 +// func GetSwapchainPerformanceMVK(device Device, swapchain Swapchain, pSwapchainPerf *MVKSwapchainPerformance) Result { +// cdevice, _ := *(*C.VkDevice)(unsafe.Pointer(&device)), cgoAllocsUnknown +// cswapchain, _ := *(*C.VkSwapchainKHR)(unsafe.Pointer(&swapchain)), cgoAllocsUnknown +// cpSwapchainPerf, _ := pSwapchainPerf.PassRef() +// __ret := C.callVkGetSwapchainPerformanceMVK(cdevice, cswapchain, cpSwapchainPerf) +// __v := (Result)(__ret) +// return __v +// } // allocIOSSurfaceCreateInfoMVKMemory allocates memory for type C.VkIOSSurfaceCreateInfoMVK in C. // The caller is responsible for freeing the this memory via C.free. @@ -261,7 +261,7 @@ func (x *IOSSurfaceCreateInfoMVK) Deref() { x.PView = (unsafe.Pointer)(unsafe.Pointer(x.ref96717271.pView)) } -// allocMVKDeviceConfigurationMemory allocates memory for type C.MVKDeviceConfiguration in C. +// allocMVKDeviceConfigurationMemory allocates memory for type C.MVKConfiguration in C. // The caller is responsible for freeing the this memory via C.free. func allocMVKDeviceConfigurationMemory(n int) unsafe.Pointer { mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMVKDeviceConfigurationValue)) @@ -271,10 +271,10 @@ func allocMVKDeviceConfigurationMemory(n int) unsafe.Pointer { return mem } -const sizeOfMVKDeviceConfigurationValue = unsafe.Sizeof([1]C.MVKDeviceConfiguration{}) +const sizeOfMVKDeviceConfigurationValue = unsafe.Sizeof([1]C.MVKConfiguration{}) // Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MVKDeviceConfiguration) Ref() *C.MVKDeviceConfiguration { +func (x *MVKDeviceConfiguration) Ref() *C.MVKConfiguration { if x == nil { return nil } @@ -297,36 +297,36 @@ func NewMVKDeviceConfigurationRef(ref unsafe.Pointer) *MVKDeviceConfiguration { return nil } obj := new(MVKDeviceConfiguration) - obj.ref1c21f673 = (*C.MVKDeviceConfiguration)(unsafe.Pointer(ref)) + obj.ref1c21f673 = (*C.MVKConfiguration)(unsafe.Pointer(ref)) return obj } // PassRef returns the underlying C object, otherwise it will allocate one and set its values // from this wrapping struct, counting allocations into an allocation map. -func (x *MVKDeviceConfiguration) PassRef() (*C.MVKDeviceConfiguration, *cgoAllocMap) { +func (x *MVKDeviceConfiguration) PassRef() (*C.MVKConfiguration, *cgoAllocMap) { if x == nil { return nil, nil } else if x.ref1c21f673 != nil { return x.ref1c21f673, nil } mem1c21f673 := allocMVKDeviceConfigurationMemory(1) - ref1c21f673 := (*C.MVKDeviceConfiguration)(mem1c21f673) + ref1c21f673 := (*C.MVKConfiguration)(mem1c21f673) allocs1c21f673 := new(cgoAllocMap) var csupportLargeQueryPools_allocs *cgoAllocMap ref1c21f673.supportLargeQueryPools, csupportLargeQueryPools_allocs = (C.VkBool32)(x.SupportLargeQueryPools), cgoAllocsUnknown allocs1c21f673.Borrow(csupportLargeQueryPools_allocs) - var cimageFlipY_allocs *cgoAllocMap - ref1c21f673.imageFlipY, cimageFlipY_allocs = (C.VkBool32)(x.ImageFlipY), cgoAllocsUnknown - allocs1c21f673.Borrow(cimageFlipY_allocs) + // var cimageFlipY_allocs *cgoAllocMap + // ref1c21f673.imageFlipY, cimageFlipY_allocs = (C.VkBool32)(x.ImageFlipY), cgoAllocsUnknown + // allocs1c21f673.Borrow(cimageFlipY_allocs) var cshaderConversionFlipVertexY_allocs *cgoAllocMap ref1c21f673.shaderConversionFlipVertexY, cshaderConversionFlipVertexY_allocs = (C.VkBool32)(x.ShaderConversionFlipVertexY), cgoAllocsUnknown allocs1c21f673.Borrow(cshaderConversionFlipVertexY_allocs) - var cshaderConversionLogging_allocs *cgoAllocMap - ref1c21f673.shaderConversionLogging, cshaderConversionLogging_allocs = (C.VkBool32)(x.ShaderConversionLogging), cgoAllocsUnknown - allocs1c21f673.Borrow(cshaderConversionLogging_allocs) + // var cshaderConversionLogging_allocs *cgoAllocMap + // ref1c21f673.shaderConversionLogging, cshaderConversionLogging_allocs = (C.VkBool32)(x.ShaderConversionLogging), cgoAllocsUnknown + // allocs1c21f673.Borrow(cshaderConversionLogging_allocs) var cperformanceTracking_allocs *cgoAllocMap ref1c21f673.performanceTracking, cperformanceTracking_allocs = (C.VkBool32)(x.PerformanceTracking), cgoAllocsUnknown @@ -343,7 +343,7 @@ func (x *MVKDeviceConfiguration) PassRef() (*C.MVKDeviceConfiguration, *cgoAlloc } // PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MVKDeviceConfiguration) PassValue() (C.MVKDeviceConfiguration, *cgoAllocMap) { +func (x MVKDeviceConfiguration) PassValue() (C.MVKConfiguration, *cgoAllocMap) { if x.ref1c21f673 != nil { return *x.ref1c21f673, nil } @@ -358,9 +358,9 @@ func (x *MVKDeviceConfiguration) Deref() { return } x.SupportLargeQueryPools = (Bool32)(x.ref1c21f673.supportLargeQueryPools) - x.ImageFlipY = (Bool32)(x.ref1c21f673.imageFlipY) + // x.ImageFlipY = (Bool32)(x.ref1c21f673.imageFlipY) x.ShaderConversionFlipVertexY = (Bool32)(x.ref1c21f673.shaderConversionFlipVertexY) - x.ShaderConversionLogging = (Bool32)(x.ref1c21f673.shaderConversionLogging) + // x.ShaderConversionLogging = (Bool32)(x.ref1c21f673.shaderConversionLogging) x.PerformanceTracking = (Bool32)(x.ref1c21f673.performanceTracking) x.PerformanceLoggingFrameCount = (uint32)(x.ref1c21f673.performanceLoggingFrameCount) } @@ -424,9 +424,9 @@ func (x *MVKPhysicalDeviceMetalFeatures) PassRef() (*C.MVKPhysicalDeviceMetalFea refb64ae6e7.baseVertexInstanceDrawing, cbaseVertexInstanceDrawing_allocs = (C.VkBool32)(x.BaseVertexInstanceDrawing), cgoAllocsUnknown allocsb64ae6e7.Borrow(cbaseVertexInstanceDrawing_allocs) - var cdynamicMTLBuffers_allocs *cgoAllocMap - refb64ae6e7.dynamicMTLBuffers, cdynamicMTLBuffers_allocs = (C.VkBool32)(x.DynamicMTLBuffers), cgoAllocsUnknown - allocsb64ae6e7.Borrow(cdynamicMTLBuffers_allocs) + // var cdynamicMTLBuffers_allocs *cgoAllocMap + // refb64ae6e7.dynamicMTLBuffers, cdynamicMTLBuffers_allocs = (C.VkBool32)(x.DynamicMTLBuffers), cgoAllocsUnknown + // allocsb64ae6e7.Borrow(cdynamicMTLBuffers_allocs) var cmaxPerStageBufferCount_allocs *cgoAllocMap refb64ae6e7.maxPerStageBufferCount, cmaxPerStageBufferCount_allocs = (C.uint32_t)(x.MaxPerStageBufferCount), cgoAllocsUnknown @@ -475,7 +475,7 @@ func (x *MVKPhysicalDeviceMetalFeatures) Deref() { } x.IndirectDrawing = (Bool32)(x.refb64ae6e7.indirectDrawing) x.BaseVertexInstanceDrawing = (Bool32)(x.refb64ae6e7.baseVertexInstanceDrawing) - x.DynamicMTLBuffers = (Bool32)(x.refb64ae6e7.dynamicMTLBuffers) + // x.DynamicMTLBuffers = (Bool32)(x.refb64ae6e7.dynamicMTLBuffers) x.MaxPerStageBufferCount = (uint32)(x.refb64ae6e7.maxPerStageBufferCount) x.MaxPerStageTextureCount = (uint32)(x.refb64ae6e7.maxPerStageTextureCount) x.MaxPerStageSamplerCount = (uint32)(x.refb64ae6e7.maxPerStageSamplerCount) @@ -484,91 +484,91 @@ func (x *MVKPhysicalDeviceMetalFeatures) Deref() { x.MaxQueryBufferSize = (DeviceSize)(x.refb64ae6e7.maxQueryBufferSize) } -// allocMVKSwapchainPerformanceMemory allocates memory for type C.MVKSwapchainPerformance in C. -// The caller is responsible for freeing the this memory via C.free. -func allocMVKSwapchainPerformanceMemory(n int) unsafe.Pointer { - mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMVKSwapchainPerformanceValue)) - if err != nil { - panic("memory alloc error: " + err.Error()) - } - return mem -} - -const sizeOfMVKSwapchainPerformanceValue = unsafe.Sizeof([1]C.MVKSwapchainPerformance{}) - -// Ref returns the underlying reference to C object or nil if struct is nil. -func (x *MVKSwapchainPerformance) Ref() *C.MVKSwapchainPerformance { - if x == nil { - return nil - } - return x.refd8d60565 -} - -// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. -// Does nothing if struct is nil or has no allocation map. -func (x *MVKSwapchainPerformance) Free() { - if x != nil && x.allocsd8d60565 != nil { - x.allocsd8d60565.(*cgoAllocMap).Free() - x.refd8d60565 = nil - } -} - -// NewMVKSwapchainPerformanceRef creates a new wrapper struct with underlying reference set to the original C object. -// Returns nil if the provided pointer to C object is nil too. -func NewMVKSwapchainPerformanceRef(ref unsafe.Pointer) *MVKSwapchainPerformance { - if ref == nil { - return nil - } - obj := new(MVKSwapchainPerformance) - obj.refd8d60565 = (*C.MVKSwapchainPerformance)(unsafe.Pointer(ref)) - return obj -} - -// PassRef returns the underlying C object, otherwise it will allocate one and set its values -// from this wrapping struct, counting allocations into an allocation map. -func (x *MVKSwapchainPerformance) PassRef() (*C.MVKSwapchainPerformance, *cgoAllocMap) { - if x == nil { - return nil, nil - } else if x.refd8d60565 != nil { - return x.refd8d60565, nil - } - memd8d60565 := allocMVKSwapchainPerformanceMemory(1) - refd8d60565 := (*C.MVKSwapchainPerformance)(memd8d60565) - allocsd8d60565 := new(cgoAllocMap) - var clastFrameInterval_allocs *cgoAllocMap - refd8d60565.lastFrameInterval, clastFrameInterval_allocs = (C.double)(x.LastFrameInterval), cgoAllocsUnknown - allocsd8d60565.Borrow(clastFrameInterval_allocs) - - var caverageFrameInterval_allocs *cgoAllocMap - refd8d60565.averageFrameInterval, caverageFrameInterval_allocs = (C.double)(x.AverageFrameInterval), cgoAllocsUnknown - allocsd8d60565.Borrow(caverageFrameInterval_allocs) - - var caverageFramesPerSecond_allocs *cgoAllocMap - refd8d60565.averageFramesPerSecond, caverageFramesPerSecond_allocs = (C.double)(x.AverageFramesPerSecond), cgoAllocsUnknown - allocsd8d60565.Borrow(caverageFramesPerSecond_allocs) - - x.refd8d60565 = refd8d60565 - x.allocsd8d60565 = allocsd8d60565 - return refd8d60565, allocsd8d60565 - -} - -// PassValue does the same as PassRef except that it will try to dereference the returned pointer. -func (x MVKSwapchainPerformance) PassValue() (C.MVKSwapchainPerformance, *cgoAllocMap) { - if x.refd8d60565 != nil { - return *x.refd8d60565, nil - } - ref, allocs := x.PassRef() - return *ref, allocs -} - -// Deref uses the underlying reference to C object and fills the wrapping struct with values. -// Do not forget to call this method whether you get a struct for C object and want to read its values. -func (x *MVKSwapchainPerformance) Deref() { - if x.refd8d60565 == nil { - return - } - x.LastFrameInterval = (float64)(x.refd8d60565.lastFrameInterval) - x.AverageFrameInterval = (float64)(x.refd8d60565.averageFrameInterval) - x.AverageFramesPerSecond = (float64)(x.refd8d60565.averageFramesPerSecond) -} +// // allocMVKSwapchainPerformanceMemory allocates memory for type C.MVKSwapchainPerformance in C. +// // The caller is responsible for freeing the this memory via C.free. +// func allocMVKSwapchainPerformanceMemory(n int) unsafe.Pointer { +// mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfMVKSwapchainPerformanceValue)) +// if err != nil { +// panic("memory alloc error: " + err.Error()) +// } +// return mem +// } + +// const sizeOfMVKSwapchainPerformanceValue = unsafe.Sizeof([1]C.MVKSwapchainPerformance{}) + +// // Ref returns the underlying reference to C object or nil if struct is nil. +// func (x *MVKSwapchainPerformance) Ref() *C.MVKSwapchainPerformance { +// if x == nil { +// return nil +// } +// return x.refd8d60565 +// } + +// // Free invokes alloc map's free mechanism that cleanups any allocated memory using C free. +// // Does nothing if struct is nil or has no allocation map. +// func (x *MVKSwapchainPerformance) Free() { +// if x != nil && x.allocsd8d60565 != nil { +// x.allocsd8d60565.(*cgoAllocMap).Free() +// x.refd8d60565 = nil +// } +// } + +// // NewMVKSwapchainPerformanceRef creates a new wrapper struct with underlying reference set to the original C object. +// // Returns nil if the provided pointer to C object is nil too. +// func NewMVKSwapchainPerformanceRef(ref unsafe.Pointer) *MVKSwapchainPerformance { +// if ref == nil { +// return nil +// } +// obj := new(MVKSwapchainPerformance) +// obj.refd8d60565 = (*C.MVKSwapchainPerformance)(unsafe.Pointer(ref)) +// return obj +// } + +// // PassRef returns the underlying C object, otherwise it will allocate one and set its values +// // from this wrapping struct, counting allocations into an allocation map. +// func (x *MVKSwapchainPerformance) PassRef() (*C.MVKSwapchainPerformance, *cgoAllocMap) { +// if x == nil { +// return nil, nil +// } else if x.refd8d60565 != nil { +// return x.refd8d60565, nil +// } +// memd8d60565 := allocMVKSwapchainPerformanceMemory(1) +// refd8d60565 := (*C.MVKSwapchainPerformance)(memd8d60565) +// allocsd8d60565 := new(cgoAllocMap) +// var clastFrameInterval_allocs *cgoAllocMap +// refd8d60565.lastFrameInterval, clastFrameInterval_allocs = (C.double)(x.LastFrameInterval), cgoAllocsUnknown +// allocsd8d60565.Borrow(clastFrameInterval_allocs) + +// var caverageFrameInterval_allocs *cgoAllocMap +// refd8d60565.averageFrameInterval, caverageFrameInterval_allocs = (C.double)(x.AverageFrameInterval), cgoAllocsUnknown +// allocsd8d60565.Borrow(caverageFrameInterval_allocs) + +// var caverageFramesPerSecond_allocs *cgoAllocMap +// refd8d60565.averageFramesPerSecond, caverageFramesPerSecond_allocs = (C.double)(x.AverageFramesPerSecond), cgoAllocsUnknown +// allocsd8d60565.Borrow(caverageFramesPerSecond_allocs) + +// x.refd8d60565 = refd8d60565 +// x.allocsd8d60565 = allocsd8d60565 +// return refd8d60565, allocsd8d60565 + +// } + +// // PassValue does the same as PassRef except that it will try to dereference the returned pointer. +// func (x MVKSwapchainPerformance) PassValue() (C.MVKSwapchainPerformance, *cgoAllocMap) { +// if x.refd8d60565 != nil { +// return *x.refd8d60565, nil +// } +// ref, allocs := x.PassRef() +// return *ref, allocs +// } + +// // Deref uses the underlying reference to C object and fills the wrapping struct with values. +// // Do not forget to call this method whether you get a struct for C object and want to read its values. +// func (x *MVKSwapchainPerformance) Deref() { +// if x.refd8d60565 == nil { +// return +// } +// x.LastFrameInterval = (float64)(x.refd8d60565.lastFrameInterval) +// x.AverageFrameInterval = (float64)(x.refd8d60565.averageFrameInterval) +// x.AverageFramesPerSecond = (float64)(x.refd8d60565.averageFramesPerSecond) +// } diff --git a/vulkan_linux.go b/vulkan_linux.go index 4623f9c..6ca38e6 100644 --- a/vulkan_linux.go +++ b/vulkan_linux.go @@ -1,3 +1,4 @@ +//go:build linux && !android // +build linux,!android package vulkan